2006-08-20 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-20  Havoc Pennington  <hp@redhat.com>
2
3         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
4         the docs
5
6 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
7
8         * Released 0.92 
9
10 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
11
12         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
13         to reflect the init late change
14
15         * bus/bus.c (bus_context_new): Check user before we fork so we can
16         print out an error message a user will be able to see
17
18 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
19
20         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
21
22         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
23         Add two more global locks for use on windows platforms.  These are
24         unused on non-windows platforms but are not ifdefed out to avoid
25         potential bugs (i.e. the few bytes lost does not warrent the extra
26         maintanence and complexity that having seperate sets of locks would
27         cause)
28
29 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
30
31         * bus/services.c (bus_registry_acquire_service): Return an error
32         when an application tries to register the org.freedesktop.DBus Bus Name
33
34         * bus/services.c (bus_registry_release_service): Return an error
35         when an application tries to release the org.freedesktop.DBus Bus Name
36
37 2006-08-17  Alp Toker  <alp@atoker.com>
38
39         * doc/dbus-specification.xml: Fix some minor typos.
40
41 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
42
43         * configure.in: use $with_init_scripts instead of $operating_system
44         to determine where to store the pid since the init scripts manipulate 
45         the pid file (patch from Marcelo Ricardo Leitner 
46         <marcelo dot leitner at terra dot com dot br>.  
47
48 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
49
50         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
51         static DBusList *uninitialized_condvar_list to support new late 
52         initialization threading model.  In this model threads can be initialized
53         even after the D-Bus API has been used but still needs to be initialized 
54         before the second thread has been started.  Mutexes and condvar addresses
55         are stored in the two static lists and are replaced with actuall locks
56         when threads are initalized.
57         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
58         the location into the static list
59         (_dbus_mutex_free_at_location): New method for removing a mutex location 
60         from the static list and freeing the mutex
61         (_dbus_condvar_new_at_location): New method for creating a conditional 
62         variable and placing the location into the static list
63         (_dbus_condvar_free_at_location): New method for removing a conditional
64         variable location from the static list and freeing the conditional variable 
65         (init_uninitialized_locks): Atomic method which goes through the static 
66         lists of mutex and condvar location and updates them with actuall locks
67         (init_global_locks): changed to init_locks
68         
69         * dbus/dbus-connection.c:
70         (_dbus_connection_test_get_locks): New method for tests to check connections
71         (_dbus_connection_new_for_transport): Use the new at_location mutex and
72         condvar API
73         (dbus_connection_allocate_data_slot): Pass in the global lock address
74         to _dbus_data_slot_allocator_alloc
75
76         * dbus/dbus-dataslot.c:
77         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
78         instead of the mutex itself
79
80         * dbus/dbus-message.c:
81         (dbus_message_allocate_data_slot): Pass in the global lock address
82         to _dbus_data_slot_allocator_alloc
83
84         * dbus/dbus-pending-call.c:
85         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
86         to _dbus_data_slot_allocator_alloc
87
88         * dbus/dbus-server.c:
89         (_dbus_server_init_base): Use the new at_location mutex API
90         (dbus_server_allocate_data_slot): Pass in the global lock address
91         to _dbus_data_slot_allocator_alloc
92
93         * test/name-test/test-threads-init.c: New test case for late thread
94         initialization
95
96 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
97
98         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
99         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
100         causes compile problems when asserts are turned off
101         Keeping _dbus_warn for printing out the message so even if
102         asserts are turned off the user gets the messages that something is 
103         wrong 
104
105 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
106
107         Patches by Kjartan Maraas <kmaraas at gnome dot org>
108
109         * bus/services.c (bus_service_list_queued_owners):
110         Add a pointer cast to fix compiler warning
111
112         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
113         return a NULL instead of FALSE since the return type
114         is not expecting a boolean
115
116         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
117         Remove unused variable
118
119         * dbus/dbus-marshal-recursive-util.c (node_new):
120         return a NULL instead of FALSE since the return type
121         is not expecting a boolean
122
123         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
124         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
125         because we are expecting a pointer not a boolean
126
127         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
128         add void as the parameter so some compilers
129         don't complain
130
131         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
132           _dbus_transport_new_for_tcp_socket):
133         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
134         because we are expecting a pointer not a boolean
135
136         * test/shell-test.c (test_command_line):
137         cast the second argument to _dbus_list_append to avoid compiler
138         warnings
139
140         * test/test-names.c (main): remove unused variable
141
142         * test/test-service.c (check_hello_from_self_reply):
143         Initialize echo_message and echo_reply to NULL
144         
145         * test/test-shell-service.c (handle_echo):
146         Remove unused variable and cast the third parameter passed to
147         dbus_connection_get_object_path_data to avoid compiler warrnings
148
149         * test/name-test/test-names.c (clear_message_queue):
150         Remove unused function
151
152         * test/name-test/test-pending-call-dispatch.c:
153         Fix format string in printf
154
155
156 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
157
158         * dbus/dbus-bus.c:
159         * test/name-test/test-names.c:
160         Remove test method dbus_bus_connection_get_unique_name because 
161         we already have public method dbus_bus_get_unique_name that 
162         does the exact same thing
163
164 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
165
166         * dbus/dbus-signature.c:
167         fix typos in Julio's previous patch which cause make check to fail
168
169 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
170
171         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
172         In any case it was wrong since this is a test checking to see if
173         address parsing is correct.  There was no need to get the true
174         tmp directory.  
175
176 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
177
178         * dbus/dbus-macros.h: Revert the addition of stddef.h
179         as we should not be adding it to library headers 
180
181 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
182
183         * dbus/dbus-signature.c:
184         Fix the unit tests so that they work if assertions are not enabled.
185         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
186
187 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
188
189         * tools/run-with-tmp-session-bus.sh:
190         * test/name-test/run-test.sh:
191         Remove bashisms (patch from Julio M. Merino Vidal
192         <jmmv at NetBSD dot org>)
193
194 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
195
196         * configure.in: add a version (>= 2.6.0) check for libxml2
197
198 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
199
200         * configure.in: make sure the compiler supports -Wfloat-equal
201         
202         * bus/dir-watch-dnotify.c: move functional code after 
203         variable declerations (C99 fix)  (patches from Jens Granseuer
204         <jensgr at gmx dot net>
205
206 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
207
208         * dbus/dbus-macros.h:
209         add #include <stddef.h> so that Sun compilers don't complain about
210         the defining NULL
211
212 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
213
214         * dbus/dbus-sysdeps.c:
215         * dbus/dbus-address.c:
216         * bus/activation.c:
217         * test/shell-test.c:
218         don't hardcode tmp directory (patch from Dave Meikle 
219         <dmk at davemeikle dot co dot uk>)
220
221 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
222
223         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
224         Change an assert to a detailed warning and abort.  
225         When allocator->lock != mutex it indicates that the user has failed
226         to initalize threads before using the D-Bus library.  This warning
227         helps the user identify the issue and fix their app.
228
229 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
230
231         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
232         with cleanups of bugs found from Coverity reports:
233
234         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
235         close the file on error to avoid a leak
236
237         * bus/expirelist.c (bus_expire_list_test):
238         Check for NULL on dbus_new0
239
240         * bus/activation.c (update_directory):
241         remove dead code
242
243         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
244         Fix some leaks
245
246         * bus/bus.c (process_config_every_time):
247         Fixed a leak
248
249         * bus/desktop-file.c (parse_key_value):
250         Fixed leak
251
252         * bus/selinux.c (bus_selinux_id_table_insert):
253         Fixed leak
254
255 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
256
257         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
258         remove dead code
259
260 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
261
262         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
263         #!/bin/bash
264
265 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
266
267         * Doxyfile.in: fix the INPUT line so we can generate docs 
268         when sourcedir != builddir (patch from Cygwin Ports maintainer
269         <yselkowitz at users dot sourceforge dot net>
270
271 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
272
273         * dbus/dbus-sysdeps.h:
274         * dbus/dbus-sysdeps.c: 
275         * dbus/dbus-string.c: 
276         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
277         GLib's function which does the same thing
278
279         * configure.in:
280         * bus/Makefile.am:
281         * bus/dir-watch-default.c:
282         * bus/dir-watch-dnotify.c:
283         * bus/dir-watch-kqueue.c:
284         Add kqueue directory watching for freebsd and split the directory
285         watching code into seperate files per method/arch
286         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
287
288 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
289
290         * configure.in:
291         * tools/Makefile.am:
292         * tools/dbus-launch.c:
293         * bus/Makefile.am:
294         allow --with-dbus-daemondir switch to be used to make the
295         daemon install to a seperate bindir like /usr/libexec
296         (patch from Brian Cameron <brian dot cameron at sun dot com)
297
298 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
299
300         * bus/Makefile.am (install-data-hook): removed the slash after 
301         $(DESTDIR) so we don't get the double slash which does not work
302         in windows (patch from Andras Porjesz 
303         <andras dot porjesz at siemens dot com>)
304
305 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
306
307         * dbus/dbus-sysdeps.h:
308         * dbus/dbus-sysdeps.c: 
309           add _dbus_printf_length (patch from Peter Kümmel 
310           <syntheticpp at gmx dot net>)
311
312 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
313
314         * dbus/dbus-internals.c: unistd.h is not used 
315         (_dbus_verbose_real): only enable verbose printing 
316         if DBUS_VERBOSE environment var is set to '1'
317         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
318
319 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
320
321         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
322         so we still compile on older gcc (patch from Frederic Peters 
323         <fpeters at 0d dot be>
324
325 2006-08-04  Havoc Pennington  <hp@redhat.com>
326
327         * configure.in: add -Wdeclaration-after-statement
328
329         * dbus/dbus-connection.c: change all the pending call stuff to
330         reflect the fact that pending call operations use the connection
331         lock
332
333         * dbus/dbus-pending-call.c: add locking here
334
335         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
336         field const consistent with how message field is done
337
338 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
339
340         * s/D-BUS/D-Bus/g
341
342 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
343
344         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
345         <in7y118 at public.uni-hamburg dot de> - fix invalid
346         read/write reported by valgrind
347
348 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
349
350         * Released 0.91
351
352 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
353
354         * dbus/dbus-connection.c:
355         (_dbus_connection_attach_pending_call_unlocked):
356         (connection_timeout_and_complete_all_pending_calls_unlocked):
357         Make sure we set timeout_added on pending calls to FALSE when
358         we remove the timeout from the connection
359
360 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
361
362         * Removed some extra bindings stuff lingering around (thanks timo)
363         * dbus-pendingcall.c (_dbus_pending_call_new): 
364         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
365         when we tried to take a lock on an already locked connection
366
367 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
368
369         * Released 0.90
370
371 2006-07-17  Havoc Pennington  <hp@redhat.com>
372
373         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
374         ints, reported by Owen Taylor
375
376 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
377
378         * doc/TODO:
379         * dbus/dbus-bus.c:
380         * dbus-errors.c:
381         * dbus/dbus-marshal-validate.c:
382           Removed TODO items which were fixed or are no longer relevent
383
384 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
385
386         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
387         Remove stray files from the stripped bindings
388
389 2006-07-16  Havoc Pennington  <hp@redhat.com>
390
391         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
392         Improve the error message on reply timeout
393
394 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
395
396         * Remove all bindings
397
398 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
399
400         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
401         and set pending_reply out arg to NULL is connection is disconnected
402         (connection_timeout_and_complete_all_pending_calls_unlocked): New
403         static method for cleaning up pending calls on disconnect
404         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
405         calls queued timeouts on disconnect 
406
407          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
408         Remove 
409
410 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
411
412         * bus/activation.[ch] (bus_activation_list_services): new function to 
413         get the list of services that can be activated
414
415         * bus/dispatch.c: test coverage for the new bus method
416         ListActivatableNames
417
418         * bus/driver.c: new bus method ListActivatableNames to get the list of
419         services that can be activated
420
421         * doc/dbus-specification.xml: ListActivatableNames method documentation
422
423 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
424         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
425         source files
426
427 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
428         * dbus/dbus-message-factory.c:
429         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
430
431 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
432         * dbus/dbus-connection-internal.h:
433         * dbus/dbus-connection.c:
434         * file dbus/dbus-pending-call.c:
435         * dbus/dbus-pending-call.h:
436         Make DBusPendingCall an opaque type even to D-Bus internals
437
438 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
439
440         * dbus/dbus-connection.h: remove connection_disconnect and replace with
441         connection_close
442
443         * dbus/dbus-connection.c: include dbus-bus.h
444         (_dbus_connection_read_write_dispatch): make static
445
446 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
447
448         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
449         function
450         (dbus_connection_dispatch): On disconnect unref any shared connections
451
452         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
453         for cleaning up shared connections on disconnect
454         (internal_bus_get): get a hard refrence to shared connections when
455         they are created
456         
457         * doc/TODO: Remove items which are no longer relevent or have been fixed
458         Split 1.0 todo items with a 0.90 freeze todo list
459  
460 2006-06-14  Ross Burton  <ross@openedhand.com>
461
462         * glib/dbus-gobject.c:
463         Free a leaking GArray (surely not!) in dbus_g_method_return.
464
465 2006-06-14  Ross Burton  <ross@openedhand.com>
466
467         * tools/Makefile.am:
468         * tools/dbus-monitor.c:
469         Don't use the GLib bindings in dbus-monitor (patch from Ralf
470         Habacker).
471         
472 2006-06-14  Ross Burton  <ross@openedhand.com>
473
474         * tools/dbus-print-message.c:
475         Also print the object path when outputting signals or method calls.
476
477 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
478
479         * qt/src/Makefile.am: install the qdbus.h header.
480         This allows people to actually use the installed code.
481
482 2006-06-12  Ross Burton  <ross@openedhand.com>
483
484         * glib/dbus-gproxy.c:
485         Don't leak a GArray when firing signals (thank Rob Taylor for review).
486
487 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
488
489         * Released 0.62
490
491 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
492
493         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
494         break pedantic builds. Closes bug 6043 (patch approved by
495         Havoc back in February).
496
497 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
498
499         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
500         that took a QDBusMessage parameter.
501         * qt/src/qdbusbus.h: Add a default flag for RequestName.
502         * qt/tools/dbus.cpp: Don't use automatic call because we might
503         be calling an async method: request a reply.
504
505 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
506
507         * test/qt/*: Update the testcases, including testing the new
508         functionality of sending null QByteArray and QString over the
509         bus. Add new headertest test and restore the old
510         qdbusxmlparser test.
511
512 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
513
514         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
515         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
516
517         * qt/examples/Makefile.am:
518         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
519         form.
520
521         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
522         QByteArray() (nulls) over the bus.
523         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
524         the one that has the signature suffix stripped.
525         * qt/src/qdbusreply.h: Make some methods const.
526
527 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
528
529         Patch from Timo Hoenig <thoenig@suse.de>.
530
531         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
532         required during build to EXTRA_DIST.
533         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
534         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
535         * configure.in: Fix "make dist", take care that the Makefile for
536         qt/dbus is being generated.
537
538 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
539
540         * bus/bus.c: Fix eavesdropping on method calls
541
542 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
543
544         * configure.in:
545         * dbus/dbus-userdb-util.c:
546         Add Solaris console owner patch from Artem Kachitchkine
547
548 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
549
550         * qt/Makfile.am:
551         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
552         reorganisation. Thanks to Timo Hoenig for pointing this out.
553
554 2006-06-06  Robert McQueen  <robot101@debian.org>
555
556         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
557           call to dbus_g_type_get_struct.
558
559 2006-06-06  Robert McQueen  <robot101@debian.org>
560
561         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
562           pointers were put into a GPtrArray-based specialised collection, and
563           then freed along with the array. GValues which you add into
564           collections or maps which have the NOCOPY flag set are assumed to not
565           belong to the caller, so rather than the existing pointer-stealing
566           semantics, they are copied instead. Given that the main consumers of
567           this abstraction are the bindings themselves, I don't think this is
568           too bad, but others should watch their choice of take vs set_static.
569
570 2006-06-06  Robert McQueen  <robot101@debian.org>
571
572         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
573           of g_slist_prepend not being used. Fixed copying of slist-based
574           specialised collections, then wrote a test case and found that it was
575           all broken. Went on to fix iterating and appending too. Good thing
576           nobody uses this code yet.
577
578 2006-06-06  Robert McQueen  <robot101@debian.org>
579
580         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
581           the iterators use gvalue_take_ptrarray_value (the GValues themselves
582           are discarded without unsetting, so it makes no difference whether
583           we take or set_static). Remove cases for G_TYPE_POINTER because
584           there really is nothing useful we can do with them in our
585           specialised types - we *need* boxed copy/free functions at the very
586           least.
587
588 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
589
590         * qt/dbus: Add directory. I had forgotten to add this
591         yesterday after the move...
592
593         * qt/examples/Makefile.am:
594         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
595
596         * qt/tools/Makefile.am:
597         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
598         Added feature to get and set properties.
599         Added validation of service, object path and interface names.
600
601         * qt/tools/dbusidl2cpp.cpp: Two new features:
602         1) Allow specifying both the header and the source file names,
603         by separating them with a colon.
604         2) Don't write an interface output if the -p switch wasn't
605         given, but the -a was.
606
607         * qt/src/*: Fix usage of Iterators and ConstIterators.
608         Fix shadowing of variables by other variables (-Wshadow).
609         Fix keyword-cleanliness in headers.
610         Fix ASCII-cast (QLatin1String, QLatin1Char).
611         Fix validation of member names.
612         Add extra checking of introspection data during XML parsing.
613         Various bug fixes.
614
615 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
616
617         * dbus/Makefile.am:
618         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
619         qt/dbus/qdbus.h now.
620
621 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
622
623         * configure.in: Make --disable-qt actually do
624           something. Patch inspired by Zack Rusin.
625
626 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
627
628         * qt/: Update to Subversion r548032.
629         This includes a big reorganisation of the files inside the
630         subdir.
631
632 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
633
634         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
635         clear:  
636         "Failed to connect to socket <host>:<port> <error>" instead of
637         "Failed to connect to socket <host>: <error>:<port>"
638
639         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
640         for a tcp transport. 
641
642 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
643
644         * qt/*: Update the QtDBus bindings up to revision 546310 in
645         Subversion.
646         This adds the dbuscpp2xml tool, that parses a C++ header and
647         outputs a D-BUS Introspection XML.
648
649 2006-05-21  Havoc Pennington  <hp@redhat.com>
650
651         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
652         is not NULL when it shouldn't be. Also a couple of possible fixes
653         for #4637 though I don't understand why the bug happens, to be
654         honest... also the object constructor has an assert name != NULL
655         and the name is only currently NULL for peer-to-peer proxies that 
656         I don't think anyone uses? So it should be asserting.
657         Anyway, for now at least see if we get an earlier assertion failure.
658
659         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
660         apparently broken code to be sure the tests fail and someone 
661         will fix them...
662
663 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
664
665         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
666         and arrays when they had a single element: has_next returns
667         false, even before you read the element. So, instead, check
668         the array length.
669
670 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
671
672         * qt/qdbusmessage.cpp:
673         * qt/qdbustypehelper_p.h:
674         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
675         the list is a const-reference
676
677 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
678
679         * Adding old doc patch that never got applied
680         
681         * dbus/bus.c (dbus_bus_add_match): Add documentation
682
683         * doc/dbus-specification.xml: Add documentation for the match rules
684           and the AddMatch and RemoveMatch methods
685
686 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
687
688         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
689         call (r535506)
690
691         * qt/dbusidl2cpp.cpp:
692         * qt/qdbusabstractadaptor.cpp:
693         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
694         sibling of the QDBusAbstractAdaptor objects instead of the
695         parent. (r535848)
696
697         * qt/dbusidl2cpp.cpp:
698         * qt/qdbusabstractinterface.cpp:
699         * qt/qdbusabstractinterface.h:
700         * qt/qdbusabstractinterface_p.h:
701         * qt/qdbusinterface.cpp: Make properties in interfaces
702         actually work. The code that was generated would not compile,
703         due to moc calls to functions that did not exist. They now
704         shall. (r536571)
705
706 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
707
708         * Makefile.am:
709         * configure.in:
710         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
711         Thanks to Brad Hards for providing the patch
712
713 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
714
715         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
716         call. (r535506)
717
718 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
719
720         * qt/examples/dbus.cpp: Enhance error messages and use
721         QDBusInterfacePtr.
722
723 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
724
725         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
726         and disable the copy operators. (r533772, r534746)
727
728         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
729
730         * qt/qdbusabstractinterface.cpp:
731         * qt/qdbusabstractinterface.h: Change the default call mode to
732         not use the event loop. Add convenience call() methods that
733         take a CallMode parameter. (r534042)
734
735         * qt/qdbusconnection.h: Change the default call mode to not
736         use the event loop. (r534042)
737
738         * qt/qdbusinterface.cpp:
739         * qt/qdbusinterface.h: Add a method to tell us if the
740         interface is valid (since we don't return a null pointer
741         anymore) (r534099)
742
743         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
744         (r534101)
745
746         * qt/qdbusinternalfilters.cpp: Decouple the introspection
747         function in two so taht we get the chance to introspect
748         without having a QDBusMessage (r534102)
749
750         * qt/qdbusbus.h:
751         * qt/qdbusconnection.cpp:
752         * qt/qdbusconnection_p.h:
753         * qt/qdbusintegrator.cpp: Keep a list of our own names to
754         avoid a round-trip to the server when attempting to introspect
755         one of our own objects. Also make sure the filter functions
756         match the empty interface as well. (r534108)
757         Don't keep the connection names. Instead, trust the unique
758         connection name (r534111)
759         Remove event loop usage (r534112)
760
761 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
762
763         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
764         Brad Hards.
765
766 2006-04-28  Robert McQueen  <robot101@debian.org>
767
768         * glib/dbus-gproxy.c: Fix properties so that they can be given in
769         any order, making it easier for people who inherit from this
770         object.
771
772 2006-04-28  Robert McQueen  <robot101@debian.org>
773
774         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
775         of memory from within pointer arrays and lists. Fixes bug #6300.
776
777 2006-04-28  Robert McQueen  <robot101@debian.org>
778
779         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
780         generating struct signatures. Fixes bug #6083.
781
782 2006-04-28  Robert McQueen  <robot101@debian.org>
783
784         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
785         to qdbusconnection_p.moc.
786
787 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
788
789         * README, INSTALL: Doc fixes
790         Patch from Brad Hards <bradh at frogmouth.net>
791
792 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
793
794         * qt/examples/dbus.cpp: Use the new merged-interface mode for
795         the dynamic meta object. No need to guess which interface to
796         call.
797
798 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
799
800         * qt/qdbusconnection_p.h:
801         * qt/qdbusmetaobject.cpp:
802         * qt/qdbusmetaobject_p.h:
803         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
804         for the dynamic meta object. No need to guess which
805         interface to call.
806         * qt/qdbusabstractinterface_p.h:
807         * qt/qdbusconnection.cpp:
808         * qt/qdbusintegrator.cpp:
809         * qt/qdbusinterface.cpp:
810         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
811         Add a QDBusRef that looks and behaves like DCOPRef.
812
813 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
814
815         * dbus/dbus-connection.c: Interfaces are optional in method
816         calls, so don't give up if the interface parameter is NULL.
817         Patch reviewed by Havoc Pennington.
818
819 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
820
821         * qt/qdbusreply.h: Add default constructor and operator=
822           (r532625)
823         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
824           in public headers (r532952)
825         * qt/qdbusabstractinterface.cpp:
826         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
827           make it the default (r532951)
828
829 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
830
831         * dbus/dbus-connection.c: Fix asserts
832         Patch from Tim Moloney <t.moloney at verizon.net>
833
834 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
835
836         * mono/Connection.cs, mono/Message.cs: Check Target type
837         Patch from Aaron Bockover (abockover at novell.com)
838
839 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
840
841         * INSTALL: fine-tune the requirements for the Qt4 binding.
842
843 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
844
845         * tools/dbus-print-message.c: Added support for printing of all 
846           remaining data types. Fixed logic for indentation of compound
847           data types.
848         
849 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
850
851         * INSTALL: fill out content of file providing DBus specific
852           build installations, followed by generic Auto* INSTALL file
853           content
854         
855 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
856
857         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
858           Patch by Stefan Eilers. (r529537)
859
860 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
861
862         * qt/qdbusinternalfilters.cpp: Don't show the parent's
863           contents (r528208)
864
865 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
866
867         * qt/Makefile.am: fix the dependency for
868           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
869           not in qdbusconnection.cpp.
870           Thanks to Jakub Stachowski <stachowski@hypair.net> for
871           spotting this.
872
873 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
874
875         * qt/examples/listnames.cpp:
876         * qt/examples/Makefile.am: Three ways to list the names on the
877           bus.
878
879 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
880
881         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
882           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
883
884 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
885
886         Merge from Subversion:
887         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
888           something that exists (r526315)
889         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
890           slots/signals (r526316)
891         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
892           also return an unknown-method error if the parameters don't
893           match for org.freedesktop.DBus.Properties. (r526842)
894         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
895         * qt/qdbusintegrator.cpp: Restore the proper order of
896           delivery: don't make method returns be delivered on priority
897           (r528150)
898
899 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
900
901         * configure.in qt/Makefile.am: add qt/examples
902         * qt/examples: Add QtDBus example programs:
903           - hello: Hello, World
904           - ping: Simple method-calling program
905           - pong: Simple object-exporting program (not using adaptors)
906           - complexping: Interactive method-calling program 
907                 (also gets and sets properties).
908           - complexpong: Sample program exporting methods, signals and
909                 properties, using adaptors.
910           - dbus: Simple implementation of a generic method-calling
911                 program, similar to 'dbus-send', but with semantics
912                 similar to 'dcop'.
913           - chat: Simplistic chat program, implemented using signals
914                 and the system bus. Looks like IRC.
915
916 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
917
918         * configure.in: Detect QtGui (necessary for one of the
919           example programs). Note: this increases the minimum required
920           version of Qt to 4.1.3.
921
922 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
923
924         * test/qt/*: Sync with KDE Subversion revision 523647.
925         Update the testcases to the new API. Remove testcases for
926         classes that are no longer public or have been removed.
927
928 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
929
930         * qt/*: 
931         * dbus/qdbus.h: Sync with KDE Subversion revision
932         523647. Hopefully, this will be the last of the
933         source-incompatible changes. Documentation has been improved;
934         support for QList<basic-types> has been added; QDBusObject is
935         gone; QDBus(Abstract)Interface is now a QObject with
936         auto-generated meta-object; QDBusIntrospection is marked
937         private, since QMetaObject can be used now; lots of bugfixes.
938
939 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
940
941         Patch from Milosz Derezynski <internalerror at gmail.com>
942         
943         * configure.in:
944         Output the service directory in the configure summary
945
946         * dbus-1.pc.in:
947         Add session_bus_services_dir
948
949 2006-03-10  Ross Burton  <ross@openedhand.com>
950
951         * tools/dbus-print-message.c:
952         Add support for object paths and signatures.
953
954 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
955
956         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
957         config reload.
958         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
959         information caches
960         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
961         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
962         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
963         * dbus/dbus-userdb.h: Add function to flush all user/group information
964         caches.
965
966 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
967
968         * qt/dbusidl2cpp.cpp:
969         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
970         for dcopidl2cpp, found in the KDE installations (or the more
971         modern kalyptus): generate Qt4 C++ code for the input XML
972         introspection. Currently no IDL parsing.
973
974 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
975
976         * test/qt/*: Update the self-tests.
977
978 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
979
980         * qt/*: 
981         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
982         represents the first feature-complete version of the Qt4
983         bindings since I took ove maintainership.
984
985 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
986
987         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
988         dir. This is C++, so we can't use the DBus ones.
989
990 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
991
992         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
993         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
994
995 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
996
997         * dbus/dbus-connection.c: 
998         (_dbus_connection_block_pending_call):
999         Check to see if our data has already been read off the connection
1000         by another blocking pending call before we block in poll.
1001         (check_for_reply_and_update_dispatch_unlocked):
1002         Code taken from _dbus_connection_block_pending_call - checks for
1003         an already read reply and updates the dispatch if there is one.
1004
1005         * test/name-test/test-pending-call-dispatch.c:
1006         New test for making sure we don't get stuck polling a 
1007         dbus connection which has no data on the socket when
1008         blocking out of order on two or more pending calls.
1009
1010 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1011
1012         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1013         make/automake don't detect that we're talking about the same
1014         .lo file if I specify the full path to the source files.
1015
1016 2006-02-26  Havoc Pennington  <hp@redhat.com>
1017
1018         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1019
1020         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1021         session bus variable is unset, suggest "man dbus-launch" and "man
1022         dbus-daemon" to figure out how to fix the problem
1023
1024 2006-02-25  Havoc Pennington  <hp@redhat.com>
1025
1026         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1027         should make this thing use the new glib options parser
1028
1029 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1030
1031         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1032         .lo files taking moc sources.
1033
1034 2006-02-25  Havoc Pennington  <hp@redhat.com>
1035
1036         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1037         and install it as a public header
1038
1039 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1040
1041         * Released 0.61
1042
1043 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1044         
1045         * proxies.py: Fix the callchain
1046
1047 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1048         
1049         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1050
1051         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1052         dbus/dbus-sysdeps.c
1053
1054         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1055         call _dbus_group_info_free_allocated which causes infinite loop,
1056         correctly call _dbus_group_info_free
1057
1058 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1059
1060         * qt/qdbusinterface_p.h:
1061         * qt/qdbusinterface.cpp: Use the standard
1062         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1063         calls instead of creating one for us.
1064
1065         * qt/qdbusconnection_p.h:
1066         * qt/qdbusintegrator.cpp: Remove debugging code.
1067
1068         * qt/qdbusintegrator.cpp:
1069         * qt/qdbusmessage.cpp:
1070         * qt/qdbusmessage_p.h:
1071         * qt/qdbusmessage.h: Change the behaviour of automatic
1072         reply-sending: now a reply is always sent, unless the caller
1073         didn't request one or if the user slot has already sent one.
1074
1075 2006-02-16  Robert McQueen  <robot101@debian.org>
1076
1077         * configure.in: Patch from Debian packages by Sjoerd Simons
1078         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1079         arguments so it's possible to build both bindings in the
1080         same tree.
1081
1082         * qt/Makefile.am: Fix truncated value so that make dist works.
1083
1084 2006-02-16  Robert McQueen  <robot101@debian.org>
1085
1086         * acinclude.m4, configure.in: Patch from Brad Hards
1087         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1088         improving quoting, re-ordering a few checks, and a few other
1089         aesthetic tidy-ups.
1090
1091 2006-02-16  Robert McQueen  <robot101@debian.org>
1092
1093         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1094         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1095         assertion that the next element to read from the iter is fixed in
1096         size. This is not the case when you are at the end of the iter,
1097         because the next element type is INVALID.
1098
1099         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1100         a bogus assert which means that you may not initialise a 0-length
1101         string unless you provide a non-NULL pointer. This prevented
1102         you from marshalling messages containing zero-length arrays in
1103         some cases.
1104
1105         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1106         from Rob to correct bogus asserts when trying to demarshal an
1107         array and get_fixed_array got you 0 elements. Append nothing to
1108         the GArray in this case.
1109
1110         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1111         an empty array via the glib bindings. Without all of the above
1112         patches, this new test fails.
1113
1114 2006-02-16  Robert McQueen  <robot101@debian.org>
1115
1116         * glib/dbus-gmain.c: Make the previous commit compile.
1117
1118         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1119         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1120         specify sender_keyword="foo", path_keyword="bar" when adding
1121         a signal listener, so that you can bind to signals generically
1122         but still do something useful in your callback.
1123
1124         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1125         chars so that they're not cast to chars and made negative. Thanks
1126         to Jakub Stachowski for reporting this and testing the fix.
1127
1128 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1129
1130         * dbus/dbus-glib.h:
1131         * glib/dbus-gmain.h:
1132         (dbus_g_connection_open): new method for openning
1133         a connection to an arbitrary address in the glib bindings
1134
1135         * ChangeLog: checkin last entry which doesn't seem to be commited
1136
1137 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1138
1139         * tools/dbus-launch.c: Fixed sh syntax output
1140
1141 2006-02-13  Robert McQueen  <robot101@debian.org>
1142
1143         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1144         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1145         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1146         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1147         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1148         missing piece of the glib bindings jigsaw puzzle. This modifies
1149         the existing specialised types to have N type parameters (rather
1150         than the current 1 or 2 for arrays and dictionaries respectively).
1151         You can then use this to get a glib type to represent any arbitrary
1152         D-Bus struct type using dbus_g_type_get_struct. The only
1153         implementation of these types is with GValueArrays as before,
1154         but it's now possible to store these in arrays, emit them in
1155         signals, etc.
1156
1157 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1158
1159         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1160         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1161         <thiago.macieira at trolltech.com>
1162
1163 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1164
1165         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1166         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1167
1168 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1169
1170         * bus/connection.c (bus_connections_expect_reply): Make
1171         pending reply limit not common to all connections (Bug #5416)
1172         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1173
1174 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1175
1176         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1177
1178 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1179
1180         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1181         patch from Doug Goldstein <cardoe at gentoo.org>
1182
1183 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1184
1185         * mono/Arguments.cs: Fix a magic number in the mono bindings
1186         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1187
1188 2006-01-27  Robert McQueen  <robot101@debian.org>
1189
1190         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1191         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1192         when generating the client-side methods, instead of overloading
1193         CSymbol which broke everything horribly. My apologies.
1194
1195 2006-01-27  Robert McQueen  <robot101@debian.org>
1196
1197         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1198         by me and Rob Taylor to add a simple_free function to D-Bus map
1199         and collection types, which allows those types which can be freed
1200         with a GDestroyNotify (such as GHashTables and GArrays, but not
1201         GPtrArrays) to be stored as the values in hashtables.
1202
1203         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1204         Patch by Rob Taylor to add nested dicts to the glib tests to check
1205         the above code works, and appears not to leak when called repeatedly.
1206
1207 2006-01-27  Robert McQueen  <robot101@debian.org>
1208
1209         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1210         to free a D-Bus allocated string with dbus_free () instead of
1211         g_free ().
1212
1213 2006-01-27  Iain Holmes  <iain@openedhand.com>
1214
1215         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1216         method from being called multiple times.
1217
1218 2006-01-19  Robert McQueen  <robot101@debian.org>
1219
1220         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1221         <rob.taylor@collabora.co.uk> to add support for generating bindings
1222         to arrays that are represented as GPtrArrays rather than GArrays (ie
1223         size-variable things, such as strings, objects, structs, etc).
1224
1225 2006-01-05  Robert McQueen  <robot101@debian.org>
1226
1227         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1228         <ricardo.kekki@movial.fi> to make it possible to inherit from
1229         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1230         a private part, and moving the setting of the DBusGProxyManager into a
1231         connection property, allowing proper GObject construction.
1232
1233 2006-01-05  Robert McQueen  <robot101@debian.org>
1234
1235         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1236         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1237         annotations when generating glib client bindings.
1238
1239 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1240
1241         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1242
1243         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1244
1245 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1246
1247         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1248
1249 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1250
1251         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1252
1253 2005-12-19  Ross Burton  <ross@openedhand.com>
1254
1255         * doc/dbus-tutorial.xml:
1256         Document the Glib client-side bindings, and list all possible annotations.
1257
1258 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1259
1260         * dbus/bus.c (dbus_bus_release_name): Add documentation
1261
1262 2005-12-06  Robert McQueen  <robot101@debian.org>
1263
1264         * python/service.py: s/sucessful/successful/ so we're allocating to
1265         and reading from the same variable. Oops.
1266
1267 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1268
1269         * Released 0.60
1270
1271 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1272
1273         * test/qt/Makefile.am: build from srcdir
1274
1275         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1276         Note - this code is wrong and needs to be fixed by the Qt binding
1277         developers.  The flags should be treated as bitfields and not enums.
1278
1279         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1280
1281 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1282
1283         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1284           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1285           in production code
1286
1287 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1288
1289         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1290         method for getting messages off the bus in the absence of a
1291         mainloop.  This method is much like 
1292         dbus_connection_read_write_dispatch except it does not dispatch
1293         the messages to a registered filter function.  Instead it
1294         allows a developer to process messages by directly popping
1295         them off the bus.
1296
1297 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1298
1299         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1300         the parser to continue instead of returning error
1301         (bus_desktop_file_load): Do not free parser data when
1302         parse_section_start or parse_key_value fails because it was 
1303         already freed by parser_free (patch from Carlos Garcia Campos  
1304         <carlosgc at gnome.org>)
1305
1306 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1307
1308         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1309         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1310         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1311         test/test-segfault.c, test/test-utils.c,
1312         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1313         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1314         Various cleanup of dead code and compiler warnings (patch from
1315         Kjartan Maraas <kmaraas at gnome.org>) 
1316
1317 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1318
1319         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1320         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1321
1322 2005-11-27  Robert McQueen  <robot101@debian.org>
1323
1324         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1325         part of the preceding one. Oops. Merge patch by Johan Hedberg
1326         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1327         on big-endian platforms.
1328
1329         * test/python/test-client.py: Add some 16-bit integers to the test
1330         values.
1331
1332 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1333
1334         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1335         method return message for property getters
1336
1337 2005-11-27  Robert McQueen  <robot101@debian.org>
1338
1339         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1340         with type v of an instance of dbus.Variant(foo, type='x') caused
1341         it to be boxed twice before sending over the bus.
1342
1343         * python/dbus_bindings.pyx, python/service.py,
1344         test/python/test-client.py: Update the constants for the new
1345         request_name flags, and update comments/test cases now that queueing
1346         is the default action.
1347
1348 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1349
1350         * configure.in:
1351         - Change version to 0.60 for impending release
1352         - upped the sonames because of ABI and API breakage
1353
1354 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1355
1356         * configure.in: Add test/name-test/Makefile to the generated
1357         Makefile list
1358
1359         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1360         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1361         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1362         not to queue an ower if it can't be the primary owner
1363
1364         * bus/bus.h: Add new internal BusOwner struct
1365
1366         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1367         to bus_registry_ensure and don't set the prohibit_replacement flag
1368         since they are now set per BusOwner and not per name.
1369         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1370         that returns the list of connections in a name's connection queue
1371         
1372         * bus/services.c (struct BusService): remove prohibit_replacement field
1373         (struct BusOwner): new struct for keeping track of queued connections
1374         and their associated flags for the queue
1375         (struct BusRegistry): add a BusOwner memory pool
1376         (bus_registry_new): initialize the BusOwner memory pool
1377         (bus_registry_unref): free the BusOwner memory pool
1378         (_bus_service_find_owner_link): new internal method for
1379         searching the queue for a specific connection
1380         (bus_owner_set_flags): new method for adding setting the flags on a
1381         bus owner
1382         (bus_owner_new): new method that creates a BusOwner object from the
1383         pool and sets its flags
1384         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1385         (bus_registry_ensure): Add the flags parameter
1386         (bus_registry_acquire_service): Switch from using raw connections to
1387         using the BusOwner struct
1388         Add new state machine for dealing with the new set of flags
1389         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1390         cancel_ownership, free_ownership_cancel_data, 
1391         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1392         restore_ownership, free_ownership_restore_data, 
1393         add_restore_ownership_to_transaction): Switch to using BusOwner 
1394         instead of raw connections
1395         (bus_service_add_owner): Add flags parameter
1396         Switch to using BusOwner instead of raw connections
1397         Add state machine for dealing with the new set of flags
1398         (bus_service_swap_owner): Swaps the first and second owners in the
1399         queue.  Used to make sure proper signals are sent when a service looses 
1400         or gains primary ownership.  We never insert an owner at the top of the
1401         queue.  Instead we insert it in the second position and then swap.
1402         (bus_service_remove_owner): Remove the owner from the queue sending
1403         out the NameLost and NameOwnerChanged signals if the we were the 
1404         primary owner
1405         (bus_service_get_primary_owners_connection): New method that extracts
1406         the connection from the primary owner
1407         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1408         connection
1409         (bus_service_get_allow_replacement): Changed from the old 
1410         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1411         primary owner and returns if it can be replaced or not
1412         (bus_service_set_prohibit_replacement): removed
1413         (bus_service_has_owner): returns TRUE if and owner with
1414         the specified connection exists in the queue
1415         
1416         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1417         method that only compiles if tests are enabled.  Allows us to get the 
1418         unique name of a connection so we can check it against the queue when
1419         doing regression tests
1420
1421         * bus/activation.c (bus_activation_send_pending_auto_activate),
1422         bus/dispatch.c (bus_dispatch),  
1423         bus/driver.c (bus_driver_handle_get_service_owner, 
1424         bus_driver_handle_get_connection_unix_user, 
1425         bus_driver_handle_get_connection_unix_process_id,
1426         bus_driver_handle_get_connection_selinux_security_context),
1427         bus/signals.c (connection_is_primary_owner): 
1428         use bus_service_get_primary_owners_connection instead of
1429         bus_service_get_primary_owner
1430
1431         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1432         _dbus_listen_unix_socket): Calculate the length of the socket
1433         path and use that instead of using a fixed length which was
1434         causing socket names to contain many trailing Nul bytes.
1435
1436         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1437         (dbus_g_method_get_sender): New method for extracting the sender 
1438         from a DBusGMethodInvocation
1439         (dbus_g_method_return_get_reply): changed name to 
1440         dbus_g_method_get_reply
1441         (dbus_g_method_return_send_reply): changed name to
1442         dbus_g_method_send reply
1443
1444         * doc/dbus-specification.xml: New docs that describe how the new
1445         queueing system works and talks about the changes to the how
1446         we specify socket names
1447
1448         * glib/examples/example-service.c, 
1449         glib/examples/example-signal-emitter.c,
1450         glib/examples/statemachine/statemachine-server.c:
1451         Changed the RequestName flags to the new system
1452
1453         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1454         regression test suite for testing various states of the new
1455         queueing system
1456         
1457 2005-11-15  Robert McQueen  <robot101@debian.org>
1458
1459         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1460         Taylor to add two methods, dbus_g_method_return_get_reply and
1461         dbus_g_method_return_send_reply, to allow you to get the reply
1462         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1463         and send it. The GLib bindings can't marshal a return value of
1464         something like a(s) if the array is empty - ultimately they should be
1465         made to heed the signature of the out arguments as the Python bindings
1466         now can, but this is a workable interim solution which might have
1467         other applications.
1468
1469 2005-11-15  Robert McQueen  <robot101@debian.org>
1470
1471         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1472         method to org.freedesktop.DBus to release a bus name or give up
1473         waiting in the queue for it.
1474
1475         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1476         dbus_bus_release_name method to send the ReleaseName method calls.
1477         Add constants for the return values to dbus/dbus-shared.h.
1478
1479         * doc/dbus-specification.xml: Document the new ReleaseName method
1480         in the specification.
1481
1482         * python/dbus_bindings.pyx: Add a low-level python binding for the
1483         release name method.
1484
1485         * python/exceptions.py, python/service.py: Make freeing BusName
1486         objects release the name. Add a NameExistsException, and fix a
1487         bug with creating UnknownMethodException.
1488
1489         * test/python/test-client.py: Add tests for freeing BusName
1490         objects causing names to be released.
1491
1492 2005-11-14  Robert McQueen  <robot101@debian.org>
1493
1494         * python/service.py: Include the traceback in the error reply when we
1495         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1496
1497 2005-11-14  David Zeuthen  <davidz@redhat.com>
1498
1499         Patch from Timo Hoenig <thoenig@suse.de>.
1500
1501         * bus/bus.c: I've recently investigated why the automatic reload
1502         of configuration files does not work as expected.
1503
1504         Currently, reloading configuration files does only work when
1505         running dbus-daemon with --nodaemon.  If we are running as daemon
1506         we're hitting a dnotify bug once we fork the process.
1507
1508         We're initializing the dnotify fds before calling fork().  Once
1509         the child process forked it does still have the fds (and they
1510         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1511         getting SIGIO as changes are made to the configuration files.
1512
1513         The attached patch moves the initialization of the dnotify fds to
1514         process_config_postinit().  This is safe for all current code
1515         paths and solves the dnotify disfunction.  If we're running
1516         dbus-daemon as daemon the fds for dnotify are now being
1517         initialized after fork() for the child process.
1518
1519         * configure.in: The current configure.in check for dnotify probes
1520         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1521         match for 'xlinux', too. Additionally I have adapted the configure
1522         option's style to match with the others.
1523
1524 2005-11-14  Robert McQueen  <robot101@debian.org>
1525
1526         * python/decorators.py, python/service.py: Add a new argument to the
1527         dbus.service.method decorator called sender_keyword, which if set,
1528         specifies the name of an argument which will be provided the bus
1529         name of the method caller.
1530
1531         * test/python/test-client.py, test/python/test-service.py: Add a
1532         method and test to check the sender_keyword functionality.
1533
1534 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1535
1536         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1537         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1538         Simons <sjoerd at luon.net>)
1539
1540         * AUTHORS: Add Robert McQueen for his work on the Python
1541         Bindings and other parts of D-Bus
1542
1543 2005-11-07  Robert McQueen  <robot101@debian.org>
1544
1545         * python/decorators.py: Change emit_signal function to use the
1546         signature annotation of the signal when marhsalling the arguments from
1547         the service. Fix a bug where the code checking signature length
1548         against argument length referenced the wrong variable.
1549
1550         * python/introspect_parser.py: Avoid adding the type signature of
1551         signal arguments to any methods which occur after them in the
1552         introspection data (!) by making the parser a little more careful
1553         about its current state.
1554
1555         * python/service.py: Remove debug prints from last commit (again :D).
1556
1557         * test/python/test-client.py, test/python/test-service.py: Add test
1558         signals with signature decorators to test the strict marshalling code
1559         gives errors at the right time. Could do with checking the signals
1560         actually get emitted too, given that the test does nothing with
1561         signals at the moment...
1562
1563 2005-11-07  Robert McQueen  <robot101@debian.org>
1564
1565         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1566         instances to stop madness of creating new instances representing
1567         the same bus connection all the time, rendering any tracking of
1568         match rules and bus names quite meaningless. Caught a bug where
1569         the private argument to SessionBus() and friends was being passed
1570         in as use_default_mainloop by mistake. Still some problems with
1571         multiple dbus_binding.Connection instances representing the same
1572         low-level connection (eg when you use both SessionBus() and
1573         StarterBus() in same process), but it's a lot better now than it
1574         was.
1575
1576         * python/dbus_bindings.pyx: Add constants with the return values
1577         for bus_request_name().
1578
1579         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1580         and retrieve the same instances for the same name, so deletion can be
1581         done with refcounting. Also now throws some kind of error if you
1582         don't actually get the name you requested, unlike previously...
1583
1584         * test/python/test-client.py: Add tests for instance caching of buses
1585         and bus name objects.
1586
1587 2005-11-04  Robert McQueen  <robot101@debian.org>
1588
1589         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1590         marshalling of boolean values. Add some booleans to the values in
1591         the test client.
1592
1593         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1594         argument to the dbus.service.method decorator, which allows you to
1595         name arguments to take two callback functions for replying with
1596         return values or an exception.
1597
1598         * test/python/test-client.py, test/python/test-service.py: Add test
1599         case using asynchronous method reply functions, both return values and
1600         errors, and from within both the function itself and from a mainloop
1601         callback.
1602
1603         * python/decorators.py, python/service.py: Perform checking that the
1604         number of method/signal arguments matches the number of types in the
1605         signature at class loading time, not when you first introspect the
1606         class.
1607
1608         * python/service.py: Remove debug print left by the last commit.
1609
1610 2005-11-03  Robert McQueen  <robot101@debian.org>
1611
1612         * python/service.py: Heavy refactoring of method invocation, with
1613         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1614         in favour of a new _message_cb that uses seperate functions for
1615         looking up the method to call, marshalling the return values, and
1616         sending exceptions as errors, and is easier to follow as a
1617         consequence.  Fixes some corner cases about returning things that
1618         don't match your declared out_signature, allows exceptions to define
1619         _dbus_error_name and have it be sent over the bus as the error name,
1620         and paves the way for cool stuff like heeding the message no reply
1621         flag, asynchronous method implementations, informing the method of the
1622         sender, and including backtraces in the error messages.
1623
1624         * test/python/test-client.py: Catch and print exceptions thrown in the
1625         async callback tests, rather than passing them to the low-level
1626         bindings to be ignored in a noisy and frustrating manner.
1627
1628 2005-11-03  Robert McQueen  <robot101@debian.org>
1629
1630         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1631         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1632         tweak others to be consistent.
1633
1634         * test/python/test-client.py: Tweak output of testInheritance.
1635
1636 2005-10-29  Robert McQueen  <robot101@debian.org>
1637
1638         * python/service.py: Major changes to allow multiple inheritance
1639         from classes that define D-Bus interfaces:
1640         
1641          1. Create a new Interface class which is the parent class of
1642             Object, and make the ObjectType metaclass into InterfaceType.
1643         
1644          2. Patch written with Rob Taylor to replace use of method_vtable
1645             with code that walks the class's __MRO__ (method resolution order)
1646             to behave like Python does when invoking methods and allow
1647             overriding as you'd expect. Code is quite tricky because
1648             we have to find two methods, the one to invoke which has the
1649             right name and isn't decorated with the /wrong/ interface,
1650             and the one to pick up the signatures from which is decorated
1651             with the right interface.
1652         
1653             The same caveats apply as to normal multiple inheritance -
1654             this has undefined behaviour if you try and inherit from two
1655             classes that define a method with the same name but are
1656             decorated with different interfaces. You should decorate
1657             your overriding method with the interface you want.
1658         
1659          3. Replace grungy introspection XML generation code in the metaclass
1660             with dictionaries that cope correctly with multiple inheritance
1661             and the overriding of methods. This also uses the signature
1662             decorations to provide correct introspection data, including
1663             the debut appearance of the types of your return values. :D
1664
1665         * test/python/test-client.py, test/python/test-service.py: Add a test
1666         case to try invoking an method that overrides one inherited from a
1667         D-Bus interface class.
1668
1669 2005-10-29  Robert McQueen  <robot101@debian.org>
1670
1671         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1672         Add checking for the end of struct character when marshalling a
1673         struct in MessageIter.append_strict.
1674
1675         * python/examples/example-service.py,
1676         python/examples/gconf-proxy-service.py,
1677         python/examples/gconf-proxy-service2.py: Update to use gobject
1678         mainloop directly rather than appearing to depend on gtk.
1679
1680         * python/test/test-client.py, python/test/test-server.py: Remove
1681         obsolete and broken test scripts for old bindings. We have up to date
1682         and working tests in test/python/.
1683
1684 2005-10-29  Robert McQueen  <robot101@debian.org>
1685
1686         * python/decorators.py: Add optional arguments to the method and
1687         signal decorators to allow you to specify the signature of arguments
1688         and return values. Preserve the doc strings of signal functions in the
1689         decorated version, for pydoc and friends.
1690
1691         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1692         parse_signature_block function with an iterable dbus.Signature()
1693         type. Fix a bug in MessageIter.append_strict where you could append
1694         anything by claiming it was a string.
1695
1696         * python/service.py: Use the out_signature decoration on methods to
1697         marshal return values, meaning you no longer require dbus.Array()
1698         or dbus.Dictionary() to indicate the type when returning empty
1699         arrays or dictionaries. Fix a bug where exceptions which are defined
1700         in __main__ are not turned into error replies.
1701
1702         * test/python/test-client.py, test/python/test-service.py: Add test
1703         for correct marshalling of return values according to out_signature.
1704         Fix a bug in the async call test where the error_handler is missing a
1705         self argument.
1706
1707 2005-10-29  Robert McQueen  <robot101@debian.org>
1708
1709         * glib/Makefile.am, glib/examples/Makefile.am,
1710         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1711         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1712
1713         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1714
1715         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1716         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1717         the command line.
1718
1719 2005-10-27  Ross Burton  <ross@openedhand.com>
1720
1721         * dbus/dbus-marshal-header.c:
1722         Remove dead code.
1723
1724         * glib/dbus-gobject.c:
1725         Stop compiler warning.
1726
1727 2005-10-25  Ross Burton  <ross@openedhand.com>
1728
1729         * dbus/dbus-auth.c:
1730         * dbus/dbus-server-unix.c:
1731         * dbus/dbus-transport-unix.c:
1732         * glib/dbus-gmain.c:
1733         * glib/dbus-gobject.c:
1734         Add some const keywords.
1735
1736 2005-10-25  Ross Burton  <ross@openedhand.com>
1737
1738         * doc/dbus-specification.xml:
1739         Document the NoReply annotation.
1740
1741         * glib/dbus-binding-tool-glib.h:
1742         * glib/dbus-binding-tool-glib.c:
1743         Respect the NoReply annotation.
1744
1745 2005-10-24  Robert McQueen <robot101@debian.org>
1746
1747         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1748         derive from unicode instead of str, and encode/decode UTF-8 when
1749         marshalling/unmarshalling bus messages
1750
1751         * python/introspect_parser.py: encode introspection data as UTF-8
1752         before passing the buffer into libxml2
1753
1754         * test/python/test-client.py: add unicode test strings
1755
1756         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1757         ignore generated python test files
1758
1759 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1760
1761         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1762         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1763         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1764
1765         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1766         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1767         when constructing struct signatures
1768
1769         * python/_dbus.py (Bus): handle private connections using the
1770         private keyword in the constructor. defaults to private=False
1771         (Bus::close): new method to close a connection to the bus
1772
1773         * python/dbus_bindings.pyx (Connection::close): renamed method
1774         was previously called disconnect
1775         (bus_get): now supports getting a private connection
1776
1777         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1778         keyword is set to True.  if it is, execute the method without waiting
1779         for a reply
1780         (ProxyObject::_introspect_execute_queue): new method for executing
1781         all the pending methods that were waiting for the introspect to
1782         finish.  this is called when introspect either succeeds or fails
1783         (ProxyObject::_introspect_error_handler): call queued methods
1784
1785 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1786
1787         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1788         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1789
1790         * python/service.py (Object::_message_cb): handle exceptions correctly
1791         by sending them over the wire to the calling app.  This makes sure
1792         the client returns immediately instead of waiting the 15 seconds to
1793         timeout.
1794
1795         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1796         Add a test to benchmark how long it takes to introspect a service and 
1797         call a method which returns a large element (pretty fast)
1798
1799         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1800         method which pushes a lot of data
1801
1802 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1803
1804         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1805         reclaim memory outside of the loop and use del istead of just setting
1806         the key to None
1807
1808 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1809
1810         * python/service.py (ObjectType::_reflect_on_signal): Always close
1811         signal tag even when there are no arguments
1812
1813 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1814
1815         * configure.in: Set mono, mono-docs and Qt3 to default
1816         to no instead of auto when building.  These bindings do not
1817         have full time maintainers and will not be supported for the
1818         1.0 release.
1819
1820 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1821
1822         patches from Michael Krivoruchko <misha at sun.com>: 
1823         
1824         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1825         _dbus_connection_message_sent, 
1826         _dbus_connection_send_preallocated_unlocked_no_update, 
1827         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1828         is NULL when calling _dbus_verbose
1829
1830         * configure.in: check for functions getpeerucred and getpeereid
1831
1832         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1833         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1834         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1835         Patch was only tested on Solaris 10 x86 so it might be issues
1836         with other platforms (i.e. BSDs and MacOSX)
1837         
1838
1839 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1840
1841         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1842         instead of marshal basic so we can handle recursive types in a variant
1843
1844         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1845         in variants
1846
1847         * test/glib/test-service-glib.c, test-service-glib.xml
1848         (my_object_echo_variant [EchoVariant], 
1849         my_object_process_variant_of_array_of_ints123
1850         [ProcessVariantOfArrayOfInts123]): 
1851         Add two test methods
1852
1853         * python/introspect_parser.py: New module for parsing introspect
1854         data.
1855
1856         * python/dbus_bindings.pyx:
1857         (various places): when throwing errors fix to use errormsg instead 
1858         of message local variable because Pyrex can get confused with other 
1859         message variables (initial patch by Robert McQueen 
1860         <robert.mcqueen at collabora.co.uk>)
1861         (MessageIter::parse_signature_block): new method for getting the next
1862         block in a signiture.
1863         (MessageIter::append_strict): new method for appending values strictly
1864         using the passed in signature instead of guessing at the type
1865         (MessageItter:: append_dict, append_struct, append_array): use 
1866         signatures to marshal children if the signature is available
1867         
1868         * python/exceptions.py (IntrospectionParserException): new exception
1869
1870         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1871         introspected signatures if available, else we fall back to the
1872         old way of doing things.
1873         (ProxyObject::_introspect_reply_handler ): parse introspection data
1874         
1875         * python/service.py (ObjectType::_reflect_on_method): Properly
1876         terminate <method> if there are no args in the reflection data
1877
1878         * test/python/test-client.py: add tests for talking with the GLib
1879         test server.  This gives us better coverage for introspection since
1880         python to python will always generate arguments as variants.  It also
1881         allows us to test the robustness of the GLib bindings and interlanguage
1882         communications.
1883
1884         
1885 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1886
1887         * bus/driver.c (bus_driver_handle_introspect): Add signals
1888         to the introspect data. (patch from Daniel P. Berrange 
1889         <dan at berrange.com>)
1890
1891         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1892         
1893         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1894         _dbus_connection_run_builtin_filters): Changed these to
1895         be unlock_no_update functions and call 
1896         _dbus_connection_send_unlocked_no_update instead of
1897         dbus_connection_send to avoid locking errors.
1898         
1899         * doc/TODO: Removed the make Ping test TODO
1900         
1901 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1902
1903         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1904         We now copy the message from a DBusError and then free 
1905         the error object befor throwing the error
1906
1907         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1908         DBusBindingOutputMode enum which was causing a warning.
1909         #include <time.h> so using time_t is explicitly defined
1910
1911 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1912
1913         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1914         - dbus/dbus-bus.c
1915         (internal_bus_get): new method that take over the heavy lifting
1916         of dbus_bus_get and adds the ability to get a private connection
1917         to the bus
1918         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1919         interface as in previous versions
1920         (dbus_bus_get_private): new method that is a wrapper to 
1921         internal_bus_get to get a private connection to the bus
1922
1923         - dbus/dbus-bus.h
1924         (dbus_bus_get_private): add as a public libdbus interface
1925
1926         - dbus-1.pc.in: output system_bus_default_address and 
1927         sysconfdir variables so apps can use them when compiling
1928
1929 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1930         * dbus/qt: New Qt bindings
1931
1932 2005-09-12  Waldo Bastian  <bastian@kde.org>
1933
1934         * dbus/dbus-marshal-validate.c,
1935         doc/dbus-specification.xml, test/Makefile.am,
1936         test/test-names.c: allow hyphens in bus names.
1937
1938 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1939
1940         * test/data/auth/fallback.auth-script: we don't
1941         retry the EXTERNAL method when we know its going
1942         to fail anymore.
1943
1944 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1945
1946         * dbus/dbus-connection-internal.h: rename
1947         (add|remove|toggle)_(watch|timeout) to unlocked()
1948         
1949         * dbus/dbus-connection.c: ditto.
1950         
1951         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1952         Update some callers for the renaming.
1953
1954 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1955
1956         * dbus/dbus-auth.c: (record_mechanisms): don't
1957         retry the first auth mechanism because we know
1958         we're just going to get rejected again.
1959         
1960         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1961         Fix thinko ... and what a nasty little bugger to
1962         track down you were ...
1963
1964         * dbus/dbus-connection.c:
1965         (_dbus_connection_add_watch),
1966         (_dbus_connection_remove_watch): add note about
1967         these needing the connection to be locked.
1968         (_dbus_connection_get_dispatch_status_unlocked):
1969         set status to DATA_REMAINS when we queue the
1970         disconnected message.
1971         
1972         * bus/dispatch.c:
1973         (bus_dispatch): fix warning.
1974         (check_existent_service_no_auto_start):
1975         Expect ChildSignaled error too.
1976         (check_existent_hello_from_self): fix another
1977         couple of warnings.
1978         
1979 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1980
1981         Patches from James Willcox <snorp@snorp.net>
1982
1983         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1984
1985         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1986         support array "out" parameters.
1987
1988         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1989         for 16-bit int support.
1990
1991 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1992
1993         * Released 0.50
1994
1995         * Patch from Steve Grubb:
1996         - bus/activation.c (bus_activation_service_reload_test): clean up
1997         some indentation
1998         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1999         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2000         buffer overflows in the test suite.  This is non critical because
2001         it can not be exploited and this code is only run when doing a 
2002         make check.
2003
2004         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2005         - configure.in: Don't check and link against kdecore, only qt headers
2006         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2007         - gcj/org/freedesktop/dbus/Makefile.am:
2008         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2009         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2010         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2011         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2012         - tools/Makefile.am: Add platform extentions to binaries 
2013         (i.e. .exe on windows)
2014
2015         * configure.in: 
2016         - Make it so if no suitable version of python is found we only 
2017         disable building python instead of exiting the configure script
2018         - Require version 2.4 of glib for glib bindings
2019         - Up version to 0.50
2020
2021         * python/__init__.py: Sync version with libdbus to (0,50,0)
2022         
2023 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2024
2025         * dbus/dbus-object-tree.c (find_subtree_recurse):
2026         a couple of optimizations (bug #710):
2027         - do a binary search in the tree
2028         - insert a new child at the right place directly, no need for
2029           qsort anymore
2030         - do the "double alloc" thing when allocating children
2031
2032 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2033
2034         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2035
2036         * python/dbus_bindings.pyx: Memory management foo
2037         (global): remove hacky _user_data_references global list
2038         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2039         tuples. Unref user_data
2040         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2041         (Connection::__del__): Remove and replace with __dealloc__ method
2042         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2043         to keep tuple from being deallocated instead of the global var hack
2044         (Connection::register_object_path): Stuff user_data into a tuple.
2045         Use Py_INCREF to keep tuple from being deallocated instead of the 
2046         global var hack
2047         (Connection::register_fallback): Stuff user_data into a tuple.
2048         Use Py_INCREF to keep tuple from being deallocated instead of the 
2049         global var hack
2050         (GIL_safe_pending_call_notification): Don't unref the message
2051         because it gets unreffed when going out of scope.  Py_XDECREF
2052         the user_data
2053         (PendingCall::__del__): Remove and replace with __dealloc__ method
2054         (PendingCall::set_notify): ref the pending call because we will
2055         need it to stick around for when the notify callback gets called
2056         (Message::__del__): Remove and replace with __dealloc__ method
2057
2058         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2059         gthreads_init to match up with the dbus call
2060
2061         * python/glib.py (init_threads): Changed to threads_init to match
2062         up with gobject.threads_init().  init_threads is kept for backwards
2063         compat but will most likely be deprecated in the future
2064
2065         * test/python/test-client.py: 
2066         - revamp to use Python's unittest functionality
2067         - add async call tests
2068         - setup threads in glib and dbus so we make sure locks are working
2069         
2070 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2071
2072         * python/dbus_bindings.pyx 
2073         (_pending_call_notification, cunregister_function_handler, 
2074         cmessage_function_handler): All callback functions have been rearranged 
2075         to workaround a bug in Pyrex when working with the GIL which is Python's 
2076         global lock when dealing with threads.  They have been split into
2077         a wrapper function (which assumes the name of the old function) and
2078         a _GIL_safe_<function name> function which contains the functionality
2079         of the old function.  This ensures that Pyrex does not write code
2080         the lock is released.
2081         
2082
2083 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2084
2085         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2086         GIL global lock when calling back into Python
2087
2088 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2089
2090         * Release 0.36.2
2091
2092         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2093
2094         * bus/policy.c (bus_policy_allow_user): change default "user is
2095         allowed" to be "user has same uid as the bus itself"; any
2096         allow/deny rules will override.
2097
2098         * bus/session.conf.in: don't allow all users, since now by default
2099         the user that ran the bus can connect.
2100
2101 2005-08-26  Colin Walters  <walters@verbum.org>
2102
2103         * tools/dbus-print-message.c (print_message): Flush stdout
2104         after printing a message, so that redirecting to a file, then
2105         hitting Ctrl-C works.
2106
2107 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2108
2109         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2110         (EmptyMessage): new class that subclasses Message.  This is a workaround
2111         to a Pyrex bug that fails to call __del__ when the Message object goes out
2112         of scope.  For some reason subclassing Message fixes this bug
2113         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2114         - s/Message(_create=0)/EmptyMessage everywhere else
2115         
2116         * test/python/test-{server|client}.py: add the python/.libs directory
2117         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2118         get picked up from the system
2119
2120 2005-08-25  Colin Walters  <walters@verbum.org>
2121
2122         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2123         to Ryan Lortie for the suggestion.
2124
2125 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2126
2127         * test/python: Add python regression test
2128
2129         * configure.in: Add test/python/Makefile
2130
2131         * test/Makefile.am: Add the python directory to SUBDIRS
2132
2133 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2134
2135         * Release 0.36.1
2136
2137         * python/_dbus.py: 
2138         (Interface::connect_to_signal): propigate keywords for match on args
2139         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2140
2141         * python/proxies.py (ProxyObject::connect_to_signal):
2142         propigate keywords for match on args
2143
2144         * Makefile.am: point everything to pyexecdir since python borks
2145         on multilib
2146
2147 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2148
2149         * Release 0.36
2150
2151 2005-08-23  Colin Walters  <walters@verbum.org>
2152
2153         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2154
2155 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2156
2157         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2158         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2159         of defining DBusConnection ourselves.
2160
2161 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2162
2163         * python/dbus.pth: New path file to fix up problems when installing
2164         c libraries to lib64 and python files to lib.
2165
2166         * python/Makefile.am: install dbus.pth in the correct spot
2167
2168 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2169         * ChangeLog: clean up my last entry a bit
2170
2171         * doc/introspect.xsl: New stylesheet for converting introspection data
2172         into browser renderable xhtml. Contributed by Lennart Poettering.
2173
2174         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2175         Poettering.
2176
2177         * doc/dbus-tutorial.xml: 
2178         - Add Colin Walter to the Authors section for authoring the GLib
2179         section
2180         - Add descriptions of the new signature and type functionality
2181         in the Python complex type mapping section
2182         - Add a sidenote on the new args matching functionality in 
2183         the Python bindings
2184         - Fixed up some of the examples to use the gobject.MainLoop
2185         instead of gtk.main
2186         
2187         * python/_dbus.py:
2188         (Bus::_create_args_dict): New. Converts a hash of arg matches
2189         to a more useable format
2190         (Bus::add_signal_receiver): add a **keywords parameter for catching
2191         arg match parameters
2192         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2193         arg match parameters
2194         
2195         * python/matchrules.py:
2196         (MatchTree::exec_matches): Check for arg matches
2197         (SignalMatchRule::add_args_match): New method
2198         (SignalMatchRule::execute): Added args_list parameter as an optimization
2199         so we don't have to marshal the args more than once
2200         (SignalMatchRule::match_args_from_list): New method that checks to see
2201         if the rule's arg matches match an argument list.  Only arguments
2202         set in the rule are checked.
2203         (SignalMatchRule::match_args_from_rule): New method that checks to see
2204         if the rule's arg matches match another rule's.  All args have to match
2205         in order for this method to return true.  If either rule has more args
2206         then it is not a match.
2207         (SignalMatchRule::is_match): Add args match
2208         (SignalMatchRule::repr): Add args to the final output if they exist
2209
2210 2005-08-17  Ross Burton  <ross@burtonini.com>
2211
2212         * glib/dbus-gproxy.c:
2213         (dbus_g_proxy_call_no_reply): unref the message once sent.
2214         (dbus_g_proxy_call): protect against NULL proxy.
2215
2216 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2217
2218         * python/__init__.py: Version updated (0, 43, 0)
2219         
2220         * python/dbus_bindings.pyx: 
2221         - Fixed type objects to have self passed into __init__
2222         - Added the Variant type
2223         - Add the ability to specify types or signatures for Array, Variant 
2224         and Dictionary
2225         (Connection::send_with_reply_handlers): return a PendingCall object
2226         (_pending_call_notification): handle the case when an error is returned 
2227         without an error message in the body
2228         (MessageIter::get_boolean): return True or False instead of an integer
2229         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2230         and add checks for objects with embeded signatures or types (Array, 
2231         Variant and Dictionary)
2232         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2233         (MessageIter::append_dict): handle embeded types or signatures
2234         (MessageIter::append_array): handle embeded types or signatures
2235         (MessageIter::append_variant): new method
2236         
2237         * python/proxies.py:
2238         (DeferedMethod): New. Dummy executable object used when queuing calls 
2239         blocking on introspection data
2240         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2241         or shorter timeouts for method calls
2242         (ProxyObject): Add first pass at an introspection state machine
2243         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2244         introspection. 
2245         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2246         the usual mechanisms for sending messages.  This is to avoid a deadlock
2247         where the Intospect call would be queued waiting for the Introspect 
2248         call to finish ;-)
2249         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2250         when introspection returns with no error
2251         (ProxyObject::_introspect_error_handler): New.  This method is called 
2252         when introspection encounters an error
2253         (ProxyObject::__getattr__): Code to handle different introspection 
2254         states.  Queue async calls or block blocking calls if we are 
2255         introspecting.  Pass through as normal if we are not or are done with 
2256         introspecting.
2257         
2258         * python/service.py: Import signal and method from decorators.py
2259
2260         * python/types.py: Add Variant type
2261
2262 2005-08-16  Colin Walters  <walters@verbum.org>
2263
2264         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2265         DBusError message is NULL.
2266
2267 2005-08-09  Havoc Pennington  <hp@redhat.com>
2268
2269         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2270         malloc'd copy of the name parameter
2271
2272 2005-08-09  Havoc Pennington  <hp@redhat.com>
2273
2274         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2275         warning if the reply serial is set to 0
2276
2277 2005-08-04  Colin Walters  <walters@verbum.org>
2278
2279         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2280         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2281         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2282         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2283         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2284         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2285         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2286         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2287         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2288         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2289         
2290         Prefix name with _ to ensure they're not exported.  All callers
2291         updated.
2292
2293         * glib/dbus-gvalue.c (typecode_to_gtype)
2294         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2295         (signature_iter_to_g_type_dict)
2296         (signature_iter_to_g_type_array)
2297         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2298         (dbus_gtypes_from_arg_signature):
2299         Move to dbus-gsignature.c.
2300
2301         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2302         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2303         (dbus_binding_tool_output_glib_client): Ditto.
2304
2305         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2306         and dbus-gsignature.h
2307
2308         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2309         unused variable.
2310
2311 2005-08-03  Colin Walters  <walters@verbum.org>
2312
2313         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2314         catch any incompatible changes accidentally made.
2315
2316 2005-08-03  Havoc Pennington  <hp@redhat.com>
2317
2318         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2319         typo, from Julien Puydt
2320
2321         * bus/connection.c (bus_connection_disconnected): we were always
2322         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2323
2324 2005-08-01  Colin Walters  <walters@verbum.org>
2325
2326         Patch from Joe Markus Clarke:   
2327         
2328         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2329         use-after-free.
2330
2331 2005-08-01  Colin Walters  <walters@verbum.org>
2332         
2333         Patch from Joe Markus Clarke:   
2334         
2335         * tools/dbus-send.c (main): 
2336         
2337         Don't use C99 style initializers (bug #3933).
2338         
2339 2005-08-01  Colin Walters  <walters@verbum.org>
2340
2341         Patch from Joe Markus Clarke:   
2342
2343         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2344         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2345         * glib/dbus-gobject.c (write_interface):
2346
2347         Don't use C99 style initializers (bug #3933).
2348
2349 2005-07-31  Havoc Pennington  <hp@redhat.com>
2350
2351         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2352         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2353
2354 2005-07-30  Havoc Pennington  <hp@redhat.com>
2355
2356         * fix a bunch of Doxygen warnings and mistakes
2357
2358 2005-07-30  Havoc Pennington  <hp@redhat.com>
2359
2360         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2361         DBUS_BUILD_TESTS since it's now used in production code
2362
2363 2005-07-29  Havoc Pennington  <hp@redhat.com>
2364
2365         * test/glib/test-profile.c (write_junk): initialize the junk
2366         buffer so valgrind doesn't have a breakdown
2367
2368 2005-07-29  Havoc Pennington  <hp@redhat.com>
2369
2370         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2371         (match_rule_matches): remove unused arg
2372         (test_matching): add tests for match_rule_matches()
2373
2374         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2375         do arg0='foo' arg5='bar' in the match rules
2376         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2377
2378         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2379
2380 2005-07-29  Ross Burton  <ross@openedhand.com>
2381
2382         * dbus/dbus-connection.c:
2383         Don't create a DBusCondVar which is never used.
2384
2385 2005-07-27  Ross Burton  <ross@openedhand.com>
2386
2387         * dbus/dbus-message.c:
2388         Reduce the size of the maximum cached message to 10K.
2389
2390 2005-07-25  Ross Burton  <ross@openedhand.com>
2391
2392         * glib/dbus-gproxy.c:
2393         Remove matches when all proxies are unregistered.
2394
2395 2005-07-24  Colin Walters  <walters@verbum.org>
2396
2397         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2398         typedata; recursive arrays won't have it.
2399
2400         * test/glib/test-dbus-glib.c:
2401         * test/glib/test-service-glib.c:
2402         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2403         
2404 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2405
2406         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2407         proxies.py, service.py: Cleanup of code after running it through the
2408         pyflakes code checker mostly dealing with undefined names.  
2409         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2410
2411 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2412
2413         * NEWS: Update to 0.35.2
2414
2415 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2416
2417         * python/_dbus.py: Remove import of the dbus.services
2418         module as it no longer exists (patch from Dimitur Kirov)
2419
2420         * python/service.py (Object::__init__): Fixed typo
2421         s/name/bus_name (patch from Dimitur Kirov)
2422
2423         * python/examples/example-signal-emitter.py: import dbus.glib
2424         to get the main loop and use glib mainloop instead of gtk so
2425         X doesn't have to be running.
2426
2427         * python/examples/example-signal-recipient.py: import dbus.glib
2428         to get the main loop and use glib mainloop instead of gtk so
2429         X doesn't have to be running. Import the decorators module
2430         directly.
2431
2432         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2433         didn't pick up on but are needed to build
2434
2435         * configure.in: upped version to 0.35.2
2436
2437         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2438         added Colin Walters' SELinux API rename patch from head 
2439         s/unix sercurity context/selinux security context/
2440
2441 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2442
2443         * python/Makefile.am: dbus_binding.pxd.in should be included 
2444         in EXTRA_DIST not dbus_binding.pxd
2445         fix up $(srcdir) hopefully for the last time
2446
2447         * NEWS: Update to 0.35.1
2448
2449 2005-07-16  Colin Walters  <walters@verbum.org>
2450
2451         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2452         from bus_driver_handle_get_connection_unix_security_context.  Update for
2453         error usage.
2454         (message_handlers): Update for renames.
2455
2456         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2457         _dbus_string_init failure correctly.
2458         (bus_selinux_append_context): Convert SID to context.  Append it
2459         as a byte array.
2460         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2461         hasn't been called.
2462
2463         * bus/selinux.h: Update prototype.
2464
2465         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2466         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2467
2468 2005-07-15  Colin Walters  <walters@verbum.org>
2469
2470         * doc/TODO: Add note about convenience wrappers.
2471
2472 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2473
2474         * NEWS: Update to 0.35
2475
2476 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2477
2478         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2479         so distcheck doesn't fail
2480
2481         * glib/examples/Makefile.am: Add example-service.xml and 
2482         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2483
2484         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2485         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2486
2487         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2488         compiler looks in the right places during distcheck
2489
2490 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2491
2492         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2493         to fail
2494
2495 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2496
2497         * python/examples/example-service.py,
2498         python/examples/example-signal-emitter.py: Fixed up examples
2499         for API changes
2500
2501 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2502
2503         * python/__init__.py: Upped to version (0,42,0) because of
2504         the API change
2505
2506 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2507
2508         * ChangeLog: fix date in last entry
2509
2510         * configure.in, bus/system.conf.in: add the ability to configure 
2511         the system bus user at compiletime with the --with-dbus-user flag
2512         (patch from Kristof Vansant)
2513
2514 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2515
2516         * bus/dispatch.c, test/test-service.c: Add testcase
2517         for sending messages to oneself (TODO item).
2518
2519         * python/service.py (class Object): Swap ordering of bus_name 
2520         and object_path parameters to better support inheritance.
2521
2522         * doc/dbus-tutorial.xml: change Python docs to reflect change
2523         in parameter ordering and fix the inheritance section.
2524
2525         * doc/TODO: remove sending message to oneself TODO item
2526
2527 2005-07-15  Ross Burton  <ross@openedhand.com>
2528
2529         * glib/dbus-gproxy.c:
2530         Fix a leak when calling methods via the proxy.
2531
2532 2005-07-15  Colin Walters  <walters@verbum.org>
2533
2534         * bus/selinux.c (bus_selinux_append_context): Wrap in
2535         HAVE_SELINUX.
2536
2537 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2538
2539         * python/_dbus.py (Bus::remove_signal_receiver):
2540         don't add a callback to the match if none has been passed in
2541         
2542         * python/matchrules.py (SignalMatchTree::remove): if the rule
2543         being matched does not have a callback treat it as a wildcard
2544         fix matching logic
2545
2546         * doc/dbus-tutorial.xml: Add Python tutorial
2547
2548 2005-07-14  Colin Walters  <walters@verbum.org>
2549
2550         * bus/driver.c
2551         (bus_driver_handle_get_connection_unix_security_context): New function.
2552         (message_handlers): Add.
2553
2554         * bus/selinux.c (bus_selinux_append_context): New function; appends
2555         security context to message.
2556
2557         * bus/selinux.h: Prototype.
2558
2559         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2560
2561 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2562
2563         * bus/activation.c: clean up all tabs to be 8 spaces 
2564         (bus_activation_activate_service): make sure we clean up
2565         if activation fails
2566
2567         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2568         (check_shell_fail_service_auto_start): New function
2569         tests to make sure we get fail properly when trying to auto start a service
2570         with a faulty command line
2571         (check_shell_service_success_auto_start): New function tests to make sure
2572         auto started services get the arguments on the command line
2573
2574         * test/test-shell-service.c: Added service for testing auto-starting with 
2575         command line arguments
2576
2577         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2578         test/data/valid-service-files/debug-shell-echo-success.service.in:
2579         Added service files for testing auto-starting with command line arguments
2580
2581         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2582
2583 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2584
2585         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2586         
2587         * dbus/Makefile.am: added new files to build.
2588
2589         * bus/activation.c (bus_activation_activate_service): support
2590         activation commands with parameters.
2591
2592         * test/shell-test.c: added test program for the shell parsing
2593         code.
2594
2595 2005-07-13  David Zeuthen  <davidz@redhat.com>
2596
2597         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2598         64 bit signed and unsigned parameters
2599
2600 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2601
2602         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2603
2604         * python/service.py (class Name): renamed BusName to make it clearer
2605         what the object is for (a name on the bus)
2606
2607         * python/examples/example-service.py,
2608         python/examples/example-signal-emitter.py: change the Name object to
2609         BusName
2610
2611 2005-07-12  Colin Walters  <walters@verbum.org>
2612
2613         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2614
2615         * tools/dbus-launch.c: Include sys/select.h.
2616
2617 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2618         * python/dbus_bindings.pyx.in: removed
2619
2620         * python/dbus_bindings.pyx: Added.
2621         - Fixed some memleaks (patch from 
2622         Sean Meiners <sean.meiners@linspireinc.com>)
2623         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2624         own pxd file (Pyrex definition)
2625         - Broke out glib dependancies into its own pyx module
2626         
2627         * python/dbus_bindings.pdx: Added.
2628         - Defines C class Connection for exporting to other modules
2629
2630         * python/dbus_glib_bindings.pyx: Added.
2631         - New module to handle lowlevel dbus-glib mainloop integration
2632
2633         * python/glib.py: Added.
2634         - Registers the glib mainloop when you import this module
2635
2636         * python/services.py: Removed (renamed to service.py)
2637         
2638         * python/service.py: Added.
2639         - (class Server): renamed Name
2640
2641         * python/__init__.py: Bump ro version (0,41,0)
2642         -don't import the decorators or service module
2643         by default.  These now reside in the dbus.service namespace
2644
2645         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2646         setup function on creation 
2647
2648         * python/examples/example-service.py,
2649         python/examples/example-signal-emitter.py: update examples
2650
2651         * python/examples/gconf-proxy-service.py,
2652         python/examples/gconf-proxy-service2.py: TODO fix these up
2653
2654         * doc/TODO: Addition
2655         - Added a Python Bindings 1.0 section
2656         - added "Add match on args or match on details to match rules"
2657
2658
2659 2005-07-12  Colin Walters  <walters@verbum.org>
2660
2661         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2662         (statemachine-glue.h): 
2663         * glib/examples/Makefile.am (example-service-glue.h) 
2664         (example-signal-emitter-glue.h): 
2665         * glib/Makefile.am (dbus-glib-error-switch.h): 
2666         Add libtool --mode=execute so we use the built library instead
2667         of any installed one.
2668
2669 2005-07-11  Colin Walters  <walters@verbum.org>
2670
2671         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2672         (dbus_g_value_types_init): Remove assertion.
2673         (dbus_g_value_get_g_type, dbus_g_value_open)
2674         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2675         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2676         functions related to DBusGValue.  Now we marshal/demarshal
2677         structures as GValueArray.
2678         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2679         structures.
2680         (signature_iter_to_g_type_array): Don't call
2681         signature_iter_to_g_type_struct.
2682         (signature_iter_to_g_type_struct): Delete.
2683         (dbus_gvalue_to_signature): Delete.
2684         (dbus_gvalue_to_signature): New function with same name as other
2685         one; we can convert structures to signatures.
2686         (demarshal_valuearray): New function.
2687         (get_type_demarshaller): Use it.
2688         (demarshal_recurse): Delete.
2689         (marshal_proxy): New function.
2690         (marshal_map): Warn if we can't determine signature from type.
2691         (marshal_collection_ptrarray): Ditto.
2692         (marshal_collection_array): Ditto.
2693         (get_type_marshaller): Use marshal_valuearray.
2694         (marshal_recurse): Delete.
2695         (_dbus_gvalue_test): Add some tests.
2696
2697         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2698         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2699         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2700         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2701         (dbus_g_value_free): Remove prototypes.
2702
2703         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2704         G_TYPE_VALUE_ARRAY.
2705
2706         * glib/examples/example-service.c:
2707         * glib/examples/example-client.c: Implement GetTuple.
2708
2709         * test/glib/test-dbus-glib.c:
2710         * test/glib/test-service-glib.c:
2711         * test/glib/test-service-glib.xml: Add structure tests.
2712
2713 2005-07-10  Colin Walters  <walters@verbum.org>
2714
2715         * doc/TODO: Knock off some GLib items with this patch.
2716
2717         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2718         (_dbus_gvalue_signals_error): New functions.
2719
2720         * glib/dbus-gvalue-utils.h: Prototype them.
2721
2722         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2723         and change to not output const/retval flags for input args.  All
2724         callers updated.
2725         (invoke_object_method): Refactor to handle return values.  Add
2726         some more comments in various places.  Remove debug g_print.
2727
2728         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2729
2730         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2731         Handle G_TYPE_NONE.
2732         (compute_gsignature): New function; refactored from code from
2733         compute_marshaller and compute_marshaller_name.  Enhance to
2734         handle return values and async ops more cleanly.  Update for
2735         async ops returning NONE instead of BOOLEAN.
2736         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2737         and output appropriate string.
2738         (generate_glue): Handle return value annotation.  Also don't dump
2739         constness flag for input arguments.
2740
2741         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2742         files shared between installed library and utilities.
2743         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2744         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2745         binding tool can access gtype utility functions.
2746
2747         * test/glib/test-service-glib.c: 
2748         * test/glib/test-service-glib.xml: 
2749         * test/glib/test-dbus-glib.c: Add some tests for return values.
2750
2751 2005-07-09  Colin Walters  <walters@verbum.org>
2752
2753         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2754         argument if available, not method.
2755
2756         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2757         (invoke_object_method): First, remove some redundant
2758         GValues (object_value, error_value) in favor of working on
2759         array directly.  Second, rework constness to be less buggy.
2760         Now we iterate directly over the argument metadata instead
2761         of parallel iterating over output signature and metadata.
2762
2763         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2764
2765         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2766         annotation on input args.
2767         
2768 2005-07-09  Colin Walters  <walters@verbum.org>
2769
2770         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2771         Define.
2772
2773         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2774         annotation.
2775
2776         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2777         (method_dir_signature_from_object_info): Handle arg_iterate change.
2778         (write_interface): Ditto.
2779         (lookup_object_info): Don't barf if format_version is > 0.
2780         (invoke_object_method): Handle arg constness.
2781
2782         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2783         (arg_info_new): Create.
2784         (arg_info_unref): Destroy.
2785         (arg_info_get_annotations, arg_info_get_annotation) 
2786         (arg_info_add_annotation): New functions.
2787
2788         * glib/dbus-gidl.h: Prototype them.
2789
2790         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2791         args, disallow them in properties.
2792         (parse_annotation): Handle arg annotations.
2793
2794         * test/glib/test-service-glib.xml: 
2795         * test/glib/test-service-glib.c: Update to make some methods
2796         const.
2797
2798 2005-07-08  Colin Walters  <walters@verbum.org>
2799
2800         * test/glib/test-service-glib.xml: 
2801         * test/glib/test-service-glib.c:
2802         * test/glib/test-dbus-glib.c: Test a{sv}.
2803
2804         * glib/examples/statemachine/statemachine.c:
2805         * glib/examples/statemachine/statemachine-server.c:
2806         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2807         add progress bar, etc.
2808
2809         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2810         needed anymore due to generic array/map marshalling.
2811         (dbus_g_value_types_init): Don't register basic arrays or the
2812         string/string hash.
2813         (dbus_gtype_from_signature_iter): Don't try to recurse into
2814         variants.
2815         (dbus_gtype_to_signature): Check collection/map before type
2816         metadata.
2817         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2818         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2819         generic map creation/append functions instead of hash table
2820         specifically.
2821         (get_type_demarshaller): Handle maps.
2822         (demarshal_collection): Dispatch on collection type to either
2823         demarshal_collection_ptrarray or demarshal_collection_array.
2824         (get_type_marshaller): Handle maps.
2825         (marshal_collection): Dispatch collection type to either
2826         marshal_collection_ptrarray or marshal_collection_array.
2827         (_dbus_gvalue_test): New test.
2828
2829         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2830         (hash_free_from_gtype): Use it to free GValues.
2831         (hashtable_append): New function.
2832         (ptrarray_append): Fix prototype.
2833         (slist_append): Ditto.
2834         (_dbus_gvalue_utils_test): Extend tests.
2835
2836         * glib/dbus-gtype-specialized.c
2837         (dbus_g_type_specialized_init_append): Renamed from
2838         dbus_g_type_specialized_collection_init_append.  Remove const from
2839         value, since we steal it.
2840         (dbus_g_type_specialized_map_append): New function.
2841
2842         * glib/dbus-gtype-specialized.h: Update prototypes.
2843         Add DBusGTypeSpecializedMapAppendFunc.
2844
2845         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2846         _dbus_gvalue_test.
2847         
2848         * glib/dbus-gtest.h: Prototype it.
2849
2850 2005-07-08  Ross Burton  <ross@openedhand.com>
2851
2852         * dbus/dbus-glib.h:
2853         Add DBysGAsyncData for the async bindings.
2854
2855         * glib/dbus-binding-tool-glib.c:
2856         Re-enable the async bindings.
2857
2858         * test/glib/test-dbus-glib.c:
2859         Add a test for the generated async bindings.
2860
2861 2005-07-08  Colin Walters  <walters@verbum.org>
2862
2863         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2864         connection concept.
2865         
2866 2005-07-08  Colin Walters  <walters@verbum.org>
2867         
2868         * tools/Makefile.am: Kill of print-introspect in favor of using
2869         dbus-send --print-reply=literal.
2870
2871         * test/glib/test-service-glib.xml: 
2872         * test/glib/test-service-glib.c (my_object_get_objs): New test
2873         for "ao".
2874
2875         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2876         (main): Test GetObjs.
2877
2878         * glib/examples/statemachine/Makefile.am:
2879         * glib/examples/statemachine/sm-marshal.list:
2880         * glib/examples/statemachine/statemachine-client.c:
2881         * glib/examples/statemachine/statemachine-server.c:
2882         * glib/examples/statemachine/statemachine-server.xml:
2883         * glib/examples/statemachine/statemachine.c:
2884         * glib/examples/statemachine/statemachine.h:
2885         * glib/examples/statemachine/statemachine.xml:
2886
2887         New example.
2888
2889         * glib/examples/example-service.c (main): Move invocation
2890         of dbus_g_object_type_install_info earlier, to emphasize it
2891         should only be done once.
2892
2893         * glib/examples/example-signal-emitter.c (main): Ditto.
2894
2895         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2896
2897         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2898         (dbus_gvalue_marshal): Update prototypes.
2899
2900         * glib/dbus-gvalue.c: Update all marshalling functions to take
2901         const GValue instead of GValue.
2902         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2903         types.
2904         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2905         change.
2906         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2907         Return a newly-allocated string.
2908         (demarshal_proxy, demarshal_object_path, demarshal_object)
2909         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2910         we get the wrong types from message.
2911         (get_type_demarshaller): New function, extracted from
2912         dbus_gvalue_demarshal.
2913         (demarshal_collection): New function, demarshals generic
2914         collection.
2915         (dbus_gvalue_demarshal): Just invoke result of
2916         get_type_demarshaller.  Throw error if we don't have one.
2917         (marshal_garray_basic): Abort on OOM.
2918         (get_type_marshaller): New function, extracted from
2919         dbus_gvalue_marshal.
2920         (collection_marshal_iterator, marshal_collection): New functions;
2921         implements generic marshalling for an iteratable specialized
2922         collection.
2923         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2924
2925         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2926         G_TYPE_STRING.
2927         (ptrarray_value_from_gvalue): Ditto.
2928         (ptrarray_append, ptrarray_free): New functions.
2929         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2930         (slist_append, slist_end_append, slist_free): New functions.
2931         (dbus_g_type_specialized_builtins_init): Add append fuctions
2932         for GPtrArray and GSList.  Register GSList.
2933         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2934
2935         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2936         New.
2937         (dbus_g_type_specialized_collection_init_append)
2938         (dbus_g_type_specialized_collection_append)
2939         (dbus_g_type_specialized_collection_end_append): Prototype.
2940         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2941         end_append_func.
2942
2943         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2944         (dbus_g_type_specialized_collection_append) 
2945         (dbus_g_type_specialized_collection_end_append): New functions.
2946         (dbus_g_type_map_value_iterate): Take const GValue.
2947         (dbus_g_type_collection_value_iterate): Ditto.
2948
2949         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2950         _dbus_gvalue_utils_test.
2951         
2952         * glib/dbus-gtest.h: Prototype it.
2953
2954         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2955         using uninitialized owner_list.
2956         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2957         public API.
2958         (dbus_g_proxy_end_call_internal): Update to use error set
2959         from dbus_gvalue_demarshal instead of setting it here.
2960         (dbus_g_proxy_begin_call): Move return_if_fail here.
2961
2962         * glib/dbus-gobject.c (write_interface): Update for
2963         dbus_gtype_to_signature returning new string.
2964
2965         * configure.in: Add glib/examples/statemachine.
2966
2967 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2968
2969         * configure.in: Add a configure option, --with-console-auth-dir
2970         
2971         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2972         new setting.  Patch from Kay Sievers.
2973
2974 2005-07-06  Colin Walters  <walters@verbum.org>
2975
2976         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2977         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2978         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2979         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2980         Delete in favor of dbus_g_proxy_begin_call and
2981         dbus_g_proxy_cancel_call.
2982         (DBusGProxyCall, DBusGProxyCallNotify): New.
2983         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2984         data, and destroy function.  This replaces
2985         dbus_g_pending_call_set_notify.
2986         (dbus_g_proxy_cancel_call): Prototype.
2987         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2988
2989         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2990         pending_calls map.
2991         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2992         internal proxy for calls to the bus. Remove
2993         pending_nameowner_calls, now the internal proxy keeps track.
2994         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2995         pending_nameowner_calls.
2996         (got_name_owner_cb): Update prototype, and use
2997         dbus_g_proxy_end_call.
2998         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2999         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3000         favor of using internal proxy.
3001         (dbus_g_proxy_manager_unregister): Update to use
3002         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3003         (dbus_g_proxy_init): Initialize pending calls map.
3004         (dbus_g_proxy_constructor): New.
3005         (dbus_g_proxy_class_init): Add get/set property functions,
3006         constructor, and add NAME, PATH, and INTERFACE properties.
3007         (cancel_pending_call): New function.
3008         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3009         cancel them.
3010         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3011         (GPendingNotifyClosure): New structure.
3012         (d_pending_call_notify, d_pending_call_free): Moved here from
3013         dbus-glib.c.
3014         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3015         ordering.
3016         (manager_begin_bus_call): New internal function for talking to
3017         internal bus proxy.
3018         (dbus_g_proxy_new): Construct object using GObjet properties.
3019         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3020         Create closure of same, and insert call into map of pending calls.
3021         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3022         call.  Look up pending call in current set.  Remove it when we've
3023         completed.
3024         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3025         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3026         and destroy function directly.
3027         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3028         (dbus_g_proxy_call): Invoke with NULL callback.
3029         (dbus_g_proxy_cancel_call): New function, replaces
3030         dbus_g_pending_call_cancel.
3031
3032         * glib/dbus-gparser.c (validate_signature): Fix call to
3033         dbus_set_g_error.
3034
3035         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3036         New quark for attaching metadata to GType.
3037         (info_hash): Delete.
3038         (lookup_object_info): Look up using quark.
3039         (dbus_g_object_type_install_info): Check that a type is classed,
3040         not that it's an object.  Also just install type data using quark
3041         instead of using global hash.
3042
3043         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3044         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3045         (GPendingNotifyClosure): Delete.
3046         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3047         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3048
3049         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3050         client method generation until we can fix it...
3051         
3052         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3053         (load_from_service_thread_func): Ditto.
3054
3055         * tools/dbus-names-model.c (struct NamesModel): Hold
3056         DBusGProxyCall.
3057         (have_names_notify): Update prototype, use
3058         dbus_g_proxy_cancel_call.
3059         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3060
3061         * tools/dbus-monitor.c (filter_func): Update for print_message
3062         API change.
3063
3064         * test/glib/test-dbus-glib.c: Add more tests for async
3065         invocations.  Update many begin_call/end_call pairs to just use
3066         dbus_g_proxy_call.
3067
3068         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3069         allows us to dump print-introspect.c.
3070
3071         * tools/dbus-print-message.h (print_message): Add literal argument
3072         to print_message which is intended to allow printing arguments without
3073         metadata like "string=".
3074
3075         * tools/dbus-print-message.c (print_iter): Add literal argument.
3076         (print_message): Allow printing string messages literally.
3077
3078 2005-07-05  Colin Walters  <walters@verbum.org>
3079
3080         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3081         Remove value refcount leak, original patch from Jorn Baayen
3082         <jorn@openedhand.com>.  Also remove useless extra value in favor
3083         of prepending to value array directly.
3084
3085 2005-07-02  Colin Walters  <walters@verbum.org>
3086
3087         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3088
3089 2005-07-01  Colin Walters  <walters@verbum.org>
3090
3091         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3092         
3093         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3094         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3095         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3096         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3097
3098 2005-06-30  Colin Walters  <walters@verbum.org>
3099
3100         * test/glib/test-dbus-glib.c:
3101         * test/glib/test-service-glib.c:
3102         * test/glib/test-service-glib.xml: Update tests for new error
3103         setting bits, also add async tests (patch from Ross Burton).
3104
3105         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3106         DBUS_GLIB_THREADS_LIBS.
3107
3108         * glib/dbus-gproxy.c (get_name_owner)
3109         (dbus_g_pending_call_end_valist): Ditto.
3110
3111         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3112         domain (GQuark) to DBusGErrorInfo.  
3113         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3114         quark in error_metadata.  Take message interface as default
3115         error message interface.
3116         (gerror_to_dbus_error_message): Pass message interface.
3117         (dbus_set_g_error): Resurrected.
3118         (dbus_g_error_info_free): New function.
3119         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3120         of _peek to actually create the object class if it hasn't been
3121         created yet.
3122         (dbus_g_error_domain_register): New function.
3123
3124         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3125
3126         * glib/dbus-gparser.c (validate_signature): Ditto.
3127
3128         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3129         (dbus_g_error_domain_register): Prototype.
3130
3131         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3132         Update tests.
3133
3134 2005-06-29  Colin Walters  <walters@verbum.org>
3135
3136         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3137         DBUS_TYPE_G_OBJECT_PATH.
3138
3139         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3140         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3141         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3142         (dbus_g_object_path_get_g_type): New function.
3143         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3144         to DBUS_TYPE_G_OBJECT_PATH by default.
3145         (demarshal_proxy): Remove unused name variable.
3146         (demarshal_object_path, marshal_object_path): New functions.
3147         (demarshal_proxy_array, marshal_proxy_array): Delete.
3148         
3149         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3150         DBUS_TYPE_G_OBJECT_PATH to char *.
3151         (dbus_g_type_get_lookup_function): Map builtin
3152         DBUS_TYPE_G_OBJECT_PATH.
3153
3154         * test/glib/test-dbus-glib.c
3155         * test/glib/test-service-glib.c (my_object_objpath): 
3156         Adapt tests to new object path marshalling.
3157
3158 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3159
3160         * configure.in: force check for Python >= 2.4
3161
3162 2005-06-29  Colin Walters  <walters@verbum.org>
3163         
3164         Patch from Ross Burton <ross@openedhand.com>
3165         
3166         * glib/dbus-gobject.c (invoke_object_method): Unset object
3167         value in all cases, not only in async case.
3168
3169 2005-06-29  Colin Walters  <walters@verbum.org>
3170
3171         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3172         name_call for keeping track of any outgoing GetNameOwner call.
3173         Also add for_owner and associated.
3174         (struct _DBusGProxyManager): Add owner_names, which is hash table
3175         that maps a base name to a list of names it owns (that we're
3176         interested in).  Add pending_nameowner_calls which is a list of
3177         all outstanding GetNameOwner; avoids us having to iterate over
3178         every proxy.  Add unassociated_proxies which keeps track of name
3179         proxies with no associated name owner.
3180         (dbus_g_proxy_manager_unref): Destroy owner_names.
3181         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3182         name refcounts.
3183         (find_name_in_info, name_owner_foreach)
3184         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3185         (dbus_g_proxy_manager_monitor_name_owner)
3186         (dbus_g_proxy_manager_unmonitor_name_owner)
3187         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3188         New functions; they manipulate the owner_names mapping.
3189         (got_name_owner_cb): New function.
3190         (get_name_owner): New function, extracted from
3191         dbus_g_proxy_new_for_name_owner.
3192         (dbus_g_proxy_manager_register): For now we need to keep track of
3193         all NameOwnerChanged.  Also if the proxy is for a name, if we
3194         don't already know the name owner, queue a new GetNameOwner
3195         request and add it to our list of unassociated proxies.  Otherwise
3196         inc the refcount.
3197         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3198         cancel any pending GetNameOwner call, etc.
3199         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3200         the owner_names mapping to look up the current names for the
3201         signal source, and dispatch to any proxies for that name.
3202         (dbus_g_proxy_new): Initialize new members.
3203         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3204         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3205         (dbus_g_pending_call_end_valist): New function, extracted from
3206         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3207         but want to use the GLib infrastructure.  Also note how many
3208         arguments in reply were over.
3209         (dbus_g_pending_call_end): New function, just call
3210         dbus_g_pending_call_end_valist.
3211         (dbus_g_proxy_end_call_internal): Just call
3212         dbus_g_pending_call_end_valist.
3213
3214         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3215         of builtin marshaller for STRING_STRING_STRING.
3216
3217         * test/glib/test-dbus-glib.c: 
3218         * test/glib/test-service-glib.c:
3219         * test/glib/test-service-glib.xml:
3220         Extend tests to cover name proxies, destruction of owner proxies,
3221         etc.
3222         
3223         * glib/examples/example-signal-recipient.c
3224         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3225         
3226         * tools/dbus-send.c (main): Print D-BUS error name in addition
3227         to message.
3228
3229 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3230
3231         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3232         cmessage_function_handler): Patch from 
3233         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3234         by using the Py_GILState_Ensure/Release to synchronize with the
3235         python runtime.
3236         
3237 2005-06-28  Ray Strode  <rstrode@redhat.com>
3238
3239         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3240         babysitter helper process on last unref, bug #2813.
3241
3242 2005-06-27  Colin Walters  <walters@verbum.org>
3243
3244         * test/glib/test-dbus-glib.c: 
3245         * test/glib/test-service-glib.c:
3246         * test/glib/test-service-glib.xml:
3247         Test hash table signal emitting.
3248
3249         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3250         types to their fundamental basis types, since this is what
3251         marshallers operate on.  Also add an entry for VOID__BOXED.
3252         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3253
3254 2005-06-26  Havoc Pennington  <hp@redhat.com>
3255
3256         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3257         from Don Park
3258
3259 2005-06-26  Colin Walters  <walters@verbum.org>
3260
3261         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3262         (dbus_g_error_set): New public function from its ashes; used by
3263         both service-side method implementation and GLib bindings
3264         internals.
3265         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3266         (_dbus_glib_test): Add some tests.
3267
3268         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3269
3270         * test/glib/test-service-glib.c (my_object_throw_error): Use
3271         dbus_g_error_set.
3272
3273         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3274         errors thrown by dbus_g_error_set.
3275
3276         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3277
3278         * glib/dbus-gparser.c (validate_signature): Ditto.
3279
3280         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3281         (dbus_g_proxy_end_call_internal): Ditto.
3282
3283         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3284         converts DBUS_ERROR_x to DBUS_GERROR_x.
3285         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3286
3287         * doc/TODO: Remove error TODO.
3288
3289         * doc/dbus-tutorial.xml: Update with documentation about error
3290         handling.
3291
3292         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3293         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3294         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3295
3296 2005-06-22  Colin Walters  <walters@verbum.org>
3297         
3298         Patch from Ross Burton <ross@openedhand.com>
3299
3300         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3301
3302 2005-06-20  Colin Walters  <walters@verbum.org>
3303
3304         * configure.in: Add glib/examples.
3305
3306         * glib/Makefile.am: Add examples/
3307
3308         * glib/examples/.cvsignore
3309         * glib/examples/Makefile.am
3310         * glib/examples/example-client.c
3311         * glib/examples/example-service.c
3312         * glib/examples/example-service.xml
3313         * glib/examples/example-signal-emitter.c
3314         * glib/examples/example-signal-emitter.xml
3315         * glib/examples/example-signal-recipient.c:
3316         New files; GLib binding examples, ported from
3317         python/examples.
3318
3319 2005-06-20  Colin Walters  <walters@verbum.org>
3320
3321         * dbus/dbus-glib.h: 
3322         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3323         dbus_g_proxy_call.
3324
3325         * glib/dbus-binding-tool-glib.c: 
3326         * doc/dbus-tutorial.xml: 
3327         * test/glib/test-dbus-glib.c: Update for rename.
3328         
3329 2005-06-20  Colin Walters  <walters@verbum.org>
3330
3331         Patch suggested by Ross Burton <ross@openedhand.com>
3332
3333         * glib/dbus-gobject.c (export_signals): Free signal name.
3334         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3335         memory leak.  Add a bit of documentation.
3336         (dbus_g_method_return_error): Free context, and note we do
3337         so.
3338
3339 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3340
3341         * dbus/dbus-glib.h:
3342         * glib/dbus-gobject.c:
3343         * glib/dbus-gproxy.c:
3344         * glib/dbus-gvalue.c: Predeclare structs as 
3345         typedef struct _Something Something instead of 
3346         typedef struct Something Something, so we can 
3347         redeclare the prototypes. Other GNOME libraries 
3348         do this already.
3349
3350 2005-06-17  Colin Walters  <walters@verbum.org>
3351
3352         * tools/dbus-names-model.c (have_names_notify): Fix call
3353         to dbus_g_proxy_end_call.
3354         
3355 2005-06-17  Colin Walters  <walters@verbum.org>
3356
3357         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3358         spew warnings if we get malformed remote signals.
3359
3360         * glib/dbus-gobject.c (propsig_iterate): New function.
3361         (lookup_object_info): New function, extracted from
3362         lookup_object_and_method.
3363         (introspect_properties, introspect_signals): Delete; these
3364         are merged into write_interface.
3365         (write_interface): Write out signals and properties here;
3366         dump the org.gtk.object stuff and use the interface given
3367         in the introspection data blob.  Also fix up property XML.
3368         (lookup_values): New function.
3369         (introspect_interfaces): Gather a mapping from interface to a
3370         list of its methods, signals, and properties, then write out
3371         each interface.
3372         (lookup_object_and_method): Use lookup_object_info.
3373         (struct DBusGSignalClosure): Add interface.
3374         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3375         we can just use the constant data.
3376         (dbus_g_signal_closure_finalize): Don't free signal name.
3377         (signal_emitter_marshaller): Use interface from signal closure.
3378         (export_signals): Only export signals mentioned in introspection
3379         blob.
3380         (dbus_g_connection_register_g_object): Warn if we have no
3381         introspection data for an object.
3382         (funcsig_equal): Remove unused variable.
3383         (dbus_g_object_register_marshaller): Take varargs instead of
3384         list.
3385         (dbus_g_object_register_marshaller_array): New function,
3386         extracted from old dbus_g_object_register_marshaller.
3387
3388         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3389         signals and property data.
3390         (write_quoted_string): New function, extracted from generate_glue.
3391         (generate_glue): Write signals and properties to introspection
3392         blob.
3393
3394         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3395         exported_signals and exported_properties.
3396         (dbus_g_object_register_marshaller): Update prototype.
3397         (dbus_g_object_register_marshaller_array): Prototype.
3398         
3399         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3400
3401         * test/glib/test-service-glib.c: Add new test signals and method
3402         to emit them.
3403
3404         * test/glib/test-service-glib.xml: Add some test signals.
3405
3406         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3407         and my-object-marshal.h
3408         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3409         my-object-marshal.c.
3410         (my-object-marshal.c, my-object-marshal.h): Implement.
3411
3412         * test/glib/.cvsignore: Update.
3413
3414         * doc/TODO: Remove two GLib TODO items fixed by this
3415         patch.
3416
3417 2005-06-16  Colin Walters  <walters@verbum.org>
3418
3419         * doc/TODO: Update for GLib bindings.
3420         
3421 2005-06-16  Colin Walters  <walters@verbum.org>
3422
3423         * glib/dbus-binding-tool-glib.c:
3424         * glib/dbus-gobject.c:
3425         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3426         from Ross Burton, for his GLib bindings work.
3427
3428 2005-06-16  Colin Walters  <walters@verbum.org>
3429
3430         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3431         to iterate instead of walking to G_TYPE_INVALID.
3432
3433         Patch based on a patch from Ryan Gammon.
3434
3435 2005-06-16  Colin Walters  <walters@verbum.org>
3436
3437         * bus/bus.c (bus_context_new): Set parser to NULL
3438         after we unref it (Patch from Chris Boscolo, #2174).
3439         
3440 2005-06-16  Colin Walters  <walters@verbum.org>
3441
3442         * python/dbus_bindings.pyx.in: Import size_t,
3443         __int64_t, __uint64_t, and __signed.
3444
3445         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3446         Define cmsg struct, output it.
3447         (_dbus_read_credentials_unix_socket):
3448         Use cmsg struct.
3449         
3450         Patch from Joe Markus Clarke for FreeBSD support.
3451         
3452 2005-06-16  Colin Walters  <walters@verbum.org>
3453
3454         * tools/dbus-send.c (append_array): Use strtok.
3455         (append_dict): New function.
3456         (type_from_name): New function, extracted from main.
3457         (main): Handle sending dicts.
3458
3459         * tools/dbus-print-message.c (print_iter): Print dict
3460         entries.
3461         
3462 2005-06-16  Colin Walters  <walters@verbum.org>
3463
3464         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3465         values as the empty string (#2948).
3466         
3467 2005-06-16  Colin Walters  <walters@verbum.org>
3468
3469         * dbus/Makefile.am:
3470         * mono/doc/Makefile.am:
3471         * test/glib/Makefile.am:
3472
3473         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3474
3475 2005-06-16  Colin Walters  <walters@verbum.org>
3476
3477         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3478         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3479
3480         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3481         Increment pointer after swapping fixed array.  Add assertion
3482         for array length.
3483                 
3484 2005-06-15  Colin Walters  <walters@verbum.org>
3485
3486         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3487         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3488         
3489 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3490
3491         * NEWS: Update to 0.34
3492
3493 2005-06-15  David Zeuthen  <davidz@redhat.com>
3494
3495         * configure.in (LT_CURRENT): Revert back to 1 as the library
3496         hasn't changed and we've certainly not committed to protocol
3497         stability yet.  All this does is to break ABI. See commit note
3498         from hp@redhat.com 2005-05-05 for details.
3499         
3500 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3501
3502         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3503         (_dbus_connection_run_builtin_filters): New method
3504         (dbus_connection_dispatch): Run the builtin filters which in turn
3505         runs the peer filter which handles Ping messages.
3506
3507         * doc/TODO: 
3508          - Ping isn't handled: This patch fixes it
3509          
3510          - Add a test case for the Ping message: added TODO item
3511
3512 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3513
3514         * dbus/dbus-message.c:
3515         (dbus_message_has_path): New method
3516         (dbus_message_has_interface): New method
3517         (dbus_message_has_member): New method
3518
3519         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3520         New method
3521
3522         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3523         the keyring directory is private to the user
3524
3525         * doc/TODO:
3526          - The convenience functions in dbus-bus.h should perhaps have
3527          the signatures that they would have if they were autogenerated
3528          stubs. e.g. the acquire service function. We should also evaluate
3529          which of these functions to include, in light of the fact that
3530          GLib/Qt native stubs will probably also exist.: Punted
3531
3532          - add dbus_message_has_path(), maybe has_member/interface:
3533          fixed in this patch
3534
3535          - in dbus-keyring.c, enforce that the keyring dir is not
3536          world readable/writable: Fixed in this patch
3537
3538 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3539
3540         * dbus/dbus-marshal-validate.h: Added a new validation
3541         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3542         out of memory errors when validating signitures
3543
3544         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3545         in places where we previously used DBUS_VALID and a FALSE return 
3546         value to indicate OOM
3547         
3548         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3549         Use a stack to track the number of elements inside containers.  The 
3550         stack values are then used to validate that dict entries have only two
3551         elements within them.
3552         (validate_body_helper): check the reason for failure when validating
3553         varients
3554         
3555         * dbus/dbus-message.c (load_message): use 
3556         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3557         DBUS_VALID and a FALSE return value to indicate OOM
3558
3559         * doc/TODO: remove "- validate dict entry number of fields" as this
3560         patch fixes it
3561
3562 2005-06-14  David Zeuthen  <davidz@redhat.com>
3563
3564         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3565         watches (if applicable) and add new watches
3566
3567         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3568         (main): Setup SIGIO signal handler if using D_NOTIFY
3569
3570         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3571
3572         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3573         (merge_included): Also merge conf_dirs list
3574         (bus_config_parser_unref): Clear conf_dirs list
3575         (include_dir): Add directory to conf_dirs list
3576         (bus_config_parser_get_conf_dirs): New function
3577
3578         * bus/dir-watch.[ch]: New files
3579
3580         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3581
3582         * configure.in: Add checks for D_NOTIFY on Linux
3583
3584 2005-06-14  Colin Walters  <walters@verbum.org>
3585
3586         * glib/dbus-binding-tool-glib.c:
3587         * glib/dbus-gobject.c:
3588         * glib/dbus-gvalue.c: Fix indentation and brace style.
3589         
3590 2005-06-14  Ross Burton <ross@openedhand.com>.
3591
3592         * glib/dbus-glib.h: Make DBusGMethodInvocation
3593         a private structure.  Rearrange prototypes a bit.
3594         
3595         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3596         documentation for first_arg_type.
3597         
3598         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3599         here, add documentation.  Move dbus_g_method_return
3600         and dbus_g_method_return_error into public API
3601         section.
3602
3603 2005-06-14  Colin Walters  <walters@verbum.org>
3604
3605         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3606         Add missing return statements, noticed by Ross Burton.
3607         
3608 2005-06-13  Ross Burton <ross@openedhand.com>.
3609
3610         * glib/dbus-gobject.c: Handle errors on message
3611         demarshalling by sending error message back.
3612         * glib/dbus-gvalue.c: Initialize return variables.
3613
3614 2005-06-13  Colin Walters  <walters@verbum.org>
3615
3616         * glib/Makefile.am: Fix thinko in last patch.
3617
3618 2005-06-13  Colin Walters  <walters@verbum.org>
3619
3620         * glib/Makefile.am: Move dbus-gtype-specialized.c
3621         and dbus-gtype-specialized.h into a _HEADERS variable,
3622         install them.
3623
3624 2005-06-12  Colin Walters  <walters@verbum.org>
3625
3626         Async signals and various bugfixes and testing by
3627         Ross Burton <ross@openedhand.com>.
3628
3629         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3630         (dbus_gvalue_genmarshal_name_from_type)
3631         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3632         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3633         (dbus_g_value_types_init, dbus_gtype_from_signature)
3634         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3635         (dbus_gtypes_from_arg_signature): New function prototypes.
3636         (dbus_gvalue_demarshal): Take context and error arguments.
3637         (dbus_gvalue_demarshal_variant): New function.
3638         (dbus_gvalue_demarshal_message): New function.
3639         (dbus_gvalue_store): Delete.
3640
3641         * glib/dbus-gvalue.c:
3642
3643         File has been almost entirely rewritten; now we special-case
3644         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3645         hash tables correctly, etc.  Full support for recursive values
3646         is not yet complete.
3647
3648         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3649         argument of signal to G_TYPE_POINTER since we now pass a
3650         structure.
3651         (lookup_g_marshaller): Delete in favor of
3652         _dbus_gobject_lookup_marshaller.
3653         (marshal_dbus_message_to_g_marshaller): Use
3654         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3655         to handle remote signal callbacks.
3656         (dbus_g_proxy_new_from_proxy): New function; creates a new
3657         DBusGProxy by copying an existing one.
3658         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3659         (dbus_g_proxy_get_path): New functions.
3660         (dbus_g_proxy_marshal_args_to_message): New function;
3661         factored out of existing code.
3662         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3663         from a varargs array.
3664         (dbus_g_proxy_begin_call_internal): New function.
3665         (dbus_g_proxy_end_call_internal): New function.
3666         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3667         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3668         after collecting args into value array.
3669         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3670         invoke dbus_g_proxy_end_call_internal.
3671         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3672         end_call_internal.
3673         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3674         types.
3675         (array_free_all): New function.
3676         (dbus_g_proxy_add_signal): Take GTypes.
3677
3678         * glib/dbus-gobject.h:
3679         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3680         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3681         Prototype.
3682
3683         * glib/dbus-gobject.c: Add a global marshal_table hash which
3684         stores mappings from type signatures to marshallers.  Change lots
3685         of invocations of dbus_gtype_to_dbus_type to
3686         dbus_gtype_to_signature.
3687         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3688         (introspect_signals): Fix test for query.return_type.
3689         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3690         (invoke_object_method): Many changes.  Handle asynchronous
3691         invocations.  Convert arguments with
3692         dbus_gvalue_demarshal_message.  Handle errors.  Use
3693         DBusSignatureIter instead of strlen on args. Handle all arguments
3694         generically.  Special-case variants.
3695         (dbus_g_method_return, dbus_g_method_return_error): New function.
3696         (DBusGSignalClosure): New structure, closes over signal
3697         information.
3698         (dbus_g_signal_closure_new): New function.
3699         (dbus_g_signal_closure_finalize): New function.
3700         (signal_emitter_marshaller): New function; is special marshaller
3701         which emits signals on bus.
3702         (export_signals): New function; introspects object signals and
3703         connects to them.
3704         (dbus_g_object_type_install_info): Take GType instead of
3705         GObjectClass.
3706         (dbus_g_connection_register_g_object): Invoke export_signals.
3707         (dbus_g_connection_lookup_g_object): New function.
3708         (DBusGFuncSignature) New structure; used for mapping type
3709         signatures to marshallers.
3710         (funcsig_hash): New function; hashes DBusGFuncSignature.
3711         (funcsig_equal): New function; compares DBusGFuncSignature.
3712         (_dbus_gobject_lookup_marshaller): New function.
3713         (dbus_g_object_register_marshaller): New function; used to
3714         register a marshaller at runtime for a particular signature.
3715
3716         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3717
3718         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3719         which notes a server method implementation should be
3720         asynchronous.
3721
3722         * glib/dbus-binding-tool-glib.c
3723         (dbus_binding_tool_output_glib_server): Call
3724         dbus_g_value_types_init.
3725         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3726         variants specially.
3727         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3728         of a lookup function.
3729         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3730         (write_untyped_out_args): New method; write output arguments.
3731         (write_formal_declarations_for_direction): Function for
3732         writing prototypes.
3733         (write_formal_parameters_for_direction): Function for
3734         writing implementations.
3735         (write_typed_args_for_direction): Function for writing
3736         arguments prefixed with GTypes.
3737         (write_async_method_client): Write out async version
3738         of method.
3739
3740         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3741         (dbus_g_type_get_marshal_name): Move mapping from GType
3742         to marshal name into here.
3743         (dbus_g_type_get_c_name): Move into here.
3744         (compute_marshaller): Convert signature to type with
3745         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3746         (compute_marshaller_name): Ditto.
3747         (compute_marshaller): Handle async signal annotations.
3748         (gather_marshallers): Return if we don't have a known
3749         prefix.
3750         (generate_glue): Collect introspection blob here, and
3751         write all of the blob at the end.  This allows an object
3752         with multiple interfaces to work.
3753         Mark async methods in introspection blob.
3754
3755         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3756         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3757         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3758
3759         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3760         avoids people accidentally using DBUS_TYPE_* which should
3761         not be necessary anymore.
3762         Do include dbus-gtype-specialized.h, which are utilities
3763         for GLib container types.
3764         Add various #defines for types such as
3765         DBUS_TYPE_G_BOOLEAN_ARRAY.
3766         (DBusGValueIterator, DBusGValue): Define, not fully used
3767         yet.
3768         (dbus_g_value_get_g_type): Type for recursive value.
3769         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3770         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3771         (dbus_g_value_free): Prototypes.
3772         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3773         (dbus_g_proxy_set_interface): Prototype.
3774         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3775         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3776         types.
3777         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3778         Accessors.
3779         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3780         doing async invocations.
3781         (dbus_g_method_return, dbus_g_method_return_error):
3782         Prototypes.
3783         * doc/dbus-tutorial.xml: Update GLib section.
3784         
3785         * tools/dbus-viewer.c (load_child_nodes): Update
3786         for new invocation type of dbus_g_proxy_end_call.
3787         (load_from_service_thread_func): Ditto.
3788
3789         * tools/print-introspect.c (main): Ditto.
3790
3791         * tools/dbus-names-model.c (have_names_notify)
3792         (names_model_reload, names_model_set_connection)
3793         Use GTypes.
3794
3795         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3796         needed since Python bindings use GLib bindings.
3797
3798         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3799         Add --prefix argument.
3800
3801         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3802         unneeded --ignore-unsupported arg.
3803         
3804         * test/glib/test-service-glib.c: 
3805         * test/glib/test-service-glib.xml:
3806         * test/glib/test-dbus-glib.c: Add many more tests.
3807
3808 2005-06-06  David Zeuthen  <davidz@redhat.com>
3809
3810         * doc/TODO: Add item about need to remove deprecated functions.
3811
3812         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3813
3814         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3815         to repair the ABI which was broken with the last commit.
3816
3817 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3818
3819         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3820         (dbus_connection_disconnect): renamed to dbus_connection_close 
3821         for API symmetry with dbus_connection_open
3822         (_dbus_connection_open_internal): 
3823         s/dbus_connection_disconnect/dbus_connection_close
3824
3825         * dbus/dbus-bus.c (dbus_bus_get):
3826         s/dbus_connection_disconnect/dbus_connection_close
3827
3828         * bus/connection.c (bus_connections_unref, 
3829         bus_connections_setup_connection, bus_connections_expire_incomplete):
3830         s/dbus_connection_disconnect/dbus_connection_close
3831
3832         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3833         kill_client_connection_unchecked, check_hello_connection):
3834         s/dbus_connection_disconnect/dbus_connection_close
3835
3836         * bus/bus.c (new_connection_callback):
3837         s/dbus_connection_disconnect/dbus_connection_close
3838
3839         * tools/dbus-send.c (main):
3840         s/dbus_connection_disconnect/dbus_connection_close
3841
3842         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3843         s/dbus_connection_disconnect/dbus_connection_close
3844         
3845         * test/test-service.c (path_message_func, filter_func):
3846         s/dbus_connection_disconnect/dbus_connection_close
3847         
3848         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3849         
3850 2005-05-25  Colin Walters  <walters@verbum.org>
3851
3852         * dbus/dbus-protocol.h: Move various bus service #defines such
3853           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3854           dbus/dbus-shared.h.
3855         * dbus/dbus-shared.h: Various defines moved here.
3856         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3857
3858 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3859
3860         * python/__init__.py: Python bindings deserve a minor version
3861         update.  Upped to (0, 40, 2)
3862
3863 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3864
3865         * python/decorators.py: add explicitly_pass_message decorator
3866         for passing in the dbus message as keyword for edge case signal
3867         handling
3868
3869         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3870         to conform with what dbus expects for match rules
3871         (SignalMatchRule.execute): add the dbus message as a keyword
3872         if the signal handler has requested it
3873
3874         * python/examples/example/signal-recipient.py: added some more
3875         examples on how to hook up to signals
3876
3877 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3878
3879         * python/decorators.py: import dbus_bindings
3880
3881         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3882         SignalMatchNode): new classes that implement wildcard signal
3883         callback matching using a tree lookup. Heavily modified from a
3884         patch sent by Celso Pinto (fd.o bug #3241)
3885
3886         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3887         use new match classes to handle signals.
3888
3889 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3890         
3891         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3892
3893 2005-05-18  Havoc Pennington  <hp@redhat.com>
3894
3895         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3896         gettext. Not really worth requiring yet perhaps, but any
3897         production quality 1.0 would require it so we should go ahead and
3898         get things set up. We do have a couple token calls to
3899         bindtextdomain in the code already.
3900
3901 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3902
3903         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3904         when using recursive g_main_loops
3905
3906         * python/_dbus.py (class Bus): add the ProxyObjectClass
3907         alias for ProxyObject to make it easier for the Twisted 
3908         networking framework to integrate dbus.
3909
3910         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3911         alias for ProxyMethod to make it easier for the Twisted 
3912         networking framework to integrate dbus. 
3913
3914 2005-05-11  Ross Burton  <ross@openedhand.com>
3915
3916         * glib/dbus-glib-tool.c: Add --prefix argument.
3917         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3918         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3919         Add prefix argument.
3920         (generate_glue): Pass prefix argument down.
3921         (dbus_binding_tool_output_glib_server): Pass prefix to
3922         glib-genmarshal.
3923         
3924 2005-05-11  Colin Walters  <walters@verbum.org>
3925
3926         * tools/dbus-send.c (append_array): New function.
3927         (append_arg): Broken out from main.
3928         (main): Add cheesy hack to send arrays and variants.
3929         (usage): Update.
3930         * tools/dbus-print-message.c (print_iter): Broken out
3931         from main.
3932
3933 2005-05-11  Colin Walters  <walters@verbum.org>
3934
3935         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3936         New function, returns signature string for signature iter.
3937         * dbus/dbus-signature.h: Prototype it.
3938         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3939         New function, returns signature string for message iter.
3940         (dbus_message_iter_get_array_len): New function, returns
3941         length of array.
3942         (dbus_message_iter_get_fixed_array): Fix assertion; this
3943         function should be used when the iter is pointing to the
3944         contents of an array
3945         * dbus/dbus-message.h: Prototypes.
3946         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3947         New function; returns length of an array.
3948         * dbus/dbus-marshal-recursive.h: Prototype it.
3949         
3950 2005-05-11  Colin Walters  <walters@verbum.org>
3951
3952         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3953         compilation error.
3954         
3955 2005-05-08  Havoc Pennington  <hp@redhat.com>
3956
3957         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3958         daemon's pid, not the parent's pid, to the file descriptor.
3959         Reported by Taj Morton.
3960
3961 2005-05-05  Havoc Pennington  <hp@redhat.com>
3962
3963         * configure.in (LT_*): add notes on how the libtool versioning
3964         works to save thinking. Increment soname to indicate protocol
3965         breakage (though really the library interface hasn't changed I
3966         guess)
3967
3968         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3969         verify the GUID received from server matches what we were
3970         expecting, if we had an expectation
3971
3972         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3973         (_dbus_auth_get_guid_from_server): new function
3974         (send_begin): parse the OK args
3975
3976         * doc/dbus-specification.xml: add GUID to the auth protocol
3977
3978 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3979
3980         * Fix my name in previous changelog ;)
3981
3982         * python/proxies.py (ProxyObject.__getattr__): add further patch
3983         from Anthony Baxter to throw an AttributeError when python 
3984         __special__ functions are called instead of marshling them over 
3985         the bus (Bug#1685 comment 3).
3986
3987 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3988
3989         * python/Makefile.am: changed to use pyexecdir for the binding
3990         shared libraries (Bug#2494)
3991
3992         * python/exceptions.py: bring exceptions over from the bindings
3993         so they can be used in applications (Bug#2036)
3994         Make all exceptions derive from DBusException
3995
3996         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3997         of classes so that print obj doesn't throw an exception (Bug #1685)
3998
3999 2005-05-03  Ross Burton  <ross@openedhand.com>
4000
4001         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4002         Return if we get an error during registration.  Set up a
4003         weak reference on object to unregister if object is destroyed.
4004         (unregister_gobject): New function.
4005         
4006 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4007
4008         * python/dbus_bindings.pyx.in: 
4009         - added new type classes for hinting to the marashaler what type 
4010         to send over the wire
4011         - added int16 and uint16 marshalers
4012         - Fixed a bug in the type constants that caused int32 to go out
4013         as uint16 over the wire
4014         * python/dbus.py: split up into different files and renamed _dbus.py
4015         * python/__init__.py, python/_util.py, python/decorators.py, 
4016         python/exceptions.py, python/proxies.py, python/services.py,
4017         python/types.py: new files split off from dbus.py
4018         * python/Makefile.am: Add new files, remove dbus.py and 
4019         install all python files to <python module dir>/dbus
4020         * python/examples/*: Added #!/usr/bin/env python to the top of
4021         every example.  Patch provided by Tatavarty Kalyan
4022
4023 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4024
4025         * NEWS: Update to 0.33
4026
4027 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4028
4029         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4030         method for doing async calls
4031         (_pending_call_notification): New C function for handling pendning call
4032         callbacks
4033         (set_notify): New method for setting pending call notification
4034         
4035         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4036         Async capabilities added to remote method calls
4037         (Sender): class removed
4038         (RemoteService): class removed
4039         (ObjectTree): class removed for now
4040         (RemoteObject): Renamed to ProxyObject
4041         (RemoteMethod): Renamed to ProxyMethod
4042         (method): Decorator added for decorating python methods as dbus methods
4043         (signal): Decorator added for decorating python methods as signal emitters
4044         (ObjectType): Metaclass added for generating introspection data and the
4045         method callback vtable
4046         (Interface): Wrapper class added to wrap objects in a dbus interface
4047         (Object): Uses ObjectType as its metaclass and exports Introspect
4048         of the org.freedesktop.DBus.Introspectable interface
4049         (ValidationException, UnknownMethodException): new exceptions
4050
4051         * python/examples/*: Modified to fit with the new bindings
4052
4053 2005-04-23  Havoc Pennington  <hp@redhat.com>
4054
4055         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4056         reported by Tony Houghton
4057
4058         * test/test-service.c (main): test
4059         dbus_connection_get_object_path_data()
4060
4061         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4062         the exact_match
4063         (_dbus_object_tree_get_user_data_unlocked): new function used by
4064         dbus_connection_get_object_path_data()
4065         (do_register): add assertion test for get_user_data_unlocked
4066         (object_tree_test_iteration): more tests
4067
4068         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4069         new function from Dan Reed to let you get the user data from 
4070         dbus_connection_register_object_path()
4071
4072 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4073
4074         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4075         in numerous places that did not account for the NULL terminator
4076         (signature_from_seed): changed the manual string copy loop to 
4077         just use strcpy instead
4078         make check should now pass
4079
4080 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4081
4082         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4083         so that it allows messages that are not signals to pass in 
4084         NULL as the interface.
4085
4086 2005-04-18  David Zeuthen  <davidz@redhat.com>
4087
4088         * glib/dbus-gmain.c (io_handler_destroy_source): 
4089         (timeout_handler_destroy_source, connection_setup_free): 
4090         Also unref the source to avoid memory leaks.
4091
4092 2005-04-13  David Zeuthen  <davidz@redhat.com>
4093
4094         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4095         more reasonable, yet still totally arbitrary, value :-). 
4096
4097 2005-04-13  David Zeuthen  <davidz@redhat.com>
4098
4099         * doc/TODO: Added an "important for 1.0" item about selinux
4100         allow/deny messages
4101
4102 2005-04-13  David Zeuthen  <davidz@redhat.com>
4103
4104         * bus/selinux.c: Add c-file-style to top of file
4105         (log_audit_callback): Don't free the data here anymore
4106         (bus_selinux_check): Don't take spid and tpid since appending
4107         that to auxdata may OOM.
4108         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4109         to the caller if we are OOM by taking an error object.
4110         (bus_selinux_allows_send): -do-
4111
4112         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4113         and bus_selinux_allows_send
4114
4115         * bus/bus.c (bus_context_check_security_policy): Pass error and
4116         pass on OOM thrown by bus_selinux_allows_send()
4117
4118         * bus/services.c (bus_registry_acquire_service): Pass error and
4119         pass on OOM thrown by bus_selinux_allows_acquire_service()
4120
4121 2005-04-13  Havoc Pennington  <hp@redhat.com>
4122
4123         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4124         message at a time to avoid monopolizing the main loop, bug 
4125         #2953 from Benjamin Otte
4126
4127 2005-04-09  Havoc Pennington  <hp@redhat.com>
4128
4129         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4130         possible overlap, fix from Daniel Reed
4131         (fixup_alignment): fix signedness warnings
4132         (_dbus_string_append_unichar): ditto
4133
4134 2005-04-09  Havoc Pennington  <hp@redhat.com>
4135
4136         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4137
4138         * glib/dbus-glib-tool.c (main): fix warning
4139
4140         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4141
4142         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4143         add a new function that can be used in simple applications that
4144         don't have a main loop and are willing to block
4145
4146 2005-04-05  David Zeuthen  <davidz@redhat.com>
4147
4148         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4149
4150         * glib/dbus-gmain.c:
4151         (io_handler_destroy_source): Remove from list of IO handlers
4152         of the ConnectionSetup object
4153         (timeout_handler_destroy_source): -do- for timeout handlers
4154         (io_handler_source_finalized): Don't remove from list since
4155         we now do that in io_handler_destroy_source(). Renamed from
4156         io_handler_source_destroyed
4157         (timeout_handler_source_destroyed): -do- for timeout handlers
4158         (connection_setup_free): It is now safe to iterate over all
4159         IO and timeout handlers as the _destroy_source removes them
4160         from the list synchronously
4161
4162 2005-03-30  Havoc Pennington  <hp@redhat.com>
4163
4164         * configure.in: change check to gtk 2.4
4165
4166         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4167         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4168         to 2.4
4169
4170 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4171
4172         * News: Update 0.32
4173
4174         * HACKING: Fixed realease instructions.  configure.in should be updated to
4175           the next release by the person who made the last release.
4176
4177 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4178
4179         * python/lvalue_cast_post_process.py - removed.  Patch has been
4180           submitted to Pyrex maintainers that fixes gcc4.0 errors
4181
4182         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4183
4184 2005-03-24  Daniel Reed  <n@ml.org>
4185
4186         * tools/Makefile.am: Make print-introspect and
4187         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4188
4189 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4190
4191         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4192
4193         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4194           had in Red Hat packages for a while but for some reason never 
4195           got merged upstream
4196           (_dbus_is_a_number): New checks if a string
4197           can be converted to a number and does the conversion if it can
4198           (_dbus_user_database_lookup): Add check to see if the given username
4199           is a udi.  This allows udi's to be used instead of usernames in the
4200           config file.
4201           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4202           is a gdi.  This allows gdi's to be used instead of groupnames in the
4203           config file.
4204
4205 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4206
4207         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4208           code so that it compiles with gcc4.0
4209
4210         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4211           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4212           results back to dbus_binding.c
4213
4214 2005-03-20  Colin Walters  <walters@verbum.org>
4215
4216         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4217
4218         * configure.in: Require GTK+ 2.6.
4219         
4220 2005-03-20  Colin Walters  <walters@verbum.org>
4221
4222         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4223
4224 2005-03-17  Tom Parker  <palfrey@tevp.net>
4225
4226         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4227         print DBUS_UID_UNSET; instead print passed username.  Also
4228         be sure to actually use gid looked up in cache.
4229         
4230         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4231         for DBUS_GID_UNSET and groupname.
4232
4233 2005-03-17  Colin Walters  <walters@verbum.org>
4234
4235         * bus/print-introspect.c: Move to tools/.
4236         * bus/run-with-tmp-session-bus.sh: Ditto.
4237         
4238         * glib/Makefile.am (dbus-glib-bindings.h): Move
4239         generation to tools/Makefile.am.
4240
4241         * test/glib/run-test.sh: Update to handle move
4242         of run-with-tmp-session-bus.sh.
4243
4244         * test/glib/test-service-glib.c: Update to handle
4245         move of dbus-glib-bindings.h.
4246
4247         * tools/print-introspect.c: Moved here
4248         from bus/, and ported to GLib bindings.
4249
4250         * tools/run-with-tmp-session-bus.sh: Moved here
4251         from bus/.
4252
4253         * tools/Makefile.am: Generate dbus-glib-bindings.h
4254         and dbus-bus-introspect.xml here.
4255
4256         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4257         Update.
4258
4259 2005-03-17  Colin Walters  <walters@verbum.org>
4260
4261         * bus/driver.c (write_args_for_direction): Use
4262         _dbus_string_get_const_data to retrieve string;
4263         _dbus_string_get_const_data_len doesn't actually return
4264         a NULL-terminated substring.
4265
4266         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4267         (main): Change to use org_freedesktop_DBus_request_name
4268         instead of using g_proxy_begin_call/end_call.
4269
4270 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4271
4272         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4273         generating the finalizer.  Fixes from Ben Maurer.
4274
4275 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4276
4277         * mono/BusDriver.cs: Update method names: ListServices
4278         becomes ListNames; GetOwner becomes GetNameOwner.
4279
4280         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4281         onto the eval stack when removing the delegate.
4282
4283 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4284
4285         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4286         LT_CURRENT.  Set it to the autoconf variable.
4287                                                                                 
4288         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4289         classes that disconnects the signal handler delegate from the
4290         service object.  Fixes a big leak of proxy objects on the
4291         client side of things.  Patch from Ben Maurer
4292         <bmaurer@ximian.com>
4293
4294 2005-03-12  Colin Walters  <walters@verbum.org>
4295
4296         * bus/driver.c (write_args_for_direction): New function,
4297         parses a type signature into arguments and outputs to
4298         XML.
4299         (bus_driver_handle_introspect): Use it instead of
4300         hardcoding XML for certain signatures.
4301         
4302         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4303         dependency on dbus-daemon.
4304
4305         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4306         argument, pass it to dbus_binding_tool_output_glib_client.
4307
4308         * glib/dbus-binding-tool-glib.c
4309         (generate_client_glue): Protect against multiple inclusion.
4310         (dbus_binding_tool_output_glib_client): Add
4311         G_BEGIN_DECLS/G_END_DECLS.
4312
4313         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4314         Change to just take iface prefix directly.
4315         (write_formal_parameters): Clarify error message.
4316         (check_supported_parameters): New function; checks to see type
4317         signatures of method parameters are supported.
4318         (generate_client_glue): Handle ignore_unsupported flag.
4319         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4320         parameter.
4321
4322         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4323         --ignore-unsupported by default until glib bindings
4324         support arrays.
4325
4326 2005-03-11  Colin Walters  <walters@verbum.org>
4327
4328         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4329         install it.
4330
4331         * bus/print-introspect.c: New file; prints introspection
4332         data for a given name and object path.
4333
4334         * bus/run-with-tmp-session-bus.sh: New file, refactored
4335         from test/glib/run-test.sh.  Creates a temporary session
4336         bus and runs another program.
4337
4338         * test/glib/run-test.sh: Refactor to invoke
4339         run-with-tmp-session-bus.sh.
4340
4341         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4342         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4343         macros instead of hardcoding.
4344
4345         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4346
4347 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4348
4349         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4350         this unref; it doesn't match up evenly in some codepaths.
4351         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4352         this evenly matches with the ref near the top of this function.
4353
4354 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4355
4356         * dbus/dbus-object-tree.c
4357         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4358         and we try to unregister a path that's not registered, still go
4359         through the process of unlocking and don't just return.
4360
4361 2005-03-09  Colin Walters  <walters@verbum.org>
4362
4363         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4364         to this are generated for client-side wrappers.  Invokes a
4365         D-BUS method and returns reply values.  
4366
4367         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4368         function; writes signature string for argument direction.
4369         (write_args_for_direction): Change to pass input values directly
4370         instead of via address, and fix indentation.
4371         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4372         make generated wrappers inlineable.
4373
4374         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4375         note about using dbus_type_is_fixed.
4376
4377         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4378         dbus/dbus-signature.c as dbus_type_is_fixed.
4379
4380         All callers updated.
4381
4382         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4383         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4384
4385         * dbus/dbus-signature.h: Prototype.
4386
4387         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4388         error printf code.
4389
4390         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4391         appropriate instead of just freeing it.
4392         (main): Free returned strings using g_free.
4393
4394         * test/glib/Makefile.am (test-service-glib-glue.h)
4395         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4396
4397         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4398         simply maps a simple D-BUS type to GType.
4399         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4400         GType.
4401         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4402         initialize the value with it.
4403         (dbus_gvalue_binding_type_from_type): Unused, delete.
4404         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4405         various types instead of unmarshalling to value data directly.
4406         Remove can_convert boolean.
4407         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4408         returning directly instead of using can_convert boolean.
4409         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4410         Stores a GValue in a pointer to a value of its corresponding C
4411         type.
4412
4413         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4414         add dbus_gvalue_store.
4415
4416 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4417
4418         Fix a bunch of lifecycle and memory management problems
4419         in the mono bindings.
4420
4421         * mono/Arguments.cs (Arguments): Implement IDisposable
4422
4423         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4424         strictly a static class.
4425
4426         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4427         delegates into this file.
4428         (Connection): Implement IDisposable.
4429         (Dispose): Disconnect the connection and set the raw connection
4430         pointer to IntPtr.Zero.
4431         (~Connection): Call Dispose().
4432         (RegisterObjectPath): Added.  Manages the registration of object
4433         paths so we can cleanly disconnect them at dispose/finalize time.
4434         (UnregisterObjectPath): Ditto.
4435         (set_RawConnection): Unregister all of the object paths when
4436         changing the underlying DBusConnection.  Add them back onto the
4437         new connection, if any.
4438
4439         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4440         more unmanaged resources anymore, so it's not necessary.  Move all
4441         the DBusObjectPathVTable stuff out of here.
4442         (Handler): Save references to our delegates so that they don't get
4443         finalized.  Call Connection.RegisterObjectPath() instead of
4444         dbus_connection_register_object_path() directly.
4445         (Message_Called): Dispose the message after we're finished with
4446         it.
4447
4448         * mono/Message.cs (Message): Implement IDisposable.
4449         (Dispose): Dispose the Arguments, and set the RawMessage to
4450         IntPtr.Zero.
4451         (SendWithReplyAndBlock): We own the ref to the reply that comes
4452         back from dbus_connection_send_with_reply_and_block() so add a
4453         comment about that and unref it after we've constructed a managed
4454         MethodReturn class around it.  Fixes a big, big leak.
4455
4456         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4457         method.
4458         (BuildSignalHandler): After we've sent the Signal message, dispose
4459         of it.
4460         (BuildMethod): Dispose of the method call and reply messages after
4461         we've sent the message and extracted the data we want from the
4462         reply.
4463
4464         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4465         anymore.
4466         (Service_FilterCalled): Dispose of the message after we're
4467         finished with it.
4468
4469 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4470
4471         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4472         After we attach our pending call to the connection, unref
4473         it.  Fixes a leak.
4474  
4475         * mono/Connection.cs (set_RawConnection): Disconnect our
4476         filter and match callbacks from the old connection and
4477         reconnect them to the new connection, if any.
4478
4479         * mono/DBusType/Array.cs: "Code" is a static member, so
4480         don't use "this" to refer to it.  Fix for stricter checking
4481         in Mono 1.1.4.
4482  
4483         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4484         object path that we pass into unmanaged code.
4485  
4486         * mono/DBusType/String.cs (Append): Don't leak the string
4487         that we pass into unmanged code.
4488
4489 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4490         * NEWS: Update for 0.31
4491
4492         * configure.in: Release 0.31
4493         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4494
4495         * qt/Makefile.am: fixed build
4496
4497         * dbus/Makefile.am: soname bump for libdbus
4498
4499         * glib/Makefile.am: soname bump for libdbus-glib
4500
4501 2005-03-05  Havoc Pennington  <hp@redhat.com>
4502
4503         * dbus/dbus-sysdeps.c:
4504         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4505         value
4506         (_dbus_generate_random_bytes_buffer): fix return value
4507
4508         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4509         checks actually work, from Tom Parker <fdo@tevp.net>
4510
4511 2005-03-01  Colin Walters  <walters@verbum.org>
4512
4513         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4514         functions copied from dbus-glib-tool.c.
4515         (main): Convert lots of error code to use them.
4516         Also add some testing for introspection bits.
4517
4518 2005-03-01  Colin Walters  <walters@verbum.org>
4519         
4520         * doc/TODO: Remove introspection signature TODO.
4521
4522 2005-02-27  Colin Walters  <walters@verbum.org>
4523
4524         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4525         Change return value to const char * instead of int so we can do
4526         full signatures.
4527         (struct PropertyInfo, struct ArgInfo): Store char *.
4528         (property_info_new, arg_info_new): Update parameters, strdup.
4529         (property_info_unref, arg_info_unref): Free.
4530
4531         * glib/dbus-gidl.h: Update prototypes.
4532
4533         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4534         (validate_signature): New function, just validates signature and
4535         sets GError.
4536         (parse_property, parse_arg): Invoke validate_signature.  Store
4537         signature instead of just type code.
4538
4539         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4540         function to return a primary type for a signature, dropping
4541         information about types in container types.
4542         (dbus_gvalue_genmarshal_name_from_type)
4543         (dbus_gvalue_binding_type_from_type)
4544         (dbus_gvalue_ctype_from_type): Update to take full signature
4545          instead of type code.
4546         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4547
4548         * glib/dbus-gvalue.h: Update prototypes for above.
4549
4550         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4551         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4552         (introspect_properties, introspect_signals, write_interface):
4553         Update to handle signatures, and remove usage of
4554         _dbus_gutils_type_to_string.
4555         (handle_introspect): Print out type codes instead of e.g. "string"
4556         in hardcoded introspection XML; also use x_AS_STRING constants
4557         instead of hardcoding in string.
4558
4559         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4560         to string.  Remove usage of _dbus_gutils_type_to_string.
4561
4562         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4563
4564         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4565         deletion.
4566         
4567         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4568         (compute_marshaller_name, generate_glue): Handle signature change
4569         to string.
4570         (write_formal_parameters, write_args_for_direction): Ditto, and
4571         remove FIXME.
4572
4573         * tools/dbus-tree-view.c (type_to_string): Delete.
4574         (info_set_func_text): Update to print full signatures.
4575
4576         * test/glib/test-service-glib.xml: Change types to new
4577         introspection format.
4578
4579 2005-02-26  Havoc Pennington  <hp@redhat.com>
4580
4581         * doc/TODO: remove the "guid" item
4582
4583         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4584         (with_bus_thread_func): use open_private
4585
4586         * dbus/dbus-connection.c (dbus_connection_open_private): new
4587         function that works like the old dbus_connection_open()
4588         (dbus_connection_open): now returns an existing connection if
4589         possible
4590
4591         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4592         through the GUID to the transport
4593
4594         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4595         GUID in hex-encoded form.
4596
4597         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4598         pass GUID argument in to the transport
4599
4600         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4601         guid argument
4602
4603         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4604
4605         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4606
4607 2005-02-25  Havoc Pennington  <hp@redhat.com>
4608
4609         * doc/dbus-specification.xml: document the GUID thing
4610
4611         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4612         globally unique ID for the server, and put a "guid=hexencoded"
4613         field in the address
4614
4615         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4616
4617         * dbus/dbus-message.c: ditto
4618
4619         * dbus/dbus-dataslot.c: ditto
4620
4621         * dbus/dbus-list.c: ditto
4622
4623         * dbus/dbus-internals.h: wait, just include
4624         dbus-threads-internal.h here
4625         
4626         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4627         use in main library
4628
4629         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4630
4631 2005-02-24  Colin Walters  <walters@verbum.org>
4632
4633         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4634
4635 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4636
4637         * glib/Makefile.am: added dbus-gobject.h to sources list
4638         so distcheck doesn't fail
4639         
4640 2005-02-24  Havoc Pennington  <hp@redhat.com>
4641
4642         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4643         you must disconnect before unref, since locking and other things
4644         are screwed up otherwise. Fix assorted other locking stuff.
4645
4646         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4647         fix compilation
4648
4649         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4650         into a private header and don't export from the library
4651
4652         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4653
4654 2005-02-24  Colin Walters  <walters@verbum.org>
4655         
4656         * dbus/dbus-signature.c: New file; implements various functions
4657         related to type signatures.  Includes an interator for parsing,
4658         validation functions.
4659         (dbus_type_is_basic): Moved here from
4660         dbus-marshal-basic.c:_dbus_type_is_basic.
4661         (dbus_type_is_container): Moved here from
4662         dbus-marshal-basic.c:_dbus_type_is_container.
4663
4664         All callers of _dbus_type_is_container and _dbus_type_is_basic
4665         updated, and include dbus-signature.h.
4666
4667         * dbus/dbus-signature.h: New file; prototypes for the above.
4668
4669         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4670         dbus-signature.h.
4671
4672         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4673         function factored out of _dbus_first_type_in_signature.
4674         (_dbus_first_type_in_signature_c_str): New function; returns first
4675         type code for a type signature character.
4676
4677         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4678         handle function moves.
4679
4680         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4681
4682         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4683         function; skips to next complete type in type signature.
4684         Implemented using previous skip_one_complete_type.  Now
4685         skip_one_complete_type just delegates to
4686         _dbus_type_signature_next.
4687
4688         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4689         to dbus-signature.c
4690         (_dbus_type_is_container): Ditto.
4691
4692         * doc/dbus-specification.xml: Update introspection sample to
4693         use real type signatures.
4694
4695         * dbus/dbus-test.h: Prototype signature test.
4696
4697         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4698         signature tests.
4699
4700         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4701
4702 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4703
4704         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4705         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4706
4707 2005-02-21  Colin Walters  <walters@verbum.org>
4708
4709         * dbus/dbus-test-main.c (main): Take optional specific test
4710         argument.
4711
4712         * dbus/dbus-test.c (run_test): New function, runs a test function
4713         with no data directory.
4714         (run_data_test): Like above, but takes data directory.
4715         (dbus_internal_do_not_use_run_tests): Take
4716         specific test argument.  Replace lots of cut n' paste code
4717         with run_test and run_data_test.
4718
4719         * dbus/dbus-test.h: Update prototype for
4720         dbus_internal_do_not_use_run_tests.
4721
4722 2005-02-20  Havoc Pennington  <hp@redhat.com>
4723
4724         Fix bugs reported by Daniel P. Berrange
4725         
4726         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4727         (protected_change_watch): new function
4728         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4729         (_dbus_server_add_watch): change to work like the
4730         dbus-connection.c equivalents; like those, probably kind of
4731         busted, but should at least mostly work for now
4732         (dbus_server_disconnect): drop the lock if we were already
4733         disconnected, patch from Daniel P. Berrange
4734
4735         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4736         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4737         same stuff
4738
4739         * doc/TODO: todo about unscrewing this mess
4740
4741 2005-02-19  Colin Walters  <walters@verbum.org>
4742
4743         * glib/dbus-binding-tool-glib.c
4744         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4745
4746         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4747         as errno.h and sys/stat.h.
4748         (lose): New function, prints error with
4749         newline and exits.
4750         (lose_gerror): Similar, but takes GError for message.
4751         (main): Add --output argument to specify output file to write to,
4752         instead of always printing to stdout.  In this mode, determine
4753         timestamps on source files to see whether any are newer than the
4754         target file.  If not, exit.  Also convert a number of error
4755         messages to use lose (since it's shorter), and switch to using
4756         g_io_channel_shutdown.
4757
4758 2005-02-19  Havoc Pennington  <hp@redhat.com>
4759
4760         * glib/dbus-gobject.c
4761         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4762
4763         * glib/dbus-glib.c: fix doxygen warnings
4764
4765         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4766         is found on an <arg>
4767
4768 2005-02-17  Colin Walters  <walters@verbum.org>
4769
4770         * glib/dbus-gobject.h: Don't export
4771         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4772         
4773         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4774         (invoke_object_method): Handle it.
4775
4776         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4777         Handle rename.
4778         
4779 2005-02-17  Colin Walters  <walters@verbum.org>
4780
4781         * bus/.cvsignore, doc/.cvsignore
4782         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4783         Update.
4784
4785 2005-02-17  Colin Walters  <walters@verbum.org>
4786         
4787         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4788         Rename to DBUS_SERVICE_DBUS.
4789         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4790         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4791         Change the value from "org.freedesktop.Local"
4792         to "org.freedesktop.DBus.Local".
4793         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4794         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4795         DBUS_INTERFACE_INTROSPECTABLE.
4796         Change the value from "org.freedesktop.Introspectable"
4797         to "org.freedesktop.DBus.Introspectable".
4798         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4799         DBUS_INTERFACE_PROPERTIES.
4800         Change the value from "org.freedesktop.Properties"
4801         to "org.freedesktop.DBus.Properties".
4802         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4803         DBUS_INTERFACE_PEER.
4804         Change the value from "org.freedesktop.Peer"
4805         to "org.freedesktop.DBus.Peer".
4806         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4807         DBUS_INTERFACE_LOCAL.
4808         Change the value from "org.freedesktop.Local"
4809         to "org.freedesktop.DBus.Local".
4810
4811         All other users of those constants have been changed.
4812
4813         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4814
4815         * glib/dbus-gobject.c (handle_introspect): Use constants.
4816
4817         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4818
4819 2005-02-17  Colin Walters  <walters@verbum.org>
4820
4821         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4822         (parse_node, parse_interface, parse_method, parse_signal)
4823         (parse_property, parse_annotation): Lose if we're currently in an
4824         annotation.
4825         (parse_annotation): New function.
4826         (parser_start_element, parser_end_element): Handle annotation.
4827         (parse_method, parse_interface): Remove support for c_name attribute,
4828         switch to annotations.
4829
4830         * glib/dbus-gidl.h (interface_info_get_binding_names)
4831         (method_info_get_binding_names)
4832         (interface_info_get_binding_name, method_info_get_binding_name)
4833         (interface_info_set_binding_name, method_info_set_binding_name):
4834         Remove.
4835         (interface_info_get_annotations, method_info_get_annotations)
4836         (interface_info_get_annotation, method_info_get_annotation)
4837         (interface_info_add_annotation, method_info_add_annotation):
4838         Prototype.
4839
4840         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4841         for "bindings".
4842         (struct MethodInfo): Ditto.
4843         Straightfoward conversion of binding methods into annotation methods
4844         as prototyped.
4845
4846         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4847
4848         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4849
4850         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4851         Use new annotation API.
4852
4853         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4854         annotation element.
4855         
4856         * doc/dbus-specification.xml: Discuss introspection annotations,
4857         include list of well-known annotations.
4858
4859         * test/glib/test-service-glib.xml: Make validate against new DTD.
4860
4861 2005-02-17  Colin Walters  <walters@verbum.org>
4862
4863         This patch is based on initial work from
4864         Paul Kuliniewicz <kuliniew@purdue.edu>.
4865
4866         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4867         initialization of GValue from dbus type to here.
4868         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4869         for the "glib-genmarshal" program from a DBus type.
4870         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4871         into the C name for it we use in the glib bindings.
4872         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4873         glib C type (not GValue).
4874         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4875
4876         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4877         from dbus-gobject.c.
4878
4879         * glib/dbus-gutils.h: Prototype it.
4880
4881         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4882         (marshal_dbus_message_to_g_marshaller): Use new shared function
4883         dbus_glib_marshal_dbus_message_to_gvalue_array.
4884
4885         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4886         Will be changed once we have annotations.
4887
4888         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4889         GStaticRWLock.  Callers updated.
4890         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4891         (string_table_next): New function for iterating over zero-terminated
4892         string value array.
4893         (string_table_lookup): New function; retrieves specific entry in
4894         array.
4895         (get_method_data): New function; look up method data in object data chunk.
4896         (object_error_domain_prefix_from_object_info)
4897         (object_error_code_from_object_info): New functions, but not implemented yet.
4898         (method_interface_from_object_info): New function; retrieve interface name.
4899         (method_name_from_object_info): New function; retrieve method name.
4900         (method_arg_info_from_object_info): New function; retrieve argument data.
4901         (arg_iterate): New function; iterates over serialized argument data.
4902         (method_dir_signature_from_object_info): New function; returns a
4903         GString holding type signature for arguments for just one
4904         direction (input or output).
4905         (method_input_signature_from_object_info)
4906         (method_output_signature_from_object_info): New functions.
4907         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4908         converts dbus message arguments into a GValue array.  Used for both
4909         signal handling and method invocation.
4910         (struct DBusGlibWriteIterfaceData): New utility structure.
4911         (write_interface): New function; generate introspection XML for
4912         an interface.
4913         (introspect_interfaces): New function; gathers all interface->methods,
4914         generates introspection XML for them.
4915         (handle_introspect): Invoke introspect_interfaces.
4916         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4917         (lookup_object_and_method): New function; examines an incoming message
4918         and attempts to match it up (via interface, method name, and argument
4919         signature) with a known object and method.
4920         (gerror_domaincode_to_dbus_error_name): New function; converts a
4921         GError domain and code into a DBus error name.  Needs GError data
4922         added to object introspection to work well.
4923         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4924         GError.
4925         (invoke_object_method): New function to invoke an object method
4926         looked up via lookup_object_and_method.  Parses the incoming
4927         message, turns it into a GValue array, then invokes the marshaller
4928         specified in the DBusGMethodInfo.  Creates a new message with
4929         either return values or error message as appropriate.
4930         (gobject_message_function): Invoke lookup_object_and_method and
4931         invoke_object_method.
4932
4933         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4934         (enum DBusBindingOutputMode): New enum for binding output modes.
4935         (pretty_print): Print binding names.
4936         (dbus_binding_tool_error_quark): GError bits.
4937         (version): Fix typo.
4938         (main): Create GIOChannel for output.  Parse new --mode argument,
4939         possible values are "pretty-print", "glib-server", "glib-client".
4940         Use mode to invoke appropriate function.
4941         
4942         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4943
4944         * glib/dbus-glib-tool.h: New header, just includes GError bits
4945         for now.
4946
4947         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4948         maps binding style to name.
4949         (struct MethodInfo): Ditto.
4950         (get_hash_keys, get_hash_key): Utility function, returns keys for
4951         a GHashTable.
4952         (interface_info_new, method_info_new): Initialize bindings.
4953         (interface_info_unref, method_info_unref): Destroy bindings.
4954         (method_info_get_binding_names, method_info_get_binding_name)
4955         (interface_info_get_binding_names, interface_info_get_binding_name):
4956         Functions for retrieving binding names.
4957         (method_info_set_binding_name, interface_info_set_binding_name):
4958         Functions for setting binding names.
4959
4960         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4961         for glib binding generation.
4962
4963         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4964         and client-side glib glue generation.
4965
4966         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4967         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4968         dbus-glib-tool.h.
4969
4970         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4971         of using GClosureMarshal directly.
4972         (struct DBusGObjectInfo): Add n_infos member.
4973
4974         * test/glib/test-service-glib.xml: New file; contains introspection data
4975         for MyTestObject used in test-service-glib.c.
4976
4977         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4978         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4979         (my_object_uppercase, my_object_many_args): New test methods.
4980         (main): Use dbus_g_object_class_install_info to include generated object
4981         info.
4982
4983         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4984         as well as client-side bindings.
4985
4986         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4987         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4988         using both the dbus_gproxy stuff directly as well as the generated bindings.
4989
4990 2005-02-15  Havoc Pennington  <hp@redhat.com>
4991
4992         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4993         complete a pending call, don't run filters first.
4994
4995         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4996         dbus_pending_call_steal_reply
4997
4998         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4999         _dbus_connection_block_pending_call
5000         (dbus_pending_call_get_reply): change to steal_reply and return a
5001         ref
5002
5003         * dbus/dbus-connection.c
5004         (dbus_connection_send_with_reply_and_block): port to work in terms
5005         of DBusPendingCall
5006         (_dbus_connection_block_pending_call): replace block_for_reply
5007         with this
5008
5009 2005-02-14  Havoc Pennington  <hp@redhat.com>
5010
5011         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5012         properly handle looking up group information by name; fix 
5013         from j@bootlab.org
5014
5015 2005-02-13  Havoc Pennington  <hp@redhat.com>
5016
5017         * dbus/dbus-connection.c (dbus_connection_return_message) 
5018         (dbus_connection_borrow_message): hold dispatch lock while message
5019         is outstanding
5020         (_dbus_connection_block_for_reply): hold dispatch lock while we
5021         block for the reply, so nobody steals our reply
5022         (dbus_connection_pop_message): hold the dispatch lock while we
5023         pluck the message
5024
5025 2005-02-13  Havoc Pennington  <hp@redhat.com>
5026
5027         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5028         (_dbus_connection_release_dispatch)
5029         (_dbus_connection_acquire_io_path)
5030         (_dbus_connection_release_io_path): make the mutex and condvar
5031         control access to the "acquired" flag. Drop the connection lock
5032         while waiting on the condvar. Hopefully these are baby steps in
5033         roughly the right direction.
5034
5035 2005-02-13  Havoc Pennington  <hp@redhat.com>
5036
5037         * dbus/dbus-connection.c: use separate mutexes for the condition
5038         variables; this is some kind of baseline for sanity, but the
5039         condition variables still aren't used correctly afaict
5040
5041 2005-02-13  Havoc Pennington  <hp@redhat.com>
5042
5043         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5044         fix a double-unlock
5045
5046         * dbus/dbus-connection.c
5047         (_dbus_connection_detach_pending_call_unlocked): add this
5048
5049         Initial semi-correct pass through to fix thread locking; there are
5050         still some issues with the condition variable paths I'm pretty
5051         sure
5052         
5053         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5054         lock/unlock calls
5055
5056         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5057         rename to add _unlocked
5058         (struct DBusConnection): move "dispatch_acquired" and
5059         "io_path_acquired" to use only one bit each.
5060         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5061         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5062         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5063         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5064         (_dbus_connection_remove_timeout) 
5065         (_dbus_connection_toggle_timeout): drop lock when calling out to
5066         user functions; done in a hacky/bad way.
5067         (_dbus_connection_send_and_unlock): add a missing unlock
5068         (_dbus_connection_block_for_reply): add a missing unlock
5069
5070         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5071         drop lock in a hacky probably unsafe way to call out to user
5072         function
5073
5074 2005-02-12  Havoc Pennington  <hp@redhat.com>
5075
5076         * tools/dbus-tree-view.c (info_set_func_text): display more
5077         details on args
5078
5079         * bus/driver.c (bus_driver_handle_list_services): list the bus
5080         driver
5081
5082         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5083
5084         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5085         (method_info_get_n_args): new function
5086
5087 2005-02-12  Havoc Pennington  <hp@redhat.com>
5088
5089         * bus/driver.c (bus_driver_handle_introspect): add introspection
5090         for bus driver
5091
5092 2005-02-12  Havoc Pennington  <hp@redhat.com>
5093
5094         * bus/driver.c: put the signature of each bus driver method in the
5095         table of handlers and check it on incoming calls; this isn't
5096         really useful, but going to add introspect support in a minute.
5097
5098 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5099
5100         * mono/Connection.cs: The unpredictability of finalizers in mono
5101         prevents us from deterministically disconnecting the filters from
5102         the Service class's finalizer, so move tracking of filters and
5103         matches here.  Add API for that.
5104
5105         * mono/Service.cs: Remove the code, add code which calls the
5106         methods now on the Connection class.
5107
5108 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5109
5110         * python/dbus.py (class Sender): added to support dbus signals better
5111         (Bus::add_signal_receiver): added expand_args parameter which defaults
5112         to True.  When expand args is True the signal handler will pass the 
5113         message arguments as parameters to the signal handler.  If False
5114         revert to previous behavior where the signal handler must get the
5115         argument list from the message.  This is to help port applications
5116         like HAL that have a tendancy to send variable length argument lists.
5117         self._match_rule_to_receivers is now a dict of dicts.
5118         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5119         removing it from a list
5120         (Bus::_signal_func): change signal handlers so that interface,
5121         signal_name, service, path and message are packed into a Sender
5122         object and that is passed to the handler.  If expand_args is True
5123         extract the args list from the message and append it to the parameter
5124         list
5125         
5126         * python/dbus_bindings.pyx.in (class Signature): added to support 
5127         signiature types
5128         (MessageIter::__init__): changed iteration limit to match D-BUS
5129         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5130         STRUCT and VARIENT type support
5131         (MessageIter::python_value_to_dbus_sig): made recursive to support
5132         recursive types
5133         (MessageIter::append*): added Signature, dict, tuple 
5134         support
5135
5136         * python/examples/example-client.py: added examples of getting tuples
5137         and dicts
5138
5139         * python/examples/example-service.py: added examples of sending tuples
5140         and dicts
5141
5142         * python/examples/example-signal-recipient.py: Fixed to handle new
5143         signal callback format
5144
5145 2005-02-10  Havoc Pennington  <hp@redhat.com>
5146
5147         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5148         (call dbus_g_proxy_add_signal)
5149
5150         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5151         escape the hostname
5152         (_dbus_server_new_for_domain_socket): escape the path
5153
5154         * dbus/dbus-address.c (dbus_address_escape_value): new
5155         (dbus_address_unescape_value): new
5156         (dbus_parse_address): unescape values
5157
5158         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5159
5160         * doc/dbus-specification.xml: explain how to escape values in
5161         addresses
5162
5163 2005-02-10  Havoc Pennington  <hp@redhat.com>
5164
5165         * dbus/dbus-message-factory.c (generate_special): modify test to
5166         avoid using a non-basic dict key
5167
5168         * dbus/dbus-marshal-validate-util.c: add test for the below
5169
5170         * doc/dbus-specification.xml: require that dict keys are a basic
5171         type
5172
5173         * dbus/dbus-marshal-validate.c
5174         (_dbus_validate_signature_with_reason): require that dict key is a
5175         basic type
5176
5177 2005-02-10  Havoc Pennington  <hp@redhat.com>
5178
5179         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5180         change to be _and_unlock instead of _unlocked
5181
5182         * dbus/dbus-connection.c
5183         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5184         have no_update so we can find this bug quickly in future
5185
5186 2005-02-10  Havoc Pennington  <hp@redhat.com>
5187
5188         * dbus/dbus-message-util.c (verify_test_message): tests for string
5189         array
5190
5191         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5192         support for arrays of string/signature/path
5193
5194 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5195
5196         * dbus/dbus-connection.c
5197         (_dbus_connection_queue_received_message_link,
5198         _dbus_connection_message_sent): Add the path to
5199         the verbose output.
5200         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5201         _dbus_connection_send_preallocated_unlocked(), updated the
5202         dispatch status, and unlocks.  Fixes a bug where certain
5203         situations (like a broken pipe) could cause a Disconnect message
5204         to not be sent, tricking the bus into thinking a service was still
5205         there when the process had quit.
5206         (_dbus_connection_send_preallocated): Call
5207         _dbus_connection_send_preallocated_and_unlock().
5208         (_dbus_connection_send_and_unlock): Added.  Calls
5209         _dbus_connection_send_preallocated_and_unlock().
5210         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5211         (dbus_connection_send_with_reply): Update the dispatch status and
5212         unlock.
5213
5214         * mono/Service.cs (~Service): Added.  Removes the filter so that
5215         we don't get unmanaged code calling back into a GCed delegate.
5216         (RemoveFilter); Added.
5217
5218 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5219
5220         * dbus/dbus-message.c (dbus_message_iter_open_container):
5221         - Removed check for iterator type being an array because
5222         get_arg_type does not work with writer iterators
5223         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5224
5225 2005-02-07  Havoc Pennington  <hp@redhat.com>
5226
5227         * doc/dbus-specification.xml: some more language cleanups; add
5228         stuff about how to deal with invalid protocol and extension
5229         points; add _ to allowed chars in auth commands; add EXTENSION_
5230         auth command prefix
5231
5232 2005-02-06  Havoc Pennington  <hp@redhat.com>
5233
5234         * s/expected/required/ in a couple places for clarity
5235
5236 2005-02-07  Colin Walters  <walters@verbum.org>
5237
5238         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5239         sender or proposed_recipient.
5240
5241 2005-02-06  Havoc Pennington  <hp@redhat.com>
5242
5243         * dbus/dbus-message-factory.c (generate_special): more tests
5244
5245         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5246         array length that exceeds the maximum
5247
5248 2005-02-05  Havoc Pennington  <hp@redhat.com>
5249
5250         * dbus/dbus-message-factory.c (generate_special): more test cases,
5251         increasing coverage
5252
5253         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5254         reason why a signature was invalid
5255
5256         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5257         skip the length of the string before we look at it in validation
5258
5259         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5260         equal_substring
5261
5262         * dbus/dbus-message.c (_dbus_message_loader_new): default
5263         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5264
5265 2005-02-05  Havoc Pennington  <hp@redhat.com>
5266
5267         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5268         if the signature of a variant was empty
5269         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5270         struct with no element type)
5271
5272         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5273         mangled messages to break things
5274
5275 2005-02-04  Havoc Pennington  <hp@redhat.com>
5276
5277         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5278         g_quark_try_string() so it actually can return 0
5279         (dbus_g_proxy_connect_signal): ditto
5280
5281 2005-02-04  Havoc Pennington  <hp@redhat.com>
5282
5283         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5284         bogus warning
5285         (tristring_from_message): assert cleanly on null path/interface
5286         (should not be possible though I decided later)
5287         (dbus_g_proxy_dispose): move proxy manager unregistration here
5288         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5289         g_return_if_fail() checks
5290
5291 2005-02-04  Havoc Pennington  <hp@redhat.com>
5292
5293         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5294
5295         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5296         (with some minor changes)
5297
5298         * doc/dbus-specification.xml: add deprecated attribute to
5299         introspection format
5300
5301 2005-01-31  Havoc Pennington  <hp@redhat.com>
5302
5303         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5304         think it's sort of right
5305
5306 2005-01-30  Havoc Pennington  <hp@redhat.com>
5307
5308         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5309
5310 2005-01-30  Havoc Pennington  <hp@redhat.com>
5311
5312         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5313
5314         * autogen.sh: change to autotools 1.9
5315
5316         * glib/dbus-gproxy.c: completely change how signals work
5317         (dbus_g_proxy_add_signal): new function to specify signature of a
5318         signal
5319         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5320         and g_warning if the incoming message has the wrong signature.
5321
5322 2005-01-30  Havoc Pennington  <hp@redhat.com>
5323
5324         * tools/dbus-names-model.c (have_names_notify): fix this
5325
5326         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5327         up the string array handling a bit 
5328
5329 2005-01-30  Havoc Pennington  <hp@redhat.com>
5330
5331         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5332         (dbus_g_pending_call_cancel): new function
5333
5334         * dbus/dbus-glib.h: move GType decls for connection/message here;
5335         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5336         here, just kind of rationalizing how we handle all that
5337
5338         * tools/dbus-names-model.c: new file for a tree model listing the
5339         services on a bus
5340
5341         * tools/dbus-tree-view.c (model_new): use proper typing on the
5342         model rows
5343
5344 2005-01-30  Havoc Pennington  <hp@redhat.com>
5345
5346         * glib/dbus-gmain.c: add a custom GSource back that just checks
5347         whether the message queue has anything in it; otherwise, there are 
5348         cases where we won't see messages in the queue since there was no 
5349         IO visible to the glib main loop
5350
5351         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5352         increase default message timeout to 25 seconds
5353
5354 2005-01-30  Havoc Pennington  <hp@redhat.com>
5355
5356         * test/glib/test-profile.c (no_bus_stop_server): remove the
5357         warning about the g_warning that I just fixed
5358
5359         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5360         custom source, seems to be a lot easier to understand and work
5361         better.
5362
5363 2005-01-30  Havoc Pennington  <hp@redhat.com>
5364
5365         I think this main loop thing is conceptually broken, but here are 
5366         some band aids. I'll maybe rewrite it in a minute.
5367         
5368         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5369         custom GSource, so don't pass it in; confusing
5370         (gsource_server_finalize, gsource_connection_finalize): add
5371         finalize handlers that remove all the watches.  
5372
5373 2005-01-30  Havoc Pennington  <hp@redhat.com>
5374
5375         * glib/dbus-gobject.c (introspect_properties): fix the XML
5376         generated
5377
5378         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5379         which effectively detects the use of freed messages
5380
5381         * glib/dbus-gobject.c (handle_introspect): modify and return the
5382         reply message instead of the incoming message
5383
5384         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5385         gee, maybe it should SEND THE XML instead of just making a string
5386         and freeing it again ;-)
5387
5388         * tools/dbus-print-message.c (print_message): improve printing of
5389         messages
5390
5391         * configure.in: add debug-glib.service to the output
5392
5393 2005-01-30  Havoc Pennington  <hp@redhat.com>
5394
5395         dbus-viewer introspected and displayed the bus driver
5396         
5397         * dbus/dbus-object-tree.c 
5398         (object_tree_test_iteration): add tests for a handler registered on "/"
5399
5400         * dbus/dbus-object-tree.c
5401         (_dbus_decompose_path): fix to handle path "/" properly
5402         (run_decompose_tests): add tests for path decomposition
5403         
5404         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5405         properly
5406
5407         * glib/dbus-gobject.c (handle_introspect): fix quotes
5408
5409         * test/glib/run-test.sh: support launching the bus, then running
5410         dbus-viewer
5411
5412         * test/glib/test-service-glib.c (main): put in a trivial gobject
5413         subclass and register it on the connection
5414
5415         * bus/driver.c (bus_driver_handle_introspect): implement
5416         introspection of the bus driver service
5417
5418         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5419         identifiers, doctype decl
5420
5421         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5422         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5423         returning the service unchanged.
5424         (bus_driver_handle_message): remove old check for reply_serial in
5425         method calls, now the message type deals with that
5426         (bus_driver_handle_message): handle NULL interface
5427
5428         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5429
5430         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5431         -1 for len
5432
5433         * tools/dbus-viewer.c: add support for introspecting a service on
5434         a bus
5435
5436         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5437         (dbus_g_pending_call_unref): add
5438
5439 2005-01-29  Havoc Pennington  <hp@redhat.com>
5440
5441         * tools/dbus-tree-view.c: add support for displaying properties.
5442         (run dbus-viewer with an introspect xml file as arg, then resize
5443         the window so the tree elements show up, not sure what that is)
5444
5445         * glib/dbus-gobject.c (handle_introspect): return
5446         org.freedesktop.Properties and org.freedesktop.Introspectable
5447         interfaces when we are introspected.
5448
5449         * doc/dbus-specification.xml: allow empty interface name when 
5450         Get/Set a property
5451
5452 2005-01-29  Havoc Pennington  <hp@redhat.com>
5453
5454         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5455         though it uses glib, it could be extended for any binding in
5456         principle
5457
5458         * glib/dbus-gobject.c (gobject_message_function): change to the
5459         new way properties work
5460
5461         * dbus/dbus-protocol.h: add the new interfaces
5462
5463         * doc/dbus-specification.xml: document the introspection format,
5464         Introspectable interface, and add an org.freedesktop.Properties
5465         interface.
5466
5467         * glib/dbus-gparser.c: add support for a <property> element
5468
5469         * glib/dbus-gidl.c: add PropertyInfo
5470
5471         * glib/dbus-gobject.c (handle_introspect): put the outermost
5472         <node> outside the signal and property descriptions.
5473         (introspect_properties): export properties as <property> rather
5474         than as method calls
5475
5476 2005-01-28  Havoc Pennington  <hp@redhat.com>
5477
5478         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5479         related to authentication protocol
5480
5481 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5482
5483         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5484                 - BUS_ACTIVATION -> BUS_STARTER
5485                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5486                 - class MessageIter (__init__): Added recursion checking 
5487                 so we throw a nice error instead of just disconnecting from the
5488                 bus.
5489                 (get): Added arg_type parameter for recursion.
5490                 Removed the nil type
5491                 Added signiture type placeholder (not implemented)
5492                 Added struct type placeholder (not implemented)
5493                 Added varient type placeholder (not implemented)
5494                 Commented out dict type for now     
5495                 (get_element_type): renamed from get_array_type
5496                 (get_*): changed to use the dbus_message_iter_get_basic API
5497                 (get_*_array): removed in favor of recursive get_array method
5498                 (get_array): new recursive method which calls get to marshal
5499                 the elements of the array
5500                 (value_to_dbus_sig): New method returns the corrasponding
5501                 dbus signiture to a python value
5502                 (append): Comment out dict handling for now
5503                 Handle lists with the new recursive API
5504                 Comment out None handling for now
5505                 (append_nil): removed
5506                 (append_*): changed to use dbus_message_iter_append_basic API
5507                 (append_*_array): removed in favor of recursive append_array 
5508                 method
5509                 (__str__): Make it easier to print out recursive iterators
5510                 for debugging
5511                 - class Message (__str__): moved type inspection to the
5512                 MessageIter class' __str__ method
5513                 (get_iter): Added an append parameter wich defaults to False
5514                 If True use the new API's to create an append iterator
5515
5516         * python/dbus.py: Update to use new bindings API
5517                 - TYPE_ACTIVATION -> TYPE_STARTER
5518                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5519                 - class ActivationBus -> class StarterBus
5520                 - class RemoteObject (__call__): get an append iterator
5521                 - (_dispatch_dbus_method_call): get an append iterator
5522                 - class Object (emit_signal): get an append iterator
5523
5524         * python/examples/: Fixed up the examples to work with the new API
5525                 
5526 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5527
5528         * configure.in: Bump version up to 0.30.
5529
5530         * HACKING: Add a release item to bump the version number up after 
5531         a release.
5532
5533 2005-01-28  Havoc Pennington  <hp@redhat.com>
5534
5535         * doc/dbus-specification.xml: update to describe 16-bit types and
5536         dict entries
5537
5538         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5539         assertion
5540
5541         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5542         type
5543
5544         * dbus/dbus-marshal-recursive.c: implement
5545
5546 2005-01-27  Havoc Pennington  <hp@redhat.com>
5547
5548         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5549
5550         * configure.in: find the right type for 16 and 32 bit ints as well
5551         as 64
5552
5553         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5554         the 16-bit types so people don't have to stuff them in 32-bit or
5555         byte arrays.
5556
5557 2005-01-27  Havoc Pennington  <hp@redhat.com>
5558
5559         * dbus/dbus-message.c: byteswap the message if you init an
5560         iterator to read/write from it
5561         
5562         * dbus/dbus-marshal-byteswap.c: new file implementing 
5563         _dbus_marshal_byteswap()
5564
5565         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5566
5567 2005-01-26  Havoc Pennington  <hp@redhat.com>
5568         
5569         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5570         build, apparently - nobody noticed?)
5571         
5572 2005-01-26  Havoc Pennington  <hp@redhat.com>
5573
5574         * dbus/dbus-marshal-recursive.h: remove todo comment
5575
5576 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5577
5578         * Land the mono binding changes to conform to the new APIs.
5579
5580         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5581         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5582
5583         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5584         type code as a string.
5585         (InitAppending): Rename dbus_message_append_iter_init() to
5586         dbus_message_iter_init_append().
5587
5588         * mono/BusDriver.cs: Rename ServiceEventHandler to
5589         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5590         Rename ServiceOwnerChanged to NameOwnerChanged.
5591
5592         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5593         underlying C call.
5594
5595         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5596
5597         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5598         dbus_bus_acquire_service() to dbus_bus_request_name().
5599
5600         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5601         of Type.UnderlyingSystemType to get the correct element type for
5602         the array.
5603         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5604         dbus_message_get_{element|arg}_type() instead of
5605         dbus_message_iter_init_array_iterator().
5606         (Append): Replace dbus_message_iter_append_array() with
5607         dbus_message_iter_open_container() and
5608         dbus_message_iter_close_container().
5609
5610         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5611         types have been removed.
5612         
5613         * mono/DBusType/*.cs: Replace calls of
5614         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5615         but specify the type in the DllImport extern declaration.  Ditto
5616         for dbus_message_iter_append_[type]() ->
5617         dbus_message_iter_append_basic().
5618
5619         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5620         NameOwnerChangedHandler.
5621
5622 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5623
5624         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5625                 - get_base_service -> get_unique_name
5626                 - bus_get_base_service -> bus_get_unique_name
5627                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5628                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5629                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5630                 - bus_activate_service -> bus_start_service_by_name
5631                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5632                 - bus_acquire_service -> bus_request_name
5633                 - dbus_bus_acquire_service -> dbus_bus_request_name
5634                 - bus_service_exists -> bus_name_has_owner
5635                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5636
5637         * python/dbus.py: Rename of methods
5638                 - activate_service -> start_service_by_name
5639                 - bus_acquire_service -> bus_request_name
5640                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5641                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5642
5643         
5644 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5645
5646         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5647         signature for the method that can't be found.
5648
5649         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5650         the message has any arguments, we need to call
5651         _dbus_type_reader_get_current_type(), not
5652         _dbus_type_reader_has_next().
5653
5654 2005-01-24  Havoc Pennington  <hp@redhat.com>
5655
5656         * dbus/dbus-message-factory.c: more testing of message validation
5657
5658         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5659         header
5660
5661 2005-01-23  Havoc Pennington  <hp@redhat.com>
5662
5663         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5664         get this all working, not many tests in the framework yet though
5665
5666 2005-01-22  Havoc Pennington  <hp@redhat.com>
5667
5668         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5669         tutorial, based on work from David Wheeler.
5670
5671 2005-01-21  Havoc Pennington  <hp@redhat.com>
5672
5673         * dbus/dbus-bus.c: add more return_if_fail checks
5674
5675         * dbus/dbus-message.c (load_message): have the "no validation"
5676         mode (have to edit the code to toggle the mode for now though)
5677
5678         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5679         skips all validation; I want to use this at least for benchmark
5680         baseline, I'm not sure if it should be a publicly-available switch.
5681
5682 2005-01-21  Havoc Pennington  <hp@redhat.com>
5683
5684         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5685         toplevel doxygen group as the low-level API stuff
5686
5687         * dbus/dbus.h: note that libdbus is the low-level API
5688
5689 2005-01-20  Havoc Pennington  <hp@redhat.com>
5690
5691         * update-dbus-docs.sh: script to update docs on the web site, only
5692         works for me though. neener.
5693
5694 2005-01-20  Havoc Pennington  <hp@redhat.com>
5695
5696         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5697         code can reveal bugs in it
5698
5699 2005-01-20  Havoc Pennington  <hp@redhat.com>
5700
5701         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5702         select() version, patches from Tor Lillqvist
5703
5704 2005-01-20  Havoc Pennington  <hp@redhat.com>
5705
5706         * doc/dbus-tutorial.xml: replace > with &gt;
5707
5708         * bus/services.c (bus_registry_acquire_service): validate the name
5709         and return a better error if it's no good.
5710
5711         * doc/dbus-specification.xml: note NO_AUTO_START change
5712
5713         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5714         from AUTO_START, we're toggling the default
5715
5716         * bus/dispatch.c: adapt the tests to change of auto-start default
5717
5718 2005-01-18  Havoc Pennington  <hp@redhat.com>
5719
5720         * rename dbus-daemon-1 to dbus-daemon throughout
5721
5722 2005-01-18  Havoc Pennington  <hp@redhat.com>
5723
5724         * Throughout, grand renaming to strip out the use of "service",
5725         just say "name" instead (or "bus name" when ambiguous).  Did not
5726         change the internal code of the message bus itself, only the
5727         programmer-facing API and messages.
5728         
5729         * doc/dbus-specification.xml: further update the message bus section
5730         
5731         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5732         in error case
5733
5734 2005-01-17  Havoc Pennington  <hp@redhat.com>
5735
5736         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5737         ever
5738
5739         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5740         "invalid name character" not only non-ASCII
5741
5742         * doc/dbus-specification.xml: further update spec, message bus 
5743         parts are still out-of-date but the marshaling etc. stuff is now
5744         accurate-ish
5745
5746 2005-01-17  Havoc Pennington  <hp@redhat.com>
5747
5748         * doc/dbus-specification.xml: partially update spec
5749
5750 2005-01-17  Havoc Pennington  <hp@redhat.com>
5751
5752         * Throughout, align variant bodies according to the contained
5753         type, rather than always to 8. Should save a fair bit of space in
5754         message headers.
5755         
5756         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5757         fix handling of case where p == end
5758
5759         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5760
5761 2005-01-17  Havoc Pennington  <hp@redhat.com>
5762
5763         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5764
5765         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5766         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5767         are marshaling/unmarshaling a boolean.
5768
5769 2005-01-16  Havoc Pennington  <hp@redhat.com>
5770
5771         This is about it on what can be disabled/deleted from libdbus
5772         easily, back below 150K anyhow. Deeper cuts are more work than 
5773         just turning the code off as I've done here.
5774         
5775         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5776         signed int convenience funcs
5777
5778         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5779         verbose mode
5780
5781         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5782         things out of libdbus
5783
5784         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5785         
5786         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5787         tests-enabled-only, though it should probably be deleted)
5788
5789         * dbus/dbus-message-util.c: same stuff
5790
5791         * dbus/dbus-auth-util.c: same stuff
5792
5793 2005-01-16  Havoc Pennington  <hp@redhat.com>
5794
5795         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5796
5797         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5798         way for stripping down dbus-userdb.c stuff included in libdbus.
5799         Rename _dbus_parse_uid for consistency.
5800
5801 2005-01-16  Havoc Pennington  <hp@redhat.com>
5802
5803         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5804         name the assertion failed in
5805
5806         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5807         (_dbus_return_val_if_fail): assert that the name of the function
5808         containing the check doesn't start with '_', since we only want to 
5809         use checks on public functions
5810         
5811         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5812         checks to assertions
5813
5814         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5815         change checks to asserts for private function
5816
5817         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5818         to asserts for private function
5819
5820         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5821         broken assertion that was breaking make check
5822         (_dbus_type_reader_array_is_empty): remove this rather than fix
5823         it, was only used in assertions
5824
5825 2005-01-16  Havoc Pennington  <hp@redhat.com>
5826
5827         * test/unused-code-gc.py: hacky script to find code that's used
5828         only by the bus (not libdbus) or used only by tests or not used at
5829         all. It has some false alarms, but looks like we can clean up a
5830         lot of size from libdbus.
5831
5832         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5833         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5834         
5835 2005-01-16  Havoc Pennington  <hp@redhat.com>
5836
5837         * Add and fix docs according to Doxygen warnings throughout
5838         source.
5839         
5840         * dbus/dbus-marshal-recursive.c
5841         (_dbus_type_reader_array_is_empty): change this to just call
5842         array_reader_get_array_len() and make it static
5843
5844         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5845         from get_array_type
5846         (dbus_message_iter_init_append): rename from append_iter_init
5847
5848         * dbus/dbus-marshal-recursive.c
5849         (_dbus_type_reader_get_element_type): rename from
5850         _dbus_type_reader_get_array_type
5851
5852 2005-01-15  Havoc Pennington  <hp@redhat.com>
5853
5854         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5855
5856         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5857         when DBUS_DISABLE_ASSERT
5858         (_dbus_marshal_set_basic): be sure we align for the string length
5859
5860         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5861         this look faster
5862
5863         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5864         inline macro version
5865         (_dbus_string_set_byte): provide inline macro version
5866
5867 2005-01-15  Havoc Pennington  <hp@redhat.com>
5868
5869         * Land the new message args API and type system.
5870
5871         This patch is huge, but the public API change is not 
5872         really large. The set of D-BUS types has changed somewhat, 
5873         and the arg "getters" are more geared toward language bindings;
5874         they don't make a copy, etc.
5875
5876         There are also some known issues. See these emails for details
5877         on this huge patch:
5878         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5879         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5880         
5881         * dbus/dbus-marshal-*: all the new stuff
5882
5883         * dbus/dbus-message.c: basically rewritten
5884
5885         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5886         freed blocks to be all non-nul bytes so using freed memory is less
5887         likely to work right
5888
5889         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5890         DBUS_FAIL_MALLOC=N environment variable, so you can do
5891         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5892         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5893         thorough.
5894
5895         * qt/message.cpp: port to the new message args API
5896         (operator<<): use str.utf8() rather than str.unicode()
5897         (pretty sure this is right from the Qt docs?)
5898
5899         * glib/dbus-gvalue.c: port to the new message args API
5900
5901         * bus/dispatch.c, bus/driver.c: port to the new message args API
5902
5903         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5904         "locked" flag to TRUE and align_offset to 0; I guess we never
5905         looked at these anyhow, but seems cleaner.
5906
5907         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5908         move allocation padding macro to this header; use it to implement
5909         (_DBUS_STRING_STATIC): ability to declare a static string.
5910
5911         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5912         change to return TRUE if the interface is not set.
5913
5914         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5915         to dbus-marshal-validate.[hc]
5916
5917         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5918         dbus-internals.c
5919
5920         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5921         to dbus-marshal-*.[hc]
5922
5923         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5924         function here from dbus-marshal.c
5925
5926 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5927
5928         * NEWS: Update for 0.23.
5929
5930         * configure.in: Release 0.23.
5931
5932 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5933
5934         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5935         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5936         behind.
5937
5938         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5939         uninstall"
5940
5941         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5942         is an enum, get the enum's underlying type.  Another mono
5943         1.1.3 fix.
5944
5945 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5946
5947         Patch from Sjoerd Simons <sjoerd@luon.net>
5948
5949         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5950         DESTDIR.  It breaks stuff.
5951
5952 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5953
5954         Patch from Tambet Ingo <tambet@ximian.com>
5955
5956         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5957         calling type.GetElementType().  The code previously depended on
5958         broken Mono behavior, which was fixed in Mono 1.1.3.
5959
5960         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5961         Activator.CreateInstance() so that the class's constructor is
5962         called with the right parameters.
5963
5964 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5965
5966         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5967
5968         * dbus/dbus-connection.c
5969         (_dbus_connection_queue_received_message_link): Call
5970         _dbus_connection_remove_timeout() instead of the _locked()
5971         variant, since it's always called from
5972         _dbus_connection_handle_watch(), which handles the locking.
5973         Removed the _locked() variant since it's no longer used.
5974
5975 2005-01-03  Havoc Pennington  <hp@redhat.com>
5976
5977         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5978         return
5979         
5980 2004-12-26  Havoc Pennington  <hp@redhat.com>
5981
5982         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5983
5984 2005-01-03  Havoc Pennington  <hp@redhat.com>
5985
5986         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5987         floating point
5988
5989         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5990
5991 2005-01-02  Havoc Pennington  <hp@redhat.com>
5992
5993         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5994
5995 2005-01-01  Havoc Pennington  <hp@redhat.com>
5996
5997         * configure.in: add -Wfloat-equal
5998
5999 2005-01-01  Havoc Pennington  <hp@redhat.com>
6000
6001         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6002         for a variety of reasons '==' doesn't do this.
6003
6004 2004-12-31  Havoc Pennington  <hp@redhat.com>
6005
6006         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6007         I keep wishing I had
6008
6009 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6010
6011         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6012
6013 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6014
6015         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6016         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6017         dbus-protocol.h.  Because they are defines and not enums they are not
6018         autogenerated.
6019
6020 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6021
6022         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6023         dbus_bus_activate_service
6024
6025         * python/dbus.py (Bus.activate_service): activate a service on the
6026         bus.
6027
6028 2004-12-24  Havoc Pennington  <hp@redhat.com>
6029
6030         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6031         file format has also changed and I haven't adapted to that yet
6032         
6033         * Makefile.am: load .gcno files from latest gcc
6034
6035 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6036         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6037
6038         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6039         lowlevel binding
6040
6041         * python/dbus.py (get_unix_user): Added binding to 
6042         call dbus_bindings.bus_get_unix_user
6043
6044         * python/extract.py: Modified the proto_pat regex to
6045         handle unsigned long
6046
6047 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6048
6049         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6050         better POSIX compliance.
6051
6052 2004-12-19  Havoc Pennington  <hp@redhat.com>
6053
6054         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6055         (_dbus_string_insert_8_aligned): new functions
6056
6057         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6058
6059 2004-12-18  Havoc Pennington  <hp@redhat.com>
6060
6061         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6062         macro
6063
6064         * dbus/dbus-message.c: fix a comment, and add a still-unused
6065         not-implemented function
6066
6067         * dbus/dbus-marshal.h: fix comment
6068
6069         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6070
6071 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6072
6073         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6074         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6075         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6076         Type.UnderlyingSystemType to get the actual system type
6077         underneath.  This code previously depended on the broken Mono
6078         behavior, which was fixed in 1.1.3.
6079
6080 2004-11-27  Havoc Pennington  <hp@redhat.com>
6081
6082         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6083         are disabled
6084         (_dbus_string_get_const_data): inline when asserts are disabled
6085
6086         * dbus/dbus-message.c: record the _dbus_current_generation of
6087         creation so we can complain if dbus_shutdown() is used improperly.
6088         Do this only if checks are enabled.
6089
6090         * dbus/dbus-connection.c: ditto
6091         
6092 2004-11-26  Havoc Pennington  <hp@redhat.com>
6093
6094         * test/glib/test-profile.c: add with_bus mode to profile echoes
6095         that go through the bus.
6096
6097         * test/glib/run-test.sh: add ability to run test-profile
6098
6099         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6100         config file reload.
6101
6102 2004-11-26  Havoc Pennington  <hp@redhat.com>
6103
6104         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6105         thing was implemented
6106
6107 2004-11-26  Havoc Pennington  <hp@redhat.com>
6108
6109         * test/glib/test-profile.c: tweak a bit, add support for some
6110         made-up minimal malloc overhead with plain sockets, since in 
6111         real life some sort of buffers are unavoidable thus we could 
6112         count them in the theoretical best case
6113
6114 2004-11-26  Havoc Pennington  <hp@redhat.com>
6115
6116         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6117         where I was trying to cache one too many messages
6118
6119 2004-11-26  Havoc Pennington  <hp@redhat.com>
6120
6121         * dbus/dbus-message.c: reimplement message cache as an array which 
6122         makes the cache about twice as fast and saves maybe 1.5% overall
6123
6124 2004-11-26  Havoc Pennington  <hp@redhat.com>
6125
6126         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6127         message cache lock here
6128
6129 2004-11-26  Havoc Pennington  <hp@redhat.com>
6130
6131         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6132         the "char byte_order" next to each other to save 4 bytes
6133         (dbus_message_new_empty_header): reduce preallocation, since the
6134         message cache should achieve a similar effect
6135         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6136         message cache that keeps a few DBusMessage around in a pool,
6137         another 8% speedup or so.
6138
6139         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6140
6141 2004-11-25  Havoc Pennington  <hp@redhat.com>
6142
6143         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6144         to write, without reading or blocking, try it before the poll()
6145         and skip the poll() if nothing remains to write. This is about a
6146         3% speedup in the echo client/server
6147
6148 2004-11-25  Havoc Pennington  <hp@redhat.com>
6149
6150         The primary change here is to always write() once before adding
6151         the write watch, which gives us about a 10% performance increase.
6152         
6153         * dbus/dbus-transport-unix.c: a number of modifications to cope
6154         with removing messages_pending
6155         (check_write_watch): properly handle
6156         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6157         messages_pending stuff
6158         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6159         AUTHENTICATED cases
6160         (unix_handle_watch): after writing, see if the write watch can be
6161         removed
6162         (unix_do_iteration): assert that write_watch/read_watch are
6163         non-NULL rather than testing that they aren't, since they 
6164         aren't allowed to be NULL. check_write_watch() at the end so 
6165         we add the watch if we did not finish writing (e.g. got EAGAIN)
6166
6167         * dbus/dbus-transport-protected.h: remove messages_pending call,
6168         since it resulted in too much inefficient watch adding/removing; 
6169         instead we now require that the transport user does an iteration 
6170         after queueing outgoing messages, and after trying the first
6171         write() we add a write watch if we got EAGAIN or exceeded our 
6172         max bytes to write per iteration setting
6173
6174         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6175         function
6176
6177         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6178         freed and then accessed, valgrind flagged this bug, fix it
6179
6180         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6181         as the last valid field plus 1, where really it is equal to the
6182         last valid field. Corrects some message corruption issues.
6183
6184         * dbus/dbus-mainloop.c: verbosity changes
6185
6186         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6187         instead of aborting in one of the test codepaths
6188
6189         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6190         caused not printing the pid ever again if a verbose was missing
6191         the newline at the end
6192         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6193
6194         * dbus/dbus-connection.c: verbosity changes; 
6195         (dbus_connection_has_messages_to_send): new function
6196         (_dbus_connection_message_sent): no longer call transport->messages_pending
6197         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6198         try to write() immediately, so we can avoid the write watch. This
6199         is the core purpose of this patchset
6200         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6201         dump the outgoing message queue, so nobody will get confused
6202         trying to send them or thinking stuff is pending to be sent
6203
6204         * bus/test.c: verbosity changes
6205
6206         * bus/driver.c: verbosity/assertion changes
6207
6208         * bus/dispatch.c: a bunch of little tweaks to get it working again
6209         because this patchset changes when/where you need to block.
6210
6211 2004-11-23  Havoc Pennington  <hp@redhat.com>
6212
6213         * test/glib/test-profile.c: modify to accept a plain_sockets
6214         argument in which case it will bench plain sockets instead of
6215         libdbus, for comparison purposes.
6216
6217 2004-11-22  Havoc Pennington  <hp@redhat.com>
6218
6219         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6220         threads for more time, so sysprof can get a grip on it.
6221
6222         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6223         pointless variable
6224
6225 2004-11-13  Havoc Pennington  <hp@redhat.com>
6226
6227         * test/glib/test-profile.c: fix this thing up a bit
6228
6229         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6230         preallocation sizes by a fair bit; not sure if this will be an
6231         overall performance win or not, but it does reduce reallocs.
6232
6233         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6234         the test hack that forced constant realloc if asserts are
6235         disabled, so we can profile sanely. Sprinkle in some
6236         _DBUS_UNLIKELY() which are probably pointless, but before I
6237         noticed the real performance problem I put them in.
6238         (_dbus_string_validate_utf8): micro-optimize this thing a little
6239         bit, though callgrind says it didn't help; then special-case
6240         ascii, which did help a lot; then be sure we detect nul bytes as
6241         invalid, which is a bugfix.
6242         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6243         superstition; use memset to nul the padding instead of a manual
6244         loop.
6245         (_dbus_string_get_length): inline this as a
6246         macro; it showed up in the profile because it's used for loop
6247         tests and so forth
6248
6249 2004-11-10  Colin Walters  <walters@verbum.org>
6250
6251         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6252         for extra paranoia.
6253
6254 2004-11-09  Colin Walters  <walters@verbum.org>
6255
6256         * dbus/dbus-string.c (_dbus_string_get_length): New
6257         function, writes DBusString to C buffer.
6258
6259         * dbus/dbus-string.h: Prototype it.
6260
6261         * dbus/dbus-message.c (dbus_message_type_to_string): New
6262         function, converts message type into C string.
6263
6264         * dbus/dbus-message.h: Prototype it.
6265
6266         * bus/selinux.c (bus_selinux_check): Take source pid,
6267         target pid, and audit data.  Pass audit data to
6268         avc_has_perm.
6269         (log_audit_callback): New function, appends extra
6270         audit information.
6271         (bus_selinux_allows_acquire_service): Also take
6272         service name, add it to audit data.
6273         (bus_selinux_allows_send): Also take message
6274         type, interface, method member, error name,
6275         and destination, and add them to audit data.
6276         (log_cb): Initialize func_audit.
6277         
6278         * bus/selinux.h (bus_selinux_allows_acquire_service)
6279         (bus_selinux_allows_send): Update prototypes 
6280
6281         * bus/services.c (bus_registry_acquire_service): Pass
6282         service name to bus_selinux_allows_acquire_service.
6283
6284         * bus/bus.c (bus_context_check_security_policy): Pass
6285         additional audit data.  Move assignment of dest
6286         to its own line.
6287
6288 2004-11-07  Colin Walters  <walters@verbum.org>
6289
6290         * dbus/dbus-transport-unix.c (do_authentication): Always
6291         initialize auth_completed.
6292         
6293 2004-11-07  Colin Walters  <walters@verbum.org>
6294
6295         * bus/bus.c (load_config): Break into three
6296         separate functions: process_config_first_time_only,
6297         process_config_every_time, and process_config_postinit.
6298         (process_config_every_time): Move call of
6299         bus_registry_set_service_context_table into
6300         process_config_postinit.
6301         (process_config_postinit): New function, does
6302         any processing that needs to happen late
6303         in initialization (and also on reload).
6304         (bus_context_new): Instead of calling load_config,
6305         open config parser here and call process_config_first_time_only
6306         and process_config_every_time directly.  Later, after
6307         we have forked but before changing UID,
6308         invoke bus_selinux_full_init, and then call
6309         process_config_postinit.
6310         (bus_context_reload_config): As in bus_context_new,
6311         load parse file inside here, and call process_config_every_time
6312         and process_config_postinit.
6313
6314         * bus/services.h, bus/services.c
6315         (bus_registry_set_service_context_table): Rename
6316         from bus_registry_set_sid_table.  Take string hash from config
6317         parser, and convert them here into SIDs.
6318
6319         * bus/config-parser.c (struct BusConfigParser): Have
6320         config parser only store a mapping of service->context
6321         string.
6322         (merge_service_context_hash): New function.
6323         (merge_included): Merge context string hashes instead
6324         of using bus_selinux_id_table_union.
6325         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6326         simply create a new string hash.
6327         (bus_config_parser_unref): Unref it.
6328         (start_selinux_child): Simply insert strings into hash,
6329         don't call bus_selinux_id_table_copy_over.
6330
6331         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6332         (bus_selinux_id_table_copy_over): Delete.
6333
6334 2004-11-03  Colin Walters  <walters@verbum.org>
6335
6336         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6337         variables.
6338         
6339 2004-11-03  Colin Walters  <walters@verbum.org>
6340
6341         * bus/test-main.c (test_pre_hook): Fix test logic,
6342         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6343
6344 2004-11-02  Colin Walters  <walters@redhat.com>
6345
6346         * bus/selinux.c (bus_selinux_init): Split into two functions,
6347         bus_selinux_pre_init and bus_selinux_post_init.
6348         (bus_selinux_pre_init): Just determine whether SELinux is
6349         enabled.
6350         (bus_selinux_post_init): Do everything else.
6351
6352         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6353         config file, and bus_selinux_post_init after.  This ensures that
6354         we don't lose the policyreload notification thread that
6355         bus_selinux_init created before forking previously.
6356         
6357         * bus/test-main.c (test_pre_hook): Update for split.
6358
6359 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6360
6361         Patch from Johan Fischer <linux@fischaz.com>
6362         
6363         * mono/doc/Makefile.am (install-data-local): Added directory
6364         install for DESTDIR
6365
6366 2004-10-29  Colin Walters  <walters@redhat.com>
6367
6368         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6369         parameter for fd to write pid to.       
6370
6371         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6372         
6373         * bus/bus.c (bus_context_new): Pass print_pid_fd
6374         to _dbus_become_daemon (bug #1720)
6375
6376 2004-10-29  Colin Walters  <walters@redhat.com>
6377
6378         Patch from Ed Catmur <ed@catmur.co.uk>
6379
6380         * mono/doc/Makefile.am (install-data-local): Handle
6381         DESTDIR.
6382
6383 2004-10-29  Colin Walters  <walters@redhat.com>
6384
6385         * bus/.cvsignore, qt/.cvsignore: Update.
6386
6387 2004-10-29  Colin Walters  <walters@redhat.com>
6388
6389         Patch from Kristof Vansant <de_lupus@pandora.be>
6390
6391         * configure.in: Detect Slackware.
6392         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6393         * bus/rc.messagebus.in: New file.
6394
6395 2004-10-29  Colin Walters  <walters@redhat.com>
6396
6397         * tools/dbus-monitor.c (filter_func): Return
6398         DBUS_HANDLER_RESULT_HANDLED in filter function
6399         for now.  See:
6400         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6401
6402 2004-10-29  Colin Walters  <walters@redhat.com>
6403
6404         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6405
6406         * bus/services.c (bus_registry_acquire_service): 
6407         Correctly retrieve service name from DBusString
6408         for printing.
6409
6410 2004-10-29  Colin Walters  <walters@redhat.com>
6411
6412         * dbus/dbus-glib.h: Update documentation to not
6413         refer to internal APIs.
6414
6415 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6416
6417         * mono/Arguments.cs (GetDBusTypeConstructor):
6418         type.UnderlyingSystemType will return "System.Byte" if you do it
6419         on "byte[]", which is not what we want.  So check the type.IsArray
6420         property and use System.Array instead.
6421
6422 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6423
6424         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6425         the DBusUserInfo structure since this is passed into the function.
6426         This would cause a double free when the function that allocated
6427         the structure would try to free it when an error occured.
6428
6429         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6430         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6431         for service activation to avoid 32bit/64bit parallel install issues
6432
6433 2004-10-21  Colin Walters  <walters@verbum.org>
6434
6435         * AUTHORS: Fix my email address, the @gnu.org one
6436         has been bouncing for some time.  Also add J5.
6437         
6438 2004-10-21  Colin Walters  <walters@verbum.org>
6439
6440         * dbus/dbus-transport-unix.c (do_authentication): Return
6441         authentication status to callers.
6442         (unix_handle_watch): If we completed authentication this round,
6443         don't do another read.  Instead wait until the next iteration,
6444         after we've read any pending data in the auth buffer.
6445         (unix_do_iteration): Ditto.
6446         (unix_handle_watch): Updated for new do_authentication prototype.
6447
6448 2004-10-18  Colin Walters  <walters@verbum.org>
6449
6450         * bus/selinux.c (bus_selinux_enabled): Handle
6451         --disable-selinux case.
6452         
6453 2004-10-18  Colin Walters  <walters@verbum.org>
6454
6455         * bus/selinux.h: Add bus_selinux_enabled.
6456         
6457         * bus/selinux.c (bus_selinux_enabled): Implement it.
6458         
6459         * bus/config-parser.c (struct include): Add
6460         if_selinux_enabled member.
6461         (start_busconfig_child): Parse if_selinux_enabled
6462         attribute for include.
6463         (bus_config_parser_content): Handle it.
6464
6465         * bus/session.conf.in, bus/system.conf.in: Add
6466         inclusion of context mapping to default config files;
6467         conditional on SELinux being enabled.
6468         
6469         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6470         
6471         * test/data/invalid-config-files/badselinux-1.conf, 
6472         test/data/invalid-config-files/badselinux-2.conf:
6473         Test files for bad syntax.
6474         
6475 2004-10-17  Colin Walters  <walters@verbum.org>
6476
6477         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6478         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6479         format specifier mismatches.
6480
6481 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6482
6483         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6484         format string.
6485
6486         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6487         pointer (bug #1540, Leonardo Boiko).
6488
6489 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6490
6491         * mono/BusDriver.cs: Changed BusDriver struct to remove
6492         the ServiceCreated and ServiceDeleted events and replace them
6493         with the new ServiceOwnerChanged event.
6494
6495         * mono/example/BusListener.cs: Added a new example program,
6496         which listens for and reports any ServiceOwnerChanged events
6497         on the bus driver.
6498
6499         * mono/example/Makefile.am (DESTDIR): Build changes for the
6500         new BusListener.cs example.
6501
6502 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6503
6504         * bus/signals.c (bus_match_rule_parse): validate the components of
6505         match rules (bug #1439).
6506
6507         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6508
6509 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6510
6511         * doc/dbus-specification.xml: document ServiceOwnerChanged
6512         signal.
6513         
6514         * bus/driver.c, bus/driver.h, bus/services.c: Use
6515         ServiceOwnerChanged signal instead of ServiceCreated and
6516         ServiceDeleted.
6517         
6518         * bus/dispatch.c: update testcase for the new signal.
6519
6520 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6521
6522         Patch from Nat Friedman <nat@novell.com>
6523
6524         * mono/Makefile.am: A number of small build fixes to allow "make
6525         distcheck" to succeed.
6526
6527         * mono/example/Makefile.am: "make distcheck" fixes.
6528
6529         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6530         key in @srcdir@.
6531
6532         * test/Makefile.am: "make distcheck" fixes.
6533
6534 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6535
6536         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6537
6538         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6539
6540         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6541         messages after the first one (bug #1389).
6542         
6543         * bus/dispatch.c (check_double_hello_message): add a test case for
6544         the double hello message bug.
6545         (check_existent_service_activation): fix check of spawning error.
6546         
6547 2004-09-16  David Zeuthen  <david@fubar.dk>
6548
6549         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6550
6551 2004-09-12  David Zeuthen  <david@fubar.dk>
6552
6553         Patch from Kay Sievers <kay.sievers@vrfy.org>
6554
6555         * bus/bus.c (bus_context_new):
6556         * bus/bus.h:
6557         * bus/main.c (usage)
6558         (main):
6559         Add commandline option --nofork to override configuration file
6560         setting.
6561
6562 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6563
6564         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6565         compilers don't like it (bug #974).
6566
6567 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6568
6569         * qt/connection.*: Applied patch by Jérôme Lodewyck
6570         <lodewyck@clipper.ens.fr> to integrate an existing
6571         connection into the Qt eventloop
6572
6573 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6574
6575         * mono/BusDriver.cs: Added.  This is a class for interacting with
6576         the org.freedesktop.DBus service.
6577
6578         * mono/Message.cs: Added a mechanism to expose the message that is
6579         currently being dispatched via the static Message.Current
6580         property.  Added Message.Sender and Message.Destination
6581         properties.
6582
6583         * mono/Handler.cs: Expose the dispatched message via
6584         Message.Current when handling method calls.
6585
6586         * mono/Service.cs: Expose the dispatched message via
6587         Message.Current when handling signal emissions.
6588         
6589         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6590         Connection.BaseService property.
6591
6592 2004-08-28  Havoc Pennington  <hp@redhat.com>
6593
6594         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6595
6596         More fixes from Steve Grubb
6597         
6598         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6599         (_dbus_listen_tcp_socket): fix fd leak
6600
6601         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6602         EINTR to a bit lower in the code
6603
6604 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6605
6606         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6607         TRUE if we are inquiring about the existence of the built-in
6608         org.freedesktop.DBus service.
6609
6610 2004-08-25  John Palmieri  <johnp@redhat.com>
6611         * bus/config-parser.c:
6612         (struct PolicyType): Add POLICY_CONSOLE
6613         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6614         (start_busconfig_child): Sets up console element when
6615         <policy at_console=""> is encountered in a policy file
6616         (append_rule_from_element): Convert console elements to console
6617         rules.
6618
6619         * bus/policy.c: 
6620         (bus_policy_create_client_policy): Add console rules to the client
6621         policy based on if the client is at the console
6622         (bus_policy_append_console_rule): New function for adding a
6623         console rule to a policy
6624         (bus_policy_merge): Handle console rule merging
6625
6626         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6627         where we check for console user files
6628         
6629         * dbus/dbus-sysdeps.c:
6630         (_dbus_file_exists): New function which checks if the given
6631         file exists
6632         (_dbus_user_at_console): New function which does the system
6633         specific process of checking if the user is at the console
6634
6635         * dbus/dbus-userdb.c:
6636         (_dbus_is_console_user): New function converts a UID to user name
6637         and then calls the system specific _dbus_user_at_console to 
6638         see if the user is at the console and therefor a console user
6639
6640 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6641
6642         * bus/config-parser.c (set_limit):
6643         * bus/dbus-daemon-1.1.in:
6644         * test/data/valid-config-files/many-rules.conf: set the
6645         max_match_rules_per_connection limt from the config file. 
6646
6647         * doc/busconfig.dtd: update the DTD.
6648
6649         * bus/driver.c: remove some unused variables.
6650
6651 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6652
6653         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6654         it's been replaced by dbus_g_bus_get
6655
6656 2004-08-23  Colin Walters  <walters@redhat.com>
6657
6658         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6659
6660         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6661
6662         * bus/selinux.c: Create a thread for policy reload notification.
6663         (bus_selinux_get_policy_root): Implement.
6664
6665         * bus/config-parser.c (start_busconfig_child)
6666         (bus_config_parser_content): Support SELinux-root relative
6667         inclusion.
6668
6669         * configure.in <HAVE_SELINUX>: Add -lpthread.
6670         
6671         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6672         (test_post_hook): Move memory checking into here.
6673         (test_pre_hook, test_post_hook): Move SELinux checks in
6674         here, but conditional on a DBUS_TEST_SELINUX environment
6675         variable.  Unfortunately we can't run the SELinux checks
6676         as a normal user, since they won't have any permissions
6677         for /selinux.  So this will have to be tested manually
6678         for now, until we have virtualization for most of
6679         libselinux.
6680         
6681 2004-08-23  Havoc Pennington  <hp@redhat.com>
6682
6683         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6684         drop supplementary groups, suggested by Steve Grubb
6685
6686 2004-08-20  Colin Walters  <walters@redhat.com>
6687
6688         * bus/config-parser.c (start_busconfig_child): Remove some unused
6689         variables.
6690         
6691         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6692         warning.
6693
6694 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6695
6696         * configure.in: If --enable-mono is passed in, if we can't find
6697         mono error out.
6698
6699         * mono/Makefile.am: Use /gacutil to install assemblies into the
6700         GAC and not /root.
6701
6702 2004-08-12  Havoc Pennington  <hp@redhat.com>
6703
6704         * NEWS: update for 0.22
6705
6706         * configure.in: release 0.22
6707
6708 2004-08-11  Colin Walters  <walters@redhat.com>
6709
6710         * tools/dbus-send.c (main, usage): Add --reply-timeout
6711         argument.
6712
6713 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6714
6715         * bus/bus.c (process_config_first_time_only): get rid of an unused
6716         DBusError that was causing a memoy leak (bug #989).
6717
6718         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6719         fix compilation on Solaris/Forte C (bug #974)
6720
6721         * bus/main.c (main): plug two minuscule memleaks.
6722
6723 2004-08-10  Havoc Pennington  <hp@redhat.com>
6724
6725         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6726
6727 2004-08-09  Havoc Pennington  <hp@redhat.com>
6728
6729         * COPYING: switch to Academic Free License version 2.1 instead of
6730         2.0, to resolve complaints about patent termination clause.
6731
6732 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6733
6734         * README: added documentation for the --enable-python 
6735         configure switch.
6736
6737 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6738
6739         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6740         _unref in the SELinux support.
6741
6742         * doc/busconfig.dtd: update DTD for SELinux support.
6743
6744         * bus/config-loader-libxml.c: fix error handler and parser
6745         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6746
6747         * configure.in: remove the warning about libxml2.
6748
6749         * dbus/dbus-bus.c: silence doxygen warning.
6750
6751 2004-07-31  Colin Walters  <walters@redhat.com>
6752
6753         * configure.in: Move #error in SELinux check to its own line.
6754
6755 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6756
6757         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6758         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6759         dbus_error_set.
6760
6761         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6762         broken by the change in the _SET_OOM macros.
6763
6764 2004-07-31  Colin Walters  <walters@redhat.com>
6765
6766         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6767         BUS_SET_OOM.
6768
6769 2004-07-31  Colin Walters  <walters@redhat.com>
6770
6771         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6772         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6773         AC_MSG_CHECKING.
6774
6775 2004-07-24  Havoc Pennington  <hp@redhat.com>
6776
6777         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6778
6779         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6780         functionality
6781
6782         * configure.in: add --enable-selinux
6783         
6784         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6785
6786         * bus/main.c (main): initialize and shut down selinux
6787
6788         * bus/connection.c: store SELinux ID on each connection, to avoid 
6789         repeated getting of the string context and converting it into 
6790         an ID
6791
6792         * bus/bus.c (bus_context_get_policy): new accessor, though it
6793         isn't used
6794         (bus_context_check_security_policy): check whether the security
6795         context of sender connection can send to the security context of
6796         recipient connection
6797
6798         * bus/config-parser.c: add parsing for <selinux> and <associate>
6799         
6800         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6801         implement dbus_connection_get_unix_fd()
6802
6803         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6804         function, used by the selinux stuff
6805         
6806 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6807
6808         * bus/config-loader-libxml.c: complete the implementation of
6809         libxml backend for config file loader. Doesn't work with full OOM
6810         test yet. 
6811         
6812         * configure.in: change error when selecting libxml into a warning.
6813         
6814         * test/data/invalid-config-files: add two non-well-formed XML
6815         files. 
6816         
6817         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6818         
6819         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6820         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6821         be necessary to read all the buffer. (bug #894)
6822
6823         * bus/activation.c (bus_activation_activate_service): fix a
6824         potential assertion failure (bug #896). Small optimization in the
6825         case of auto-activation messages.
6826
6827         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6828         add test case for byte-through-vararg bug (#901). patch by Kimmo
6829         Hämäläinen. 
6830
6831 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6832
6833         * python/dbus.py:
6834         * python/dbus_bindings.pyx.in:
6835         Add dbus.init_gthreads (), allow emit_signal to pass
6836         arguments to the signal.
6837         
6838 2004-07-24  Havoc Pennington  <hp@redhat.com>
6839
6840         * AUTHORS: add some people, not really comprehensively, let me
6841         know if I missed you
6842
6843 2004-07-24  Havoc Pennington  <hp@redhat.com>
6844
6845         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6846         Owen
6847
6848         * test/Makefile.am (DIST_SUBDIRS): here also
6849
6850 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6851
6852         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6853         breaking build on Solaris, reported by Farhad Saberi on the ML.
6854
6855         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6856         va_arg invocation to account for integer promotion in the case of
6857         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6858
6859         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6860         _dbus_list_get_first_link, not _dbus_list_get_first.
6861
6862         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6863
6864         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6865         handler functions so that the asserts in _dbus_object_subtree_unref
6866         do not fail.
6867
6868         * dbus/dbus-transport-unix.c (do_reading):
6869         _dbus_transport_queue_messages return value is of type
6870         dbus_bool_t, not DBusDispatchStatus.
6871         
6872 2004-07-19  David Zeuthen  <david@fubar.dk>
6873
6874         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6875
6876         * bus/dispatch.c:
6877         (check_get_connection_unix_user): Debug says GetProperty; but the
6878         method is called GetConnectionUnixUser
6879         (check_get_connection_unix_process_id): New function
6880         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6881         also call check_get_connection_unix_process_id()
6882         
6883         * bus/driver.c:
6884         (bus_driver_handle_get_connection_unix_process_id): New function,
6885         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6886         interface
6887         
6888         * dbus/dbus-auth.c:
6889         (handle_server_data_external_mech): Set pid from the credentials
6890         obtained from the socket
6891         
6892         * dbus/dbus-connection.c:
6893         (dbus_connection_get_unix_process_id): New function
6894         
6895         * dbus/dbus-connection.h: 
6896         Add prototype for dbus_connection_get_unix_process_id
6897         
6898         * dbus/dbus-transport.c:
6899         (_dbus_transport_get_unix_process_id): New function
6900         
6901         * dbus/dbus-transport.h:
6902         Add prototype for _dbus_transport_get_unix_process_id
6903         
6904 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6905
6906         * dbus/dbus-message.c: Message counter fix, patch by Christian
6907         Hammond <chipx86@gnupdate.org>
6908
6909 2004-07-18  Seth Nickell  <seth@gnome.org>
6910
6911         * python/dbus.py:
6912         * python/dbus_bindings.pyx.in:
6913         * python/tests/test-client.py:
6914
6915         Add dbus.ByteArray and dbus_bindings.ByteArray
6916         types so that byte streams can be passed back.
6917
6918         Give jdahlin the heaps of credit that are so
6919         rightfully his.
6920         
6921 2004-07-12  Seth Nickell  <seth@gnome.org>
6922
6923         * python/dbus.py:
6924
6925         Add message argument to the default object_method_handler
6926         function.
6927         
6928         * python/dbus_bindings.pyx.in:
6929
6930         Automatically return NIL when passed an empty list
6931         (we can't pass back a list since lists are typed
6932         and we don't have any idea what type the the client
6933         intended the list to be... :-( )
6934         
6935 2004-07-10  Seth Nickell  <seth@gnome.org>
6936
6937         * python/examples/Makefile.am:
6938
6939         Fix distcheck breakage caused by new examples.
6940
6941 2004-07-10  Seth Nickell  <seth@gnome.org>
6942
6943         * python/dbus.py:
6944
6945         Add "message" argument to service-side dbus.Object
6946         methods. This will break existing services written
6947         using the python bindings, but will allow extraction
6948         of all the message information (e.g. who its from).
6949
6950         Add improved "object oriented" signal handling/emission.
6951         
6952         * python/examples/example-service.py:
6953
6954         Nix this example.
6955         
6956         * python/examples/example-signal-emitter.py:
6957         * python/examples/example-signal-recipient.py:
6958
6959         Two new examples that show how to emit and receive
6960         signals using the new APIs.
6961         
6962         * python/examples/example-signals.py:
6963         * python/examples/gconf-proxy-service.py:
6964         * python/examples/gconf-proxy-service2.py:
6965
6966         Add "message" argument to service methods.
6967
6968 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6969
6970         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6971         * dbus/bus.c (dbus_bus_get_unix_user)
6972         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6973         method of org.freedesktop.DBus interface.
6974
6975         * bus/dispatch.c: test case
6976
6977 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6978
6979         * python/Makefile.am: switched include directory from glib/ to dbus/
6980         since dbus-glib.h moved
6981  
6982 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6983
6984         * configure.in: prevent building the gcj stuff and libxml loader
6985         since they are broken.
6986
6987 2004-06-20  Havoc Pennington  <hp@redhat.com>
6988
6989         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6990         codes from the dbus error names
6991         
6992         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6993         as dbus/dbus-glib.h and that breakage is now visible due to 
6994         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6995         
6996         * glib/dbus-glib.h: s/gproxy/g_proxy/
6997
6998         * dbus/dbus-shared.h: new header to hold stuff shared with
6999         binding APIs
7000         
7001         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7002         than dbus-errors.h
7003
7004         * glib/dbus-glib.h (dbus_set_g_error): move to
7005         dbus-glib-lowlevel.h
7006
7007         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7008         of stuff to enable this
7009
7010         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7011
7012         * a bunch of other changes with the same basic "separate glib 
7013         bindings from dbus.h" theme
7014         
7015 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7016
7017         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7018
7019         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7020
7021 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7022
7023         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7024         the reply value of the ServiceExists message.
7025
7026 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7027
7028         * python/dbus_bindings.pyx.in: No longer need to parse path
7029         elements and pass them as arrays of strings.  The C API now
7030         accepts plain path strings.
7031         (_build_parsed_path): removed 
7032
7033 2004-06-07  Havoc Pennington  <hp@redhat.com>
7034
7035         * doc/TODO: remove auto-activation item since it's done; sort
7036         items by importance/milestone
7037
7038 2004-06-07  Havoc Pennington  <hp@redhat.com>
7039
7040         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7041         random signature when using REQUIRED_FIELDS (this hack won't work
7042         in the long term)
7043
7044         * dbus/dbus-message.c: change the signature to be a header field,
7045         instead of message->signature special-case string. Incremental
7046         step forward. Then we can fix up code to send the signature in the
7047         message, then fix up code to validate said signature, then fix up
7048         code to not put the typecodes inline, etc.
7049         (load_one_message): don't make up the signature after the fact
7050         (decode_header_data): require signature field for the known
7051         message types
7052
7053         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7054
7055         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7056
7057 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7058
7059         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7060
7061         * mono/Handler.cs: Updated to follow new path argument for
7062         (un-)registering objects.
7063
7064         * mono/example/Makefile.am:
7065         * mono/Makefile.am:
7066         * configure.in: Bumped required version for mono and use new -pkg
7067         syntax for deps
7068
7069 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7070
7071         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7072         registration functions take the path argument as char* instead of
7073         char**.
7074
7075         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7076         split off the path decompostion part of
7077         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7078         warnings. 
7079
7080         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7081         
7082 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7083  
7084         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7085         machine approach.  A state is implemented as a function that
7086         handles incoming events as specified for that state.
7087         
7088         * doc/dbus-specification.xml: Update auth protocol state machine
7089         specification to match implementation.  Remove some leftover
7090         base64 examples.
7091
7092 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7093
7094         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7095         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7096         quiet doxygen.
7097
7098         * Doxyfile.in: remove deprecated options.
7099
7100         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7101         glib/test-thread.h, glib/test-thread-client.c,
7102         glib/test-thread-server.c, glib/test-profile.c,
7103         glib/test-dbus-glib.c: remove these unused files.
7104
7105 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7106
7107         * dbus/dbus-object-tree.c
7108         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7109         non-fallback handlers (bug #684).
7110         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7111         (find_subtree_recurse): report wether the returned subtree is an
7112         exact match or a "fallback" match higher up in the tree.
7113         (object_tree_test_iteration): update test case.
7114
7115 2004-06-01  Seth Nickell  <seth@gnome.org>
7116
7117         * python/dbus_bindings.pyx.in:
7118         * python/tests/test-client.py:
7119
7120         Round off basic type support. Add dicts (yay!), and 
7121         remaining array types.
7122
7123         Make MessageIter more general so it works for dicts too.
7124
7125         Mark all loop variables as C integers.
7126         
7127 2004-05-31  Havoc Pennington  <hp@redhat.com>
7128
7129         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7130         "in" before "out"
7131
7132         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7133
7134         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7135         option that runs the tests, and start filling in some code
7136         including for starters just dumping the interfaces to stdout
7137
7138         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7139
7140         * test/data/valid-introspection-files/lots-of-types.xml: test of
7141         an example introspection file
7142
7143         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7144         "node" (I think...)
7145
7146 2004-05-31  Seth Nickell  <seth@gnome.org>
7147
7148         * python/dbus_bindings.pyx.in:
7149         * python/tests/test-client.py:
7150
7151         Test Suite: 1
7152         Python Bindings: 0
7153
7154         Fix string array memory trashing bug... oops...
7155
7156 2004-05-30  Seth Nickell  <seth@gnome.org>
7157
7158         * python/dbus.py:
7159
7160         Add a nicer-but-less-flexible alternate API for handling 
7161         calls to virtual objects in dbus.ObjectTree.
7162
7163         Screw up the argument order to the dbus.Object constructor
7164         for consistency with dbus.ObjectTree (and to make dbus_methods
7165         optional for future extension)
7166         
7167         * python/examples/Makefile.am:
7168         * python/examples/gconf-proxy-service.py:
7169         * python/examples/gconf-proxy-service2.py:
7170
7171         Alternate implementation of gconf-proxy-service using the
7172         nicer dbus.ObjectTree API.
7173         
7174         * python/examples/example-service.py:
7175         * python/tests/test-server.py
7176
7177         Reverse the argument order to deal with dbus.Object constructor
7178         changes.
7179         
7180 2004-05-30  Seth Nickell  <seth@gnome.org>
7181
7182         * python/examples/example-client.py:
7183         * python/examples/example-service.py:
7184
7185         Take it back. Lists seem to work but they're broken
7186         in the test suite. Make the base examples use
7187         lists (works fine).
7188
7189 2004-05-30  Seth Nickell  <seth@gnome.org>
7190
7191         * python/dbus_bindings.pyx.in:
7192         * python/tests/test-client.py:
7193
7194         Add some more tests and fix errors that crop up.
7195         Unfortunately, currently it seems like marshalling
7196         and unmarshalling of lists is completely broken :-(
7197
7198 2004-05-30  Seth Nickell  <seth@gnome.org>
7199
7200         * python/dbus_bindings.pyx.in:
7201
7202         Add support for ObjectPath type.
7203
7204         * python/dbus.py:
7205
7206         Refactor message handling code to a common function.
7207         
7208         * python/tests/test-client.py:
7209         * python/tests/test-server.py:
7210
7211         Add tests that check to make sure values of all types
7212         can be echoed from a service w/o mangling.
7213         
7214 2004-05-29  Seth Nickell  <seth@gnome.org>
7215
7216         * python/dbus.py:
7217
7218         Add ObjectTree class which allows implementation
7219         of trees of "virtual" objects. Basically the python
7220         wrapper for "register_fallback".
7221         
7222         * python/examples/Makefile.am
7223         * python/examples/gconf-proxy-client.py:
7224         * python/examples/gconf-proxy-service.py:
7225
7226         Implement a simple GConf proxy service that supports
7227         get/set on string and int GConf keys using the ObjectTree.
7228         
7229 2004-05-29  Seth Nickell  <seth@gnome.org>
7230
7231         * python/dbus.py:
7232         * python/examples/example-client.py:
7233         * python/examples/example-service.py:
7234         * python/examples/list-system-services.py:
7235
7236         Add SessionBus, SystemBus and ActivationBus classes
7237         so you don't need to know the special little BUS_TYPE
7238         flag.
7239         
7240 2004-05-29  Havoc Pennington  <hp@redhat.com>
7241
7242         * bus/config-parser.c (process_test_valid_subdir): temporarily
7243         stop testing config parser OOM handling, since expat has issues
7244         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7245
7246         * bus/dbus-daemon-1.1.in: change requested_reply to
7247         send_requested_reply/receive_requested_reply so we can send the
7248         replies, not just receive them.
7249
7250         * bus/config-parser.c: parse the new
7251         send_requested_reply/receive_requested_reply
7252
7253         * bus/policy.c (bus_client_policy_check_can_send): add
7254         requested_reply argument and use it
7255
7256         * bus/bus.c (bus_context_check_security_policy): pass through
7257         requested_reply status to message send check
7258
7259         * bus/system.conf.in: adapt to requested_reply change
7260         
7261 2004-05-28  Havoc Pennington  <hp@redhat.com>
7262
7263         * test/glib/test-service-glib.c (main): remove unused variable
7264
7265         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7266
7267         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7268         from the enum, no longer in use.
7269
7270         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7271         works right.
7272
7273         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7274         whether error_name passed in is a valid error name.
7275
7276 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7277
7278         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7279         OBJECT_PATH and OBJECT_PATH_ARRAY
7280
7281 2004-05-28  Seth Nickell  <seth@gnome.org>
7282
7283         * python/examples/Makefile.am:
7284
7285         Forget to add Makefile.am. Do not pass go.
7286
7287 2004-05-28  Michael Meeks  <michael@ximian.com>
7288
7289         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7290         fix no int64 case.
7291
7292         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7293
7294         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7295         (_dbus_message_iter_get_basic_type_array): impl.
7296         drastically simplify ~all relevant _get methods to use these.
7297         (_dbus_message_iter_append_basic_array),
7298         (dbus_message_iter_append_basic): impl
7299         drastically simplify ~all relevant _append methods to use these.
7300
7301         * dbus/dbus-message-builder.c (parse_basic_type) 
7302         (parse_basic_array, lookup_basic_type): impl.
7303         (_dbus_message_data_load): prune scads of duplicate /
7304         cut & paste coding.
7305
7306         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7307         (_dbus_demarshal_basic_type): implement,
7308         (demarshal_and_validate_len/arg): beef up debug.
7309         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7310
7311 2004-05-27  Seth Nickell  <seth@gnome.org>
7312
7313         * configure.in:
7314         * python/Makefile.am:
7315
7316         Include the example python apps in the tarball.
7317         
7318         * python/examples/list-system-services.py
7319
7320         Add a python new example that fetches the list of services
7321         from the system bus.
7322         
7323 2004-05-27  Seth Nickell  <seth@gnome.org>
7324
7325         * python/dbus.py:
7326         * python/dbus_bindings.pyx.in:
7327
7328         Fix failure to notify that a signal was not handled,
7329         resulted in hung functions.
7330         
7331 2004-05-25  Colin Walters  <walters@redhat.com>
7332
7333         * tools/dbus-monitor.c (main): Monitor all types of messages.
7334
7335 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7336
7337         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7338         which unregisters the object path and disposes the handler.
7339
7340 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7341  
7342         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7343          
7344         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7345         operands to && so we call dbus_message_iter_next () for the last
7346         argument also.
7347
7348 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7349
7350         * dbus/dbus-object-tree.c
7351         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7352         children even if the requested path isn't registered.
7353         (object_tree_test_iteration): test object_tree_list_registered.
7354
7355         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7356         it to 0.
7357         
7358 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7359
7360         * doc/TODO: Remove resolved items.
7361
7362         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7363         field.
7364         
7365         * bus/connection.c (bus_connections_expect_reply): Enforce the
7366         per-connection limit on pending replies.
7367         
7368         Patch from Jon Trowbridge <trow@ximian.com>:
7369  
7370         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7371         up a watch that triggers a config reload when one end of the pipe
7372         becomes readable.
7373         (signal_handler): Instead of doing the config reload in our SIGHUP
7374         handler, just write to the reload pipe and let the associated
7375         watch handle the reload when control returns to the main loop.
7376  
7377         * bus/driver.c (bus_driver_handle_reload_config): Added.
7378         Implements a ReloadConfig method for requesting a configuration
7379         file reload via the bus driver.
7380  
7381 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7382
7383         * HACKING: Updated release instructions concerning the wiki page.
7384
7385 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7386
7387         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7388         filter against auth->allowed_mechs; we only add allowed mechs in
7389         record_mechanisms().
7390  
7391         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7392         ALLOWED_MECHS to auth-script format so we can set the list of
7393         allowed mechanisms.
7394  
7395         * data/auth/client-out-of-mechanisms.auth-script: New test to
7396         check client disconnects when it is out of mechanisms to try.
7397  
7398         * dbus/dbus-auth.c (process_command): Remove check for lines
7399         longer that 1 MB; we only buffer up maximum 16 kB.
7400  
7401         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7402         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7403         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7404         assume there might be unused bytes.
7405  
7406         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7407         client-out-of-mechs, it is handled in process_reject(). Move check
7408         for max failures to send_rejected(), as it's a server-only thing.
7409
7410         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7411         send_auth(), send_data(), send_rejected(), send_error(),
7412         send_ok(), send_begin() and send_cancel().
7413
7414 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7415
7416         Remove base64 encoding, replace with hex encoding. Original patch
7417         from trow@ximian.com, added error handling.
7418
7419         * dbus/dbus-string.c (_dbus_string_base64_encode)
7420         (_dbus_string_base64_decode): Remove.
7421         (_dbus_string_hex_decode): Add end_return argument so we can
7422         distinguish between OOM and invalid hex encoding.
7423         (_dbus_string_test): Remove base64 tests and add test case for
7424         invalid hex.
7425
7426         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7427         Replace base64 with hex.
7428
7429         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7430         for invalid hex encoded data in auth protocol.
7431
7432 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7433
7434         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7435         leak.
7436
7437 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7438
7439         * mono/dbus-sharp.dll.config.in: Added for GAC
7440         * mono/dbus-sharp.snk: Added for GAC
7441         * mono/Assembly.cs.in: Added for GAC
7442         * mono/Makefile.am: Changes for GAC installation        
7443         * configure.in: Added refs for dbus-sharp.dll.config.in and
7444         Assembly.cs.in. More fixes for mono testing
7445         * mono/example/Makefile.am: Changed var to CSC
7446         * Makefile.am: Changed flag name to DBUS_USE_CSC
7447
7448 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7449
7450         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7451         * mono/doc/*: Added documentation framework
7452         * configure.in: Added monodoc check
7453         * README: Added description of mono configure flags
7454
7455 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7456
7457         * doc/dbus-specification.xml: Added a "Required" column to the 
7458         header fields table and changed the "zero or more" verbage in
7459         the above paragraph to read "The header must contain the required 
7460         named header fields and zero or more of the optional named header 
7461         fields".
7462         * test/data/invalid-messages/*.message: Added the required PATH 
7463         named header field to the tests so that they don't fail on 
7464         'Missing path field'
7465
7466 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7467
7468         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7469         the stack by implicitly defining variable and parameter types and
7470         removing the hack of defining C pointers as python objects and later
7471         casting them.
7472
7473 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7474
7475         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7476
7477 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7478
7479         * mono/DBusType/Dict.cs: Handle empty dicts
7480         * mono/DBusType/Array.cs: Handle empty arrays
7481         * mono/Arguments.cs: Handle empty arguments
7482
7483 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7484
7485         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7486         field
7487
7488 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7489
7490         * test/data/valid-messages/standard-*.message: Update message
7491         test scripts to new header field names.
7492
7493 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7494
7495         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7496         overflow to times_we_did_each_thing array which would chop off the
7497         first character of the failure_dir string. Increased the size of
7498         the array to 7 to reflect the number of random mutation functions
7499         we have.
7500
7501 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7502
7503         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7504         unix_server->watch here, it is unreffed in disconnect.
7505         (_dbus_server_new_for_tcp_socket): convert NULL host to
7506         "localhost" here so we don't append NULL to address.
7507         
7508         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7509         various addresses, including tcp with no explicit host.
7510
7511 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7512
7513         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7514         fix incorrect setting of .name_offset in the HeaderField (it was
7515         off by two bytes, positioned right after the name and typecode)
7516
7517         * bus/bus.c (bus_context_new, bus_context_unref): test before
7518         calling dbus_server_free_data_slot and _dbus_user_database_unref
7519         in case of an error.
7520
7521         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7522         by libdbus-gtool.
7523
7524 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7525
7526         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7527         _dbus_poll() instead of select().
7528
7529 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7530
7531         * bus/main.c (signal_handler): Reload the configuration files
7532         on SIGHUP.
7533         (main): Set up our SIGHUP handler.
7534
7535         * bus/bus.c (struct BusContext): Store the config file, user and
7536         fork flag in the BusContext.
7537         (process_config_first_time_only): Added.  Contains the code
7538         (previously in bus_context_new) for setting up the BusContext from
7539         the BusConfigParser that should only be run the first time the
7540         config files are read.
7541         (process_config_every_time): Added.  Contains the code (previously
7542         in bus_context_new) for setting up the BusContext from the
7543         BusConfigParser that should be run every time the config files are
7544         read.
7545         (load_config): Added.  Builds a BusConfigParser from the config
7546         files and passes the resulting structure off to
7547         process_config_first_time_only (assuming this is the first time)
7548         and process_config_every_time.
7549         (bus_context_new): All of the config-related code has been moved
7550         to process_config_first_time_only and process_config_every_time.
7551         Now this function just does the non-config-related initializations
7552         and calls load_config.
7553         (bus_context_reload_config): Added.
7554
7555 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7556
7557         * bus/driver.c (bus_driver_handle_get_service_owner):
7558         implement a GetServiceOwner method.
7559         * doc/dbus-specification.xml: document it.
7560         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7561         
7562         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7563         implement, using the bus GetServiceOwner method.
7564
7565         * test/glib/test-dbus-glib.c:
7566         use dbus_gproxy_new_for_service_owner so that we can receive the
7567         signal. 
7568
7569 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7570
7571         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7572         dbus/dbus-message.c, dbus/dbus-protocol.h
7573         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7574
7575         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7576         dbus/dbus-message.c, dbus/dbus-protocol.h
7577         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7578
7579         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7580         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7581         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7582
7583         * doc/dbus-specification.xml (Header Fields Table):
7584         s/SERVICE/DESTINATION
7585         s/SENDER_SERVICE/SENDER
7586
7587
7588 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7589
7590         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7591         a few seconds.
7592
7593 2004-04-13  Michael Meeks  <michael@ximian.com>
7594
7595         * glib/dbus-gobject.c (handle_introspect): split out
7596         (introspect_properties): this.
7597         (handle_introspect): implement this.
7598
7599         * test/glib/Makefile.am: use the absolute path so the bus
7600         daemon's chdir ("/") doesn't kill us dead.
7601
7602         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7603
7604 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7605
7606         * bus/config-parser.c (struct BusConfigParser): Added
7607         included_files field.
7608         (seen_include): Added.  Checks whether or not a file has already
7609         been included by any parent BusConfigParser.
7610         (bus_config_parser_new): Copy the parent's included_files.
7611         (include_file): Track which files have been included, and fail on
7612         circular inclusions.
7613         (process_test_valid_subdir): Changed printf to report if we are
7614         testing valid or invalid conf files.
7615         (all_are_equiv): Changed printf to be a bit clearer about
7616         what we are actually doing.
7617         (bus_config_parser_test): Test invalid configuration files.
7618
7619 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7620
7621         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7622         argument.  If non-null, the newly-constructed BusConfigParser will
7623         be initialized with the parent's BusLimits instead of the default
7624         values.
7625         (include_file): When including a config file, pass in
7626         the current parser as the parent and then copy the BusLimits
7627         from the included BusConfigParser pack to the current parser.
7628         (process_test_valid_subdir): Renamed from process_test_subdir.
7629         (process_test_equiv_subdir): Added.  Walks through a directory,
7630         descending into each subdirectory and loading the config files
7631         it finds there.  If any subdirectory contains two config files
7632         that don't produce identical BusConfigParser structs, fail.
7633         For now, the BusConfigParser's BusPolicies are not compared.
7634         (bus_config_parser_test): Call both process_test_valid_subdir and
7635         process_test_equiv_subdir.
7636
7637         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7638         argument and pass it along to the call to bus_config_parser_new.
7639         Also made a few small changes to allow this code to compile.
7640
7641         * bus/config-loader-expat.c (bus_config_load): Take a parent
7642         argument and pass it along to the call to bus_config_parser_new.
7643
7644         * bus/bus.c (bus_context_new): Load the config file
7645         with a NULL parent argument.
7646
7647 2004-03-29  Michael Meeks  <michael@ximian.com>
7648
7649         * glib/dbus-gobject.c (introspect_properties): split
7650         out, fix mangled 'while' flow control.
7651         (introspect_signals): implement.
7652         (handle_introspect): update.
7653
7654 2004-03-29  Michael Meeks  <michael@ximian.com>
7655
7656         * glib/dbus-gobject.c (set_object_property): split out / 
7657         re-work, use the property type, and not the message type(!)
7658         (get_object_property): ditto.
7659
7660         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7661         (dbus_gvalue_marshal): make this code re-usable, needed
7662         for signals too, also on both proxy and server side.
7663         Re-write for more efficiency / readability.
7664
7665 2004-03-29  Michael Meeks  <michael@ximian.com>
7666
7667         * dbus/dbus-message.c
7668         (dbus_message_new_error_printf): impl.
7669
7670         * dbus/dbus-connection.c
7671         (dbus_connection_unregister_object_path): fix warning.
7672
7673         * configure.in: fix no-mono-installed situation.
7674
7675 2004-03-27  Havoc Pennington  <hp@redhat.com>
7676
7677         Patch from Timo Teräs:
7678         
7679         * tools/dbus-send.c (main): if --print-reply, assume type is
7680         method call; support boolean type args
7681         
7682         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7683         bunch of memleak and logic bugs
7684         
7685 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7686
7687         * mono/Arguments.cs:
7688         * mono/Introspector.cs:
7689         * mono/Handler.cs:
7690         * mono/InterfaceProxy.cs:
7691         * mono/Message.cs
7692         * mono/ProxyBuilder.cs:
7693         * mono/Service.cs:
7694         Added InterfaceProxy class to avoid building proxies for every
7695         object.
7696
7697         * dbus-message.h:
7698         * dbus-message.c (dbus_message_append_args_valist)
7699         (dbus_message_iter_get_object_path)
7700         (dbus_message_iter_get_object_path_array)
7701         (dbus_message_iter_append_object_path)
7702         (dbus_message_iter_append_object_path_array):
7703         Added object_path iter functions to handle OBJECT_PATH arguments
7704         
7705 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7706
7707         First checkin of mono bindings.
7708         * configure.in:
7709         * Makefile.am:
7710         Build stuff for the bindings
7711         * dbus-sharp.pc.in: Added for pkgconfig
7712         
7713 2004-03-21  Havoc Pennington  <hp@redhat.com>
7714
7715         * test/test-service.c (main): remove debug spew
7716
7717 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7718
7719         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7720         arrays
7721
7722         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7723         (dbus_message_iter_init_array_iterator)
7724         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7725         indicate whether the iterator is empty
7726
7727         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7728         warnings
7729
7730 2004-03-19  Havoc Pennington  <hp@redhat.com>
7731
7732         * NEWS: 0.21 updates
7733
7734         * configure.in: 0.21
7735
7736         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7737         
7738         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7739         you don't need pyrex to make dist
7740
7741         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7742         sources; run moc
7743         
7744 2004-03-18  Richard Hult  <richard@imendio.com>
7745
7746         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7747         (dbus_message_set_auto_activation): Add doxygen docs.
7748
7749 2004-03-16  Richard Hult  <richard@imendio.com>
7750
7751         * bus/activation.c: (bus_activation_service_created),
7752         (bus_activation_send_pending_auto_activation_messages),
7753         (bus_activation_activate_service):
7754         * bus/activation.h:
7755         * bus/dispatch.c: (bus_dispatch),
7756         (check_nonexistent_service_auto_activation),
7757         (check_service_auto_activated),
7758         (check_segfault_service_auto_activation),
7759         (check_existent_service_auto_activation), (bus_dispatch_test):
7760         * bus/driver.c: (bus_driver_handle_activate_service):
7761         * bus/services.c: (bus_registry_acquire_service):
7762         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7763         (dbus_message_get_auto_activation):
7764         * dbus/dbus-message.h:
7765         * dbus/dbus-protocol.h: Implement auto-activation.
7766         
7767         * doc/dbus-specification.xml: Add auto-activation to the spec.
7768
7769 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7770
7771         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7772         fix a bug with CUSTOM types.
7773
7774         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7775         a unit test for this bug (used to fail).
7776
7777 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7778
7779         * bus/activation.c:
7780         (babysitter_watch_callback): notify all pending activations waiting for
7781           the same exec that the activation failed.
7782         (bus_activation_activate_service): shortcut the activation if we 
7783           already waiting for the same executable to start up.
7784
7785 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7786
7787         * bus/activation.c: 
7788         - Added service file reloading. 
7789           Each service files directory is kept in an hash table in 
7790           BusActivation and each BusActivationEntry knows what .service-file it
7791           was read from. So when you try to activate a service the bus will 
7792           check if it's been updated, removed or if new .service-files has 
7793           been installed.
7794         - Test code at the bottom for the service file reloading.
7795         * bus/test-main.c: (main):
7796         * bus/test.h:
7797         - added service reloading test.
7798         * dbus/dbus-sysdeps.c: 
7799         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7800
7801 2004-03-08  Michael Meeks  <michael@ximian.com>
7802
7803         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7804         bail immediately if disconnected, to avoid busy loop.
7805
7806         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7807         cleanup cut/paste/inefficiency.
7808
7809 2004-03-01  David Zeuthen  <david@fubar.dk>
7810
7811         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7812         bug where args were used twice. This bug resulted in a segfault
7813         on a Debian/PPC system when starting the messagebus daemon. Include
7814         dbus-sysdeps.h for DBUS_VA_COPY
7815
7816         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7817
7818         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7819         appropriate va_copy implementation. From GLib
7820         
7821 2004-02-24  Joe Shaw  <joe@ximian.com>
7822
7823         * bus/services.c (bus_registry_acquire_service): We need to pass
7824         in the service name to dbus_set_error() to prevent a crash.
7825
7826 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7827
7828         * AUTHORS: Reveal my True identity.
7829
7830 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7831
7832         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7833         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7834
7835 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7836
7837         * doc/TODO: Added not about better error check of configuration files.
7838
7839 2003-12-02  Richard Hult  <richard@imendio.com>
7840
7841         * Update AFL version to 2.0 throughout the source files to reflect
7842         the update that was done a while ago.
7843
7844 2003-12-02  Richard Hult  <richard@imendio.com>
7845
7846         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7847         wrote_dict_key to FALSE on the iter that the dict is appended to,
7848         just like when appending other types. Fixes a bug where a dict
7849         couldn't be put inside a dict.
7850         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7851         (message_iter_test, _dbus_message_test): Add test case for dict
7852         inside dict.
7853
7854 2003-12-01  David Zeuthen  <david@fubar.dk>
7855
7856         * python/dbus.py: Add the actual message when calling the reciever
7857         of a signal such that parameters can be inspected. Add the method
7858         remove_signal_receiver
7859         
7860 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7861
7862         * bus/*.[ch]:
7863         * dbus/*.[ch]:
7864         * glib/*.[ch]: Made ref functions return the pointer
7865
7866 2003-11-25  Zack Rusin  <zack@kde.org>
7867
7868         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7869
7870         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7871         wrappers,
7872
7873         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7874         the Integrator and to better fit with the server,
7875
7876 2003-11-24  Zack Rusin  <zack@kde.org>
7877
7878         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7879         the integrator handles it now
7880
7881         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7882         since QTimer wasn't really meant to be used the way DBusTimeout is
7883
7884 2003-11-24  Zack Rusin  <zack@kde.org>
7885
7886         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7887         Integrator class which integrates D-BUS with the Qt event loop,
7888
7889         * qt/connection.h, qt/connection.cpp: Move all the code which
7890         was dealing with D-BUS integration to the Integrator class,
7891         and start using Integrator,
7892
7893 2003-11-23  Zack Rusin  <zack@kde.org>
7894
7895         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7896         wrapper
7897
7898         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7899         switching namespaces to DBusQt, reworking the class,
7900
7901         * Makefile.cvs: switching dependencies so that it matches KDE 
7902         schematics,
7903         
7904         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7905         the library
7906
7907 2003-11-19  Havoc Pennington  <hp@redhat.com>
7908
7909         * NEWS: update
7910
7911         * configure.in: bump version to 0.20
7912
7913         * configure.in (have_qt): add yet another place to look for qt
7914         (someone hand trolltech a .pc file...)
7915
7916 2003-11-01  Havoc Pennington  <hp@redhat.com>
7917
7918         * doc/dbus-specification.xml: add state machine docs on the auth
7919         protocol; just a first draft, I'm sure it's wrong.      
7920
7921 2003-10-28  David Zeuthen  <david@fubar.dk>
7922
7923         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7924         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7925         
7926 2003-10-28  Havoc Pennington  <hp@redhat.com>
7927
7928         * dbus/dbus-message.c (get_next_field): delete unused function
7929
7930 2003-10-28  Havoc Pennington  <hp@redhat.com>
7931
7932         * bus/expirelist.c (do_expiration_with_current_time): detect
7933         failure of the expire_func due to OOM
7934
7935         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7936
7937         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7938         NoReply error that's now created by the bus when the service exits
7939
7940 2003-10-28  Havoc Pennington  <hp@redhat.com>
7941
7942         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7943         tests for set_path, set_interface, set_member, etc.
7944
7945         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7946
7947         * dbus/dbus-message.c (set_string_field): always just delete and
7948         re-append the field; accept NULL for deletion
7949         (re_align_fields_recurse): reimplement
7950         
7951 2003-10-26  Havoc Pennington  <hp@redhat.com>
7952
7953         * dbus/dbus-connection.c: fix docs to properly describe the
7954         disconnected message
7955         (_dbus_connection_notify_disconnected): remove this function; 
7956         we can't synchronously add the disconnected message, we have to 
7957         do it after we've queued any remaining real messages
7958         (_dbus_connection_get_dispatch_status_unlocked): queue the
7959         disconnect message only if the transport has finished queueing all
7960         its real messages and is disconnected.
7961         (dbus_connection_disconnect): update the dispatch status here
7962
7963 2003-10-22  Havoc Pennington  <hp@redhat.com>
7964
7965         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7966
7967         * bus/connection.c (bus_transaction_send_from_driver): set the
7968         destination to the connection's base service
7969
7970 2003-10-20  Havoc Pennington  <hp@redhat.com>
7971
7972         hmm, make check is currently not passing.
7973         
7974         * doc/dbus-specification.xml: add requirement that custom type
7975         names follow the same rules as interface names.
7976
7977         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7978         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7979         'map'
7980
7981         * doc/dbus-specification.xml: update type codes to match
7982         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7983         CUSTOM. Add type OBJECT_PATH to the spec.
7984
7985 2003-10-17  Havoc Pennington  <hp@redhat.com>
7986
7987         * bus/driver.c (create_unique_client_name): use "." as separator
7988         in base service names instead of '-'
7989
7990         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7991         byte at the end of the string
7992
7993         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7994         optimization macros since string validation seems to be a slow
7995         point.
7996         
7997         * doc/dbus-specification.xml: restrict valid
7998         service/interface/member/error names. Add test suite code for the
7999         name validation.
8000
8001         * dbus/dbus-string.c: limit service/interface/member/error names 
8002         to [0-9][A-Z][a-z]_
8003
8004         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8005         format arg to verbose spew
8006
8007         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8008         memory, return instead of g_error
8009
8010         * test/test-service.c (path_message_func): support emitting a
8011         signal on request
8012
8013         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8014         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8015         assuming the activation bus was the session bus so that services
8016         started manually will still register.
8017         (init_connections_unlocked): fix so that in OOM situation we get
8018         the same semantics when retrying the function
8019         
8020         * test/test-service.c (main): change to use path registration, to
8021         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8022         than DBUS_BUS_SESSION
8023
8024 2003-10-16  Havoc Pennington  <hp@redhat.com>
8025
8026         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8027
8028         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8029         coverage of the tests
8030         (coverage-report.txt): don't move the .da and .bbg files around
8031
8032 2003-10-16  Havoc Pennington  <hp@redhat.com>
8033
8034         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8035         to put there
8036
8037 2003-10-16  Havoc Pennington  <hp@redhat.com>
8038
8039         * bus/connection.c (bus_pending_reply_expired): either cancel or
8040         execute, not both
8041         (bus_connections_check_reply): use unlink, not remove_link, as we
8042         don't want to free the link; fixes double free mess
8043
8044         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8045         where no reply was received
8046
8047         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8048         fix a refcount leak
8049
8050         * bus/signals.c (match_rule_matches): add special cases for the
8051         bus driver, so you can match on sender/destination for it.
8052
8053         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8054         DBUS_PRINT_BACKTRACE is set
8055
8056         * dbus/dbus-internals.c: add pid to assertion failure messages
8057
8058         * dbus/dbus-connection.c: add message type code to the debug spew
8059
8060         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8061         sender=foo not service=foo
8062
8063         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8064         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8065         DBUS_ACTIVATION_ADDRESS instead
8066
8067         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8068         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8069
8070         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8071         context struct
8072
8073         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8074         (dbus_message_iter_get_object_path_array): new function (half
8075         finished, disabled for the moment)
8076         
8077         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8078         DBUS_MESSAGE_TYPE_ERROR
8079
8080         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8081         avoid redirecting stderr to /dev/null
8082         (babysit): close stdin if not doing the "exit_with_session" thing
8083
8084         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8085         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8086         stdout/stdin, so things don't get confused
8087         
8088         * bus/system.conf.in: fix to allow replies, I modified .conf
8089         instead of .conf.in again.
8090
8091 2003-10-14  David Zeuthen  <david@fubar.dk>
8092
8093         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8094         argtype to arg_type when raising unknown arg type exception.
8095         Changed type list to reflect the changes in dbus-protocol.h so 
8096         the bindings actually work.
8097
8098 2003-10-14  Havoc Pennington  <hp@redhat.com>
8099
8100         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8101         to have a bug keeping it from outputting the .da files sometimes
8102         (string_get_string): don't append garbage nul bytes to the string.
8103
8104 2003-10-15  Seth Nickell  <seth@gnome.org>
8105
8106         * python/Makefile.am:
8107
8108         Include dbus_h_wrapper.h in the dist tarball.
8109
8110 2003-10-14  Havoc Pennington  <hp@redhat.com>
8111
8112         * bus/bus.c (bus_context_check_security_policy): revamp this to
8113         work more sanely with new policy-based requested reply setup
8114
8115         * bus/connection.c (bus_transaction_send_from_driver): set bus
8116         driver messages as no reply
8117
8118         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8119         requested_reply attribute on allow/deny rules
8120
8121         * bus/system.conf: add <allow requested_reply="true"/>
8122
8123         * bus/driver.c (bus_driver_handle_message): fix check for replies
8124         sent to the bus driver, which was backward. How did this ever work
8125         at all though? I think I'm missing something.
8126
8127         * dbus/dbus-message.c (decode_header_data): require error and
8128         method return messages to have a reply serial field to be valid
8129         (_dbus_message_loader_queue_messages): break up this function;
8130         validate that reply serial and plain serial are nonzero; 
8131         clean up the OOM/error handling.
8132         (get_uint_field): don't return -1 from this
8133         (dbus_message_create_header): fix signed/unsigned bug
8134
8135         * bus/connection.c (bus_connections_expect_reply): save serial of
8136         the incoming message, not reply serial
8137
8138 2003-10-14  Havoc Pennington  <hp@redhat.com>
8139
8140         * bus/connection.c: implement pending reply tracking using
8141         BusExpireList
8142
8143         * bus/bus.c (bus_context_check_security_policy): verify that a
8144         reply is pending in order to allow a reply to be sent. Deny 
8145         messages of unknown type.
8146
8147         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8148
8149         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8150         (bus_context_get_reply_timeout): new
8151
8152 2003-10-13  Seth Nickell  <seth@gnome.org>
8153
8154         * python/Makefile.am:
8155
8156         Pass "make distcheck": remove a couple files from DIST_FILES
8157         that weren't included in the final version.
8158
8159 2003-10-12  Havoc Pennington  <hp@pobox.com>
8160
8161         Added test code that 1) starts an actual bus daemon and 2) uses
8162         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8163         more testing possible, but this is the basic framework.
8164         
8165         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8166         empty proxy lists from the proxy list hash
8167
8168         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8169         couple of return_if_fail checks
8170
8171         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8172         to allocate, so everything is cleared to NULL as it should be.
8173
8174         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8175         source as data to dbus_connection_set_timeout_functions() as the 
8176         timeout functions expected
8177
8178         * test/glib/run-test.sh: add a little script to start up a message
8179         bus and run tests using it
8180
8181         * tools/dbus-launch.1: updates
8182
8183         * tools/dbus-launch.c (main): add --config-file option
8184
8185         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8186         that could never be reached.
8187
8188         * dbus/dbus-message.c (dbus_message_new_method_return) 
8189         (dbus_message_new_error, dbus_message_new_signal): set the
8190         no-reply-expected flag on all these. Redundant, but may
8191         as well be consistent.
8192
8193 2003-10-11  Havoc Pennington  <hp@pobox.com>
8194
8195         * test/decode-gcov.c (function_solve_graph): make broken block
8196         graph a nonfatal error since it seems to be broken. Need to debug
8197         this.
8198
8199         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8200         can't just check type > INVALID < LAST anymore
8201
8202         * dbus/dbus-message.c (dbus_message_get_signature): new function
8203         (dbus_message_has_signature): new function
8204         (struct DBusMessage): add signature field (right now it isn't sent
8205         over the wire, just generated on the fly)
8206         (dbus_message_copy): copy the signature, and init strings to
8207         proper length to avoid some reallocs
8208         (dbus_message_iter_init_array_iterator): return void, since it
8209         can't fail
8210         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8211         (_dbus_message_loader_queue_messages): add silly temporary hack to
8212         fill in message->signature on load
8213
8214         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8215         characters, so they are relatively human-readable.
8216
8217 2003-10-11  Havoc Pennington  <hp@pobox.com>
8218
8219         * dbus/dbus-message.c (_dbus_message_test): add more test
8220         coverage, but #if 0 for now since they uncover a bug 
8221         not fixed yet; I think in re_align_field_recurse()
8222         (re_align_field_recurse): add FIXME about broken assertion
8223
8224         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8225
8226         * bus/connection.c: share a couple code bits with expirelist.c
8227
8228         * bus/expirelist.h, bus/expirelist.c: implement a generic
8229         expire-items-after-N-seconds facility, was going to share between
8230         expiring connections and replies, decided not to use for expiring
8231         connections for now.
8232
8233         * COPYING: include AFL 2.0 (still need to change all the file headers)
8234
8235 2003-10-09  Havoc Pennington  <hp@redhat.com>
8236
8237         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8238         gcc 3.3. Not that we do anything about it yet.
8239
8240         * bus/signals.c (bus_match_rule_parse): impose max length on the
8241         match rule text
8242
8243         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8244
8245 2003-10-09  Havoc Pennington  <hp@redhat.com>
8246
8247         Make matching rules theoretically work (add parser).
8248         
8249         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8250         the case where destination is explicitly specified as bus driver
8251         and someone else is eavesdropping.
8252         
8253         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8254         definition of eavesdropping and assertion
8255
8256         * tools/dbus-send.c (main): use dbus_message_type_from_string
8257
8258         * bus/signals.c (bus_match_rule_parse): implement
8259
8260         * dbus/dbus-message.c (dbus_message_type_from_string): new
8261
8262         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8263
8264 2003-10-02  Havoc Pennington  <hp@pobox.com>
8265
8266         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8267         dbus_gproxy_oneway_call
8268
8269         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8270         (dbus_server_setup_with_g_main): fix to allow calling them more
8271         than once on the same args
8272         (dbus_bus_get_with_g_main): new function
8273
8274 2003-10-02  Havoc Pennington  <hp@redhat.com>
8275
8276         * doc/dbus-tutorial.xml: write some stuff
8277
8278 2003-09-29  Havoc Pennington  <hp@pobox.com>
8279
8280         * configure.in: split checks for Doxygen from XML docs, check for
8281         xmlto
8282
8283         * doc/Makefile.am: XML-ify all the docs, and add a blank
8284         dbus-tutorial.xml
8285
8286 2003-09-29  Havoc Pennington  <hp@pobox.com>
8287
8288         * Merge dbus-object-names branch. To see the entire patch 
8289         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8290         it's huuuuge though.
8291         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8292         
8293 2003-09-28  Havoc Pennington  <hp@pobox.com>
8294
8295         * HACKING: update to reflect new server
8296
8297 2003-09-26  Seth Nickell  <seth@gnome.org>
8298
8299         * python/dbus.py:
8300         * python/examples/example-signals.py:
8301
8302         Start implementing some notions of signals. The API
8303         is really terrible, but they sort of work (with the
8304         exception of being able to filter by service, and to
8305         transmit signals *as* a particular service). Need to
8306         figure out how to make messages come from the service
8307         we registered :-(
8308         
8309         * python/dbus_bindings.pyx.in:
8310
8311         Removed duplicate message_handler callbacks.
8312         
8313 2003-09-25  Havoc Pennington  <hp@redhat.com>
8314
8315         * bus/session.conf.in: fix my mess
8316
8317 2003-09-25  Havoc Pennington  <hp@pobox.com>
8318
8319         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8320
8321 2003-09-25  Seth Nickell  <seth@gnome.org>
8322
8323         * python/examples/example-service.py:
8324
8325         Johan notices complete wrong code in example-service, but
8326         completely wrong in a way that works exactly the same (!).
8327         Johan is confused, how could this possibly work? Example
8328         code fails to serve purpose of making things clear.
8329         Seth fixes.
8330
8331 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8332
8333         * doc/dbus-specification.sgml: don't require header fields
8334         to be 4-byte aligned and specify that fields should be
8335         distinguished from padding by the fact that zero is not
8336         a valid field name.
8337         
8338         * doc/TODO: remove re-alignment item and add item to doc
8339         the OBJECT_PATH type.
8340         
8341         * dbus/dbus-message.c:
8342         (HeaderField): rename the original member to value_offset
8343         and introduce a name_offset member to keep track of where
8344         the field actually begins.
8345         (adjust_field_offsets): remove.
8346         (append_int_field), (append_uint_field),
8347         (append_string_field): don't align the start of the header
8348         field to a 4-byte boundary.
8349         (get_next_field): impl finding the next marhsalled field
8350         after a given field.
8351         (re_align_field_recurse): impl re-aligning a number of
8352         already marshalled fields.
8353         (delete_field): impl deleting a field of any type and
8354         re-aligning any following fields.
8355         (delete_int_or_uint_field), (delete_string_field): remove.
8356         (set_int_field), (set_uint_field): no need to re-check
8357         that we have the correct type for the field.
8358         (set_string_field): ditto and impl re-aligning any
8359         following fields.
8360         (decode_header_data): update to take into account that
8361         the fields aren't 4-byte aligned any more and the new
8362         way to distinguish padding from header fields. Also,
8363         don't exit when there is too much header padding.
8364         (process_test_subdir): print the directory.
8365         (_dbus_message_test): add test to make sure a following
8366         field is re-aligned correctly after field deletion.
8367         
8368         * dbus/dbus-string.[ch]:
8369         (_dbus_string_insert_bytes): rename from insert_byte and
8370         allow the insert of multiple bytes.
8371         (_dbus_string_test): test inserting multiple bytes.
8372
8373         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8374         warning note to docs about having to re-align any
8375         marshalled values following the string.
8376         
8377         * dbus/dbus-message-builder.c:
8378         (append_string_field), (_dbus_message_data_load):
8379         don't align the header field.
8380         
8381         * dbus/dbus-auth.c: (process_test_subdir): print the
8382         directory.
8383         
8384         * test/break-loader.c: (randomly_add_one_byte): upd. for
8385         insert_byte change.
8386         
8387         * test/data/invalid-messages/bad-header-field-alignment.message:
8388         new test case.
8389         
8390         * test/data/valid-messages/unknown-header-field.message: shove
8391         a dict in the unknown field.
8392
8393 2003-09-25  Seth Nickell  <seth@gnome.org>
8394
8395         * python/dbus.py:
8396         * python/dbus_bindings.pyx.in:
8397
8398         Handle return values.
8399         
8400         * python/examples/example-client.py:
8401         * python/examples/example-service.py:
8402
8403         Pass back return values from the service to the client.
8404         
8405 2003-09-24  Seth Nickell  <seth@gnome.org>
8406
8407         * python/dbus.py:
8408
8409         Connect Object methods (when you are sharing an object) up... pass
8410         in a list of methods to be shared. Sharing all the methods just
8411         worked out too weird. You can now create nice Services over the
8412         DBus in Python. :-)
8413         
8414         * python/dbus_bindings.pyx.in:
8415
8416         Keep references to user_data tuples passed into C functions so 
8417         Python doesn't garbage collect on us.
8418
8419         Implement MethodReturn and Error subclasses of Message for creating
8420         DBusMessage's of those types.
8421         
8422         * python/examples/example-client.py:
8423         * python/examples/example-service.py:
8424
8425         Simple example code showing both how create DBus services and objects,
8426         and how to use them.
8427
8428 2003-09-23  Havoc Pennington  <hp@pobox.com>
8429
8430         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8431
8432 2003-09-23  Havoc Pennington  <hp@redhat.com>
8433
8434         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8435         (dbus_gproxy_disconnect_signal): implement
8436         (dbus_gproxy_manager_remove_signal_match): implement
8437         (dbus_gproxy_manager_add_signal_match): implement
8438         (dbus_gproxy_oneway_call): implement
8439
8440 2003-09-23  Havoc Pennington  <hp@pobox.com>
8441
8442         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8443         subclass. This means dropping the transparent thread safety of the
8444         proxy; you now need a separate proxy per-thread, or your own
8445         locking on the proxy. Probably right anyway.
8446         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8447
8448 2003-09-22  Havoc Pennington  <hp@redhat.com>
8449
8450         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8451
8452 2003-09-21  Seth Nickell  <seth@gnome.org>
8453
8454         First checkin of the Python bindings.
8455         
8456         * python/.cvsignore:
8457         * python/Makefile.am:
8458         * python/dbus_bindings.pyx.in:
8459         * python/dbus_h_wrapper.h:
8460
8461         Pieces for Pyrex to operate on, building a dbus_bindings.so
8462         python module for low-level access to the DBus APIs.
8463         
8464         * python/dbus.py:
8465
8466         High-level Python module for accessing DBus objects.
8467
8468         * configure.in:
8469         * Makefile.am:
8470
8471         Build stuff for the python bindings.
8472
8473         * acinclude.m4:
8474
8475         Extra macro needed for finding the Python C header files.
8476
8477 2003-09-21  Havoc Pennington  <hp@pobox.com>
8478
8479         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8480         implementing the proxy manager, didn't get very far.
8481
8482         * dbus/dbus-bus.c (dbus_bus_add_match): new
8483         (dbus_bus_remove_match): new
8484
8485         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8486         path_name argument; adjust the other not-yet-implemented 
8487         gproxy constructors to be what I think they should be.
8488
8489 2003-09-21  Havoc Pennington  <hp@pobox.com>
8490
8491         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8492         by default for message bus connections.
8493
8494         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8495         exit_on_disconnect flag is set and we process the disconnected
8496         signal.
8497         (dbus_connection_set_exit_on_disconnect): new function
8498
8499 2003-09-21  Havoc Pennington  <hp@pobox.com>
8500
8501         Get matching rules mostly working in the bus; only actually
8502         parsing the rule text remains. However, the client side of
8503         "signal connections" hasn't been started, this patch is only the
8504         bus side.
8505         
8506         * dbus/dispatch.c: fix for the matching rules changes
8507         
8508         * bus/driver.c (bus_driver_handle_remove_match)
8509         (bus_driver_handle_add_match): send an ack reply from these
8510         method calls
8511
8512         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8513         arguments, reported by Seth Nickell
8514
8515         * bus/config-parser.c (append_rule_from_element): support
8516         eavesdrop=true|false attribute on policies so match rules 
8517         can be prevented from snooping on the system bus.
8518
8519         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8520         and "destination" in attribute names; fix some docs bugs; 
8521         add eavesdrop=true|false attribute
8522
8523         * bus/driver.c (bus_driver_handle_add_match)
8524         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8525         messages
8526
8527         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8528         rid of broadcast service concept, signals are just always broadcast
8529
8530         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8531         mostly implement matching rules stuff (currently only exposed as signal
8532         connections)
8533
8534 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8535
8536         * doc/dbus-specification.sgml: Change the header field name
8537         to be an enum and update the rest of the spec to reference
8538         the fields using the conventinal name.
8539
8540         * dbus/dbus-protocol.h: update to reflect the spec.
8541
8542         * doc/TODO: add item to remove the 4 byte alignment requirement.
8543         
8544         * dbus/dbus-message.c: Remove the code to generalise the
8545         header/body length and serial number header fields as named
8546         header fields so we can reference field names using the 
8547         protocol values.
8548         (append_int_field), (append_uint_field), (append_string_field):
8549         Append the field name as a byte rather than four chars.
8550         (delete_int_or_uint_field), (delete_string_field): reflect the
8551         fact that the field name and typecode now occupy 4 bytes instead
8552         of 8.
8553         (decode_string_field), (decode_header_data): update to reflect
8554         protocol changes and move the field specific encoding from
8555         decode_string_field() back into decode_header_data().
8556         
8557         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8558         Add utility to aid debugging.
8559         
8560         * dbus/dbus-message-builder.c:
8561         (append_string_field), (_dbus_message_data_load): Update to
8562         reflect protocol changes; Change the FIELD_NAME directive
8563         to HEADER_FIELD and allow it to take the field's conventional
8564         name rather than the actual value.
8565         
8566         * test/data/*/*.message: Update to use HEADER_FIELD instead
8567         of FIELD_NAME; Always align the header on an 8 byte boundary
8568         *before* updating the header length.
8569
8570 2003-09-15  Havoc Pennington  <hp@pobox.com>
8571
8572         * dbus/dbus-pending-call.c: add the get/set object data
8573         boilerplate as for DBusConnection, etc. Use generic object data
8574         for the notify callback.
8575
8576         * glib/dbus-gparser.c (parse_node): parse child nodes
8577
8578         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8579         
8580         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8581         contain functions shared between the convenience lib and the
8582         installed lib
8583
8584         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8585         -export-symbols-regex to the GLib library
8586
8587         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8588         fix the locking in here, and add a default handler for
8589         Introspect() that just returns sub-nodes.
8590
8591 2003-09-14  Havoc Pennington  <hp@pobox.com>
8592
8593         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8594         rather than gfoo consistent
8595
8596         * glib/dbus-gproxy.h: delete for now, move contents to
8597         dbus-glib.h, because the include files don't work right since we
8598         aren't in the dbus/ subdir.
8599         
8600         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8601         (dbus_gproxy_end_call): finish
8602         (dbus_gproxy_begin_call): finish
8603
8604         * glib/dbus-gmain.c (dbus_set_g_error): new
8605
8606         * glib/dbus-gobject.c (handle_introspect): include information
8607         about child nodes in the introspection
8608
8609         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8610         function to help in implementation of introspection
8611
8612         * dbus/dbus-object-tree.c
8613         (_dbus_object_tree_list_registered_and_unlock): new function
8614
8615 2003-09-12  Havoc Pennington  <hp@pobox.com>
8616
8617         * glib/dbus-gidl.h: add common base class for all the foo_info
8618         types
8619
8620         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8621         similar to kdcop
8622
8623         * test/Makefile.am: try test srcdir -ef . in addition to test
8624         srcdir = ., one of them should work (yeah lame)
8625         
8626         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8627         library
8628         
8629         * glib/dbus-gparser.h: make description_load routines return
8630         NodeInfo* not Parser*
8631
8632         * Makefile.am (SUBDIRS): build test dir after all library dirs
8633
8634         * configure.in: add GTK+ detection
8635
8636 2003-09-07  Havoc Pennington  <hp@pobox.com>
8637
8638         * Make Doxygen contented.
8639
8640 2003-09-07  Havoc Pennington  <hp@pobox.com>
8641
8642         * doc/dbus-specification.sgml: more updates
8643
8644 2003-09-06  Havoc Pennington  <hp@pobox.com>
8645
8646         * doc/dbus-specification.sgml: partial updates
8647
8648         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8649         zillionth time; hopefully I edited the right file this time.
8650
8651         * bus/config-parser.c (append_rule_from_element): support
8652         send_type, send_path, receive_type, receive_path
8653
8654         * bus/policy.c: add message type and path to the list of things
8655         that can be "firewalled"
8656
8657 2003-09-06  Havoc Pennington  <hp@pobox.com>
8658
8659         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8660         (dbus_connection_register_object_path): make this not handle
8661         messages to paths below the given path
8662
8663 2003-09-03  Havoc Pennington  <hp@pobox.com>
8664
8665         * test/glib/Makefile.am: add this with random glib-linked test
8666         programs
8667
8668         * glib/Makefile.am: remove the random test programs from here,
8669         leave only the unit tests
8670
8671         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8672         uscore/javacaps conversion, and fix     
8673         (get_object_property, set_object_property): change to .NET
8674         convention for mapping props to methods, set_FooBar/get_FooBar, 
8675         since one language has such a convention we may as well copy it. 
8676         Plus real methods in either getFooBar or get_foo_bar style won't 
8677         collide with this convention.
8678
8679 2003-09-01  Havoc Pennington  <hp@pobox.com>
8680
8681         * glib/dbus-gparser.c: implement
8682
8683         * glib/dbus-gobject.c: start implementing skeletons support
8684
8685         * configure.in: when disabling checks/assert, also define
8686         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8687
8688 2003-09-01  Havoc Pennington  <hp@pobox.com>
8689
8690         * glib/Makefile.am: rearrange a bunch of files and get "make
8691         check" framework set up
8692
8693 2003-08-31  Havoc Pennington  <hp@pobox.com>
8694
8695         * fix build with --disable-tests
8696
8697 2003-08-30  Havoc Pennington  <hp@pobox.com>
8698
8699         * dbus/dbus-connection.c: purge DBusMessageHandler
8700
8701         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8702         use callbacks everywhere
8703
8704 2003-08-30  Havoc Pennington  <hp@pobox.com>
8705
8706         * test/data/valid-config-files/system.d/test.conf: change to 
8707         root for the user so warnings don't get printed
8708
8709         * dbus/dbus-message.c: add dbus_message_get_path,
8710         dbus_message_set_path
8711         
8712         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8713         dispatching to a path
8714
8715         * dbus/dbus-string.c (_dbus_string_validate_path): add
8716
8717         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8718         (_dbus_marshal_object_path): implement
8719
8720         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8721         to contain the path to the target object
8722         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8723         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8724
8725 2003-08-30  Havoc Pennington  <hp@pobox.com>
8726
8727         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8728
8729 2003-08-29  Havoc Pennington  <hp@pobox.com>
8730
8731         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8732         registered
8733         (struct DBusObjectSubtree): shrink this
8734         a lot, since we may have a lot of them
8735         (_dbus_object_tree_free_all_unlocked): implement
8736         (_dbus_object_tree_dispatch_and_unlock): implement
8737
8738 2003-08-29  Havoc Pennington  <hp@pobox.com>
8739
8740         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8741
8742 2003-08-28  Havoc Pennington  <hp@pobox.com>
8743
8744         purge DBusObjectID
8745         
8746         * dbus/dbus-connection.c: port to no ObjectID, create a
8747         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8748
8749         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8750         everything except UnregisterFunction and MessageFunction
8751         
8752         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8753         add DBUS_TYPE_OBJECT_PATH
8754         
8755         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8756         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8757         path-based object IDs
8758
8759 2003-08-25  Havoc Pennington  <hp@pobox.com>
8760
8761         Just noticed that dbus_message_test is hosed, I wonder when I
8762         broke that. I thought make check was passing earlier...
8763         
8764         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8765         container tree, will replace most of dbus-object-registry
8766
8767         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8768         screwup
8769
8770 2003-08-19  Havoc Pennington  <hp@pobox.com>
8771
8772         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8773         (dbus_message_is_error): fix this function
8774
8775         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8776         match
8777
8778         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8779         reflect clarified man page
8780         (bus_client_policy_check_can_send): ditto
8781         
8782         * bus/session.conf.in: fixup
8783
8784         * bus/system.conf.in: fixup
8785
8786 2003-08-18  Havoc Pennington  <hp@redhat.com>
8787
8788         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8789
8790         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8791         dumb bug created earlier (wrong order of args to
8792         decode_header_data())
8793         
8794         * tools/dbus-send.c: port
8795
8796         * tools/dbus-print-message.c (print_message): port
8797
8798         * test/data/*messages: port all messages over
8799         
8800         * dbus/dbus-message-builder.c: support including 
8801         message type
8802         
8803         * bus/driver.c: port over
8804         
8805         * bus/dispatch.c: port over to new stuff
8806
8807         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8808         rename disconnect signal to "Disconnected"
8809
8810 2003-08-17  Havoc Pennington  <hp@pobox.com>
8811
8812         This doesn't compile yet, but syncing up so I can hack on it from
8813         work. What are branches for if not broken code? ;-)
8814         
8815         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8816         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8817         DBUS_HEADER_FIELD_ERROR_NAME
8818         
8819         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8820         for the interface+member pairs
8821         (string_hash): change to use g_str_hash algorithm
8822         (find_direct_function, find_string_function): refactor these to
8823         share most code.
8824         
8825         * dbus/dbus-message.c: port all of this over to support 
8826         interface/member fields instead of name field
8827
8828         * dbus/dbus-object-registry.c: port over
8829         
8830         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8831         from _dbus_string_validate_name
8832
8833         * bus/dbus-daemon-1.1: change file format for the 
8834         <deny>/<allow> stuff to match new message naming scheme
8835
8836         * bus/policy.c: port over
8837
8838         * bus/config-parser.c: parse new format
8839         
8840 2003-08-16  Havoc Pennington  <hp@pobox.com>
8841
8842         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8843         broken assertion
8844
8845         * glib/dbus-gproxy.c: some hacking
8846
8847 2003-08-15  Havoc Pennington  <hp@redhat.com>
8848
8849         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8850
8851         * dbus/dbus-connection.c
8852         (dbus_connection_send_with_reply_and_block): factor out internals;
8853         change to convert any error replies to DBusError instead of 
8854         returning them as a message
8855
8856 2003-08-15  Havoc Pennington  <hp@pobox.com>
8857
8858         * dbus/dbus-connection.c, 
8859         dbus/dbus-pending-call.c: Finish the pending call stuff
8860
8861 2003-08-14  Havoc Pennington  <hp@redhat.com>
8862
8863         * dbus/dbus-pending-call.c: start on new object that will replace
8864         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8865         replies
8866
8867         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8868         with remote interfaces
8869
8870         * dbus/dbus-gidl.c: do the boring boilerplate in here
8871         
8872 2003-08-12  Havoc Pennington  <hp@pobox.com>
8873
8874         * bus/dispatch.c (bus_dispatch): make this return proper 
8875         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8876
8877         * dbus/dbus-errors.c (dbus_set_error): use
8878         _dbus_string_append_printf_valist
8879
8880         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8881         (_dbus_string_append_printf): new
8882
8883         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8884         UNKNOWN_METHOD
8885
8886         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8887         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8888         message is unhandled.
8889
8890 2003-08-11  Havoc Pennington  <hp@pobox.com>
8891
8892         * bus/test.c (client_disconnect_handler): change to return
8893         HANDLED (would have been REMOVE_MESSAGE)
8894
8895         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8896         HANDLED/NOT_YET_HANDLED instead of
8897         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8898         should be used.
8899
8900 2003-08-10  Havoc Pennington  <hp@pobox.com>
8901
8902         * tools/dbus-send.c (main): add --type argument, for now
8903         supporting only method_call and signal types.
8904
8905         * tools/dbus-print-message.c: print message type
8906
8907         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8908         init connection->objects
8909
8910         * doc/dbus-specification.sgml: fix sgml
8911
8912         * bus/*.c: port over to object-instance API changes
8913
8914         * test/test-service.c: ditto
8915         
8916         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8917         name, we will have to fix up the rest of the code to also handle
8918         this
8919         (dbus_message_new): generic message-creation call
8920         (set_string_field): allow appending name field
8921
8922 2003-08-06  Havoc Pennington  <hp@pobox.com>
8923
8924         * dbus/dbus-object-registry.c: implement signal connection 
8925         and dispatch
8926
8927         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8928
8929         * dbus/dbus-internals.c (_dbus_memdup): new function
8930
8931 2003-08-02  Havoc Pennington  <hp@pobox.com>
8932
8933         * dbus/dbus-message.c (dbus_message_get_no_reply)
8934         (dbus_message_set_no_reply): add these and remove
8935         set_is_error/get_is_error
8936
8937         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8938         remove the ERROR flag, since there's now an ERROR type
8939
8940 2003-08-01  Havoc Pennington  <hp@pobox.com>
8941
8942         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8943         implement
8944
8945         * dbus/dbus-message.c (dbus_message_get_type): new function
8946
8947         * doc/dbus-specification.sgml: add "type" byte to messages
8948
8949 2003-08-01  Havoc Pennington  <hp@pobox.com>
8950
8951         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8952         a message type enum to distinguish kinds of message
8953         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8954         that need not be replied to
8955
8956 2003-08-01  Havoc Pennington  <hp@pobox.com>
8957
8958         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8959         (unpack_8_octets): fix no-64-bit-int bug
8960
8961         * dbus/dbus-object-registry.c (validate_id): validate the 
8962         connection ID bits, not just the instance ID.
8963
8964         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8965         the connection-global 33 bits of the object ID
8966
8967         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8968         object ID in the new way
8969
8970         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8971         define server/client/instance bits.
8972
8973 2003-07-30  Havoc Pennington  <hp@pobox.com>
8974
8975         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8976         build
8977
8978 2003-07-13  Havoc Pennington  <hp@pobox.com>
8979
8980         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8981         fields to DBusObjectVTable and DBusObjectInfo
8982
8983 2003-07-12  Havoc Pennington  <hp@pobox.com>
8984
8985         * dbus/dbus-object-registry.c: implement unit test,
8986         fix bugs discovered in process
8987
8988         * dbus/dbus-connection.c: remove handler_table and
8989         register_handler(), add DBusObjectRegistry usage
8990
8991         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8992         (dbus_object_id_set_null): new functions
8993
8994 2003-07-08  Havoc Pennington  <hp@pobox.com>
8995
8996         * dbus/dbus-object.c: implement some of this
8997
8998         * dbus/dbus-object-registry.c
8999         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9000         param
9001         (_dbus_object_registry_new): handle OOM
9002
9003 2003-07-08  Havoc Pennington  <hp@pobox.com>
9004
9005         * dbus/dbus-object.h: sketch out an API for registering objects
9006         with a connection, that allows us to use as little as 24 bytes
9007         per object and lets application code represent an object in 
9008         any conceivable way.
9009
9010         * dbus/dbus-object-registry.c: implement the hard bits of the
9011         DBusConnection aspect of object API. Not yet wired up.
9012         
9013 2003-07-06  Havoc Pennington  <hp@pobox.com>
9014
9015         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9016         (_dbus_marshal_object_id): new
9017         (_dbus_demarshal_object_id): new
9018         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9019         consolidate identical switch cases. Don't conditionalize handling
9020         of DBUS_TYPE_UINT64, need to handle the type always.
9021         (_dbus_marshal_validate_arg): consolidate identical cases, and
9022         handle DBUS_TYPE_OBJECT_ID
9023
9024         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9025
9026         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9027
9028 2003-09-28  Havoc Pennington  <hp@pobox.com>
9029
9030         * real 0.13 release
9031
9032 2003-09-28  Havoc Pennington  <hp@pobox.com>
9033
9034         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9035         to work with Debian db2html
9036
9037 2003-09-28  Havoc Pennington  <hp@pobox.com>
9038
9039         * configure.in: 0.13
9040
9041         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9042         stylesheet-images for benefit of Debian
9043         
9044         Change back to using filesystem-linked sockets for the system
9045         bus, so only root can create the default system bus address.
9046         
9047         * bus/system.conf.in: change to use
9048         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9049
9050         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9051         from here.
9052
9053         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9054         here, and AC_DEFINE DBUS_SYSTEM_PATH
9055
9056 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9057
9058         * doc/TODO:
9059         * doc/busconfig.dtd:
9060         Add busconfig DTD.
9061         
9062 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9063
9064         * doc/dbus-specification.sgml:
9065         Add activation reply values.
9066         
9067 2003-08-05  Havoc Pennington  <hp@redhat.com>
9068
9069         * configure.in: 0.12
9070
9071 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9072
9073         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9074         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9075         (add_watch), (remove_watch), (create_source):
9076         Refcount fds, fixes some reentrancy issues.
9077         
9078 2003-07-30  Havoc Pennington  <hp@redhat.com>
9079
9080         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9081         bus address to be abstract if we have abstract sockets
9082
9083         * NEWS: update
9084
9085 2003-07-28  Havoc Pennington  <hp@redhat.com>
9086
9087         * bus/messagebus.in: fix to avoid processname/servicename 
9088         confusion, from Michael Kearey
9089         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9090         
9091 2003-07-23  Havoc Pennington  <hp@pobox.com>
9092
9093         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9094         fix from Andy Hanton to remove broken "+1"
9095
9096 2003-07-16  Havoc Pennington  <hp@pobox.com>
9097
9098         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9099         babysitter process, as suggested by Thomas Leonard, so 
9100         an "eval `dbus-launch --exit-with-session`" will actually 
9101         return
9102
9103 2003-07-16  Havoc Pennington  <hp@pobox.com>
9104
9105         * configure.in: print out EXPANDED_* variables in the summary at
9106         the end; clean up the code that computes EXPANDED_ variables and
9107         get the ones using exec_prefix right. Should make things work
9108         when you build without --prefix
9109
9110 2003-06-29  Havoc Pennington  <hp@pobox.com>
9111
9112         * mono/Test.cs (class Test): fire up a main loop and run it
9113
9114         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9115         done once, the app has to do it
9116
9117 2003-06-26  Havoc Pennington  <hp@pobox.com>
9118
9119         * mono/Connection.cs: set up connection with the glib main loop
9120
9121 2003-07-01  Havoc Pennington  <hp@redhat.com>
9122
9123         * doc/dbus-specification.sgml: clarify the format of a type code,
9124         change suggested by Jim Blandy
9125
9126 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9127
9128         * doc/Makefile.am:
9129         * tools/Makefile.am: Don't assume srcdir == builddir.
9130
9131         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9132         the allocated block.
9133         (_dbus_memory_test): New function.
9134         * dbus/dbus-test.h: Add _dbus_memory_test ().
9135         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9136
9137         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9138         of %c%c%c%c.
9139         (dbus_message_new): Remove obsolete @todo.
9140
9141         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9142         (_dbus_marshal_set_uint64): Fix comment.
9143
9144         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9145         hardcode FIELD_REPLY_SERIAL.
9146
9147         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9148         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9149
9150         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9151         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9152
9153 2003-06-24  Havoc Pennington  <hp@pobox.com>
9154
9155         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9156
9157 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9158
9159         * configure.in:
9160         * gcj/.cvsignore:
9161         * gcj/Hello.java:
9162         * gcj/Makefile.am:
9163         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9164         * gcj/org/.cvsignore:
9165         * gcj/org/Makefile.am:
9166         * gcj/org/freedesktop/.cvsignore:
9167         * gcj/org/freedesktop/Makefile.am:
9168         * gcj/org/freedesktop/dbus/.cvsignore:
9169         * gcj/org/freedesktop/dbus/Makefile.am:
9170         * gcj/org/freedesktop/dbus/Message.java: (Message),
9171         (Message.Message):
9172         * gcj/org/freedesktop/dbus/natMessage.cc:
9173         Fix the build system.
9174
9175 2003-06-22  Havoc Pennington  <hp@pobox.com>
9176
9177         * mono/Connection.cs: add more bindings
9178
9179         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9180         more than once.
9181
9182 2003-06-22  Havoc Pennington  <hp@pobox.com>
9183
9184         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9185         Start wrapping more stuff.
9186
9187 2003-06-22  Havoc Pennington  <hp@pobox.com>
9188
9189         * mono/Message.cs: implement Message.Wrap() that ensures we only
9190         have a single C# wrapper per DBusMessage, assuming it works which
9191         it probably doesn't.
9192
9193         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9194         (dbus_message_free_data_slot): new
9195         (dbus_message_set_data): new
9196         (dbus_message_get_data): new
9197
9198 2003-06-22  Havoc Pennington  <hp@pobox.com>
9199
9200         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9201         (_dbus_data_slot_allocator_alloc): rework these to keep a
9202         reference count on each slot and automatically manage a global
9203         slot ID variable passed in by address
9204
9205         * bus/bus.c: convert to new dataslot API
9206
9207         * dbus/dbus-bus.c: convert to new dataslot API
9208
9209         * dbus/dbus-connection.c: convert to new dataslot API
9210
9211         * dbus/dbus-server.c: convert to new dataslot API
9212
9213         * glib/dbus-gmain.c: ditto
9214
9215         * bus/test.c: ditto
9216
9217         * bus/connection.c: ditto
9218
9219 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9220
9221         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9222         after the gcj checks so that the correct configuration tags
9223         will be added to libtool.
9224
9225         * dbus-glib-1.pc.in: No need to specify any includes since
9226         dbus-1.pc.in has those.
9227
9228 2003-06-22  Havoc Pennington  <hp@pobox.com>
9229
9230         * mono/*, gcj/*, configure.in, Makefile.am:
9231         Check in makefiles and subdirs for mono and gcj bindings.
9232         Neither binding actually exists, just trying to get through
9233         all the build and other boring bits.
9234
9235 2003-06-21  Philip Blundell  <philb@gnu.org>
9236
9237         * tools/dbus-monitor.1: Updated.
9238
9239         * tools/dbus-send.1: Likewise.
9240
9241 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9242
9243         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9244         for hangup and error after checking read so we won't discard
9245         pending data if both hangup and read are set.
9246
9247 2003-06-19  Philip Blundell  <philb@gnu.org>
9248
9249         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9250
9251         * tools/dbus-send.c: Accept both --system and --session.
9252
9253         * tools/dbus-monitor.c: Same here.
9254
9255 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9256
9257         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9258         from C++ (Patch by Miloslav Trmac).
9259
9260 2003-06-15  Joe Shaw  <joe@assbarn.com>
9261
9262         * configure.in: Check for socklen_t.
9263
9264         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9265
9266         * test/test-segfault.c: Add #include <sys/time.h>
9267
9268         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9269         dbus-launch needs it.
9270
9271 2003-06-09  Havoc Pennington  <hp@redhat.com>
9272
9273         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9274         SUN_LEN, it breaks abstract socket usage
9275
9276         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9277         starts of lines.
9278
9279 2003-06-04  Havoc Pennington  <hp@pobox.com>
9280
9281         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9282         using unix:abstract=/foo, and when listening in a tmpdir
9283         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9284
9285         * dbus/dbus-transport.c (_dbus_transport_open): support
9286         unix:abstract=/foo
9287
9288         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9289         support abstract sockets
9290
9291         * dbus/dbus-transport-unix.c
9292         (_dbus_transport_new_for_domain_socket): support abstract sockets
9293
9294         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9295         toggle as an argument, implement abstract namespace support
9296         (_dbus_listen_unix_socket): ditto
9297
9298         * configure.in: add --enable-abstract-sockets and implement
9299         a configure check for autodetection of the right value.
9300
9301 2003-06-01  Havoc Pennington  <hp@pobox.com>
9302
9303         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9304         in /tmp (though on Linux this will end up being useless,
9305         when we add abstract namespace support)
9306
9307         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9308         subst'ing it
9309
9310 2003-05-28  Colin Walters  <walters@verbum.org>
9311
9312         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9313
9314 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9315
9316         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9317
9318 2003-05-17  Colin Walters  <walters@gnu.org>
9319
9320         * tools/dbus-send.c: Don't exit with an error code if --help was
9321         passed.  Default to using the session bus instead of the system
9322         one.
9323
9324         * tools/dbus-launch.c: Ditto.
9325
9326         * tools/dbus-monitor.c: Ditto.
9327
9328         * tools/dbus-send.1: Update with new arguments.
9329
9330         * tools/dbus-launch.c: Emit code to export variables.  New
9331         arguments -s and -c to specify shell syntax, and a bit of code to
9332         autodetect syntax.  Also, allow specifying a program to run.
9333
9334         * tools/dbus-launch.1: Update with new arguments.
9335
9336         * tools/dbus-send.1: Ditto.
9337
9338         * tools/dbus-monitor.1: Ditto.
9339
9340 2003-05-17  Havoc Pennington  <hp@pobox.com>
9341
9342         * bus/config-parser.c (merge_included): merge in policies from
9343         child configuration file.
9344
9345         * bus/policy.c (bus_policy_merge): function to merge two policies
9346         together
9347
9348 2003-05-16  Havoc Pennington  <hp@redhat.com>
9349
9350         * dbus/dbus-connection.c: disable verbose lock spew
9351
9352         * tools/dbus-send.c: add --print-reply command line option
9353
9354         * tools/dbus-print-message.h (print_message): new util function
9355         shared by dbus-send and dbus-monitor
9356
9357         * tools/dbus-monitor.c (handler_func): exit on disconnect
9358
9359         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9360         disconnected, don't try to use the read_watch
9361
9362         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9363         so we can find this bug more easily
9364
9365 2003-05-16  Havoc Pennington  <hp@redhat.com>
9366
9367         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9368         NULL as DBusHashTable is annoyingly likely to do.
9369
9370 2003-05-16  Colin Walters  <walters@verbum.org>
9371
9372         * tools/dbus-monitor.c: Add --session argument and usage()
9373         function.
9374
9375         * tools/dbus-monitor.1: Update with new --session arg.
9376
9377         * bus/Makefile.am (install-data-hook): Create
9378         $(libdir)/dbus-1.0/services so that the session bus is happy.
9379
9380 2003-05-15  Havoc Pennington  <hp@redhat.com>
9381
9382         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9383         on non-x86. ifdef's are evil.
9384
9385 2003-05-15  Havoc Pennington  <hp@redhat.com>
9386
9387         * configure.in: 0.11
9388
9389         * NEWS: update
9390
9391         * bus/Makefile.am (initddir): apparently we are supposed to put
9392         init scripts in /etc/rc.d/init.d not /etc/init.d
9393
9394         * bus/Makefile.am: remove the "you must --enable-tests to make
9395         check" as it broke distcheck
9396
9397         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9398
9399 2003-05-13  James Willcox  <jwillcox@gnome.org>
9400
9401         * configure.in:
9402         * bus/activation.c: (bus_activation_service_created),
9403         (bus_activation_activate_service):
9404         * bus/driver.c: (bus_driver_send_service_deleted),
9405         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9406         (bus_driver_send_service_acquired),
9407         (bus_driver_send_welcome_message),
9408         (bus_driver_handle_list_services):
9409         * bus/session.conf.in:
9410         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9411         (dbus_bus_service_exists), (dbus_bus_activate_service):
9412         * dbus/dbus-bus.h:
9413
9414         Add some convenience API which lets you activate a service, and did a
9415         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9416         and dbus_message_get_args()
9417
9418 2003-05-11  Havoc Pennington  <hp@pobox.com>
9419
9420         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9421         calling _dbus_marshal_validate_arg() for every byte in a byte
9422         array, etc.
9423
9424         * dbus/dbus-message-handler.c: use atomic reference counting to
9425         reduce number of locks slightly; the global lock in here sucks
9426
9427         * dbus/dbus-connection.c
9428         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9429         update_dispatch_status that can be called with lock held; then use
9430         in a couple places to reduce locking/unlocking
9431         (dbus_connection_send): hold the lock over the whole function
9432         instead of acquiring it twice.
9433
9434         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9435
9436         * bus/connection.c (bus_connections_setup_connection): fix access
9437         to already-freed memory.
9438
9439         * dbus/dbus-connection.c: keep a little cache of linked list
9440         nodes, to avoid using the global linked list alloc lock in the
9441         normal send-message case. Instead we just use the connection lock
9442         that we already have to take.
9443
9444         * dbus/dbus-list.c (_dbus_list_find_last): new function
9445
9446         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9447         change to use a struct for the atomic type; fix docs,
9448         they return value before increment, not after increment.
9449
9450         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9451         (_dbus_string_append_8_aligned): new functions to try to
9452         microoptimize this operation.
9453         (reallocate_for_length): break this out of set_length(), to
9454         improve profile info, and also so we can consider inlining the
9455         set_length() part.
9456
9457         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9458         strings with some preallocation, cuts down on our calls to realloc
9459         a fair bit. Though if we can get the "move entire string to empty
9460         string" optimization below to kick in here, it would be better.
9461
9462         * dbus/dbus-string.c (_dbus_string_move): just call
9463         _dbus_string_move_len
9464         (_dbus_string_move_len): add a special case for moving
9465         an entire string into an empty string; we can just
9466         swap the string data instead of doing any reallocs.
9467         (_dbus_string_init_preallocated): new function
9468
9469 2003-05-11  Havoc Pennington  <hp@pobox.com>
9470
9471         Write a "test-profile" that does echo client-server with threads;
9472         profile reveals lock contention, memcpy/realloc of buffers, and
9473         UTF-8 validation as hot spots. 20% of lock contention eliminated
9474         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9475         contention is global mempool locks for GList and DBusList.
9476
9477         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9478         x86 implementation
9479
9480         * dbus/dbus-connection.c (struct DBusConnection): use
9481         dbus_atomic_t for the reference count
9482
9483         * dbus/dbus-message.c (struct DBusMessage): declare
9484         dbus_atomic_t values as volatile
9485
9486         * configure.in: code to detect ability to use atomic integer
9487         operations in assembly, from GLib patch
9488
9489         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9490         time, tired of it being wrong in threads and forked processes
9491
9492         * glib/test-profile.c: a little program to bounce messages back
9493         and forth between threads and eat CPU
9494
9495         * dbus/dbus-connection.c: add debug spew macros for debugging
9496         thread locks; include config.h at top; fix deadlock in
9497         dbus_connection_flush()
9498
9499 2003-05-08  Havoc Pennington  <hp@pobox.com>
9500
9501         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9502         data from getting written, and there wasn't a good reason to
9503         use _exit really.
9504
9505         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9506         dbus_verbose lines in test coverage
9507         (main): add list of functions sorted by # of untested blocks
9508         to the coverage report
9509
9510         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9511
9512         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9513
9514         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9515         extend test coverage
9516
9517         * test/data/auth/cancel.auth-script: test canceling an
9518         authentication
9519
9520         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9521         aren't used. in CVS history if we end up needing them.
9522
9523 2003-05-04  Havoc Pennington  <hp@pobox.com>
9524
9525         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9526         unit test
9527
9528         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9529         function, which assumed length was in # of strings, not bytes
9530
9531         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9532         missing coverage
9533
9534         * dbus/dbus-connection.c
9535         (_dbus_connection_queue_received_message): disable function for
9536         now, we are only using it in test mode
9537
9538         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9539         remove a mistaken FIXME
9540
9541 2003-05-04  Havoc Pennington  <hp@pobox.com>
9542
9543         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9544         unlock mutex on successful return, patch from Anders Gustafsson
9545
9546 2003-05-04  Havoc Pennington  <hp@pobox.com>
9547
9548         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9549         Anders Gustafsson
9550
9551 2003-05-04  Havoc Pennington  <hp@pobox.com>
9552
9553         * tools/dbus-launch.c: implement
9554
9555         * bus/main.c (main), bus/bus.c (bus_context_new):
9556         implement --print-pid and --fork
9557
9558 2003-05-03  Havoc Pennington  <hp@redhat.com>
9559
9560         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9561         the address had no value, and add to test suite. Fix and
9562         regression test from Miloslav Trmac
9563
9564 2003-05-03  Havoc Pennington  <hp@pobox.com>
9565
9566         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9567         watch is invalid when handled
9568
9569         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9570         dbus-launch utility to launch the bus from a shell script.  Didn't
9571         actually implement dbus-launch yet, it's just a placeholder still.
9572
9573 2003-05-03  Havoc Pennington  <hp@pobox.com>
9574
9575         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9576         daemon; also documents daemon config file, so replaces
9577         doc/config-file.txt. Corrected some stuff from config-file.txt in
9578         the process of moving it.
9579
9580 2003-05-03  Havoc Pennington  <hp@pobox.com>
9581
9582         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9583         add some man pages
9584
9585 2003-05-03  Colin Walters  <walters@verbum.org>
9586
9587         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9588         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9589
9590         * Makefile.am: Update to use new .pc versioning scheme.
9591
9592 2003-05-02  Havoc Pennington  <hp@redhat.com>
9593
9594         * bus/system.conf.in: allow send/receive to/from message bus
9595         service
9596
9597 2003-04-30  Havoc Pennington  <hp@redhat.com>
9598
9599         * configure.in: print a note when building with unit tests and
9600         without assertions
9601
9602 2003-04-30  Havoc Pennington  <hp@redhat.com>
9603
9604         * Makefile.am: add a check-local that complains if you didn't
9605         configure with --enable-tests
9606
9607 2003-04-29  Havoc Pennington  <hp@redhat.com>
9608
9609         * glib/dbus-gmain.c: docs cleanups
9610
9611         * dbus/dbus-types.h: add docs on int64 types
9612
9613         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9614         public API docs section
9615
9616 2003-04-29  Havoc Pennington  <hp@redhat.com>
9617
9618         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9619         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9620         parallel install API version, not with the D-BUS package version.
9621
9622         * HACKING: move some of README over here
9623
9624         * README: updates, and document API/ABI policy
9625
9626         * configure.in: reindentation
9627
9628 2003-04-29  Havoc Pennington  <hp@redhat.com>
9629
9630         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9631         to use this library" to be sure people have the right
9632         expectations.
9633
9634 2003-04-28  Havoc Pennington  <hp@redhat.com>
9635
9636         * configure.in: add --enable-docs which by default is auto yes if
9637         doxygen and db2html found, no otherwise; but can be forced on/off
9638
9639         * doc/Makefile.am: conditionalize whether to build docs on
9640         --enable-docs
9641
9642 2003-04-28  Havoc Pennington  <hp@redhat.com>
9643
9644         * configure.in: 0.10
9645
9646         * NEWS: update
9647
9648         * bus/system.conf.in: add <includedir>system.d</includedir>
9649
9650         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9651         username was provided but not uid
9652
9653         * bus/config-parser.c (struct BusConfigParser): keep track of
9654         whether the parser is toplevel or was included; change some
9655         of the error handling if it's included.
9656
9657 2003-04-27  Havoc Pennington  <hp@pobox.com>
9658
9659         Unbreak my code...
9660
9661         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9662         report correct status if we finish processing authentication
9663         inside this function.
9664
9665         * bus/activation.c (try_send_activation_failure): use
9666         bus_transaction_send_error_reply
9667
9668         * bus/connection.c (bus_connection_get_groups): return an error
9669         explaining the problem
9670
9671         * bus/bus.c (bus_context_check_security_policy): implement
9672         restriction here that inactive connections can only send the
9673         hello message. Also, allow bus driver to send anything to
9674         any recipient.
9675
9676         * bus/connection.c (bus_connection_complete): create the
9677         BusClientPolicy here instead of on-demand.
9678         (bus_connection_get_policy): don't return an error
9679
9680         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9681         sender field in message being replied to
9682
9683         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9684         causing it to return FALSE always
9685
9686         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9687         we checked sender rather than destination
9688
9689 2003-04-25  Havoc Pennington  <hp@redhat.com>
9690
9691         test suite is slightly hosed at the moment, will fix soon
9692
9693         * bus/connection.c (bus_connections_expire_incomplete): fix to
9694         properly disable the timeout when required
9695         (bus_connection_set_name): check whether we can remove incomplete
9696         connections timeout after we complete each connection.
9697
9698         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9699         probably still broken.
9700
9701         * bus/services.c (bus_registry_acquire_service): implement max
9702         number of services owned, and honor allow/deny rules on which
9703         services a connection can own.
9704
9705         * bus/connection.c (bus_connection_get_policy): report errors here
9706
9707         * bus/activation.c: implement limit on number of pending
9708         activations
9709
9710 2003-04-25  Havoc Pennington  <hp@redhat.com>
9711
9712         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9713         where we used >= 0 instead of != DBUS_UID_UNSET.
9714
9715 2003-04-25  Havoc Pennington  <hp@redhat.com>
9716
9717         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9718         were toggled without add/remove, fix from Anders Gustafsson
9719
9720 2003-04-24  Havoc Pennington  <hp@redhat.com>
9721
9722         * test/data/valid-config-files/basic.conf: add <limit> tags to
9723         this test
9724
9725         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9726         <limit> tag in configuration file.
9727
9728 2003-04-24  Havoc Pennington  <hp@redhat.com>
9729
9730         * bus/dispatch.c: somehow missed some name_is
9731
9732         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9733         (_dbus_timeout_set_interval): new
9734
9735         * bus/connection.c (bus_connections_setup_connection): record time
9736         when each connection is first set up, and expire them after the
9737         auth timeout passes.
9738
9739 2003-04-24  Havoc Pennington  <hp@redhat.com>
9740
9741         * dbus/dbus-message.c (dbus_message_name_is): rename
9742         (dbus_message_service_is): rename
9743         (dbus_message_sender_is): rename
9744         (dbus_message_get_service): rename
9745
9746 2003-04-24  Havoc Pennington  <hp@redhat.com>
9747
9748         * configure.in: add --enable-checks
9749
9750         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9751
9752         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9753         to use thread locks.
9754         (_dbus_connection_handler_destroyed_locked): move some private
9755         functions into proper docs group
9756
9757         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9758         _dbus_return_val_if_fail
9759
9760         Throughout: use dbus_return_if_fail
9761
9762 2003-04-23  James Willcox  <jwillcox@gnome.org>
9763
9764         * glib/dbus-glib.h:
9765         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9766         (dbus_connection_setup_with_g_main),
9767         (dbus_server_setup_with_g_main):
9768         * glib/test-dbus-glib.c: (main):
9769         * glib/test-thread-client.c: (main):
9770         * glib/test-thread-server.c: (new_connection_callback), (main):
9771         * tools/dbus-monitor.c: (main):
9772
9773         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9774         and dbus_server_setup_with_g_main().
9775
9776 2003-04-20  Havoc Pennington  <hp@pobox.com>
9777
9778         * doc/dbus-specification.sgml: document the restrictions on
9779         message and service names
9780
9781 2003-04-22  Havoc Pennington  <hp@redhat.com>
9782
9783         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9784         support, and do some code cleanups to share more code and
9785         speed up array marshal/demarshal.
9786
9787         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9788
9789         * configure.in: generate dbus-arch-deps.h
9790
9791         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9792         64-bit typecodes
9793
9794 2003-04-22  Havoc Pennington  <hp@redhat.com>
9795
9796         * test/data/valid-messages/opposite-endian.message: fix test
9797         to use proper type for rply field
9798
9799         * test/data/invalid-messages: add tests for below validation
9800
9801         * dbus/dbus-message.c (decode_header_data): validate field types,
9802         and validate that named fields are valid names
9803         (decode_name_field): consider messages in the
9804         org.freedesktop.Local. namespace to be invalid.
9805
9806         * dbus/dbus-string.c (_dbus_string_validate_name): new
9807
9808 2003-04-19  Havoc Pennington  <hp@pobox.com>
9809
9810         * bus/driver.c (bus_driver_handle_hello): check limits and
9811         return an error if they are exceeded.
9812
9813         * bus/connection.c: maintain separate lists of active and inactive
9814         connections, and a count of each. Maintain count of completed
9815         connections per user. Implement code to check connection limits.
9816
9817         * dbus/dbus-list.c (_dbus_list_unlink): export
9818
9819         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9820         number of bytes in the message queue for a connection
9821
9822 2003-04-18  Havoc Pennington  <hp@pobox.com>
9823
9824         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9825
9826         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9827         memleaks
9828
9829         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9830         on realloc be sure to update the pointer in the keyring
9831
9832         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9833         offset to avoid writing to unallocated memory
9834
9835         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9836         try the next mechanism, so we properly handle OOM
9837
9838         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9839         on OOM.
9840         (_dbus_keyring_new): fix OOM bug
9841         (_dbus_keyring_new_homedir): always set error; impose a maximum
9842         number of keys we'll load from the file, mostly to speed up the
9843         test suite and make its OOM checks more useful, but also for
9844         general sanity.
9845
9846         * dbus/dbus-auth.c (process_error_server): reject authentication
9847         if we get an error from the client
9848         (process_cancel): on cancel, send REJECTED, per the spec
9849         (process_error_client): send CANCEL if we get an error from the
9850         server.
9851
9852 2003-04-18  Havoc Pennington  <hp@pobox.com>
9853
9854         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9855         debug spew
9856
9857         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9858         handling problem
9859
9860         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9861         about DBUS_TEST_HOMEDIR once
9862
9863         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9864         the environment
9865
9866         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9867         config file so we test the right thing
9868
9869         Throughout: assorted docs improvements
9870
9871 2003-04-18  Havoc Pennington  <hp@pobox.com>
9872
9873         * glib/dbus-gmain.c: adapt to watch changes
9874
9875         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9876
9877         * dbus/dbus-server.h: remove dbus_server_handle_watch
9878
9879         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9880
9881         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9882         like DBusTimeout, so we don't need dbus_connection_handle_watch
9883         etc.
9884
9885 2003-04-17  Havoc Pennington  <hp@redhat.com>
9886
9887         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9888         database usage so it all goes via the DBusUserDatabase cache.
9889
9890 2003-04-17  Havoc Pennington  <hp@redhat.com>
9891
9892         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9893         there was an OOM watch we skipped, we always return TRUE so we
9894         iterate again to have a look at it again. Fixes test suite hang.
9895         Code rearrangement also lets us lose some memset and only iterate
9896         over callbacks once.
9897
9898         * bus/driver.c (bus_driver_handle_message): sense of test for
9899         reply was backward
9900
9901 2003-04-16  Havoc Pennington  <hp@pobox.com>
9902
9903         * doc/dbus-specification.sgml: make spec say serials are unsigned
9904
9905         * dbus/dbus-message.h: change message serials to unsigned
9906
9907         * dbus/dbus-connection.c: adapt to message serials being unsigned
9908
9909 2003-04-15  Havoc Pennington  <hp@pobox.com>
9910
9911         * bus/bus.c: create and keep around a shared DBusUserDatabase
9912         object.
9913
9914         * bus/connection.c (bus_connection_get_groups): don't cache
9915         groups for user in the connection object, since user database
9916         object now does that.
9917
9918 2003-04-16  Havoc Pennington  <hp@redhat.com>
9919
9920         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9921         list of size counters
9922         (_dbus_message_loader_putback_message_link): put back a popped link
9923
9924         * dbus/dbus-connection.c
9925         (dbus_connection_set_max_live_messages_size): rename
9926         max_received_size
9927         (dbus_connection_get_outgoing_size): get size of outgoing
9928         queue
9929         (_dbus_connection_set_connection_counter): remove this cruft
9930
9931 2003-04-14  Havoc Pennington  <hp@redhat.com>
9932
9933         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9934         caching, but at some point we might want to be able to use a
9935         different database.
9936
9937         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9938         SHA1 conf file to test the sha1 auth mechanism, since the regular
9939         test always uses EXTERNAL when available.
9940
9941         * configure.in,
9942         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9943         add conf file that requires use of sha1 auth
9944
9945 2003-04-13  Havoc Pennington  <hp@pobox.com>
9946
9947         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9948         from Philip Blundell to send messages and monitor them.
9949
9950 2003-04-13  Havoc Pennington  <hp@pobox.com>
9951
9952         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9953         callbacks
9954
9955         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9956         users
9957
9958         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9959         fix to only recover unused bytes if we're already authenticated
9960         (_dbus_transport_get_is_authenticated): fix to still mark us
9961         authenticated if there are unused bytes.
9962
9963         * bus/dispatch.c: implement security policy checking
9964
9965         * bus/connection.c (bus_transaction_send_from_driver): new
9966
9967         * bus/bus.c (bus_context_check_security_policy): new
9968
9969         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9970         now we just set the DBusError and it gets converted to an error
9971         reply.
9972
9973         * bus/connection.c (allow_user_function): enable code using actual
9974         data from the config file
9975
9976         * bus/policy.c (list_allows_user): handle wildcard rules for
9977         user/group connection perms
9978
9979 2003-04-13  Havoc Pennington  <hp@pobox.com>
9980
9981         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9982
9983         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9984
9985         * bus/policy.c (bus_policy_append_mandatory_rule)
9986         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9987         (bus_policy_append_group_rule): new functions
9988
9989 2003-04-12  Havoc Pennington  <hp@pobox.com>
9990
9991         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9992
9993         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9994         the pid/gid/uid, just for paranoia.
9995
9996         * test/break-loader.c (randomly_do_n_things): find a byte
9997         containing a type code, and randomly change it to a different
9998         type code.
9999
10000 2003-04-12  Havoc Pennington  <hp@pobox.com>
10001
10002         * bus/policy.h: change BusPolicy to be the thing from the config
10003         file, and rename old BusPolicy to BusClientPolicy
10004
10005         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10006         match change in how policy works
10007
10008         * dbus/dbus-internals.h: mark assert_not_reached as
10009         __attribute((noreturn))__
10010
10011 2003-04-11  Havoc Pennington  <hp@redhat.com>
10012
10013         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10014         the broadcast service. Use boolean return for ServiceExists.
10015
10016 2003-04-11  Havoc Pennington  <hp@redhat.com>
10017
10018         * configure.in: add another directory to look for qt in.
10019
10020 2003-04-11  Havoc Pennington  <hp@redhat.com>
10021
10022         * AUTHORS: add Colin Walters
10023
10024 2003-04-11  Havoc Pennington  <hp@redhat.com>
10025
10026         * NEWS: update
10027
10028         * configure.in: 0.9
10029
10030 2003-04-11  Havoc Pennington  <hp@redhat.com>
10031
10032         * bus/messagebus.in: remove pid file when stopping the
10033         message bus, since the bus won't have privileges to remove it
10034         itself.
10035
10036 2003-04-11  Havoc Pennington  <hp@redhat.com>
10037
10038         * bus/bus.c (bus_context_new): move credentials change after
10039         creating pidfile
10040
10041 2003-04-11  Havoc Pennington  <hp@pobox.com>
10042
10043         * test/decode-gcov.c: add "below average functions" to the
10044         coverage report, and change how some of the code works.
10045
10046         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10047         not in the coverage stats.
10048
10049         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10050         couple places so running the test suite doesn't result in megaspam.
10051
10052 2003-04-11  Havoc Pennington  <hp@pobox.com>
10053
10054         * bus/dispatch.c (check_existent_service_activation): accept a no
10055         memory error in a place we didn't before
10056
10057         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10058         in case the first one failed," since the test suite is less
10059         broken now.
10060
10061 2003-04-10  Havoc Pennington  <hp@pobox.com>
10062
10063         * bus/dispatch.c (check_segfault_service_activation): add test
10064         for launching an executable that just crashes.
10065
10066         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10067         don't leave a million cores. We'll see how portable this is.
10068
10069 2003-04-10  Havoc Pennington  <hp@pobox.com>
10070
10071         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10072         the possible parent failures before we fork, so that we don't
10073         fail to create a babysitter after creating the child.
10074
10075         * bus/activation.c (bus_activation_activate_service): kill child
10076         if we don't successfully complete the activation.
10077
10078 2003-04-10  Havoc Pennington  <hp@redhat.com>
10079
10080         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10081         the connection if it's disconnected
10082
10083         * bus/activation.c (bus_activation_service_created): use new
10084         transaction features to roll back removal of pending activation if
10085         we don't successfully create the service after all. Don't remove
10086         pending activation if the function fails.
10087
10088         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10089         (_dbus_list_insert_after_link): new code to facilitate
10090         services.c fixes
10091
10092         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10093         new functionality, so we can preallocate the ability to insert
10094         into a hash table.
10095
10096         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10097         allowing us to put custom hooks in a transaction to be used for
10098         cancelling said transaction
10099
10100         * doc/dbus-specification.sgml: add some discussion of secondary
10101         service owners, and disallow zero-length service names
10102
10103         * bus/services.c (bus_registry_acquire_service): new function,
10104         splits out part of bus_driver_handle_acquire_service() and fixes
10105         a bug where we didn't remove the service doing the acquiring
10106         from the secondary queue if we failed to remove the current owner
10107         from the front of the queue.
10108
10109 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10110
10111         * doc/dbus-specification.sgml:
10112         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10113
10114 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10115
10116         * bus/.cvsignore:
10117         * glib/.cvsignore:
10118         * test/.cvsignore:
10119         Added files to cvsignore
10120
10121         * dbus/dbus-message.h:
10122         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10123         Make get_named() take two out argument and return a boolean.
10124         (dbus_message_iter_get_args_valist):
10125         Update usage of get_named().
10126         (dbus_message_iter_append_byte):
10127         Fix typo
10128         (dbus_message_iter_append_named)
10129         Fix typo
10130         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10131         More tests.
10132
10133 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10134
10135         * dbus/dbus-marshal.[ch]:
10136         Add array_type_pos argument to _dbus_marshal_validate_arg.
10137         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10138
10139         * dbus/dbus-message.[ch]:
10140         Multi-dimensional arrays have full type specification in the
10141         outermost array. Iter code re-arranged to handle this.
10142         Added some more iter tests.
10143
10144         * doc/dbus-specification.sgml:
10145         Add me to authors.
10146         Remove old FIXME.
10147         Update new array encoding description.
10148         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10149
10150         * test/data/invalid-messages/array-with-mixed-types.message:
10151         * test/data/valid-messages/array-of-array-of-uint32.message:
10152         Change to the new array format.
10153
10154         * test/data/invalid-messages/too-short-dict.message:
10155         Fix bug in test.
10156
10157         * test/data/valid-messages/recursive-types.message:
10158         Fix up and extend test.
10159
10160 2003-04-10  Havoc Pennington  <hp@pobox.com>
10161
10162         * bus/dispatch.c: lots of fixes
10163
10164         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10165         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10166         that was crack, broke the test service.
10167
10168         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10169         handling to avoid piling up errors if we get a failure on the
10170         first address.
10171
10172         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10173         pid in assertion failures.
10174
10175         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10176         to some fixed size of file descriptor array. Don't return TRUE
10177         anytime a timeout exists, that led to lots of busy loop silliness
10178         in the tests.
10179
10180 2003-04-09  Havoc Pennington  <hp@redhat.com>
10181
10182         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10183         I'd checked this in earlier but hadn't.
10184
10185 2003-04-09  Havoc Pennington  <hp@redhat.com>
10186
10187         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10188         the activation test (man this is getting old!)
10189
10190 2003-04-09  Havoc Pennington  <hp@redhat.com>
10191
10192         * test/test-utils.c: use dispatch status function to fix this up
10193
10194         * bus/connection.c (connection_watch_callback): don't dispatch
10195         from here
10196         (connection_timeout_callback): don't dispatch from here
10197         (bus_connections_setup_connection): set the dispatch status function
10198         (bus_connection_disconnected): unset it
10199
10200         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10201         used to add a connection to be dispatched
10202         (_dbus_loop_iterate): do the dispatching at the end of each
10203         iteration
10204
10205         * dbus/dbus-connection.c
10206         (dbus_connection_set_dispatch_status_function): new function
10207         allowing us to fix up main loop usage
10208         (_dbus_connection_last_unref): free all the various function
10209         user data
10210         (dbus_connection_dispatch): call the DispatchStatusFunction
10211         whenever this function returns
10212         (dbus_connection_handle_watch): call DispatchStatusFunction
10213         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10214         (reply_handler_timeout): call DispatchStatusFunction
10215         (dbus_connection_flush): call DispatchStatusFunction
10216
10217 2003-04-09  Havoc Pennington  <hp@redhat.com>
10218
10219         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10220         a memory leak
10221
10222         * bus/dispatch.c (check_service_activated): fix bug in test
10223
10224         * dbus/dbus-mainloop.c (check_timeout): fix this up
10225
10226         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10227         verbose output so we can sort out output from different processes,
10228         e.g. in the activation case.
10229
10230 2003-04-08  Colin Walters  <walters@gnu.org>
10231
10232         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10233         the pid file.
10234         (bus_context_new): Set it.
10235         (bus_context_unref): Use it to delete the pid file.
10236
10237 2003-04-08  Havoc Pennington  <hp@redhat.com>
10238
10239         * test/data/invalid-messages/array-with-mixed-types.message:
10240         regression test that fails for the moment
10241
10242         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10243         tests for convenience
10244
10245         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10246         array of nil, it broke things.
10247
10248         * test/data/invalid-messages/array-of-nil.message: regression test
10249
10250         * test/data/valid-messages/array-of-array-of-uint32.message:
10251         happened to write this so added it to suite
10252
10253 2003-04-08  Havoc Pennington  <hp@redhat.com>
10254
10255         * bus/driver.c (bus_driver_handle_acquire_service): init
10256         retval/reply before checking name
10257
10258         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10259         recursion depth argument
10260
10261         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10262         in the public struct for future extension
10263
10264         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10265         typo
10266
10267         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10268         message
10269
10270         * doc/dbus-specification.sgml: fix typo
10271
10272 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10273
10274         Implemented recursive types, named types and new-style iters
10275
10276         * bus/driver.c:
10277         * glib/test-thread-client.c: (thread_func):
10278         * glib/test-thread-server.c: (handle_test_message):
10279         * test/test-service.c: (handle_echo):
10280         Update to new api
10281
10282         * dbus/Makefile.am:
10283         * dbus/dbus-dict.c:
10284         * dbus/dbus-dict.h:
10285         * dbus/dbus.h
10286         Remove DBusDict
10287
10288         * dbus/dbus-internals.c: (_dbus_type_to_string):
10289         Update for new types.
10290
10291         * dbus/dbus-marshal.[ch]:
10292         Implement recursive types and the new marshalling format.
10293         Remove hardcoded dict marshalling.
10294         Marshal named types.
10295
10296         * dbus/dbus-message-builder.c:
10297         Add BYTE_ARRAY.
10298         Remove references to old types
10299
10300         * dbus/dbus-message.[ch]:
10301         New non-refcounted iter API that supports recursive iters.
10302         Use iters for appending, including support for recursive
10303         iters.
10304         Add byte and named type support.
10305         Update everything to new marshalling formats.
10306         Add tests for new API.
10307
10308         * dbus/dbus-protocol.h:
10309         Remove old array types.
10310         Add types: BYTE, ARRAY, DICT, NAMED
10311
10312         * dbus/dbus-string.c:
10313         * dbus/dbus-sysdeps.c:
10314         Make parse_double locale safe.
10315
10316         * dbus/dbus-test-main.c:
10317         Call setlocale.
10318
10319         * dbus/dbus-test.c:
10320         Kill dict test
10321
10322         * doc/dbus-specification.sgml:
10323         Update spec
10324
10325         * test/data/incomplete-messages/missing-body.message:
10326         * test/data/invalid-messages/bad-boolean.message:
10327         * test/data/invalid-messages/bad-boolean-array.message:
10328         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10329         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10330         * test/data/invalid-messages/too-short-dict.message:
10331         * test/data/valid-messages/dict-simple.message:
10332         * test/data/valid-messages/dict.message:
10333         * test/data/valid-messages/emptiness.message:
10334         * test/data/valid-messages/lots-of-arguments.message:
10335         * test/data/valid-messages/no-padding.message:
10336         * test/data/valid-messages/recursive-types.message:
10337         Add missing NAME fields
10338         Fix up dicts & arrays
10339
10340         * test/data/invalid-messages/dict-with-nil-value.message:
10341         Removed, this is not invalid anymore.
10342
10343         * test/data/valid-messages/recursive-types.message:
10344         Add new test for deeply recursive types.
10345
10346 2003-04-07  Havoc Pennington  <hp@pobox.com>
10347
10348         * bus/driver.c (bus_driver_handle_acquire_service): return an
10349         error if you try to acquire a service that starts with ':'
10350
10351 2003-04-07  Havoc Pennington  <hp@redhat.com>
10352
10353         * doc/dbus-specification.sgml: require that base service names
10354         start with ':' and that the base service is created/deleted
10355         as first and last things a connection does on the bus
10356
10357         * bus/dispatch.c (check_existent_service_activation): lots more
10358         work on the activation test; it doesn't fully pass yet...
10359
10360         * test/test-service.c (main): fix so we don't memleak the
10361         connection to the message bus
10362         (filter_func): accept a message asking us to exit
10363
10364 2003-04-06  Havoc Pennington  <hp@pobox.com>
10365
10366         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10367         from Colin Walters
10368
10369         * configure.in: fixes to Qt detection from Colin Walters
10370
10371         * doc/Makefile.am: Only remove generated docbook dirs if they
10372         exist, from Colin Walters
10373
10374         * dbus/dbus-bus.c: change how we set well-known connections to
10375         NULL, so that it works if a single connection is stored in
10376         two well-known array slots.
10377
10378         * test/Makefile.am: remove a lot of stuff that isn't immediately
10379         useful, it's in CVS history if we want it.
10380
10381         * test/test-service.c: use dbus-mainloop instead of that
10382         watch.[hc] crack
10383
10384 2003-04-06  Havoc Pennington  <hp@pobox.com>
10385
10386         * dbus/Makefile.am: split lists of sources into stuff that goes in
10387         the library, util functions that go in the lib and are also used
10388         elsewhere, and util functions that are used in tests/daemon but
10389         don't go in the lib.
10390
10391         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10392         here so it can be used in test binaries also
10393
10394 2003-04-06  Havoc Pennington  <hp@pobox.com>
10395
10396         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10397         here in the parent process, so we can return an error if it
10398         fails. Also, move some of the code into the child so the parent
10399         is less hosed if we fail midway through.
10400
10401         * bus/bus.c (bus_context_new): move pidfile detection further up
10402         in the function, before we start overwriting sockets and such.
10403
10404         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10405
10406         * configure.in: add --with-system-pid-file and --with-system-socket
10407
10408 2003-04-06  Colin Walters  <walters@verbum.org>
10409
10410         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10411
10412         * bus/system.conf.in: Declare a pidfile.
10413
10414         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10415         create one (if appropriate).
10416
10417         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10418         (struct BusConfigParser) [pidfile]: New.
10419         (element_type_to_name, merge_included, start_busconfig_child)
10420         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10421         (bus_config_parser_unref): Free it.
10422         (bus_config_parser_get_pidfile): New function.
10423
10424         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10425
10426         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10427
10428         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10429
10430         * dbus/dbus-sysdeps.h: Prototype it.
10431
10432 2003-04-06  Havoc Pennington  <hp@pobox.com>
10433
10434         * bus/bus.c (bus_context_new): print the address in here, rather
10435         than in main(), because we need to do it before forking the daemon
10436
10437         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10438         on the service nonexistent error
10439
10440         * bus/driver.c (bus_driver_handle_acquire_service): set the
10441         sender on the AcquireService reply
10442
10443         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10444         server also listen on a UNIX socket so services can connect to it.
10445
10446 2003-04-06  Havoc Pennington  <hp@pobox.com>
10447
10448         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10449         so it detects deadlocks and also we actually init threads when
10450         debugging.
10451
10452 2003-04-06  Havoc Pennington  <hp@pobox.com>
10453
10454         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10455         save the domain socket name, and unlink it when we disconnect the
10456         server. Means that at least when we exit normally, we won't leave
10457         a bunch of junk in /tmp
10458
10459         * dbus/dbus-transport-unix.c
10460         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10461         memory management). (I was making a real change here but then
10462         didn't)
10463
10464 2003-04-06  Havoc Pennington  <hp@pobox.com>
10465
10466         * bus/bus.c (bus_context_new): fix wrong handling of
10467         server_data_slot_unref() in the error case.
10468
10469         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10470         "(condition) != 0" to _dbus_real_assert so that
10471         "_dbus_assert (pointer)" doesn't cause a warning
10472
10473         * bus/main.c (main): accept --print-address option to print out
10474         the message bus address
10475
10476         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10477
10478         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10479         "tmpdir" option to unix: address on client side
10480
10481         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10482         to unix: address
10483
10484         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10485         we can use to create sockets in the test suite.
10486
10487         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10488         cleanly. To be used for testing.
10489
10490         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10491
10492         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10493
10494         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10495         handle trying to call this when there's no servers active
10496
10497 2003-04-05  Havoc Pennington  <hp@pobox.com>
10498
10499         * NEWS: update
10500
10501         * configure.in: 0.8
10502
10503 2003-04-05  Havoc Pennington  <hp@pobox.com>
10504
10505         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10506         crash on startup. Need to get "try starting the daemon"
10507         in the test suite I guess. ;-)
10508
10509         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10510         tracked the number of open connections; it's better done in
10511         application-specific code as you want it to span all servers etc.
10512
10513 2003-04-05  Havoc Pennington  <hp@pobox.com>
10514
10515         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10516         patch from Colin Walters
10517
10518 2003-04-05  Havoc Pennington  <hp@pobox.com>
10519
10520         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10521         reality; in fact multiple mechanisms are allowed.
10522
10523         * dbus/dbus-internals.c (_dbus_real_assert)
10524         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10525         _dbus_assert_not_reached() into functions, so that they don't show
10526         up in basic block counts for test coverage, and don't use up as
10527         much disk space. Does mean slower execution speed though, so
10528         assumes --disable-asserts is the normal production case.
10529
10530 2003-04-05  Havoc Pennington  <hp@pobox.com>
10531
10532         * test/Makefile.am (dist-hook): also dist *.in files
10533
10534         * NEWS: update
10535
10536         * configure.in: 0.7
10537
10538 2003-04-05  Havoc Pennington  <hp@pobox.com>
10539
10540         * dbus/dbus-string.c: docs warning
10541
10542         * dbus/dbus-spawn.c: missing docs
10543
10544         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10545
10546 2003-04-05  Havoc Pennington  <hp@pobox.com>
10547
10548         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10549         magic from GLib
10550
10551         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10552         to -1 once we've reaped the babysitter
10553         (_dbus_babysitter_handle_watch): do as much work as we can, not
10554         just one go of it
10555
10556         * bus/activation.c: add code using DBusBabysitter so that we
10557         handle it when a service fails to start up properly.
10558         (bus_activation_service_created): don't remove the activation
10559         entries as we go, just let them get removed when we free the pending
10560         activation. Unref reply messages after sending them.
10561
10562 2003-04-05  Havoc Pennington  <hp@pobox.com>
10563
10564         * test/decode-gcov.c (main): print per-directory stats in the report
10565
10566         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10567
10568 2003-04-05  Havoc Pennington  <hp@pobox.com>
10569
10570         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10571
10572         * test/decode-gcov.c: hack up a little program to suck data
10573         out of gcov files. Yes this is sort of silly.
10574
10575         * configure.in: define something in config.h and do an
10576         AM_CONDITIONAL when gcov is enabled
10577
10578 2003-04-04  Havoc Pennington  <hp@redhat.com>
10579
10580         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10581         return a "babysitter" object that is used to monitor the status of
10582         the spawned process and reap it when required.
10583
10584         * test/test-segfault.c, test/test-exit.c,
10585         test/test-sleep-forever.c: binaries that do various lame things,
10586         used in the test suite.
10587
10588         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10589
10590 2003-04-03  Havoc Pennington  <hp@pobox.com>
10591
10592         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10593         in preparation for modifying it, dbus-sysdeps is getting
10594         a bit unmanageable.
10595
10596 2003-04-03  Havoc Pennington  <hp@redhat.com>
10597
10598         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10599         have multiple ones
10600
10601         * bus/*.[hc]: adapt to mainloop change
10602
10603 2003-04-03  Havoc Pennington  <hp@redhat.com>
10604
10605         * bus/activation.c (load_directory): fix up memleaks
10606         (bus_activation_entry_free): free the entry
10607
10608         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10609         we get one from the message bus; fix memleaks.
10610
10611         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10612
10613 2003-04-03  Havoc Pennington  <hp@pobox.com>
10614
10615         * bus/config-parser.c (bus_config_parser_unref): free
10616         list of mechanisms, bug discovered by test suite enhancements
10617         (putting system.conf and session.conf into suite)
10618
10619         * test/Makefile.am, test/test-service.c: add placeholder for a
10620         test service that we'll activate as part of test suite. Doesn't
10621         do anything yet.
10622
10623         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10624         setting NULL value, and use system malloc not dbus_malloc()
10625         when we have unavoidable memleakage.
10626
10627         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10628         didn't work, and support DBUS_BUS_ACTIVATION.
10629
10630         * bus/activation.c (child_setup): pass our well-known bus type to
10631         the child
10632
10633         * bus/config-parser.c: support <type> to specify well-known type
10634
10635         * doc/dbus-specification.sgml: document the env variables to
10636         locate well-known buses and find service activator
10637
10638 2003-04-02  Havoc Pennington  <hp@redhat.com>
10639
10640         * test/Makefile.am (all-local): add a rule to copy tests to
10641         builddir, so we can have generated tests. Use this to remove the
10642         silly hack for testing system.conf and session.conf. Will use this
10643         shortly to generate .service files pointing to test binaries.
10644
10645 2003-04-02  Havoc Pennington  <hp@redhat.com>
10646
10647         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10648         current alloc and needed new length, not max of the doubled
10649         allocation and needed new length. Also, when building tests,
10650         don't do the double-allocation stuff, just realloc every time.
10651
10652 2003-04-02  Havoc Pennington  <hp@redhat.com>
10653
10654         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10655         in error messages
10656         (_dbus_string_get_dirname): new
10657         (_dbus_sysdeps_test): new
10658         (_dbus_directory_open): include dirnames in error messages
10659
10660         * bus/config-parser.c: interpret <include> and <includedir> and
10661         <servicedir> relative to config file location if the given
10662         filename is not absolute.
10663
10664         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10665
10666 2003-04-02  Havoc Pennington  <hp@redhat.com>
10667
10668         * bus/connection.c (bus_transaction_send_error_reply): set sender
10669         service for the error, and unref the reply on success
10670
10671         * bus/activation.c: convert to use BusTransaction so OOM can be
10672         handled correctly
10673         (bus_activation_service_created): set sender of the message
10674
10675 2003-04-01  Havoc Pennington  <hp@redhat.com>
10676
10677         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10678         <includedir> (at least mostly)
10679
10680         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10681         first, then the user ID
10682
10683 2003-04-01  Havoc Pennington  <hp@pobox.com>
10684
10685         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10686         function
10687
10688         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10689
10690         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10691
10692         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10693         socket 0777, and unlink any existing socket.
10694
10695         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10696         the configuration file so specifies; set up auth mechanism
10697         restrictions
10698
10699         * bus/config-parser.c (bus_config_parser_content): add support
10700         for <fork> option and fill in code for <auth>
10701
10702         * bus/system.conf.in: add <fork/> to default configuration,
10703         and limit auth mechanisms to EXTERNAL
10704
10705         * doc/config-file.txt (Elements): add <fork>
10706
10707         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10708         (_dbus_change_identity): new function
10709
10710 2003-03-31  Havoc Pennington  <hp@redhat.com>
10711
10712         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10713         (_dbus_listen_unix_socket): fix off-by-one error in null
10714         termination spotted by Nalin
10715
10716 2003-03-31  Havoc Pennington  <hp@redhat.com>
10717
10718         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10719         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10720         having a real home directory available.
10721
10722 2003-03-31  Havoc Pennington  <hp@redhat.com>
10723
10724         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10725
10726         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10727
10728         * configure.in: add support for specifying a style of init script
10729         to install
10730
10731 2003-03-31  Havoc Pennington  <hp@redhat.com>
10732
10733         Fix some annoying DBusString API and fix all affected code.
10734
10735         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10736         max_length argument
10737         (_dbus_string_get_data): change to return string instead of using
10738         an out param
10739         (_dbus_string_get_const_data): ditto
10740         (_dbus_string_get_data_len): ditto
10741         (_dbus_string_get_const_data_len): ditto
10742
10743 2003-03-31  Havoc Pennington  <hp@redhat.com>
10744
10745         * bus/main.c (main): fix up the command line arguments to be nicer
10746
10747 2003-03-31  Havoc Pennington  <hp@redhat.com>
10748
10749         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10750         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10751         final location that lands in the config file
10752
10753         * bus/config-loader-expat.c (bus_config_load): fix type of
10754         XML_Parser variable
10755
10756         * doc/TODO: remove TODO item for dbus_bus_get()
10757
10758         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10759
10760 2003-03-31  Havoc Pennington  <hp@pobox.com>
10761
10762         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10763         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10764         argument since they are always client side
10765
10766         * dbus/dbus-server.c (dbus_server_get_address): new function
10767
10768         * bus/main.c (main): take the configuration file as an argument.
10769
10770         * test/data/valid-config-files/debug-allow-all.conf: new file to
10771         use with dispatch.c tests for example
10772
10773         * bus/test-main.c (main): require test data dir
10774
10775         * bus/bus.c (bus_context_new): change this to take a
10776         configuration file name as argument
10777
10778         * doc/config-file.txt (Elements): add <servicedir>
10779
10780         * bus/system.conf, bus/session.conf: new files
10781
10782         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10783         well-known socket if none set
10784
10785         * configure.in: create system.conf and session.conf
10786
10787 2003-03-30  Havoc Pennington  <hp@pobox.com>
10788
10789         * bus/config-parser.c: hacking
10790
10791         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10792         to shut down, since it could cause weirdness with the DBusList
10793         lock
10794
10795         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10796         link-oriented stack routines
10797         (alloc_link): free the mempool if the first alloc from it fails
10798
10799         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10800
10801         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10802         from GLib
10803         (_dbus_string_skip_white): new
10804
10805         * doc/config-file.txt (Elements): add <includedir>
10806
10807 2003-03-28  Havoc Pennington  <hp@pobox.com>
10808
10809         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10810         (_dbus_string_copy_data): new functions
10811
10812 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10813
10814         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10815         * dbus/dbus-bus.h:
10816         Add dbus_bus_get.
10817
10818         * dbus/dbus-memory.c:
10819         Fix a doc comment.
10820
10821 2003-03-28  Havoc Pennington  <hp@pobox.com>
10822
10823         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10824         I think it may have just been superstition. Not sure.
10825
10826         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10827         failures that were not being handled.
10828
10829         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10830
10831         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10832         row that will fail on out-of-memory.
10833
10834         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10835         function for testing out-of-memory handling.
10836
10837         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10838         allocation functions, they do map exactly to the expat ones.
10839
10840 2003-03-27  Havoc Pennington  <hp@redhat.com>
10841
10842         * bus/config-loader-libxml.c (bus_config_load): add another error
10843         check
10844
10845 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10846
10847         * doc/TODO:
10848         Add note about automatic service activation.
10849
10850         * doc/dbus-specification.sgml:
10851         Rename the specification and clarify a few things.
10852
10853 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10854
10855         * Doxyfile.in:
10856         * dbus/dbus-address.c:
10857         * dbus/dbus-dict.c:
10858         * dbus/dbus-marshal.c:
10859         * dbus/dbus-server-debug-pipe.c:
10860         * dbus/dbus-transport-unix.c:
10861         Fix documentation warnings.
10862
10863 2003-03-26  Havoc Pennington  <hp@pobox.com>
10864
10865         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10866         after every test so it's quick and easy to see which leaked, and
10867         so we test multiple dbus_shutdown() calls
10868
10869         * configure.in: change configure.in XML stuff to also support
10870         expat
10871
10872         * config-loader-libxml.c: some hacking
10873
10874         * config-loader-expat.c: some hacking
10875
10876         * config-parser.c: some hacking, plus tests
10877
10878 2003-03-25  Havoc Pennington  <hp@redhat.com>
10879
10880         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10881
10882         * configure.in: add --with-xml option to specify XML library,
10883         right now only libxml is supported.
10884
10885         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10886         nonworking code between home and work, still just stubs
10887
10888 2003-03-24  Havoc Pennington  <hp@redhat.com>
10889
10890         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10891         file
10892
10893         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10894         NULL argument for "message" if the error is a well-known one,
10895         fill in a generic message in this case.
10896
10897         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10898         favor of DBusError
10899
10900         * bus/test.c (bus_test_flush_bus): add
10901
10902         * bus/policy.c (bus_policy_test): test code stub
10903
10904 2003-03-24  Havoc Pennington  <hp@pobox.com>
10905
10906         * bus/connection.c (bus_connections_setup_connection): set up
10907         the "can this user connect" function, but it always returns
10908         TRUE until we have a config file parser so we can have a config
10909         file that allows connections.
10910
10911 2003-03-23  Havoc Pennington  <hp@pobox.com>
10912
10913         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10914         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10915         the mutex, so we can check for proper memory management
10916         and OOM handling.
10917
10918         * dbus/dbus-dataslot.c: remove the mutex from
10919         DBusDataSlotAllocator and lock it manually when using it,
10920         to simplify fitting it into the global slots framework.
10921
10922         * dbus/dbus-threads.c (init_static_locks): rework how we're
10923         handling global locks so they are easily shut down.
10924
10925         * bus/policy.c (bus_policy_append_rule): fix
10926
10927         * bus/test-main.c (main): check for memleaks
10928
10929         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10930         test suite check for memleaks
10931
10932         * dbus/dbus-memory.c: add support in test mode for tracking
10933         number of outstanding blocks
10934
10935 2003-03-23  Havoc Pennington  <hp@pobox.com>
10936
10937         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10938         policies code
10939
10940         * dbus/dbus-hash.h: add ULONG hash keys
10941
10942         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10943         (_dbus_get_group_id): new function
10944
10945 2003-03-20  Havoc Pennington  <hp@redhat.com>
10946
10947         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10948         new function
10949         (dbus_connection_get_unix_user): new function
10950
10951 2003-03-20  Havoc Pennington  <hp@pobox.com>
10952
10953         * bus/connection.c (bus_connection_send_oom_error): assert that
10954         message has a sender
10955         (connection_execute_transaction): ditto
10956         (bus_connection_preallocate_oom_error): fix to set the sender, and
10957         set recipient to the destination service, not the bus driver
10958
10959         * bus/policy.c: hacking
10960
10961         * dbus/dbus-message.c (dbus_message_service_is): new function
10962         (dbus_message_sender_is): new
10963
10964 2003-03-19  Havoc Pennington  <hp@redhat.com>
10965
10966         * bus/policy.c: start sketching code for policy restrictions on
10967         what connections can do.
10968
10969 2003-03-18  Havoc Pennington  <hp@redhat.com>
10970
10971         * doc/TODO: some notes on high-level todo items. Little nitpick
10972         stuff is all in @todo, so no need to add it here.
10973
10974         * doc/config-file.txt: some notes on how config file might look
10975
10976 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10977
10978         * configure.in: 0.6
10979
10980         * NEWS: Update.
10981
10982 2003-03-17  Havoc Pennington  <hp@redhat.com>
10983
10984         * dbus/dbus-internals.h: add gcc attributes so that
10985         our printf-style functions warn on bad arguments to
10986         format
10987
10988         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10989         format bug
10990
10991         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10992         printf format bug
10993
10994 2003-03-17  Havoc Pennington  <hp@redhat.com>
10995
10996         * bus/test-main.c (main): make it print something as it runs
10997         so make check doesn't look stuck
10998
10999         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11000         from CVS, now obsolete
11001
11002 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11003
11004         * bus/dispatch.c: (bus_dispatch):
11005         Refetch the service name since it may have been reallocated
11006         when dbus_message_set_sender was called.
11007
11008         * dbus/dbus-sysdeps.c: (_dbus_accept):
11009         Add address and address length variables and use them to stop
11010         valgrind from complaining.
11011
11012 2003-03-17  Havoc Pennington  <hp@pobox.com>
11013
11014         All tests pass, no memleaks, no valgrind complaints.
11015
11016         * bus/test.c: refcount handler_slot
11017
11018         * bus/connection.c (bus_connections_new): refcount
11019         connection_data_slot
11020
11021         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11022         bytes so that auth scripts pass.
11023
11024         * bus/dispatch.c: init message_handler_slot so it gets allocated
11025         properly
11026
11027         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11028
11029         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11030         dealloc server_pipe_hash when no longer used for benefit of
11031         leak checking
11032
11033         * dbus/dbus-auth.c (process_command): memleak fix
11034
11035         * bus/dispatch.c (check_hello_message): memleak fix
11036
11037 2003-03-16  Havoc Pennington  <hp@pobox.com>
11038
11039         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11040
11041 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11042
11043         * bus/activation.c (bus_activation_activate_service): Append
11044         the pending activation entry to the list of pending activations.
11045
11046 2003-03-16  Havoc Pennington  <hp@pobox.com>
11047
11048         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11049         connections
11050
11051         * dbus/dbus-address.c (create_entry): fix OOM handling when
11052         failing to alloc entry->method
11053
11054 2003-03-16  Havoc Pennington  <hp@pobox.com>
11055
11056         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11057         the watch
11058
11059         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11060         add some missing dbus_set_result
11061
11062         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11063         alloc the DBusMessageHandler
11064
11065         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11066         the transport here, since we call this from the finalizer; it
11067         resulted in a double-finalize.
11068
11069         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11070         where we tried to use transport->connection that was NULL,
11071         happened when transport was disconnected early on due to OOM
11072
11073         * bus/*.c: adapt to handle OOM for watches/timeouts
11074
11075         * dbus/dbus-transport-unix.c: port to handle OOM during
11076         watch handling
11077
11078         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11079         reference to unused bytes instead of a copy
11080
11081         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11082         out of memory
11083
11084         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11085         FALSE on OOM
11086
11087         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11088         of memory
11089
11090 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11091
11092         * doc/dbus-specification.sgml:
11093         Document reply message for ActivateService.
11094
11095 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11096
11097         * bus/activation.c: (bus_pending_activation_entry_free),
11098         (bus_pending_activation_free), (bus_activation_new),
11099         (bus_activation_unref), (bus_activation_service_created),
11100         (bus_activation_activate_service):
11101         * bus/activation.h:
11102         * bus/bus.c: (bus_context_new):
11103         * bus/desktop-file.c: (new_section):
11104         * bus/driver.c: (bus_driver_send_service_deleted),
11105         (bus_driver_handle_activate_service):
11106         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11107         * bus/services.h:
11108         * dbus/dbus-connection.c:
11109         (dbus_connection_send_with_reply_and_block):
11110         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11111         * dbus/dbus-protocol.h:
11112         Make activation work better. Now pending activations will be queued
11113         and the daemon won't try to activate services that are already registered.
11114
11115 2003-03-16  Havoc Pennington  <hp@pobox.com>
11116
11117         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11118         connection data
11119
11120         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11121         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11122
11123 2003-03-16  Havoc Pennington  <hp@pobox.com>
11124
11125         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11126         this. always run the test suite before commit...
11127
11128         * bus/*: adapt to DBusConnection API changes
11129
11130         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11131         requires renaming stuff to avoid dbus_connection_dispatch name
11132         conflict.
11133
11134         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11135         function
11136
11137         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11138         separate from _dbus_message_loader_return_buffer()
11139
11140         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11141         this, because it's now always broken to use; the number of
11142         messages in queue vs. the number still buffered by the message
11143         loader is undefined/meaningless. Should use
11144         dbus_connection_get_dispatch_state().
11145         (dbus_connection_dispatch): rename from
11146         dbus_connection_dispatch_message
11147
11148 2003-03-16  Havoc Pennington  <hp@pobox.com>
11149
11150         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11151         implementation
11152
11153 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11154
11155         * dbus/dbus-connection.c:
11156         (dbus_connection_send_with_reply_and_block):
11157         Decrease connection->n_incoming when removing an entry
11158         from the list.
11159         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11160         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11161         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11162         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11163         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11164         (dbus_dict_get_byte_array):
11165         Handle NULL arrays and strings. Also add support for byte arrays.
11166
11167         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11168         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11169         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11170         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11171         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11172         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11173         * dbus/dbus-marshal.h:
11174         Add support for marshalling and demarshalling empty arrays and strings.
11175
11176         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11177         (dbus_message_append_string_array),
11178         (dbus_message_iter_get_boolean),
11179         (dbus_message_iter_get_boolean_array),
11180         (dbus_message_iter_get_int32_array),
11181         (dbus_message_iter_get_uint32_array),
11182         (dbus_message_iter_get_double_array),
11183         (dbus_message_iter_get_byte_array),
11184         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11185         (check_message_handling):
11186         Add support for getting empty arrays and dicts.
11187
11188         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11189         Don't do any validation at all for now, that's better than just checking
11190         for ASCII.
11191
11192         * test/data/valid-messages/emptiness.message:
11193         New test message with lots of empty arrays.
11194
11195 2003-03-16  Havoc Pennington  <hp@pobox.com>
11196
11197         * dbus/dbus-connection.c
11198         (_dbus_connection_queue_received_message_link): new function that
11199         can't fail due to OOM
11200
11201         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11202         new function pops a message together with a list link
11203         containing it.
11204
11205         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11206         message queuing functions to avoid needing to alloc memory
11207
11208 2003-03-16  Havoc Pennington  <hp@pobox.com>
11209
11210         Oops - test code was only testing failure of around 30 of the
11211         mallocs in the test path, but it turns out there are 500+
11212         mallocs. I believe this was due to misguided linking setup such
11213         that there was one copy of dbus_malloc etc. in the daemon and one
11214         in the shared lib, and only daemon mallocs were tested. In any
11215         case, the test case now tests all 500+ mallocs, and doesn't pass
11216         yet, though there are lots of fixes in this patch.
11217
11218         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11219         this so that it doesn't need to allocate memory, since it
11220         has no way of indicating failure due to OOM (and would be
11221         annoying if it did).
11222
11223         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11224
11225         * bus/Makefile.am: rearrange to create two self-contained
11226         libraries, to avoid having libraries with overlapping symbols.
11227         that was resulting in weirdness, e.g. I'm pretty sure there
11228         were two copies of global static variables.
11229
11230         * dbus/dbus-internals.c: move the malloc debug stuff to
11231         dbus-memory.c
11232
11233         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11234         empty.
11235
11236         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11237
11238         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11239         on failure.
11240
11241         * bus/dispatch.c (bus_dispatch_add_connection): free
11242         message_handler_slot when no longer using it, so
11243         memory leak checkers are happy for the test suite.
11244
11245         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11246
11247         * bus/bus.c (new_connection_callback): disconnect in here if
11248         bus_connections_setup_connection fails.
11249
11250         * bus/connection.c (bus_connections_unref): fix to free the
11251         connections
11252         (bus_connections_setup_connection): if this fails, don't
11253         disconnect the connection, just be sure there are no side
11254         effects.
11255
11256         * dbus/dbus-string.c (undo_alignment): unbreak this
11257
11258         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11259         leaking
11260         (_dbus_auth_new): fix the order in which we free strings
11261         on OOM failure
11262
11263         * bus/connection.c (bus_connection_disconnected): fix to
11264         not send ServiceDeleted multiple times in case of memory
11265         allocation failure
11266
11267         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11268         get the base service name
11269         (dbus_bus_register_client): don't return base service name,
11270         instead store it on the DBusConnection and have an accessor
11271         function for it.
11272         (dbus_bus_register_client): rename dbus_bus_register()
11273
11274         * bus/dispatch.c (check_hello_message): verify that other
11275         connections on the bus also got the correct results, not
11276         just the one sending hello
11277
11278 2003-03-15  Havoc Pennington  <hp@pobox.com>
11279
11280         Make it pass the Hello handling test including all OOM codepaths.
11281         Now to do other messages...
11282
11283         * bus/services.c (bus_service_remove_owner): fix crash when
11284         removing owner from an empty list of owners
11285         (bus_registry_ensure): don't leave service in the list of
11286         a connection's owned services if we fail to put the service
11287         in the hash table.
11288
11289         * bus/connection.c (bus_connection_preallocate_oom_error): set
11290         error flag on the OOM error.
11291
11292         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11293         handle _dbus_transport_set_connection failure
11294
11295         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11296         to create watches up front and simply enable/disable them as
11297         needed.
11298         (unix_connection_set): this can now fail on OOM
11299
11300         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11301         of enabling/disabling a watch or timeout.
11302
11303         * bus/loop.c (bus_loop_iterate): don't touch disabled
11304         watches/timeouts
11305
11306         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11307
11308 2003-03-15  Havoc Pennington  <hp@pobox.com>
11309
11310         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11311         write useful test code, after all that futzing around ;-)
11312
11313         Test does not yet pass because we can't handle OOM in
11314         _dbus_transport_messages_pending (basically,
11315         dbus_connection_preallocate_send() does not prealloc the write
11316         watch). To fix this, I think we need to add new stuff to
11317         set_watch_functions, namely a SetEnabled function so we can alloc
11318         the watch earlier, then enable it later.
11319
11320         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11321         dbus-memory.c to the convenience lib
11322
11323         * bus/test.c: rename some static functions to keep them clearly
11324         distinct from stuff in connection.c. Handle client disconnection.
11325
11326 2003-03-14  Havoc Pennington  <hp@pobox.com>
11327
11328         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11329         transport, tests more of the real codepath. Set up clients
11330         with bus_setup_debug_client.
11331
11332         * bus/test.c (bus_setup_debug_client): function to set up debug
11333         "clients" on the main loop
11334
11335         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11336         support
11337
11338         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11339         server type
11340
11341         * dbus/dbus-server-debug.c: support a debug server based on pipes
11342
11343         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11344         (_dbus_close): new function
11345
11346         * configure.in: check for socketpair
11347
11348 2003-03-14  Havoc Pennington  <hp@redhat.com>
11349
11350         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11351         cheesy hack
11352
11353         * dbus/dbus-transport-debug.c: rework this a good bit to be
11354         less complicated. hopefully still works.
11355
11356         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11357         manually
11358
11359         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11360         after running it
11361
11362         * dbus/dbus-message.c (dbus_message_copy): rename from
11363         dbus_message_new_from_message, fix it up to copy
11364         all the message fields, add test case
11365
11366         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11367         not quite passing yet
11368
11369 2003-03-14  Havoc Pennington  <hp@pobox.com>
11370
11371         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11372         until no work remains" in test code. (the large diff here
11373         is just code movement, no actual changes)
11374
11375         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11376         1, no point waiting around for test code.
11377         (_dbus_server_debug_accept_transport): unref the timeout
11378         after adding it (right?)
11379
11380         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11381
11382 2003-03-13  Havoc Pennington  <hp@redhat.com>
11383
11384         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11385         out of memory
11386
11387         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11388         of memory
11389
11390         * dbus/dbus-connection.h: Make AddWatchFunction and
11391         AddTimeoutFunction return a bool so they can fail on out-of-memory
11392
11393         * bus/bus.c (bus_context_new): set up timeout handlers
11394
11395         * bus/connection.c (bus_connections_setup_connection): set up
11396         timeout handlers
11397
11398         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11399         can fail
11400
11401         * bus/bus.c (bus_context_new): adapt to changes
11402
11403         * bus/connection.c: adapt to changes
11404
11405         * test/watch.c: adapt to DBusWatch changes
11406
11407         * bus/dispatch.c (bus_dispatch_test): started adding this but
11408         didn't finish
11409
11410 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11411
11412         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11413
11414 2003-03-13  Havoc Pennington  <hp@pobox.com>
11415
11416         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11417         set up a test framework as for the library
11418
11419 2003-03-12  Havoc Pennington  <hp@pobox.com>
11420
11421         Throughout: purge global variables, introduce BusActivation,
11422         BusConnections, BusRegistry, etc. objects instead.
11423
11424         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11425         message bus object
11426
11427         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11428         going to redo this a bit differently I think
11429
11430 2003-03-12  Havoc Pennington  <hp@redhat.com>
11431
11432         Mega-patch that gets the message bus daemon initially handling
11433         out-of-memory. Work still needed. Also lots of random
11434         moving stuff to DBusError instead of ResultCode.
11435
11436         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11437
11438         * dbus/dbus-connection.c
11439         (dbus_connection_send_with_reply_and_block): use DBusError
11440
11441         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11442         DBusResultCode
11443
11444         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11445         code here, as the only failure possible is OOM.
11446
11447         * bus/connection.c (bus_connection_disconnect):
11448         rename bus_connection_disconnected as it's a notification only
11449
11450         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11451         "name" on get_args failure, should be done by get_args;
11452         don't disconnect client for bad args, just return an error.
11453         (bus_driver_handle_service_exists): ditto
11454
11455         * bus/services.c (bus_services_list): NULL-terminate returned array
11456
11457         * bus/driver.c (bus_driver_send_service_lost)
11458         (bus_driver_send_service_acquired): send messages from driver to a
11459         specific client to the client's unique name, not to the broadcast
11460         service.
11461
11462         * dbus/dbus-message.c (decode_header_data): reject messages that
11463         contain no name field
11464         (_dbus_message_get_client_serial): rename to
11465         dbus_message_get_serial and make public
11466         (_dbus_message_set_serial): rename from set_client_serial
11467         (_dbus_message_set_reply_serial): make public
11468         (_dbus_message_get_reply_serial): make public
11469
11470         * bus/connection.c (bus_connection_foreach): allow stopping
11471         iteration by returning FALSE from foreach function.
11472
11473         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11474         (dbus_connection_free_preallocated_send)
11475         (dbus_connection_preallocate_send): new API for sending a message
11476         without possibility of malloc failure.
11477         (dbus_connection_send_message): rename to just
11478         dbus_connection_send (and same for whole function family)
11479
11480         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11481
11482         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11483
11484         * bus/activation.c: handle/return errors
11485
11486         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11487
11488         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11489         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11490         (_dbus_result_from_errno): move to this file
11491
11492 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11493
11494         * dbus/dbus-marshal.c:
11495         (_dbus_marshal_set_string):
11496         Take a length argument so we can marshal the correct string
11497         length.
11498
11499         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11500         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11501         (_dbus_marshal_test):
11502         * dbus/dbus-marshal.h:
11503         Add support for marshalling and demarshalling dicts.
11504
11505         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11506         Add support for TYPE DICT.
11507
11508         * dbus/dbus-message.c: (set_string_field):
11509         Adjust header padding.
11510
11511         (dbus_message_append_args_valist), (dbus_message_append_dict),
11512         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11513         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11514         (check_message_handling), (check_have_valid_message):
11515         * dbus/dbus-message.h:
11516         Add functions for setting and getting dicts.
11517
11518         * dbus/dbus-protocol.h:
11519         Add DBUS_TYPE_DICT.
11520
11521         * dbus/dbus.h:
11522         Add dbus-dict.h
11523
11524         * doc/dbus-specification.sgml:
11525         Add information about how dicts are marshalled.
11526
11527         * test/data/invalid-messages/dict-with-nil-value.message:
11528         * test/data/invalid-messages/too-short-dict.message:
11529         * test/data/valid-messages/dict-simple.message:
11530         * test/data/valid-messages/dict.message:
11531         Add sample messages containing dicts.
11532
11533 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11534
11535         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11536
11537 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11538
11539         * dbus/Makefile.am:
11540         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11541         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11542         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11543         (dbus_dict_set_double), (dbus_dict_set_string),
11544         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11545         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11546         (dbus_dict_set_string_array), (_dbus_dict_test):
11547         * dbus/dbus-dict.h:
11548         Fix according to comments from Havoc.
11549
11550 2003-03-06  Michael Meeks  <michael@server.home>
11551
11552         * configure.in: if we don't have kde-config, disable have_qt.
11553
11554 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11555
11556         * dbus/Makefile.am:
11557         Add dbus-dict.[ch]
11558
11559         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11560         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11561         (dbus_dict_remove), (dbus_dict_get_value_type),
11562         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11563         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11564         (dbus_dict_put_double), (dbus_dict_put_string),
11565         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11566         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11567         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11568         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11569         (dbus_dict_get_double), (dbus_dict_get_string),
11570         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11571         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11572         (dbus_dict_get_string_array), (_dbus_dict_test):
11573         * dbus/dbus-dict.h:
11574         Add DBusDict implementation
11575
11576         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11577         * dbus/dbus-test.h:
11578         Add _dbus_dict_test
11579
11580 2003-03-04  Havoc Pennington  <hp@pobox.com>
11581
11582         * test/data/auth/*: adapt to changes
11583
11584         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11585         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11586         userid
11587
11588         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11589         more stuff from being in a context name, to make the protocol
11590         simpler to deal with
11591
11592         * dbus/dbus-errors.c (dbus_error_has_name): new function
11593         (dbus_error_is_set): new function
11594
11595         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11596         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11597
11598         * dbus/dbus-connection.c (dbus_connection_flush): also read
11599         messages during a flush operation
11600
11601         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11602
11603 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11604
11605         * configure.in: Check for gethostbyname on Solaris.
11606
11607         * dbus/dbus-transport.c: (_dbus_transport_open):
11608         Remove duplicate "tcp" entry.
11609
11610         * doc/dbus-specification.sgml:
11611         Clarify some things.
11612
11613 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11614
11615         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11616         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11617         (_dbus_keyring_test):
11618         * dbus/dbus-md5.c: (_dbus_md5_compute):
11619         * dbus/dbus-sha.c: (_dbus_sha_compute):
11620         Plug memory leaks.
11621
11622 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11623
11624         * README: Add some things.
11625
11626 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11627
11628         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11629         after case DBUS_TYPE_BOOELAN.
11630
11631 2003-03-02  Havoc Pennington  <hp@pobox.com>
11632
11633         * test/break-loader.c (randomly_set_extreme_ints): add test that
11634         sets really huge and small integers
11635
11636         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11637         that length of boolean array fits in the string, and that
11638         string has room for boolean value in single-bool case.
11639
11640         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11641         optional value to "ALIGN" command which is what to fill the
11642         alignment with.
11643
11644         * test/data/valid-messages/no-padding.message: add regression
11645         test for the message padding problem
11646
11647 2003-03-02  Havoc Pennington  <hp@pobox.com>
11648
11649         * dbus/dbus-message.c (decode_header_data): fix to always init
11650         message_padding, from Benjamin Dauvergne
11651
11652 2003-03-02  Havoc Pennington  <hp@pobox.com>
11653
11654         * configure.in: 0.5
11655
11656         * NEWS: Update.
11657
11658 2003-03-01  Joe Shaw  <joe@assbarn.com>
11659
11660         * configure.in: Check for "struct cmsgcred" and try to access its
11661         members for BSD-like unices.
11662
11663         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11664         _dbus_read_credentials_unix_socket().
11665         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11666         read() for reading the credential byte off the unix socket.  Use
11667         struct cmsgcred on systems that support it.
11668
11669 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11670
11671         * glib/Makefile.am:
11672         * configure.in:
11673         Make gthreads-2.0 dependency optional. Don't build thread test if
11674         its not found.
11675
11676 2003-02-27  Havoc Pennington  <hp@pobox.com>
11677
11678         * dbus/dbus-connection.c
11679         (dbus_connection_send_message_with_reply_and_block): fix doh!
11680         doh! doh! bug that resulted in never removing a reply from the
11681         queue, no wonder we called get_reply_serial so much ;-)
11682
11683         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11684         and client serial instead of demarshaling them every time
11685
11686 2003-02-27  Havoc Pennington  <hp@pobox.com>
11687
11688         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11689         more inlined, using dbus-string-private.h, speeds things up
11690         substantially
11691
11692         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11693         when freeing the string
11694         (_dbus_string_steal_data): fix for align offset
11695         (undo_alignment): new function
11696
11697 2003-02-26  Havoc Pennington  <hp@redhat.com>
11698
11699         All kinds of audit fixes from Owen, plus initial attempt to
11700         handle unaligned memory returned from malloc.
11701
11702         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11703         leave room for align_offset and nul byte
11704         (fixup_alignment): function to track an align_offset and
11705         ensure real->str is aligned
11706         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11707         to allow a nul byte plus align offset
11708         (_dbus_string_lock): fix overflow issue
11709         (_dbus_string_init_const_len): add assertions on sanity of len,
11710         assign allocated to be ALLOCATION_PADDING larger than len
11711         (set_length): fixup the overflow handling
11712         (_dbus_string_get_data_len): fix overflow in assertion
11713         (open_gap): detect overflow in size of gap to be opened
11714         (_dbus_string_lengthen): add overflow check
11715         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11716         (_dbus_string_append): add overflow check
11717         (_dbus_string_append_unichar): overflow
11718         (_dbus_string_delete): fix overflow in assertion
11719         (_dbus_string_copy_len): overflow in assertion
11720         (_dbus_string_replace_len): overflows in assertions
11721         (_dbus_string_find): change to implement in terms of
11722         _dbus_string_find_to
11723         (_dbus_string_find_to): assorted fixage
11724         (_dbus_string_equal_c_str): assert c_str != NULL,
11725         fix logic so the function works
11726         (_dbus_string_ends_with_c_str): fix overflow thingy
11727         (_dbus_string_base64_encode): overflow fix
11728         (_dbus_string_validate_ascii): overflow
11729         (_dbus_string_validate_nul): overflow
11730
11731 2003-02-26  Havoc Pennington  <hp@redhat.com>
11732
11733         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11734
11735 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11736
11737         * configure.in:
11738         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11739
11740         * dbus/dbus-connection.c:
11741         * dbus/dbus-connection.h:
11742         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11743         Add dbus_connection_set_wakeup_main_function and use it when queueing
11744         incoming and outgoing messages.
11745
11746
11747         * dbus/dbus-dataslot.c:
11748         Threadsafe usage of DBusDataSlotAllocator
11749
11750         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11751         dbus_new can fail.
11752
11753         * dbus/dbus-server-unix.c:
11754         Add todo comment
11755
11756         * glib/dbus-gmain.c:
11757         Implement the new wakeup functions for glib.
11758
11759         * glib/Makefile.am:
11760         * glib/test-thread-client.c:
11761         * glib/test-thread-server.c:
11762         * glib/test-thread.h:
11763         Initial cut at some thread test code. Not really done yet.
11764
11765 2003-02-26  Havoc Pennington  <hp@pobox.com>
11766
11767         * dbus/dbus-connection.c
11768         (dbus_connection_send_message_with_reply_and_block): fix crash
11769         where we ref'd the outgoing message instead of the returned reply
11770
11771         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11772         at the end of this function, so if we didn't need to read for
11773         authentication, we reinstall it for receiving messages
11774
11775         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11776         a NULL sender for peer-to-peer case
11777
11778         * dbus/dbus-transport-unix.c (check_read_watch): handle
11779         !authenticated case correctly
11780
11781         * glib/dbus-gmain.c: add support for DBusServer
11782
11783         * dbus/dbus-server.c: add data slot support
11784
11785         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11786         return values and handle errors
11787
11788         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11789         DBusConnection
11790
11791         * Doxyfile.in (INPUT): add glib subdir
11792
11793         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11794         setup_with_g_main instead of hookup_with_g_main; write docs
11795
11796 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11797
11798         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11799         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11800         * dbus/dbus-message.c: (dbus_message_append_boolean),
11801         (dbus_message_append_boolean_array),
11802         (dbus_message_get_args_valist), (_dbus_message_test):
11803         * dbus/dbus-message.h:
11804         * doc/dbus-specification.sgml:
11805         Various fixes as pointed out by Havoc.
11806
11807         * test/data/invalid-messages/bad-boolean-array.message:
11808         * test/data/invalid-messages/bad-boolean.message:
11809         Add invalid boolean value test cases.
11810
11811 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11812
11813         * dbus/dbus-internals.c: (_dbus_type_to_string):
11814         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11815         (_dbus_marshal_validate_arg):
11816         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11817         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11818         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11819         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11820         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11821         (dbus_message_iter_get_double),
11822         (dbus_message_iter_get_boolean_array), (message_iter_test):
11823         * dbus/dbus-message.h:
11824         * dbus/dbus-protocol.h:
11825         * doc/dbus-specification.sgml:
11826         * test/data/valid-messages/lots-of-arguments.message:
11827         Add support for boolean and boolean array types.
11828
11829 2003-02-23  Havoc Pennington  <hp@pobox.com>
11830
11831         * dbus/dbus-keyring.c: finish most of this implementation and
11832         simple unit test
11833
11834         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11835         these barf if the error isn't cleared to NULL
11836
11837         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11838         (_dbus_create_directory): new function
11839
11840         * dbus/dbus-errors.c (dbus_set_error): fix warning
11841
11842         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11843         (_dbus_string_hex_decode): new function
11844         (test_hex_roundtrip): test code
11845
11846         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11847
11848         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11849
11850         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11851         the save-to-temp/rename trick to atomically write the new file
11852         (_dbus_string_parse_uint): new function
11853
11854 2003-02-22  Havoc Pennington  <hp@pobox.com>
11855
11856         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11857
11858 2003-02-22  Havoc Pennington  <hp@pobox.com>
11859
11860         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11861         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11862
11863         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11864
11865         * dbus/test/data/sha-1: add US government test suite for SHA-1
11866
11867 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11868
11869         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11870         Make string arrays NULL-terminated.
11871
11872         * dbus/dbus-memory.c: (dbus_free_string_array):
11873         * dbus/dbus-memory.h:
11874         New function for freeing NULL-terminated string arrays.
11875
11876         * dbus/dbus-message-builder.c: (append_quoted_string),
11877         (_dbus_message_data_load):
11878         Add support for array types.
11879
11880         * dbus/dbus-message.c: (check_message_handling):
11881         Add more types as test cases.
11882
11883         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11884         (_dbus_string_parse_double):
11885         Add the start offset to the end offset.
11886
11887         * test/data/valid-messages/lots-of-arguments.message:
11888         New test message with lots of arguments.
11889
11890 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11891
11892         * dbus/dbus-message.c: (dbus_message_append_nil),
11893         (dbus_message_append_int32), (dbus_message_append_uint32),
11894         (dbus_message_append_double), (dbus_message_append_string),
11895         (dbus_message_append_int32_array),
11896         (dbus_message_append_uint32_array),
11897         (dbus_message_append_double_array),
11898         (dbus_message_append_byte_array),
11899         (dbus_message_append_string_array):
11900         Fix all out-of-memory handling in these functions.
11901
11902 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11903
11904         * dbus/dbus-message.c: (dbus_message_append_nil):
11905         Fix a silly.
11906
11907 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11908
11909         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11910         (dbus_message_append_nil), (dbus_message_append_int32_array),
11911         (dbus_message_append_uint32_array),
11912         (dbus_message_append_double_array),
11913         (dbus_message_append_byte_array),
11914         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11915         (dbus_message_iter_get_int32_array),
11916         (dbus_message_iter_get_uint32_array),
11917         (dbus_message_iter_get_double_array),
11918         (dbus_message_iter_get_byte_array),
11919         (dbus_message_iter_get_string_array):
11920
11921         * dbus/dbus-message.h:
11922         Add functions for appending and getting arrays.
11923
11924 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11925
11926         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11927         element size at least 8 bytes, fixes mempool tests on
11928         64-bit machines.
11929
11930 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11931
11932         * dbus/dbus-transport-unix.c (unix_do_iteration):
11933         Unlock the connection mutex during a blocking select call.
11934         Add todo about how we need a way to wake up the select.
11935
11936         * dbus/dbus-connection-internal.h:
11937         * dbus/dbus-connection.c:
11938         Add _dbus_connection_lock and _dbus_connection_unlock.
11939
11940 2003-02-19  Havoc Pennington  <hp@pobox.com>
11941
11942         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11943         Doxyfile.in, not Doxyfile
11944
11945         * dbus/dbus-keyring.c: do some hacking on this
11946
11947         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11948
11949         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11950         dbus_error_init
11951         (dbus_set_error): remove dbus_error_init, check for message ==
11952         NULL *before* we sprintf into it, and add @todo about including
11953         system headers in this file
11954
11955         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11956
11957         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11958
11959         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11960         get various bits of user information based on either username
11961         or user ID
11962         (_dbus_homedir_from_username): new function
11963
11964 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11965
11966         * configure.in:
11967         Add check for nonposix getpwnam_r
11968
11969         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11970         Align the pool element size to a sizeof (void *) boundary.
11971
11972         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11973         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11974         General Solaris fixes.
11975
11976         * test/data/valid-messages/simplest-manual.message:
11977         Explicitly state that we want little-endian packing.
11978
11979 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11980
11981         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11982
11983         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11984         Added to create a transport connecting using a tcp/ip socket.
11985
11986         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11987         to a tcp socket at given host and port.
11988         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11989         hostname and port.
11990
11991         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11992
11993         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11994         Added to create a server listening on a TCP/IP socket.
11995
11996 2003-02-19  Havoc Pennington  <hp@pobox.com>
11997
11998         Throughout: mop up all the Doxygen warnings and undocumented
11999         stuff.
12000
12001         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12002         to search any paths.
12003
12004         * dbus/dbus-threads.c: move global mutex initializers to
12005         dbus-internals.h, multiple prototypes was confusing doxygen
12006         besides being kind of ugly
12007
12008         * Doxyfile (PREDEFINED): have Doxygen define
12009         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12010         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12011         (do not abuse the feature! it's for stuff like the autogenerated
12012         macros in dbus-md5.c, not just for things you don't feel like
12013         documenting...)
12014
12015 2003-02-18  Havoc Pennington  <hp@pobox.com>
12016
12017         * dbus/dbus-string.c (_dbus_string_zero): new function
12018
12019         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12020         wrap it in some dbus-friendly API
12021
12022         * dbus/dbus-types.h: add 16-bit types
12023
12024 2003-02-18  Joe Shaw  <joe@assbarn.com>
12025
12026         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12027         credentials from our currently running process.
12028         (get_word): Fix a buglet where we were copying the entire length
12029         instead of relative to our position.
12030
12031         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12032         keys on the stack... it's 640k of data.
12033
12034         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12035         read the credentials byte off the socket, even if we don't have
12036         SO_PEERCRED.
12037         (_dbus_poll): Implement poll() using select() for systems which
12038         don't have it.
12039
12040         * glib/test-dbus-glib.c (main): Print out an error if no
12041         parameters are given.
12042
12043         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12044         can fallback to a secondary auth mechanism if the first fails.
12045
12046 2003-02-18  Havoc Pennington  <hp@pobox.com>
12047
12048         * AUTHORS: add Alex
12049
12050 2003-02-17  Havoc Pennington  <hp@pobox.com>
12051
12052         * doc/dbus-specification.sgml: lots of cosmetic
12053         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12054         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12055         s/server/bus/ (except in authentication section). Add a section
12056         "Message Bus Message Routing"
12057
12058 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12059
12060         Release 0.4
12061
12062         * NEWS: Update
12063
12064 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12065
12066         * doc/dbus-specification.sgml:
12067         Specification updates.
12068
12069 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12070
12071         * bus/activation.c: (bus_activation_init), (child_setup),
12072         (bus_activation_activate_service):
12073         * bus/activation.h:
12074         * bus/main.c: (main):
12075         Set DBUS_ADDRESS environment variable.
12076
12077         * dbus/dbus-errors.c: (dbus_set_error):
12078         Don't use va_copy since that's a C99 feature.
12079
12080         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12081         (_dbus_spawn_async):
12082         * dbus/dbus-sysdeps.h:
12083         Add child_setup_func to _dbus_spawn_async.
12084
12085         * doc/dbus-specification.sgml:
12086         Update specification.
12087
12088         * test/spawn-test.c: (setup_func), (main):
12089         Fix test.
12090
12091 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12092
12093         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12094         Added todo.
12095
12096 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12097
12098         * doc/.cvsignore:
12099         * doc/Makefile.am:
12100         * doc/dbus-test-plan.sgml:
12101         Add test plan document.
12102
12103         * test/Makefile.am:
12104         Fix distcheck.
12105
12106 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12107
12108         * dbus/dbus-message.c: (decode_header_data),
12109         (_dbus_message_loader_return_buffer):
12110         Set the header padding amount when loading a message.
12111
12112 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12113
12114         * bus/dispatch.c: (send_one_message):
12115         Only send broadcast messages to registered connections.
12116
12117         * dbus/dbus-message.c: (dbus_message_name_is):
12118         * dbus/dbus-message.h:
12119         New convenience function.
12120
12121         * dbus/dbus-transport-debug.c: (do_reading):
12122         Only dispatch one message per run.
12123
12124         * test/Makefile.am:
12125         * test/bus-test.c: (new_connection_callback), (die),
12126         (test_hello_client1_handler), (test_hello_client2_handler),
12127         (test_hello_replies), (main):
12128
12129         * test/bus-test-loop.[ch]:
12130         Add these.
12131
12132 2003-02-16  Havoc Pennington  <hp@pobox.com>
12133
12134         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12135         backward conditional
12136
12137 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12138
12139         * dbus/dbus-connection.c:
12140         Implement sent_message_with_reply. (with_reply_and block is still
12141         busted).
12142         Made dispatch_message not lose message if OOM.
12143
12144         * dbus/dbus-errors.h:
12145         Add NoReply error (for reply timeouts).
12146
12147 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12148
12149         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12150         Actually free keys and values when destroying hashtable.
12151
12152 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12153
12154         * dbus/dbus-auth.c: (client_try_next_mechanism):
12155         Plug a leak.
12156
12157         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12158         Return TRUE if there's no thread implementation around.
12159
12160         * glib/dbus-gmain.c: (free_source),
12161         (dbus_connection_hookup_with_g_main):
12162         Make sure to remove the GSource when the connection is finalized.
12163
12164 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12165
12166         * bus/dispatch.c: (bus_dispatch_message_handler):
12167         * dbus/dbus-errors.h:
12168         Return an error if someone tries to send a message to a service
12169         that doesn't exist.
12170
12171 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12172
12173         * bus/activation.c: (load_directory), (bus_activation_init),
12174         (bus_activation_activate_service):
12175         * bus/activation.h:
12176         * bus/driver.c:
12177         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12178         More work on the activation handling.
12179
12180         * dbus/dbus-errors.h:
12181         Add some error messages
12182
12183         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12184         * dbus/dbus-message.h:
12185         New function that creates an error message.
12186
12187         * dbus/dbus-protocol.h:
12188         Add ACTIVATE_SERVER message.
12189
12190         * dbus/dbus-server-unix.c: (unix_handle_watch),
12191         (_dbus_server_new_for_domain_socket):
12192         Call _dbus_fd_set_close_on_exec.
12193
12194         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12195         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12196         (_dbus_fd_set_close_on_exec):
12197         * dbus/dbus-sysdeps.h:
12198         Add _dbus_fd_set_close_on exec function. Also add function that checks
12199         that all open fds are set to close-on-exec and warns otherwise.
12200
12201         * dbus/dbus-transport-unix.c:
12202         (_dbus_transport_new_for_domain_socket):
12203         Call _dbus_fd_set_close_on_exec.
12204
12205 2003-02-16  Havoc Pennington  <hp@pobox.com>
12206
12207         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12208         allow people to avoid setting SIGPIPE to SIG_IGN
12209         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12210         we've been asked not to
12211
12212 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12213
12214         * dbus/dbus-list.c: (_dbus_list_append_link),
12215         (_dbus_list_prepend_link):
12216         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12217         (dbus_realloc):
12218         Warning fixes.
12219
12220 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12221
12222         * bus/Makefile.am:
12223         * bus/activation.c: (bus_activation_entry_free),
12224         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12225         * bus/activation.h:
12226         * bus/main.c: (main):
12227         Add simple activation support, doesn't work yet though.
12228
12229 2003-02-15   Zack Rusin  <zack@kde.org>
12230
12231         * qt/dbus-qthread.cpp:  small casting fix
12232
12233 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12234
12235         * dbus/dbus-errors.c: (dbus_set_error):
12236         * dbus/dbus-errors.h:
12237         Add a few errors and make dbus_set_error void.
12238
12239         * dbus/dbus-sysdeps.c:
12240         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12241         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12242         * dbus/dbus-sysdeps.h:
12243         Add _dbus_spawn_async.
12244
12245         * test/spawn-test.c: (main):
12246         Test for _dbus_spawn_async.
12247
12248 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12249
12250         * dbus/dbus-internals.h:
12251         Fix build without tests.
12252
12253         * dbus/dbus-list.c: (alloc_link):
12254         Fix a segfault when a malloc fails.
12255
12256         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12257         (dbus_malloc0), (dbus_realloc):
12258         Add support for malloc debugging.
12259
12260 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12261
12262         * dbus/dbus-threads.c:
12263         * dbus/dbus-threads.h:
12264         Add condvars. Remove static mutext from API.
12265         Implement static mutexes by initializing them from threads_init.
12266
12267         * glib/dbus-gthread.c:
12268         * qt/dbus-qthread.cpp:
12269         Update with the thread api changes.
12270
12271
12272         * dbus/dbus-list.c:
12273         * dbus/dbus-list.h:
12274         Turn StaticMutex into normal mutex + init function.
12275         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12276         _dbus_list_append_link, _dbus_list_prepend_link
12277
12278
12279         * dbus/dbus-sysdeps.c:
12280         * dbus/dbus-sysdeps.h:
12281         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12282         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12283
12284         * dbus/dbus-protocol.h:
12285         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12286
12287         * dbus/dbus-message.c:
12288         Make ref/unref atomic.
12289         Fix some docs.
12290
12291         * dbus/dbus-connection-internal.h:
12292         * dbus/dbus-connection.c:
12293         * dbus/dbus-connection.h:
12294         Make threadsafe.
12295         Change _peek to _borrow,_return & _steal_borrowed.
12296         Change disconnect callback to event.
12297         Make dbus_connection_dispatch_messages reentrant.
12298
12299         * dbus/dbus-transport.c:
12300         Don't ref the connection on calls to the transport
12301         implementation.
12302
12303         * dbus/dbus-message-handler.c:
12304         Make threadsafe.
12305
12306         * glib/dbus-gmain.c:
12307         Don't use peek_message anymore
12308
12309         * test/Makefile.am:
12310         * test/debug-thread.c:
12311         * test/debug-thread.h:
12312         Simple thread implementation that asserts() on deadlocks in
12313         single-threaded code.
12314
12315         * test/bus-test.c:
12316         (main) Call debug_threads_init.
12317
12318         * test/watch.c:
12319         Use disconnect message instead of disconnect callback.
12320
12321         * bus/connection.c:
12322         * bus/connection.h:
12323         Don't call dbus_connection_set_disconnect_function. Instead export
12324         bus_connection_disconnect.
12325
12326         * bus/dispatch.c:
12327         Call bus_connection_disconnect when we get a disconnected message.
12328
12329 2003-02-15  Havoc Pennington  <hp@pobox.com>
12330
12331         * dbus/dbus-message.c (dbus_message_new): fool around with the
12332         docs
12333
12334 2003-02-14  Havoc Pennington  <hp@pobox.com>
12335
12336         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12337
12338         * dbus/dbus-memory.c: fail if the debug functions indicate we
12339         should
12340
12341         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12342         (_dbus_decrement_fail_alloc_counter): debug functions to
12343         simulate memory allocation failures
12344
12345 2003-02-14  Havoc Pennington  <hp@pobox.com>
12346
12347         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12348         to DBusError
12349
12350 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12351
12352         * bus/driver.c: (bus_driver_handle_hello):
12353         * bus/driver.h:
12354         * bus/services.c: (bus_service_lookup):
12355         Reorder message sending so we get a more sane order.
12356
12357         * test/bus-test.c: (message_handler):
12358         Fix tyop.
12359
12360 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12361
12362         * bus/driver.c: (bus_driver_send_service_deleted),
12363         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12364         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12365         (bus_driver_send_welcome_message),
12366         (bus_driver_handle_list_services),
12367         (bus_driver_handle_acquire_service),
12368         (bus_driver_handle_service_exists):
12369         * dbus/dbus-bus.c: (dbus_bus_register_client),
12370         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12371         * dbus/dbus-errors.c: (dbus_result_to_string):
12372         * dbus/dbus-errors.h:
12373         * dbus/dbus-message.c: (dbus_message_append_args),
12374         (dbus_message_append_args_valist), (dbus_message_get_args),
12375         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12376         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12377         (dbus_message_iter_get_byte_array),
12378         (dbus_message_iter_get_string_array), (message_iter_test),
12379         (check_message_handling), (_dbus_message_test):
12380         * dbus/dbus-message.h:
12381         * test/bus-test.c: (main):
12382         Change fields to arguments in messages, so that they won't be
12383         confused with header fields.
12384
12385         * glib/test-dbus-glib.c: (main):
12386         Remove append_fields from hello message.
12387
12388 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12389
12390         * dbus/dbus-errors.c:
12391         * dbus/dbus-message.c:
12392         * dbus/dbus-string.c:
12393         Documentation fixes.
12394
12395 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12396
12397         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12398         (remove_timeout):
12399         Implement support for timeouts in dbus-glib.
12400
12401 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12402
12403         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12404         * dbus/dbus-message.c: (process_test_subdir):
12405         * test/break-loader.c: (find_breaks_based_on):
12406         Plug some memory leaks.
12407
12408 2003-02-13  Richard Hult  <rhult@codefactory.se>
12409
12410         * bus/main.c: Fix build.
12411
12412         * dbus/dbus-errors.h:
12413         * dbus/dbus-errors.c: Fix copyright for Anders.
12414
12415 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12416
12417         * bus/Makefile.am:
12418         Add utils.[ch]
12419
12420         * bus/connection.c: (bus_connection_foreach):
12421         Fix a warning.
12422
12423         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12424         (unescape_string), (new_section), (parse_section_start),
12425         (parse_key_value), (report_error), (bus_desktop_file_load),
12426         (bus_desktop_file_get_string):
12427         * bus/desktop-file.h:
12428         Use DBusError for error reporting.
12429
12430         * bus/dispatch.c: (send_one_message),
12431         (bus_dispatch_message_handler):
12432         * bus/driver.c: (bus_driver_send_service_deleted),
12433         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12434         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12435         (bus_driver_send_welcome_message),
12436         (bus_driver_handle_list_services),
12437         (bus_driver_handle_acquire_service),
12438         (bus_driver_handle_service_exists):
12439         * bus/loop.c: (bus_loop_run):
12440         * bus/main.c:
12441         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12442
12443         * bus/utils.c: (bus_wait_for_memory):
12444         * bus/utils.h:
12445         New files with general utility functions.
12446
12447         * dbus/dbus-internals.h:
12448         Remove _DBUS_HANDLE_OOM.
12449
12450 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12451
12452         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12453         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12454         * dbus/dbus-errors.h:
12455         Add DBusError structure.
12456
12457 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12458
12459         * test/data/valid-messages/standard-acquire-service.message:
12460         * test/data/valid-messages/standard-hello.message:
12461         * test/data/valid-messages/standard-list-services.message:
12462         * test/data/valid-messages/standard-service-exists.message:
12463         Add some standard messages.
12464
12465 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12466
12467         * bus/driver.c: (bus_driver_send_welcome_message),
12468         (bus_driver_handle_list_services),
12469         (bus_driver_handle_acquire_service),
12470         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12471         Update for API changes in libdbus.
12472
12473         * dbus/dbus-message.c: (dbus_message_new_reply):
12474         * dbus/dbus-message.h:
12475         Remove the name argument. The spec states that replies shouldn't
12476         have a name.
12477
12478 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12479
12480         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12481         (report_error), (bus_desktop_file_load), (lookup_section),
12482         (lookup_line), (bus_desktop_file_get_raw),
12483         (bus_desktop_file_get_string):
12484         * bus/desktop-file.h:
12485         Some fixes, and new functions for getting a key value from a section.
12486
12487 2003-02-13  Havoc Pennington  <hp@pobox.com>
12488
12489         * test/data/auth/fail-after-n-attempts.auth-script: new test
12490
12491         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12492         reject the client.
12493
12494 2003-02-13  Havoc Pennington  <hp@pobox.com>
12495
12496         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12497         dbus_credentials_match were backward
12498
12499         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12500         NO_CREDENTIALS and ROOT_CREDENTIALS
12501
12502         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12503         into here. Never process more commands after we've reached an
12504         end state; store further data as unused bytes.
12505
12506         * test/data/auth/*: add more auth tests
12507
12508         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12509         command to match exact string and EXPECT_UNUSED to match unused
12510         bytes
12511
12512         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12513
12514 2003-02-12  Havoc Pennington  <hp@pobox.com>
12515
12516         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12517         \r off of popped lines
12518
12519         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12520         scripts
12521
12522         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12523         SEND, append \r\n
12524
12525 2003-02-12  Havoc Pennington  <hp@pobox.com>
12526
12527         * dbus/Makefile.am: remove break-loader from the build, since it
12528         moved.
12529
12530         * configure.in: add --enable-gcov to turn on coverage profiling
12531         flags and disable optimization
12532
12533 2003-02-10  Havoc Pennington  <hp@pobox.com>
12534
12535         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12536         initial cut at test framework for DBusAuth from laptop.
12537         Doesn't quite work yet but it compiles and I need to get
12538         it off the 266mhz laptop. ;-)
12539
12540         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12541         fix a memleak in error case
12542
12543 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12544
12545         * bus/Makefile.am:
12546         * bus/desktop-file.c:
12547         * bus/desktop-file.h:
12548         Add a desktop file parser.
12549
12550 2003-02-11  Zack Rusin  <zack@kde.org>
12551
12552         * qt/message.[h|cpp]: sample implementation
12553         of the KDE wrapper for DBusMessage
12554
12555 2003-02-09  Zack Rusin  <zack@kde.org>
12556
12557         * test/bus-test.c: make_it_compile
12558         * doc/dbus-specification.sgml: minimal semantic fix
12559
12560 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12561
12562         Release 0.3
12563
12564         * NEWS: Update
12565
12566 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12567
12568         * dbus/Makefile.am:
12569         * dbus/dbus-break-loader.c:
12570         * test/Makefile.am:
12571         * test/break-loader.c:
12572         Move dbus-break-loader to test/ and rename it to break-loader.
12573
12574 2003-02-02  Havoc Pennington  <hp@pobox.com>
12575
12576         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12577         for code to manage cookies in your home directory
12578
12579         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12580
12581         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12582         to authenticate, then disconnect the client.
12583
12584 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12585
12586         * dbus/dbus-message.c (dbus_message_append_fields):
12587         Correct docs.
12588
12589 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12590
12591         * doc/dbus-specification.sgml:
12592         Update address format section.
12593
12594 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12595
12596         * test/Makefile.am:
12597         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12598         (message_handler), (new_connection_callback), (loop_quit),
12599         (loop_run), (main):
12600         Add bus test.
12601
12602 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12603
12604         * bus/driver.c: (bus_driver_handle_service_exists):
12605         Simplify the code a bit.
12606
12607         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12608         Fix a silly.
12609
12610 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12611
12612         * bus/Makefile.am:
12613         Add libdbus-daemon.la and link to it.
12614
12615 2003-02-01  James Willcox  <jwillcox@gnome.org>
12616
12617         * bus/driver.c: (bus_driver_handle_own_service):
12618         Actually include the service reply code in the message.
12619
12620 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12621
12622         * bus/driver.c: (bus_driver_handle_service_exists):
12623         Don't unref the incoming message.
12624
12625 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12626
12627         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12628
12629 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12630
12631         * dbus/dbus-server.c: (dbus_server_listen):
12632         * dbus/dbus-transport.c: (_dbus_transport_open):
12633         ifdef out the calls to the debug transport and server.
12634
12635 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12636
12637         * dbus/dbus-watch.c (dbus_watch_get_flags):
12638         Add note in the docs that ERROR or HANGUP won't be returned
12639         and are assumed always on.
12640
12641         * glib/dbus-gmain.c (add_watch):
12642         Always add IO_ERR | IO_HUP
12643
12644         * dbus/dbus-message.h:
12645         Add semicolon after dbus_message_iter_get_string_array().
12646         Makes qt code build again
12647
12648 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12649
12650         * bus/driver.c: (create_unique_client_name),
12651         (bus_driver_handle_hello):
12652         Don't take a name, just use a numeric id to identify
12653         each client.
12654
12655         * dbus/Makefile.am:
12656         * dbus/dbus-bus.c: (dbus_bus_register_client),
12657         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12658         * dbus/dbus-bus.h:
12659         Add new convenience functions for communicating with the bus.
12660
12661         * dbus/dbus-message.h:
12662
12663         * dbus/dbus-protocol.h:
12664         Fix a typo.
12665
12666 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12667
12668         * dbus/dbus-message.c (dbus_message_append_fields):
12669         Add some more doc comments.
12670
12671 2003-02-01  Havoc Pennington  <hp@pobox.com>
12672
12673         * dbus/dbus-break-loader.c (randomly_modify_length): change
12674         a 4-byte value in the message as if it were a length
12675
12676         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12677         execute bit on saved files
12678
12679 2003-02-01  Havoc Pennington  <hp@pobox.com>
12680
12681         * dbus/dbus-break-loader.c (main): new program to find messages
12682         that break the loader.
12683
12684         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12685         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12686
12687         * dbus/dbus-string.c (_dbus_string_set_byte): new
12688
12689 2003-01-31  Havoc Pennington  <hp@pobox.com>
12690
12691         * dbus/dbus-message.c: refactor the test code to be more general,
12692         in preparation for writing a "randomly permute test cases to
12693         try to break the loader" program.
12694
12695 2003-01-31  Havoc Pennington  <hp@pobox.com>
12696
12697         * doc/dbus-specification.sgml: work on the specification
12698
12699         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12700         the protocol version of the message.
12701
12702         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12703         no longer specifies that.
12704         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12705         1/2/3/4)
12706
12707         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12708         "break" for DBUS_TYPE_NIL, remove @todo
12709
12710 2003-01-31  Havoc Pennington  <hp@pobox.com>
12711
12712         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12713         just set_is_error/get_is_error as this is a commonly-used
12714         function, and write docs.
12715
12716 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12717
12718         * dbus/dbus-address.c: (dbus_address_entry_free):
12719         Free key and value lists.
12720
12721         * dbus/dbus-internals.c: (_dbus_type_to_string):
12722         Add the types we didn't have.
12723
12724         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12725         (_dbus_marshal_validate_arg):
12726         Add NIL types.
12727
12728         * dbus/dbus-message.c: (dbus_message_set_sender):
12729         Remove todo about being able to set sender to NULL.
12730
12731         (dbus_message_set_is_error_reply),
12732         (dbus_message_get_is_error_reply):
12733         * dbus/dbus-message.h:
12734         New functions.
12735
12736         * dbus/dbus-protocol.h:
12737         Add error reply flag.
12738
12739         * test/data/valid-messages/opposite-endian.message:
12740         Add NIL type to test.
12741
12742 2003-01-31  Havoc Pennington  <hp@pobox.com>
12743
12744         * doc/dbus-specification.sgml: fully specify the header.  Add
12745         flags and major protocol version, and change header/body len to
12746         unsigned.
12747
12748         * dbus/dbus-message-builder.c (append_saved_length): append length
12749         as uint32
12750
12751         * dbus/dbus-message.c (dbus_message_create_header): change header
12752         length and body length to unsigned. Add the new fields from the
12753         spec
12754         (_dbus_message_loader_return_buffer): unsigned header/body len
12755
12756 2003-01-30  Havoc Pennington  <hp@pobox.com>
12757
12758         * dbus/dbus-auth.c: rework to use only REJECTED, no
12759         MECHANISMS
12760
12761         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12762         use REJECTED, suggested by Mark McLoughlin
12763
12764 2003-01-30  Havoc Pennington  <hp@pobox.com>
12765
12766         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12767         a better way to report errors here. e.g.  "unix address lacks
12768         path" or something. also "no such file" when the path doesn't
12769         exist, etc.
12770
12771         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12772         leaking list nodes
12773         (dbus_parse_address): add @todo about documenting address format,
12774         and allowing , and ; to be escaped
12775
12776 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12777
12778         * dbus/Makefile.am:
12779         Add dbus-address.[ch]
12780
12781         * dbus/dbus-address.c: (dbus_address_entry_free),
12782         (dbus_address_entries_free), (create_entry),
12783         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12784         (dbus_parse_address), (_dbus_address_test):
12785         * dbus/dbus-address.h:
12786         New files for dealing with address parsing.
12787
12788         * dbus/dbus-connection.c:
12789         Document timeout functions.
12790
12791         * dbus/dbus-message.c:
12792         Document dbus_message_new_from_message.
12793
12794         * dbus/dbus-server-debug.c:
12795         Document.
12796
12797         * dbus/dbus-server.c: (dbus_server_listen):
12798         Parse address and use correct server implementation.
12799
12800         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12801         * dbus/dbus-string.h:
12802         New function with test.
12803
12804         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12805         * dbus/dbus-test.h:
12806         Add address tests.
12807
12808         * dbus/dbus-transport-debug.c:
12809         Document.
12810
12811         * dbus/dbus-transport.c: (_dbus_transport_open):
12812         Parse address and use correct transport implementation.
12813
12814 2003-01-30  Havoc Pennington  <hp@pobox.com>
12815
12816         * dbus/dbus-message.c: use message->byte_order instead of
12817         DBUS_COMPILER_BYTE_ORDER throughout.
12818         (dbus_message_create_header): pad header to align the
12819         start of the body of the message to 8-byte boundary
12820
12821         * dbus/dbus-marshal.h: make all the demarshalers take const
12822         DBusString arguments.
12823
12824         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12825         validate message args here, so we don't have to do slow validation
12826         later, and so we catch bad messages as they are incoming. Also add
12827         better checks on header_len and body_len. Also fill in
12828         message->byte_order
12829
12830         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12831         implemented properly)
12832         (_dbus_string_validate_nul): new function to check all-nul
12833
12834         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12835         get_arg_end_pos and remove all validation
12836         (_dbus_marshal_validate_arg): actually do validation here.
12837
12838 2003-01-29  Havoc Pennington  <hp@pobox.com>
12839
12840         * dbus/dbus-message.c (check_message_handling): fix assertion
12841         failure on set_client_serial
12842
12843 2003-01-28  Havoc Pennington  <hp@pobox.com>
12844
12845         * dbus/dbus-server-debug.c: Add doc section comments
12846
12847         * dbus/dbus-transport-debug.c: add doc section comments
12848
12849 2003-01-28  Havoc Pennington  <hp@redhat.com>
12850
12851         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12852         the reverse order from how I had it
12853         (_dbus_string_base64_encode): reverse encoding order. I was
12854         basically byteswapping everything during encoding.
12855
12856 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12857
12858         * dbus/dbus-connection-internal.h:
12859         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12860         (_dbus_connection_remove_timeout):
12861         Add functions for adding and removing timeouts.
12862
12863         * dbus/dbus-message.c: (dbus_message_new_from_message):
12864         Add new function that takes a message and creates an exact
12865         copy of it, but with the refcount set to 1.
12866         (check_message_handling):
12867         Fix build error.
12868
12869         * dbus/dbus-server-protected.h:
12870         * dbus/dbus-server.c: (_dbus_server_init_base),
12871         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12872         (dbus_server_set_timeout_functions):
12873         (_dbus_server_remove_timeout):
12874         New functions so that a server can add and remove timeouts.
12875
12876         (dbus_server_listen):
12877         Add commented out call to dbus_server_debug_new.
12878
12879         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12880         Actually set the handler, doh.
12881
12882         * dbus/dbus-transport.c: (_dbus_transport_open):
12883         Add commented out call to dbus_transport_debug_client_new.
12884
12885         * dbus/Makefile.am:
12886         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12887
12888 2003-01-28  Havoc Pennington  <hp@pobox.com>
12889
12890         * dbus/dbus-message.c (check_message_handling): function to check
12891         on the loaded message, iterates over it etc.
12892
12893 2003-01-28  Havoc Pennington  <hp@pobox.com>
12894
12895         * test/Makefile.am (dist-hook): fix make distdir
12896
12897         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12898
12899 2003-01-27  Havoc Pennington  <hp@pobox.com>
12900
12901         * dbus/dbus-mempool.c (time_for_size): replace printf with
12902         _dbus_verbose
12903
12904         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12905         empty lines; fix the SAVE_LENGTH stuff to be
12906         START_LENGTH/END_LENGTH so it actually works; couple other
12907         bugfixes
12908
12909         * test/Makefile.am (dist-hook): add dist-hook for .message files
12910
12911         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12912         can be constant or locked.
12913         (_dbus_string_free): allow freeing a const string as
12914         documented/intended
12915
12916         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12917
12918         * dbus/dbus-test-main.c (main): take an argument which is the
12919         directory containing test data
12920
12921         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12922         argument to this and load all the messages in test/data/
12923         checking that they can be loaded or not loaded as appropriate.
12924
12925 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12926
12927         * bus/dispatch.c: (bus_dispatch_message_handler):
12928         Dispatch messages sent to services.
12929
12930         * bus/driver.c: (bus_driver_send_service_deleted),
12931         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12932         (bus_driver_send_service_acquired):
12933         Add helper functions for sending service related messages.
12934
12935         (bus_driver_send_welcome_message):
12936         Send HELLO_REPLY instead of WELCOME.
12937
12938         (bus_driver_handle_list_services):
12939         Send LIST_SERVICES_REPLY instead of SERVICES.
12940
12941         (bus_driver_handle_own_service),
12942         (bus_driver_handle_service_exists):
12943         New message handlers.
12944
12945         (bus_driver_handle_message):
12946         Invoke new message handlers.
12947
12948         (bus_driver_remove_connection):
12949         Don't remove any services here since that's done automatically
12950         by bus_service_remove_owner now.
12951
12952         * bus/driver.h:
12953         New function signatures.
12954
12955         * bus/services.c: (bus_service_add_owner):
12956         Send ServiceAcquired message if we're the only primary owner.
12957
12958         (bus_service_remove_owner):
12959         Send ServiceAcquired/ServiceLost messages.
12960
12961         (bus_service_set_prohibit_replacement),
12962         (bus_service_get_prohibit_replacement):
12963         Functions for setting prohibit replacement.
12964
12965         (bus_service_has_owner):
12966         New function that checks if a connection is in the owner queue of
12967         a certain service.
12968
12969         * bus/services.h:
12970         Add new function signatures.
12971
12972         * dbus/dbus-list.c: (_dbus_list_test):
12973         Add tests for _dbus_list_remove_last and traversing the list backwards.
12974
12975         * dbus/dbus-list.h:
12976         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12977         go any further, so return NULL then.
12978
12979         * dbus/dbus-protocol.h:
12980         Add new messages, service flags and service replies.
12981
12982 2003-01-26  Havoc Pennington  <hp@pobox.com>
12983
12984         * dbus/dbus-message-builder.c: implement, completely untested.
12985
12986         * test/data/*: add data to be used in testing.
12987         ".message" files are our simple loadable text format.
12988         ".message-raw" will be binary dumps of messages.
12989
12990         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12991
12992 2003-01-26  Havoc Pennington  <hp@pobox.com>
12993
12994         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12995
12996         * dbus/dbus-errors.c (dbus_result_to_string): add
12997         file errors
12998
12999         * dbus/dbus-message-builder.c: new file, will contain code to load
13000         up messages from files. Not implemented yet.
13001
13002 2003-01-26  Havoc Pennington  <hp@pobox.com>
13003
13004         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13005         the sender by setting to NULL
13006
13007 2003-01-26  Havoc Pennington  <hp@pobox.com>
13008
13009         The unit tests pass, but otherwise untested.  If it breaks, the
13010         tests should have been better. ;-)
13011
13012         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13013         the connection.
13014
13015         * dbus/dbus-message.c: redo everything so we maintain
13016         message->header as the only copy of the various fields.
13017         This avoids the possibility of out-of-memory in some cases,
13018         for example dbus_message_lock() can't run out of memory anymore,
13019         and avoids extra copying. Figured I may as well go ahead and do
13020         this since it was busted for dbus_message_lock to not return
13021         failure on OOM, and dbus_message_write_header was totally
13022         unchecked for OOM. Also fixed some random other bugs.
13023
13024         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13025         that strings are nul-terminated. Also, end_pos can be equal
13026         to string length just not greater than, I think.
13027         (_dbus_marshal_set_int32): new function
13028         (_dbus_marshal_set_uint32): new function
13029         (_dbus_marshal_set_string): new function
13030
13031         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13032         a warning, init timeout_list to NULL
13033         (dbus_connection_send_message): don't use uninitialized variable
13034         "serial"
13035
13036         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13037
13038 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13039
13040         * bus/driver.c: (bus_driver_handle_hello),
13041         (bus_driver_send_welcome_message):
13042         Plug leaks
13043
13044 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13045
13046         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13047         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13048         (dbus_connection_unref):
13049         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13050         * dbus/dbus-message.c: (dbus_message_unref),
13051         Plug memory leaks.
13052
13053         (dbus_message_get_fields):
13054         Remove debugging printout.
13055
13056         (_dbus_message_loader_return_buffer):
13057         Don't store the header string.
13058
13059         (_dbus_message_test):
13060         Plug leaks.
13061
13062 2003-01-26  Richard Hult  <rhult@codefactory.se>
13063
13064         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13065         the file descriptor list, since it can change under us.
13066
13067 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13068
13069         * glib/dbus-gmain.c: (dbus_connection_prepare),
13070         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13071         (remove_watch), (dbus_connection_hookup_with_g_main):
13072         Rewrite the glib handling to use its own GSource instead of a
13073         GIOChannel so we can catch messages put in the queue while waiting
13074         for a reply.
13075
13076 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13077
13078         * bus/Makefile.am:
13079         * bus/connection.c: (connection_disconnect_handler),
13080         (connection_watch_callback), (bus_connection_setup):
13081         * bus/dispatch.c: (send_one_message),
13082         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13083         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13084         * bus/dispatch.h:
13085         * bus/driver.c: (bus_driver_send_service_deleted),
13086         (bus_driver_send_service_created), (bus_driver_handle_hello),
13087         (bus_driver_send_welcome_message),
13088         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13089         (bus_driver_handle_message):
13090         * bus/driver.h:
13091         Refactor code, put the message dispatching in its own file. Use
13092         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13093         is disconnected.
13094
13095 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13096
13097         * dbus/dbus-internals.h:
13098         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13099
13100         * dbus/dbus-message.c: (dbus_message_get_sender):
13101         * dbus/dbus-message.h:
13102         Implement dbus_message_get_sender.
13103
13104         * dbus/dbus-protocol.h:
13105         Add message and service defines.
13106
13107 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13108
13109         * dbus/dbus-connection.c: (dbus_connection_send_message):
13110         * dbus/dbus-message-internal.h:
13111         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13112         (dbus_message_write_header):
13113         Remove _dbus_messag_unlock and don't set the client serial on a
13114         message if one already exists.
13115
13116 2003-01-24  Havoc Pennington  <hp@pobox.com>
13117
13118         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13119         list_pool
13120
13121         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13122         on OOM
13123
13124 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13125
13126         * dbus/dbus-list.c: (alloc_link), (free_link):
13127         Use a memory pool for the links.
13128
13129 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13130
13131         * bus/connection.c: (bus_connection_foreach):
13132         * bus/connection.h:
13133         Add new bus_connection_foreach function.
13134
13135         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13136         Add function that broadcasts a message to all clients.
13137
13138         (bus_driver_send_service_created), (bus_driver_handle_hello),
13139         (bus_driver_send_welcome_message),
13140         (bus_driver_handle_list_services), (bus_driver_message_handler):
13141         Implement functions that take care of listing services, and notifying
13142         clients when new services are created.
13143
13144         * bus/services.c: (bus_services_list):
13145         * bus/services.h:
13146         Add new function that returns an array of strings with the currently
13147         registered services.
13148
13149         * glib/dbus-glib.h:
13150         * glib/dbus-gmain.c:
13151         Update copyright year.
13152
13153 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13154
13155         * dbus/dbus-connection.c: (dbus_connection_send_message):
13156         Unlock the message in case it was sent earlier.
13157
13158         (dbus_connection_send_message_with_reply_and_block):
13159         Remove the reply message from the list.
13160
13161         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13162         Set array_len and new_pos correctly.
13163
13164         (_dbus_marshal_test):
13165         Remove debug output.
13166
13167         * dbus/dbus-message-internal.h:
13168         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13169         New function that returns the reply serial.
13170
13171         (_dbus_message_unlock):
13172         New function that unlocks a message and resets its header.
13173
13174         (dbus_message_append_string_array),
13175         (dbus_message_get_fields_valist),
13176         (dbus_message_iter_get_field_type),
13177         (dbus_message_iter_get_string_array),
13178         (dbus_message_get_fields),
13179         (dbus_message_append_fields_valist):
13180         Handle string arrays.
13181
13182         (dbus_message_set_sender):
13183         Make this function public since the bus daemon needs it.
13184
13185         (decode_header_data):
13186         Set the reply serial to -1 initially.
13187
13188         * dbus/dbus-message.h:
13189         Add dbus_message_set_sender.
13190
13191 2003-01-24  Havoc Pennington  <hp@pobox.com>
13192
13193         * doc/dbus-specification.sgml: add some stuff
13194
13195 2003-01-22  Havoc Pennington  <hp@pobox.com>
13196
13197         * doc/dbus-specification.sgml: Start to document the protocol.
13198
13199 2003-01-22  Havoc Pennington  <hp@pobox.com>
13200
13201         * dbus/dbus-connection.c
13202         (dbus_connection_send_message_with_reply_and_block): add some @todo
13203
13204         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13205
13206 2003-01-21  Havoc Pennington  <hp@pobox.com>
13207
13208         (patch untested because can't compile)
13209
13210         * bus/driver.c (create_unique_client_name): make this function
13211         never recycle client names. Also, caller should initialize
13212         the DBusString.
13213
13214         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13215
13216 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13217
13218         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13219         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13220         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13221         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13222         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13223         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13224         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13225         * dbus/dbus-marshal.h:
13226         * dbus/dbus-protocol.h:
13227         Add support for marshalling and demarshalling integer, double
13228         and string arrays.
13229
13230 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13231
13232         * bus/Makefile.am:
13233         Add driver.[ch]
13234
13235         * bus/connection.c: (connection_disconnect_handler):
13236         Remove the connection from the bus driver's list.
13237
13238         (connection_watch_callback): Dispatch messages.
13239
13240         (free_connection_data): Free connection name.
13241
13242         (bus_connection_setup): Add connection to the bus driver's list.
13243         (bus_connection_remove_owned_service):
13244         (bus_connection_set_name), (bus_connection_get_name):
13245         Add functions for setting and getting the connection's name.
13246
13247         * bus/connection.h:
13248         Add function headers.
13249
13250         * bus/driver.c: (create_unique_client_name),
13251         (bus_driver_handle_hello_message),
13252         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13253         (bus_driver_add_connection), (bus_driver_remove_connection):
13254         * bus/driver.h:
13255         * bus/main.c:
13256         * bus/services.c: (bus_service_free):
13257         * bus/services.h:
13258         New file that handles communication and registreation with the bus
13259         itself.
13260
13261 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13262
13263         * dbus/dbus-connection.c: (dbus_connection_send_message):
13264         Add a new client_serial parameter.
13265
13266         (dbus_connection_send_message_with_reply):
13267         Remove a @todo since we've implemented the blocking function.
13268
13269         (dbus_connection_send_message_with_reply_and_block):
13270         New function that sends a message and waits for a reply and
13271         then returns the reply.
13272
13273         * dbus/dbus-connection.h:
13274         Add new functions.
13275
13276         * dbus/dbus-errors.c: (dbus_result_to_string):
13277         * dbus/dbus-errors.h:
13278         Add new DBUS_RESULT.
13279
13280         * dbus/dbus-message-internal.h:
13281         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13282         (_dbus_message_set_sender), (dbus_message_write_header),
13283         (dbus_message_new_reply), (decode_header_data),
13284         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13285         * dbus/dbus-message.h:
13286         Add new functions that set the reply serial and sender.
13287         Also marshal and demarshal them correctly and add test.
13288
13289         * dbus/dbus-protocol.h:
13290         Add new DBUS_MESSAGE_TYPE_SENDER.
13291
13292         * glib/dbus-glib.h:
13293         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13294         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13295         (dbus_connection_hookup_with_g_main):
13296         * glib/test-dbus-glib.c: (main):
13297         Rewrite to use GIOChannel and remove the GSource crack.
13298
13299         * test/echo-client.c: (main):
13300         * test/watch.c: (check_messages):
13301         Update for changed APIs
13302
13303 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13304
13305         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13306
13307         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13308         Create a DBusTimeoutList.
13309         (dbus_connection_set_timeout_functions): Add new function to
13310         set timeout callbacks
13311
13312         * dbus/dbus-connection.h: Add public DBusTimeout API.
13313
13314         * dbus/dbus-message.c: (dbus_message_get_service):
13315         * dbus/dbus-message.h:  New function.
13316
13317         * dbus/dbus-server.c: Fix small doc typo.
13318
13319         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13320
13321 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13322
13323         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13324         of the string, just as long as specified.
13325
13326 2003-01-19  Havoc Pennington  <hp@pobox.com>
13327
13328         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13329         new function
13330
13331         * dbus/dbus-server.c (dbus_server_set_max_connections)
13332         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13333         keep track of current number of connections, and add API for
13334         setting a max (but haven't implemented enforcing the max yet)
13335
13336 2003-01-18  Havoc Pennington  <hp@pobox.com>
13337
13338         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13339         reading/writing if read_watch != NULL or write_watch != NULL.
13340
13341         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13342         the message loader code to actually load message->header and
13343         message->body into the newly-created message.
13344
13345         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13346         in OOM case
13347
13348         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13349         (dbus_connection_get_max_message_size)
13350         (dbus_connection_set_max_live_messages_size)
13351         (dbus_connection_get_max_live_messages_size): implement some
13352         resource limitation functions
13353
13354         * dbus/dbus-resources.c: new file implementing some of the
13355         resource limits stuff
13356
13357         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13358         missing docs, add @todo to handle OOM etc.
13359
13360         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13361         docs
13362
13363 2003-01-18  Havoc Pennington  <hp@pobox.com>
13364
13365         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13366         connection if it hasn't been already.
13367
13368         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13369         replace with DisconnectFunction.
13370
13371 2003-01-18  Havoc Pennington  <hp@pobox.com>
13372
13373         Building --disable-verbose-mode --disable-asserts --disable-tests
13374         cuts the library from 112K to 45K or so
13375
13376         * configure.in: check for varargs macro support,
13377         add --enable-verbose-mode, --enable-asserts.
13378
13379         * dbus/dbus-internals.h (_dbus_assert): support
13380         DBUS_DISABLE_ASSERT
13381         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13382
13383 2003-01-18  Havoc Pennington  <hp@pobox.com>
13384
13385         * dbus/dbus-test.c: include config.h so that tests actually run
13386
13387         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13388         so the failure mode when that assumption fails will be plenty
13389         obvious.
13390
13391 2003-01-18  Havoc Pennington  <hp@pobox.com>
13392
13393         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13394
13395         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13396         the distribution
13397
13398         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13399         since we don't want to use those in make check
13400
13401 2003-01-15  Havoc Pennington  <hp@redhat.com>
13402
13403         Release 0.2
13404
13405         * NEWS: update
13406
13407 2003-01-15  Havoc Pennington  <hp@redhat.com>
13408
13409         * test/Makefile.am: fix so that test source code ends up in the
13410         distribution on make distcheck
13411
13412 2003-01-15  Havoc Pennington  <hp@redhat.com>
13413
13414         Release 0.1.
13415
13416         * NEWS: update
13417
13418 2003-01-15  Havoc Pennington  <hp@redhat.com>
13419
13420         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13421         fix build when --disable-tests
13422
13423         * Makefile.am (EXTRA_DIST): put HACKING in here
13424
13425         * HACKING: document procedure for making a tarball release.
13426
13427 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13428
13429         * bus/connection.c: (connection_error_handler),
13430         (bus_connection_setup):
13431         * bus/main.c: (main):
13432         Make sure that the DBusConnectionData struct is NULLed
13433         out to prevent a segfault.
13434
13435         * dbus/dbus-errors.c: (dbus_result_to_string):
13436         * dbus/dbus-errors.h:
13437         * dbus/dbus-message.c: (dbus_message_get_fields),
13438         (dbus_message_get_fields_valist), (_dbus_message_test):
13439         * dbus/dbus-message.h:
13440         Make dbus_message_get_fields return a result code so we can
13441         track invalid fields as well as oom.
13442
13443 2003-01-11  Havoc Pennington  <hp@pobox.com>
13444
13445         * configure.in: change --enable-test/--enable-ansi action-if-given
13446         to enable_foo=$enableval instead of enable_foo=yes
13447
13448 2003-01-08  Havoc Pennington  <hp@pobox.com>
13449
13450         * dbus/dbus-string.c (_dbus_string_align_length): new function
13451
13452         * dbus/dbus-test-main.c: move main() for test app here
13453         * dbus/dbus-test.c
13454         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13455         symbol to run tests, because dbus-test isn't in the main
13456         library
13457
13458         Code review nitpicks.
13459
13460         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13461         for people with narrow emacs ;-). Assert client_serial was filled
13462         in. Assert message->name != NULL.
13463         (dbus_message_append_fields): have "first_field_type" arg separate
13464         from va list, needed for C++ binding that also uses varargs IIRC
13465         and helps with type safety
13466         (dbus_message_new): add @todo about using DBusString to store
13467         service/name internally
13468         (dbus_message_new): don't leak ->service and ->name on OOM later
13469         in the function
13470         (dbus_message_unref): free the service name
13471         (dbus_message_get_fields): same change to varargs
13472         i.e. first_field_type
13473         (_dbus_message_loader_return_buffer): assert that the message data
13474         is aligned (if not it's a bug in our code). Put in verbose griping
13475         about why we set corrupted = TRUE.
13476         (decode_header_data): add FIXME that char* is evil.  Was going to
13477         add FIXME about evil locale-specific string.h strncmp, but just
13478         switched to wacky string-as-uint32 optimization. Move check for
13479         "no room for field name" above get_const_data_len() to avoid
13480         assertion failure in get_const_data_len if we have trailing 2
13481         bytes or the like. Check for service and name fields being
13482         provided twice. Don't leak service/name on error. Require field
13483         names to be aligned to 4 bytes.
13484
13485         * dbus/dbus-marshal.c: move byte swap stuff to header
13486         (_dbus_pack_int32): uscore-prefix
13487         (_dbus_unpack_int32): uscore-prefix
13488         (_dbus_unpack_uint32): export
13489         (_dbus_demarshal_string): add @todo complaining about use of
13490         memcpy()
13491         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13492         handling allowing corrupt data to go unchecked
13493
13494 2003-01-08  Havoc Pennington  <hp@redhat.com>
13495
13496         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13497         to the select() as needed for authentication. (should be using
13498         _dbus_poll() not select, but for another day)
13499
13500         * dbus/dbus.h: include dbus/dbus-protocol.h
13501
13502 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13503
13504         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13505         dbus-connection.h
13506
13507 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13508
13509         * dbus/dbus-internals.c: (_dbus_type_to_string):
13510         New function that returns a string describing a type.
13511
13512         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13513         * dbus/dbus-marshal.h:
13514         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13515         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13516         (dbus_message_iter_get_byte_array):
13517         * dbus/dbus-message.h:
13518         Add new convenience functions for appending and getting message fields.
13519         Also add demarshalling routines for byte arrays.
13520
13521 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13522
13523         * dbus/dbus-connection-internal.h:
13524         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13525         (_dbus_connection_get_next_client_serial),
13526         (dbus_connection_send_message):
13527         * dbus/dbus-internals.h:
13528         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13529         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13530         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13531         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13532         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13533         (_dbus_verbose_bytes), (_dbus_marshal_test):
13534         * dbus/dbus-marshal.h:
13535         * dbus/dbus-message-internal.h:
13536         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13537         (dbus_message_write_header), (_dbus_message_lock),
13538         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13539         (dbus_message_get_name), (dbus_message_append_int32),
13540         (dbus_message_append_uint32), (dbus_message_append_double),
13541         (dbus_message_append_string), (dbus_message_append_byte_array),
13542         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13543         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13544         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13545         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13546         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13547         (decode_header_data), (_dbus_message_loader_return_buffer),
13548         (message_iter_test), (_dbus_message_test):
13549         * dbus/dbus-message.h:
13550         * dbus/dbus-protocol.h:
13551         * dbus/dbus-test.c: (main):
13552         * dbus/dbus-test.h:
13553         * glib/test-dbus-glib.c: (message_handler), (main):
13554         * test/echo-client.c: (main):
13555         * test/watch.c: (check_messages):
13556         Make messages sendable and receivable for real.
13557
13558 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13559
13560         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13561         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13562         * dbus/dbus-message.c: (dbus_message_append_int32),
13563         (dbus_message_append_uint32), (dbus_message_append_double),
13564         (dbus_message_append_string), (dbus_message_append_byte_array):
13565         Handle OOM restoration.
13566
13567 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13568
13569         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13570         (_dbus_demarshal_string), (_dbus_marshal_test):
13571         * dbus/dbus-marshal.h:
13572         * dbus/dbus-message.c: (dbus_message_get_name),
13573         Document these functions.
13574
13575         (dbus_message_append_int32), (dbus_message_append_uint32),
13576         (dbus_message_append_double), (dbus_message_append_string),
13577         (dbus_message_append_byte_array):
13578         * dbus/dbus-message.h:
13579         Add functions for adding message fields of different types.
13580
13581         * dbus/dbus-protocol.h:
13582         Add the different types.
13583
13584 2003-01-05  Havoc Pennington  <hp@pobox.com>
13585
13586         * bus/connection.c: implement routines for handling connections,
13587         first thing is keeping a list of owned services on each connection
13588         and setting up watches etc.
13589
13590         * bus/services.c: implement a mapping from service names to lists
13591         of connections
13592
13593         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13594
13595         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13596         to use static mutexes for global data
13597
13598         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13599         collection of functions to set/get application-specific data
13600         on the DBusConnection.
13601
13602 2003-01-04  Havoc Pennington  <hp@pobox.com>
13603
13604         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13605         (_dbus_poll): new function
13606
13607         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13608         copied from GLib
13609
13610         * bus/loop.c: initial code for the daemon main loop
13611
13612 2003-01-04  Havoc Pennington  <hp@pobox.com>
13613
13614         * test/watch.c (error_handler): make it safe if the error handler
13615         is called multiple times (if we s/error handler/disconnect
13616         handler/ we should just guarantee it's called only once)
13617
13618         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13619         error handler on disconnect (it's quite possible we should
13620         just change the error handler to a "disconnect handler," I'm
13621         not sure we have any other meaningful errors)
13622
13623         * configure.in: check for getpwnam_r
13624
13625         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13626         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13627         mechanism as in SASL spec, using socket credentials
13628
13629         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13630         (_dbus_send_credentials_unix_socket): new function
13631
13632         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13633         dbus_accept()
13634         (_dbus_write): only check errno if <0 returned
13635         (_dbus_write_two): ditto
13636
13637 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13638
13639         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13640         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13641         (_dbus_marshal_test):
13642         * dbus/dbus-marshal.h:
13643         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13644         to _dbus_marshal_utf8_string. Also fix some tests.
13645
13646 2002-12-28  Harri Porten  <porten@kde.org>
13647
13648         * configure.in: added check for C++ compiler and a very cheesy
13649         check for the Qt integration
13650
13651         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13652
13653         * qt/Makefile.am: added
13654
13655         * qt/.cvsignore: added
13656
13657         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13658         latter, added #ifdef QT_THREAD_SUPPORT guard.
13659
13660         * dbus/Makefile.am: added missing headers for make dist
13661
13662 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13663
13664         * dbus/Makefile.am: fixup export-symbols-regex.
13665
13666 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13667
13668         * acinclude.m4: Add this file and put the
13669         PKG_CHECK_MODULE macro in it.
13670
13671 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13672
13673         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13674         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13675         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13676         (_dbus_marshal_test):
13677         Make the demarshalling routines align the pos argument.
13678         Add string marshalling tests and fix the obvious bugs
13679         discovered.
13680
13681 2002-12-26  Havoc Pennington  <hp@pobox.com>
13682
13683         * dbus/dbus-auth.c: fixes fixes fixes
13684
13685         * dbus/dbus-transport-unix.c: wire up support for
13686         encoding/decoding data on the wire
13687
13688         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13689         (_dbus_auth_decode_data): append to target string
13690         instead of nuking it.
13691
13692 2002-12-26  Havoc Pennington  <hp@pobox.com>
13693
13694         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13695         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13696         doh
13697
13698         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13699         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13700         now). Main point is because I wanted unpack_uint32 to implement
13701         _dbus_verbose_bytes
13702         (_dbus_verbose_bytes): new function
13703
13704         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13705
13706         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13707         mechanism to handle a corrupt message stream
13708         (_dbus_message_loader_new): fix preallocation to only prealloc,
13709         not prelengthen
13710
13711         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13712         (_dbus_string_test): enhance tests for copy/move and fix the
13713         functions
13714
13715         * dbus/dbus-transport-unix.c: Hold references in more places to
13716         avoid reentrancy problems
13717
13718         * dbus/dbus-transport.c: ditto
13719
13720         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13721         leak reference count in no-message case
13722
13723         * test/watch.c (do_mainloop): handle adding/removing watches
13724         during iteration over the watches. Also, ref the connection/server
13725         stored on a watch, so we don't try to mangle a destroyed one.
13726
13727         * dbus/dbus-transport-unix.c (do_authentication): perform
13728         authentication
13729
13730         * dbus/dbus-auth.c (get_state): add a state
13731         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13732         (_dbus_auth_get_unused_bytes): append the unused bytes
13733         to the passed in string, rather than prepend
13734
13735         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13736         the auth conversation DBusAuth
13737
13738         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13739         (_dbus_transport_new_for_domain_socket): when creating a
13740         transport, pass in whether it's a client-side or server-side
13741         transport so we know which DBusAuth to create
13742
13743 2002-12-03  Havoc Pennington  <hp@pobox.com>
13744
13745         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13746         _after_ finalizing the derived members
13747         (unix_connection_set): unref watch if we fail to add it
13748
13749         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13750         transport first, so that the connection owned by the
13751         transport will be valid as the transport finalizes.
13752
13753         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13754         if necessary, and remove watches from the connection.
13755
13756         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13757
13758 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13759
13760         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13761         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13762         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13763         (_dbus_marshal_test):
13764         * dbus/dbus-marshal.h:
13765         Add string marshal functions and have the demarshal functions
13766         return the new position.
13767
13768 2002-12-25  Havoc Pennington  <hp@pobox.com>
13769
13770         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13771         it is a simple protocol that just maps directly to SASL.
13772
13773         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13774         initial implementation, not actually used yet.
13775
13776         * dbus/dbus-string.c (_dbus_string_find): new function
13777         (_dbus_string_equal): new function
13778         (_dbus_string_base64_encode): new function
13779         (_dbus_string_base64_decode): new function
13780
13781 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13782
13783         * dbus/Makefile.am:
13784         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13785         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13786         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13787         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13788         * dbus/dbus-marshal.h:
13789         * dbus/dbus-protocol.h:
13790         * dbus/dbus-test.c: (main):
13791         * dbus/dbus-test.h:
13792         Add un-optimized marshalling/demarshalling routines.
13793
13794 2002-12-25  Harri Porten  <porten@kde.org>
13795
13796         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13797
13798 2002-12-24  Zack Rusin  <zack@kde.org>
13799
13800         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13801         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13802         main loop stuff
13803
13804 2002-12-24  Havoc Pennington  <hp@pobox.com>
13805
13806         * glib/dbus-gthread.c: fix include
13807
13808         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13809         I think glib API needs to change, though, as you don't
13810         want to use DBusMessageFunction, you want to use the
13811         DBusMessageHandler object. Probably
13812         dbus_connection_open_with_g_main_loop()
13813         and dbus_connection_setup_g_main_loop() or something like that
13814         (but think of better names...) that just create a connection
13815         that has watch/timeout functions etc. already set up.
13816
13817         * dbus/dbus-connection.c
13818         (dbus_connection_send_message_with_reply): new function just to
13819         show how the message handler helps us deal with replies.
13820
13821         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13822
13823         * dbus/dbus-string.c (_dbus_string_test): free a string that
13824         wasn't
13825
13826         * dbus/dbus-hash.c: use memory pools for the hash entries
13827         (rebuild_table): be more paranoid about overflow, and
13828         shrink table when we can
13829         (_dbus_hash_test): reduce number of sprintfs and write
13830         valid C89. Add tests for case where we grow and then
13831         shrink the hash table.
13832
13833         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13834
13835         * dbus/dbus-connection.c (dbus_connection_register_handler)
13836         (dbus_connection_unregister_handler): new functions
13837
13838         * dbus/dbus-message.c (dbus_message_get_name): new
13839
13840         * dbus/dbus-list.c: fix docs typo
13841
13842         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13843         an object representing a handler for messages.
13844
13845 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13846
13847         * glib/dbus-glib.h:
13848         * glib/dbus-gthread.c: (dbus_gthread_init):
13849         Don't use the gdbus prefix for public functions.
13850
13851 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13852
13853         * Makefile.am:
13854         * configure.in:
13855         Add GLib checks and fixup .pc files
13856
13857         * glib/Makefile.am:
13858         * glib/dbus-glib.h:
13859         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13860         (gdbus_connection_check), (gdbus_connection_dispatch),
13861         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13862         (dbus_connection_gsource_new):
13863         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13864         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13865         * glib/test-dbus-glib.c: (message_handler), (main):
13866         Add GLib support.
13867
13868 2002-12-15  Harri Porten  <porten@kde.org>
13869
13870         * autogen.sh: check for libtoolize before attempting to use it
13871
13872         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13873         struct.
13874
13875         * .cvsignore: ignore more stamp files
13876
13877         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13878
13879         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13880         without make install.
13881
13882 2002-12-15  Havoc Pennington  <hp@pobox.com>
13883
13884         * dbus/dbus-threads.c: add thread stubs that a higher library
13885         layer can fill in. e.g. the GLib wrapper might fill them in with
13886         GThread stuff. We still need to use this thread API to
13887         thread-safe-ize the library.
13888
13889 2002-12-12  Havoc Pennington  <hp@pobox.com>
13890
13891         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13892         below new interfaces and include fewer system headers.
13893
13894         * dbus/dbus-sysdeps.c (_dbus_read): new function
13895         (_dbus_write): new function
13896         (_dbus_write_two): new function
13897         (_dbus_connect_unix_socket): new function
13898         (_dbus_listen_unix_socket): new function
13899
13900         * dbus/dbus-message-internal.h: change interfaces to use
13901         DBusString
13902
13903 2002-12-11  Havoc Pennington  <hp@pobox.com>
13904
13905         * dbus/dbus-types.h: add dbus_unichar
13906
13907         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13908
13909         * dbus/dbus-connection.c (dbus_connection_send_message): return
13910         TRUE on success
13911
13912         * dbus/dbus-transport.c: include dbus-watch.h
13913
13914         * dbus/dbus-connection.c: include dbus-message-internal.h
13915
13916         * HACKING: add file with coding guidelines stuff.
13917
13918         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13919         handling here, for security purposes (as in vsftpd). Not actually
13920         using this class yet.
13921
13922         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13923         system/libc usage here, as in vsftpd, for ease of auditing (and
13924         should also simplify portability). Haven't actually moved all the
13925         system/libc usage into here yet.
13926
13927 2002-11-25  Havoc Pennington  <hp@pobox.com>
13928
13929         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13930         always print the first verbose message.
13931
13932 2002-11-24  Havoc Pennington  <hp@pobox.com>
13933
13934         * test/echo-client.c, test/echo-server.c: cheesy test
13935         clients.
13936
13937         * configure.in (AC_CHECK_FUNCS): check for writev
13938
13939         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13940         function
13941
13942         * dbus/dbus-list.c (_dbus_list_foreach): new function
13943
13944         * dbus/dbus-internals.c (_dbus_verbose): new function
13945
13946         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13947         representing a server that listens for connections.
13948
13949         * dbus/.cvsignore: create
13950
13951         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13952         public API for reporting errors
13953
13954         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13955         public object representing a connection that
13956         sends/receives messages. (Same object used for
13957         both client and server.)
13958
13959         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13960         Basic abstraction for different kinds of stream
13961         that we might read/write messages from.
13962
13963 2002-11-23  Havoc Pennington  <hp@pobox.com>
13964
13965         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13966         _DBUS_INT_MAX
13967
13968         * dbus/dbus-test.c (main): add list test, and include
13969         dbus-test.h as intended
13970
13971         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13972         (_dbus_hash_table_remove_int): return value indicates
13973         whether the entry existed to remove
13974
13975         * dbus/dbus-list.c: add linked list utility class,
13976         with docs and tests
13977
13978         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13979         array sometimes.
13980
13981 2002-11-23  Havoc Pennington  <hp@pobox.com>
13982
13983         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13984         DBUS_END_DECLS to nothing, that should fix this once and for all
13985
13986         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13987
13988         * dbus/dbus-message.c, dbus/dbus-hash.c:
13989         add some missing @brief
13990
13991 2002-11-23  Havoc Pennington  <hp@pobox.com>
13992
13993         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13994         to avoid confusing Doxygen
13995
13996         * dbus/dbus-hash.c: @} not }@
13997
13998         * dbus/dbus-message.c (struct DBusMessage): split out
13999         internals docs
14000
14001 2002-11-23  Havoc Pennington  <hp@pobox.com>
14002
14003         * configure.in: pile on more warning flags if using gcc
14004
14005         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14006         to document static functions
14007
14008         * configure.in: add summary to end of configure so it
14009         looks nice and attractive
14010
14011         * dbus/dbus-hash.c: finish implementation and write unit
14012         tests and docs
14013
14014         * configure.in: add --enable-tests to enable unit tests
14015
14016         * dbus/dbus-test.c: test program to run unit tests
14017         for all files in dbus/*, initially runs a test for
14018         dbus-hash.c
14019
14020         * dbus/dbus-internals.h: file to hold some internal utility stuff
14021
14022 2002-11-22  Havoc Pennington  <hp@redhat.com>
14023
14024         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14025         "ported" away from Tcl
14026
14027         * dbus/dbus-types.h: header for types such as dbus_bool_t
14028
14029 2002-11-22  Havoc Pennington  <hp@redhat.com>
14030
14031         * dbus/dbus.h: fixups for doc warnings
14032
14033         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14034         macros
14035         (QUIET): make it quiet so we can see warnings
14036
14037         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14038
14039 2002-11-22  Havoc Pennington  <hp@redhat.com>
14040
14041         * Makefile.am: include "Doxyfile" target in all-local
14042
14043         * configure.in: generate the Doxyfile
14044
14045         * Doxyfile.in: move Doxyfile here, so we can use
14046         configure to generate a Doxyfile with the right
14047         version number etc.
14048
14049 2002-11-22  Havoc Pennington  <hp@redhat.com>
14050
14051         * dbus/dbus-message.c: move inline docs into .c file
14052
14053         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14054         so all docs are under doc/
14055         (MAN_EXTENSION): generate man pages. Use extension
14056         ".3dbus" which matches ".3qt" on my system,
14057         I guess this is OK, I don't know really.
14058         (FILE_PATTERNS): look for .c files not .h, makes sense
14059         for plain C I think
14060
14061 2002-11-22  Havoc Pennington  <hp@pobox.com>
14062
14063         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14064         because any app can be a server, and any app can be a client,
14065         the bus is a special kind of server.
14066
14067 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14068
14069         * Doxyfile : adding. Still needs Makefile rules to be generated
14070         automatically (just run "doxygen" in the toplevel dir for now to
14071         generate docs)
14072
14073         * dbus/dbus-message.h : Adding sample docs (javadoc since
14074         resembles gtk-doc a little more)
14075
14076         * dbus/dbus.h : Adding sample docs
14077
14078 2002-11-21  Havoc Pennington  <hp@redhat.com>
14079
14080         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14081         so we can allow ourselves to include files directly,
14082         instead of having to use dbus.h
14083
14084         * dbus/dbus.h: fill in
14085
14086         * dbus/dbus-message.h: sketch out a sample header file.
14087         Include griping if you include it directly instead of
14088         via dbus.h
14089
14090         * dbus/dbus-macros.h: new file with macros for extern "C",
14091         TRUE/FALSE, NULL, etc.
14092
14093         * doc/file-boilerplate.c: put include guards in here
14094
14095 2002-11-21  Havoc Pennington  <hp@redhat.com>
14096
14097         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14098
14099         * COPYING: include the GPL as well, and license code
14100         under both AFL and GPL.
14101
14102 2002-11-21  Havoc Pennington  <hp@redhat.com>
14103
14104         * acconfig.h: get rid of this
14105
14106         * autogen.sh (run_configure): add --no-configure option
14107
14108         * configure.in: remove AC_ARG_PROGRAM to make
14109         autoconf complain less. add AC_PREREQ.
14110         add AC_DEFINE third arg.
14111
14112 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14113
14114         * doc/Makefile.am:
14115         Fix references so we can distcheck.
14116
14117 2002-11-21  Havoc Pennington  <hp@redhat.com>
14118
14119         * Initial module creation
14120