* configure.in: add DBUS_BINDIR as a #define to C source code.
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-30  Thiago Macieira  <thiago@kde.org>
2
3         * configure.in: add DBUS_BINDIR as a #define to C source code.
4
5         * tools/dbus-launch.c
6         * tools/dbus-launch.h
7         * tools/dbus-launch-x11.c:
8         * tools/dbus-launch.1: Add the --autolaunch option to
9         dbus-launch, which makes it scan for an existing session
10         started with --autolaunch. With that option, it also creates
11         an X11 window and saves the bus address and PID to it.
12
13         * dbus/dbus-sysdeps.h:
14         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
15         a function that runs "dbus-launch --autolaunch" to retrieve
16         the running D-Bus session address (or start one if none was running)
17
18         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
19         address protocol, which tries to get the running session from
20         dbus-launch.
21
22         * dbus/dbus-bus.c:
23         * dbus/dbus-internals.h: Make "autolaunch:" be the default
24         D-Bus session bus address.
25
26         * dbus/dbus-connection.c: Fix horrible typo in error message.
27
28 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
29
30         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
31
32 2006-09-17  Havoc Pennington  <hp@redhat.com>
33
34         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
35         fix so that if unix_user_function is set on windows, we still
36         do the default check that the auth identity matches the bus identity
37
38 2006-09-16  Havoc Pennington  <hp@redhat.com>
39
40         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
41         to _dbus_transport_open_platform_specific,
42         _dbus_transport_open_socket,
43         and _dbus_transport_open_debug_pipe
44
45         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
46
47 2006-09-16  Havoc Pennington  <hp@redhat.com>
48
49         Attempt auditing public API to remove all cases where a Unix
50         function returns weird emulated goo to Windows. This probably 
51         breaks the bus daemon on Windows, to fix it again we may 
52         need to stop processing unix-specific config options on Windows,
53         and may need to add Windows-specific public API or config options.
54         
55         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
56         to reflect added interfaces; should not break soname.
57         
58         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
59         not invoke unix user function on Windows. Kind of a hacky fix, but 
60         we don't want a "unix uid" leaking out on Windows.
61
62         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
63         to get the socket fd on Windows or UNIX
64         (dbus_connection_get_unix_fd): make this always fail on Windows
65
66 2006-09-16  Havoc Pennington  <hp@redhat.com>
67
68         * dbus/dbus-server.c (dbus_server_listen): change how this works
69         to be able to delegate to a set of handlers that can succeed,
70         fail, or choose not to handle. Allows us to have 
71         dbus_server_listen_platform_specific.
72
73         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
74         factor out the tcp socket stuff to be used on windows, leaving
75         unix domain socket only in dbus-socket-unix.c
76
77         * dbus/dbus-transport-socket.c
78         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
79         stuff to be used on windows, leaving unix domain socket only 
80         in dbus-transport-unix.c
81
82         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
83         temporary hack to be sure this fails on windows
84         (dbus_connection_get_unix_process_id): ditto
85
86 2006-09-16  Havoc Pennington  <hp@redhat.com>
87
88         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
89         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
90         _dbus_open_socket so the domain/type/protocol from system headers
91         are not required. This is kind of pointless though unless we move
92         part of _dbus_connect_tcp_socket into sysdeps.c instead of
93         sysdeps-unix.c, which would mean adding a wrapper around
94         bind/listen/etc.
95         Also, add DBusError to the socket-opening functions so they 
96         don't require use of errno.
97
98 2006-09-16  Havoc Pennington  <hp@redhat.com>
99
100         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
101         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
102
103         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
104         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
105         functions specifically for sockets only, and move generic 
106         read/write/open/close into unix-specific code.
107
108 2006-09-14  Havoc Pennington  <hp@redhat.com>
109
110         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
111         complaint about accessing revents when poll returns 0, from Julian Seward.
112
113 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
114
115         * Released 1.0 RC 1 (0.93) 
116
117 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
118
119         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
120         use _dbus_close instead of close
121
122 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
123
124         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
125         credentials.  Fixes "external" authentication under e.g. NetBSD
126         which does not support any other socket credentials mechanism.
127         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
128
129 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
130
131         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
132         dbus_threads_init and be used by the dbus mutex functions to
133         avoid deadlocks.
134
135         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
136
137 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
138
139         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
140         use threadsafe readdir_r instead of readdir
141
142 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
143
144         * dbus-threads.c (dbus_threads_init_default): New method for
145         initializing the internal thread implementation (Patch from
146         Alexander Larsson <alexl at redhat dot com>)
147
148 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
149
150         * remove a bunch of todo items from the 1.0 list
151
152 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
153
154         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
155         key not found
156
157 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
158
159         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
160         complex debugging code
161
162         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
163         between the test suite ifdefs
164         (_dbus_verbose_bytes): return if verbosity is not enabled 
165
166 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
167
168         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
169         remove DBusMark
170
171 2006-09-10  Havoc Pennington  <hp@redhat.com>
172
173        patch mostly by Peter Kümmel, bug #8211
174         
175         * dbus/dbus-sysdeps-unix.c: new file, which splits out
176         unix-specific stuff in dbus-sysdeps.c
177
178         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
179         and move unix-specific stuff to dbus-sysdeps-unix.c
180
181         * configure.in: check HAVE_ERRNO_H
182         
183 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
184
185         * bus/test-main.c (main): Initialize threading during tests
186
187         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
188         Unlock connection on error
189         (generate_local_error_message): static method for generating
190         an error message when we don't have a message to reply to
191         (_dbus_connection_block_pending_call): Send a disconnect error
192         instead of just a timeout (NULL) when the bus gets disconnected
193         while blocking for a reply.
194         
195 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
196
197         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
198         filters (Patch from Kimmo Hämäläinen 
199         <kimmo dot hamalainen at nokia dot com>)
200
201 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
202
203         * dbus/dbus-connection-internal.h: Add prototype for 
204         _dbus_connection_test_get_locks to remove warning
205
206 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
207
208         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
209         close child_err_report_pipe[WRITE_END] on exec (Patch from 
210         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
211
212 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
213
214         * Clean up close calls to use _dbus_close (Patch from 
215         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
216
217 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
218
219         * doc/TODO:
220         - Remove pending call locking todo item
221         - dbus_connection_open now holds hard ref.  Remove todo item
222         - do proper locking on _dbus_bus_check_connection_and_unref
223           and handle DBUS_BUS_STARTER. Remove todo item
224         - Warn on closing of a shared connection.  Remove todo item
225
226         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
227         dbus/dbus-connection.c: Use the dbus_connection_close_internal
228         so we don't get the warning when closing shared connections
229
230         * test/test-service.c, test/test-shell-service.c: Applications
231         don't close shared connections themselves so we unref instead of
232         close
233
234         * test/test-utils.c (test_connection_shutdown): Close the connection
235
236         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
237         _dbus_bus_check_connection_and_unref_unlocked since we only call this
238         method on a locked connection.  
239         Make sure we call _dbus_connection_unref_unlocked instead of 
240         dbus_connection_unref also.
241         Handle DBUS_BUS_STARTER correctly
242
243         * dbus/dbus-connection.c (connection_record_shared_unlocked):
244         Mark as shared and hard ref the connection
245         (connection_forget_shared_unlocked): Remove the hard ref from the 
246         connection
247         (_dbus_connection_close_internal_and_unlock):  New internal function
248         which takes a locked connection and unlocks it after closing it
249         (_dbus_connection_close_internal): New internal function which acts
250         like the origonal dbus_connection_close method by grabbing a connection
251         lock and calling _dbus_connection_close_internal_and_unlock
252         (dbus_connection_close): Public close method, warns when the app
253         trys to close a shared connection
254
255 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
256
257         * bus/driver.c:
258         (bus_driver_generate_introspect_string): New method for populating
259         a DBusString with the introspect data
260         (bus_driver_handle_introspect): Move introspect generation code to 
261         bus_driver_generate_introspect_string
262
263         * bus/main.c:
264         (introspect): New function which prints out the intropect data and
265         exits
266         (main): Add a --introspect switch
267
268 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
269
270         * doc/TODO: Removed dtd publishing item.  
271         It seems the dtd has already been added at
272         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
273
274 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
275
276         * doc/TODO, various source files: Audited todo's and FIXME's and
277         prepended the ones we should be looking at with 1.0.  Those
278         prepended with 1.0? need clerification or might not be needed
279         for 1.0
280
281 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
282
283         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
284         NULL in the public API (Patch from Kimmo Hämäläinen 
285         <kimmo dot hamalainen at nokia dot com>)
286
287 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
288
289         * configure.in: Fix for OS-X compile time endian issues (patch from
290         Benjamin Reed <ranger at befunk dot com>)
291
292 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
293
294         * configure.in: Check for no-common compiler flag (OS-X fix from
295         Benjamin Reed <ranger at befunk dot com>)
296
297 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
298
299         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
300         <fcrozat at mandriva dot com>)
301
302 2006-08-29  Havoc Pennington  <hp@redhat.com>
303
304         * test/test-service.c (path_message_func): fix lack of return value
305
306         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
307         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
308         any more sense than on anything else in this file.
309         (_dbus_get_tmpdir): add const to return value, and keep the
310         results of the various getenv around in a static variable.
311
312 2006-08-29  Havoc Pennington  <hp@redhat.com>
313
314         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
315         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
316
317 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
318
319         * test/Makefile.am: change find to use syntax that works with non
320         gnu versions of find
321
322 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
323
324         * dbus/dbus-transport.c: fix invalid deref when checking if
325         a vtable method exists (Patch from Christian Ehrlicher 
326         <ch dot ehrlicher at gmx dot de>)
327
328 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
329
330         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
331         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
332         to build with builddir != srcdir (Taken from a patch by Bernard Leak
333         <bernard at brenda-arkle dot demon dot co dot uk>)
334
335 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
336
337         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
338         default case
339
340 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
341
342         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
343         it works on any system providing this interface, not only FreeBSD.
344         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
345
346 2006-08-20  Havoc Pennington  <hp@redhat.com>
347
348         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
349         the docs
350
351 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
352
353         * Released 0.92 
354
355 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
356
357         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
358         to reflect the init late change
359
360         * bus/bus.c (bus_context_new): Check user before we fork so we can
361         print out an error message a user will be able to see
362
363 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
364
365         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
366
367         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
368         Add two more global locks for use on windows platforms.  These are
369         unused on non-windows platforms but are not ifdefed out to avoid
370         potential bugs (i.e. the few bytes lost does not warrent the extra
371         maintanence and complexity that having seperate sets of locks would
372         cause)
373
374 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
375
376         * bus/services.c (bus_registry_acquire_service): Return an error
377         when an application tries to register the org.freedesktop.DBus Bus Name
378
379         * bus/services.c (bus_registry_release_service): Return an error
380         when an application tries to release the org.freedesktop.DBus Bus Name
381
382 2006-08-17  Alp Toker  <alp@atoker.com>
383
384         * doc/dbus-specification.xml: Fix some minor typos.
385
386 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
387
388         * configure.in: use $with_init_scripts instead of $operating_system
389         to determine where to store the pid since the init scripts manipulate 
390         the pid file (patch from Marcelo Ricardo Leitner 
391         <marcelo dot leitner at terra dot com dot br>.  
392
393 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
394
395         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
396         static DBusList *uninitialized_condvar_list to support new late 
397         initialization threading model.  In this model threads can be initialized
398         even after the D-Bus API has been used but still needs to be initialized 
399         before the second thread has been started.  Mutexes and condvar addresses
400         are stored in the two static lists and are replaced with actuall locks
401         when threads are initalized.
402         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
403         the location into the static list
404         (_dbus_mutex_free_at_location): New method for removing a mutex location 
405         from the static list and freeing the mutex
406         (_dbus_condvar_new_at_location): New method for creating a conditional 
407         variable and placing the location into the static list
408         (_dbus_condvar_free_at_location): New method for removing a conditional
409         variable location from the static list and freeing the conditional variable 
410         (init_uninitialized_locks): Atomic method which goes through the static 
411         lists of mutex and condvar location and updates them with actuall locks
412         (init_global_locks): changed to init_locks
413         
414         * dbus/dbus-connection.c:
415         (_dbus_connection_test_get_locks): New method for tests to check connections
416         (_dbus_connection_new_for_transport): Use the new at_location mutex and
417         condvar API
418         (dbus_connection_allocate_data_slot): Pass in the global lock address
419         to _dbus_data_slot_allocator_alloc
420
421         * dbus/dbus-dataslot.c:
422         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
423         instead of the mutex itself
424
425         * dbus/dbus-message.c:
426         (dbus_message_allocate_data_slot): Pass in the global lock address
427         to _dbus_data_slot_allocator_alloc
428
429         * dbus/dbus-pending-call.c:
430         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
431         to _dbus_data_slot_allocator_alloc
432
433         * dbus/dbus-server.c:
434         (_dbus_server_init_base): Use the new at_location mutex API
435         (dbus_server_allocate_data_slot): Pass in the global lock address
436         to _dbus_data_slot_allocator_alloc
437
438         * test/name-test/test-threads-init.c: New test case for late thread
439         initialization
440
441 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
442
443         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
444         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
445         causes compile problems when asserts are turned off
446         Keeping _dbus_warn for printing out the message so even if
447         asserts are turned off the user gets the messages that something is 
448         wrong 
449
450 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
451
452         Patches by Kjartan Maraas <kmaraas at gnome dot org>
453
454         * bus/services.c (bus_service_list_queued_owners):
455         Add a pointer cast to fix compiler warning
456
457         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
458         return a NULL instead of FALSE since the return type
459         is not expecting a boolean
460
461         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
462         Remove unused variable
463
464         * dbus/dbus-marshal-recursive-util.c (node_new):
465         return a NULL instead of FALSE since the return type
466         is not expecting a boolean
467
468         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
469         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
470         because we are expecting a pointer not a boolean
471
472         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
473         add void as the parameter so some compilers
474         don't complain
475
476         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
477           _dbus_transport_new_for_tcp_socket):
478         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
479         because we are expecting a pointer not a boolean
480
481         * test/shell-test.c (test_command_line):
482         cast the second argument to _dbus_list_append to avoid compiler
483         warnings
484
485         * test/test-names.c (main): remove unused variable
486
487         * test/test-service.c (check_hello_from_self_reply):
488         Initialize echo_message and echo_reply to NULL
489         
490         * test/test-shell-service.c (handle_echo):
491         Remove unused variable and cast the third parameter passed to
492         dbus_connection_get_object_path_data to avoid compiler warrnings
493
494         * test/name-test/test-names.c (clear_message_queue):
495         Remove unused function
496
497         * test/name-test/test-pending-call-dispatch.c:
498         Fix format string in printf
499
500
501 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
502
503         * dbus/dbus-bus.c:
504         * test/name-test/test-names.c:
505         Remove test method dbus_bus_connection_get_unique_name because 
506         we already have public method dbus_bus_get_unique_name that 
507         does the exact same thing
508
509 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
510
511         * dbus/dbus-signature.c:
512         fix typos in Julio's previous patch which cause make check to fail
513
514 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
515
516         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
517         In any case it was wrong since this is a test checking to see if
518         address parsing is correct.  There was no need to get the true
519         tmp directory.  
520
521 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
522
523         * dbus/dbus-macros.h: Revert the addition of stddef.h
524         as we should not be adding it to library headers 
525
526 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
527
528         * dbus/dbus-signature.c:
529         Fix the unit tests so that they work if assertions are not enabled.
530         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
531
532 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
533
534         * tools/run-with-tmp-session-bus.sh:
535         * test/name-test/run-test.sh:
536         Remove bashisms (patch from Julio M. Merino Vidal
537         <jmmv at NetBSD dot org>)
538
539 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
540
541         * configure.in: add a version (>= 2.6.0) check for libxml2
542
543 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
544
545         * configure.in: make sure the compiler supports -Wfloat-equal
546         
547         * bus/dir-watch-dnotify.c: move functional code after 
548         variable declerations (C99 fix)  (patches from Jens Granseuer
549         <jensgr at gmx dot net>
550
551 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
552
553         * dbus/dbus-macros.h:
554         add #include <stddef.h> so that Sun compilers don't complain about
555         the defining NULL
556
557 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
558
559         * dbus/dbus-sysdeps.c:
560         * dbus/dbus-address.c:
561         * bus/activation.c:
562         * test/shell-test.c:
563         don't hardcode tmp directory (patch from Dave Meikle 
564         <dmk at davemeikle dot co dot uk>)
565
566 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
567
568         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
569         Change an assert to a detailed warning and abort.  
570         When allocator->lock != mutex it indicates that the user has failed
571         to initalize threads before using the D-Bus library.  This warning
572         helps the user identify the issue and fix their app.
573
574 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
575
576         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
577         with cleanups of bugs found from Coverity reports:
578
579         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
580         close the file on error to avoid a leak
581
582         * bus/expirelist.c (bus_expire_list_test):
583         Check for NULL on dbus_new0
584
585         * bus/activation.c (update_directory):
586         remove dead code
587
588         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
589         Fix some leaks
590
591         * bus/bus.c (process_config_every_time):
592         Fixed a leak
593
594         * bus/desktop-file.c (parse_key_value):
595         Fixed leak
596
597         * bus/selinux.c (bus_selinux_id_table_insert):
598         Fixed leak
599
600 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
601
602         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
603         remove dead code
604
605 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
606
607         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
608         #!/bin/bash
609
610 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
611
612         * Doxyfile.in: fix the INPUT line so we can generate docs 
613         when sourcedir != builddir (patch from Cygwin Ports maintainer
614         <yselkowitz at users dot sourceforge dot net>
615
616 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
617
618         * dbus/dbus-sysdeps.h:
619         * dbus/dbus-sysdeps.c: 
620         * dbus/dbus-string.c: 
621         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
622         GLib's function which does the same thing
623
624         * configure.in:
625         * bus/Makefile.am:
626         * bus/dir-watch-default.c:
627         * bus/dir-watch-dnotify.c:
628         * bus/dir-watch-kqueue.c:
629         Add kqueue directory watching for freebsd and split the directory
630         watching code into seperate files per method/arch
631         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
632
633 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
634
635         * configure.in:
636         * tools/Makefile.am:
637         * tools/dbus-launch.c:
638         * bus/Makefile.am:
639         allow --with-dbus-daemondir switch to be used to make the
640         daemon install to a seperate bindir like /usr/libexec
641         (patch from Brian Cameron <brian dot cameron at sun dot com)
642
643 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
644
645         * bus/Makefile.am (install-data-hook): removed the slash after 
646         $(DESTDIR) so we don't get the double slash which does not work
647         in windows (patch from Andras Porjesz 
648         <andras dot porjesz at siemens dot com>)
649
650 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
651
652         * dbus/dbus-sysdeps.h:
653         * dbus/dbus-sysdeps.c: 
654           add _dbus_printf_length (patch from Peter Kümmel 
655           <syntheticpp at gmx dot net>)
656
657 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
658
659         * dbus/dbus-internals.c: unistd.h is not used 
660         (_dbus_verbose_real): only enable verbose printing 
661         if DBUS_VERBOSE environment var is set to '1'
662         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
663
664 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
665
666         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
667         so we still compile on older gcc (patch from Frederic Peters 
668         <fpeters at 0d dot be>
669
670 2006-08-04  Havoc Pennington  <hp@redhat.com>
671
672         * configure.in: add -Wdeclaration-after-statement
673
674         * dbus/dbus-connection.c: change all the pending call stuff to
675         reflect the fact that pending call operations use the connection
676         lock
677
678         * dbus/dbus-pending-call.c: add locking here
679
680         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
681         field const consistent with how message field is done
682
683 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
684
685         * s/D-BUS/D-Bus/g
686
687 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
688
689         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
690         <in7y118 at public.uni-hamburg dot de> - fix invalid
691         read/write reported by valgrind
692
693 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
694
695         * Released 0.91
696
697 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
698
699         * dbus/dbus-connection.c:
700         (_dbus_connection_attach_pending_call_unlocked):
701         (connection_timeout_and_complete_all_pending_calls_unlocked):
702         Make sure we set timeout_added on pending calls to FALSE when
703         we remove the timeout from the connection
704
705 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
706
707         * Removed some extra bindings stuff lingering around (thanks timo)
708         * dbus-pendingcall.c (_dbus_pending_call_new): 
709         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
710         when we tried to take a lock on an already locked connection
711
712 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
713
714         * Released 0.90
715
716 2006-07-17  Havoc Pennington  <hp@redhat.com>
717
718         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
719         ints, reported by Owen Taylor
720
721 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
722
723         * doc/TODO:
724         * dbus/dbus-bus.c:
725         * dbus-errors.c:
726         * dbus/dbus-marshal-validate.c:
727           Removed TODO items which were fixed or are no longer relevent
728
729 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
730
731         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
732         Remove stray files from the stripped bindings
733
734 2006-07-16  Havoc Pennington  <hp@redhat.com>
735
736         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
737         Improve the error message on reply timeout
738
739 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
740
741         * Remove all bindings
742
743 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
744
745         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
746         and set pending_reply out arg to NULL is connection is disconnected
747         (connection_timeout_and_complete_all_pending_calls_unlocked): New
748         static method for cleaning up pending calls on disconnect
749         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
750         calls queued timeouts on disconnect 
751
752          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
753         Remove 
754
755 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
756
757         * bus/activation.[ch] (bus_activation_list_services): new function to 
758         get the list of services that can be activated
759
760         * bus/dispatch.c: test coverage for the new bus method
761         ListActivatableNames
762
763         * bus/driver.c: new bus method ListActivatableNames to get the list of
764         services that can be activated
765
766         * doc/dbus-specification.xml: ListActivatableNames method documentation
767
768 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
769         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
770         source files
771
772 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
773         * dbus/dbus-message-factory.c:
774         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
775
776 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
777         * dbus/dbus-connection-internal.h:
778         * dbus/dbus-connection.c:
779         * file dbus/dbus-pending-call.c:
780         * dbus/dbus-pending-call.h:
781         Make DBusPendingCall an opaque type even to D-Bus internals
782
783 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
784
785         * dbus/dbus-connection.h: remove connection_disconnect and replace with
786         connection_close
787
788         * dbus/dbus-connection.c: include dbus-bus.h
789         (_dbus_connection_read_write_dispatch): make static
790
791 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
792
793         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
794         function
795         (dbus_connection_dispatch): On disconnect unref any shared connections
796
797         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
798         for cleaning up shared connections on disconnect
799         (internal_bus_get): get a hard refrence to shared connections when
800         they are created
801         
802         * doc/TODO: Remove items which are no longer relevent or have been fixed
803         Split 1.0 todo items with a 0.90 freeze todo list
804  
805 2006-06-14  Ross Burton  <ross@openedhand.com>
806
807         * glib/dbus-gobject.c:
808         Free a leaking GArray (surely not!) in dbus_g_method_return.
809
810 2006-06-14  Ross Burton  <ross@openedhand.com>
811
812         * tools/Makefile.am:
813         * tools/dbus-monitor.c:
814         Don't use the GLib bindings in dbus-monitor (patch from Ralf
815         Habacker).
816         
817 2006-06-14  Ross Burton  <ross@openedhand.com>
818
819         * tools/dbus-print-message.c:
820         Also print the object path when outputting signals or method calls.
821
822 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
823
824         * qt/src/Makefile.am: install the qdbus.h header.
825         This allows people to actually use the installed code.
826
827 2006-06-12  Ross Burton  <ross@openedhand.com>
828
829         * glib/dbus-gproxy.c:
830         Don't leak a GArray when firing signals (thank Rob Taylor for review).
831
832 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
833
834         * Released 0.62
835
836 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
837
838         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
839         break pedantic builds. Closes bug 6043 (patch approved by
840         Havoc back in February).
841
842 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
843
844         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
845         that took a QDBusMessage parameter.
846         * qt/src/qdbusbus.h: Add a default flag for RequestName.
847         * qt/tools/dbus.cpp: Don't use automatic call because we might
848         be calling an async method: request a reply.
849
850 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
851
852         * test/qt/*: Update the testcases, including testing the new
853         functionality of sending null QByteArray and QString over the
854         bus. Add new headertest test and restore the old
855         qdbusxmlparser test.
856
857 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
858
859         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
860         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
861
862         * qt/examples/Makefile.am:
863         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
864         form.
865
866         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
867         QByteArray() (nulls) over the bus.
868         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
869         the one that has the signature suffix stripped.
870         * qt/src/qdbusreply.h: Make some methods const.
871
872 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
873
874         Patch from Timo Hoenig <thoenig@suse.de>.
875
876         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
877         required during build to EXTRA_DIST.
878         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
879         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
880         * configure.in: Fix "make dist", take care that the Makefile for
881         qt/dbus is being generated.
882
883 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
884
885         * bus/bus.c: Fix eavesdropping on method calls
886
887 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
888
889         * configure.in:
890         * dbus/dbus-userdb-util.c:
891         Add Solaris console owner patch from Artem Kachitchkine
892
893 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
894
895         * qt/Makfile.am:
896         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
897         reorganisation. Thanks to Timo Hoenig for pointing this out.
898
899 2006-06-06  Robert McQueen  <robot101@debian.org>
900
901         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
902           call to dbus_g_type_get_struct.
903
904 2006-06-06  Robert McQueen  <robot101@debian.org>
905
906         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
907           pointers were put into a GPtrArray-based specialised collection, and
908           then freed along with the array. GValues which you add into
909           collections or maps which have the NOCOPY flag set are assumed to not
910           belong to the caller, so rather than the existing pointer-stealing
911           semantics, they are copied instead. Given that the main consumers of
912           this abstraction are the bindings themselves, I don't think this is
913           too bad, but others should watch their choice of take vs set_static.
914
915 2006-06-06  Robert McQueen  <robot101@debian.org>
916
917         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
918           of g_slist_prepend not being used. Fixed copying of slist-based
919           specialised collections, then wrote a test case and found that it was
920           all broken. Went on to fix iterating and appending too. Good thing
921           nobody uses this code yet.
922
923 2006-06-06  Robert McQueen  <robot101@debian.org>
924
925         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
926           the iterators use gvalue_take_ptrarray_value (the GValues themselves
927           are discarded without unsetting, so it makes no difference whether
928           we take or set_static). Remove cases for G_TYPE_POINTER because
929           there really is nothing useful we can do with them in our
930           specialised types - we *need* boxed copy/free functions at the very
931           least.
932
933 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
934
935         * qt/dbus: Add directory. I had forgotten to add this
936         yesterday after the move...
937
938         * qt/examples/Makefile.am:
939         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
940
941         * qt/tools/Makefile.am:
942         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
943         Added feature to get and set properties.
944         Added validation of service, object path and interface names.
945
946         * qt/tools/dbusidl2cpp.cpp: Two new features:
947         1) Allow specifying both the header and the source file names,
948         by separating them with a colon.
949         2) Don't write an interface output if the -p switch wasn't
950         given, but the -a was.
951
952         * qt/src/*: Fix usage of Iterators and ConstIterators.
953         Fix shadowing of variables by other variables (-Wshadow).
954         Fix keyword-cleanliness in headers.
955         Fix ASCII-cast (QLatin1String, QLatin1Char).
956         Fix validation of member names.
957         Add extra checking of introspection data during XML parsing.
958         Various bug fixes.
959
960 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
961
962         * dbus/Makefile.am:
963         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
964         qt/dbus/qdbus.h now.
965
966 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
967
968         * configure.in: Make --disable-qt actually do
969           something. Patch inspired by Zack Rusin.
970
971 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
972
973         * qt/: Update to Subversion r548032.
974         This includes a big reorganisation of the files inside the
975         subdir.
976
977 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
978
979         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
980         clear:  
981         "Failed to connect to socket <host>:<port> <error>" instead of
982         "Failed to connect to socket <host>: <error>:<port>"
983
984         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
985         for a tcp transport. 
986
987 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
988
989         * qt/*: Update the QtDBus bindings up to revision 546310 in
990         Subversion.
991         This adds the dbuscpp2xml tool, that parses a C++ header and
992         outputs a D-BUS Introspection XML.
993
994 2006-05-21  Havoc Pennington  <hp@redhat.com>
995
996         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
997         is not NULL when it shouldn't be. Also a couple of possible fixes
998         for #4637 though I don't understand why the bug happens, to be
999         honest... also the object constructor has an assert name != NULL
1000         and the name is only currently NULL for peer-to-peer proxies that 
1001         I don't think anyone uses? So it should be asserting.
1002         Anyway, for now at least see if we get an earlier assertion failure.
1003
1004         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1005         apparently broken code to be sure the tests fail and someone 
1006         will fix them...
1007
1008 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1009
1010         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1011         and arrays when they had a single element: has_next returns
1012         false, even before you read the element. So, instead, check
1013         the array length.
1014
1015 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1016
1017         * qt/qdbusmessage.cpp:
1018         * qt/qdbustypehelper_p.h:
1019         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1020         the list is a const-reference
1021
1022 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1023
1024         * Adding old doc patch that never got applied
1025         
1026         * dbus/bus.c (dbus_bus_add_match): Add documentation
1027
1028         * doc/dbus-specification.xml: Add documentation for the match rules
1029           and the AddMatch and RemoveMatch methods
1030
1031 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1032
1033         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1034         call (r535506)
1035
1036         * qt/dbusidl2cpp.cpp:
1037         * qt/qdbusabstractadaptor.cpp:
1038         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1039         sibling of the QDBusAbstractAdaptor objects instead of the
1040         parent. (r535848)
1041
1042         * qt/dbusidl2cpp.cpp:
1043         * qt/qdbusabstractinterface.cpp:
1044         * qt/qdbusabstractinterface.h:
1045         * qt/qdbusabstractinterface_p.h:
1046         * qt/qdbusinterface.cpp: Make properties in interfaces
1047         actually work. The code that was generated would not compile,
1048         due to moc calls to functions that did not exist. They now
1049         shall. (r536571)
1050
1051 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1052
1053         * Makefile.am:
1054         * configure.in:
1055         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1056         Thanks to Brad Hards for providing the patch
1057
1058 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1059
1060         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1061         call. (r535506)
1062
1063 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1064
1065         * qt/examples/dbus.cpp: Enhance error messages and use
1066         QDBusInterfacePtr.
1067
1068 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1069
1070         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1071         and disable the copy operators. (r533772, r534746)
1072
1073         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1074
1075         * qt/qdbusabstractinterface.cpp:
1076         * qt/qdbusabstractinterface.h: Change the default call mode to
1077         not use the event loop. Add convenience call() methods that
1078         take a CallMode parameter. (r534042)
1079
1080         * qt/qdbusconnection.h: Change the default call mode to not
1081         use the event loop. (r534042)
1082
1083         * qt/qdbusinterface.cpp:
1084         * qt/qdbusinterface.h: Add a method to tell us if the
1085         interface is valid (since we don't return a null pointer
1086         anymore) (r534099)
1087
1088         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1089         (r534101)
1090
1091         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1092         function in two so taht we get the chance to introspect
1093         without having a QDBusMessage (r534102)
1094
1095         * qt/qdbusbus.h:
1096         * qt/qdbusconnection.cpp:
1097         * qt/qdbusconnection_p.h:
1098         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1099         avoid a round-trip to the server when attempting to introspect
1100         one of our own objects. Also make sure the filter functions
1101         match the empty interface as well. (r534108)
1102         Don't keep the connection names. Instead, trust the unique
1103         connection name (r534111)
1104         Remove event loop usage (r534112)
1105
1106 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1107
1108         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1109         Brad Hards.
1110
1111 2006-04-28  Robert McQueen  <robot101@debian.org>
1112
1113         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1114         any order, making it easier for people who inherit from this
1115         object.
1116
1117 2006-04-28  Robert McQueen  <robot101@debian.org>
1118
1119         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1120         of memory from within pointer arrays and lists. Fixes bug #6300.
1121
1122 2006-04-28  Robert McQueen  <robot101@debian.org>
1123
1124         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1125         generating struct signatures. Fixes bug #6083.
1126
1127 2006-04-28  Robert McQueen  <robot101@debian.org>
1128
1129         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1130         to qdbusconnection_p.moc.
1131
1132 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1133
1134         * README, INSTALL: Doc fixes
1135         Patch from Brad Hards <bradh at frogmouth.net>
1136
1137 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1138
1139         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1140         the dynamic meta object. No need to guess which interface to
1141         call.
1142
1143 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1144
1145         * qt/qdbusconnection_p.h:
1146         * qt/qdbusmetaobject.cpp:
1147         * qt/qdbusmetaobject_p.h:
1148         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1149         for the dynamic meta object. No need to guess which
1150         interface to call.
1151         * qt/qdbusabstractinterface_p.h:
1152         * qt/qdbusconnection.cpp:
1153         * qt/qdbusintegrator.cpp:
1154         * qt/qdbusinterface.cpp:
1155         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1156         Add a QDBusRef that looks and behaves like DCOPRef.
1157
1158 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1159
1160         * dbus/dbus-connection.c: Interfaces are optional in method
1161         calls, so don't give up if the interface parameter is NULL.
1162         Patch reviewed by Havoc Pennington.
1163
1164 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1165
1166         * qt/qdbusreply.h: Add default constructor and operator=
1167           (r532625)
1168         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1169           in public headers (r532952)
1170         * qt/qdbusabstractinterface.cpp:
1171         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1172           make it the default (r532951)
1173
1174 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1175
1176         * dbus/dbus-connection.c: Fix asserts
1177         Patch from Tim Moloney <t.moloney at verizon.net>
1178
1179 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1180
1181         * mono/Connection.cs, mono/Message.cs: Check Target type
1182         Patch from Aaron Bockover (abockover at novell.com)
1183
1184 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1185
1186         * INSTALL: fine-tune the requirements for the Qt4 binding.
1187
1188 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1189
1190         * tools/dbus-print-message.c: Added support for printing of all 
1191           remaining data types. Fixed logic for indentation of compound
1192           data types.
1193         
1194 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1195
1196         * INSTALL: fill out content of file providing DBus specific
1197           build installations, followed by generic Auto* INSTALL file
1198           content
1199         
1200 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1201
1202         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1203           Patch by Stefan Eilers. (r529537)
1204
1205 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1206
1207         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1208           contents (r528208)
1209
1210 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1211
1212         * qt/Makefile.am: fix the dependency for
1213           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1214           not in qdbusconnection.cpp.
1215           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1216           spotting this.
1217
1218 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1219
1220         * qt/examples/listnames.cpp:
1221         * qt/examples/Makefile.am: Three ways to list the names on the
1222           bus.
1223
1224 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1225
1226         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1227           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1228
1229 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1230
1231         Merge from Subversion:
1232         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1233           something that exists (r526315)
1234         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1235           slots/signals (r526316)
1236         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1237           also return an unknown-method error if the parameters don't
1238           match for org.freedesktop.DBus.Properties. (r526842)
1239         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1240         * qt/qdbusintegrator.cpp: Restore the proper order of
1241           delivery: don't make method returns be delivered on priority
1242           (r528150)
1243
1244 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1245
1246         * configure.in qt/Makefile.am: add qt/examples
1247         * qt/examples: Add QtDBus example programs:
1248           - hello: Hello, World
1249           - ping: Simple method-calling program
1250           - pong: Simple object-exporting program (not using adaptors)
1251           - complexping: Interactive method-calling program 
1252                 (also gets and sets properties).
1253           - complexpong: Sample program exporting methods, signals and
1254                 properties, using adaptors.
1255           - dbus: Simple implementation of a generic method-calling
1256                 program, similar to 'dbus-send', but with semantics
1257                 similar to 'dcop'.
1258           - chat: Simplistic chat program, implemented using signals
1259                 and the system bus. Looks like IRC.
1260
1261 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1262
1263         * configure.in: Detect QtGui (necessary for one of the
1264           example programs). Note: this increases the minimum required
1265           version of Qt to 4.1.3.
1266
1267 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1268
1269         * test/qt/*: Sync with KDE Subversion revision 523647.
1270         Update the testcases to the new API. Remove testcases for
1271         classes that are no longer public or have been removed.
1272
1273 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1274
1275         * qt/*: 
1276         * dbus/qdbus.h: Sync with KDE Subversion revision
1277         523647. Hopefully, this will be the last of the
1278         source-incompatible changes. Documentation has been improved;
1279         support for QList<basic-types> has been added; QDBusObject is
1280         gone; QDBus(Abstract)Interface is now a QObject with
1281         auto-generated meta-object; QDBusIntrospection is marked
1282         private, since QMetaObject can be used now; lots of bugfixes.
1283
1284 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1285
1286         Patch from Milosz Derezynski <internalerror at gmail.com>
1287         
1288         * configure.in:
1289         Output the service directory in the configure summary
1290
1291         * dbus-1.pc.in:
1292         Add session_bus_services_dir
1293
1294 2006-03-10  Ross Burton  <ross@openedhand.com>
1295
1296         * tools/dbus-print-message.c:
1297         Add support for object paths and signatures.
1298
1299 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1300
1301         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1302         config reload.
1303         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1304         information caches
1305         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1306         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1307         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1308         * dbus/dbus-userdb.h: Add function to flush all user/group information
1309         caches.
1310
1311 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1312
1313         * qt/dbusidl2cpp.cpp:
1314         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1315         for dcopidl2cpp, found in the KDE installations (or the more
1316         modern kalyptus): generate Qt4 C++ code for the input XML
1317         introspection. Currently no IDL parsing.
1318
1319 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1320
1321         * test/qt/*: Update the self-tests.
1322
1323 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1324
1325         * qt/*: 
1326         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1327         represents the first feature-complete version of the Qt4
1328         bindings since I took ove maintainership.
1329
1330 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1331
1332         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1333         dir. This is C++, so we can't use the DBus ones.
1334
1335 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1336
1337         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1338         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1339
1340 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1341
1342         * dbus/dbus-connection.c: 
1343         (_dbus_connection_block_pending_call):
1344         Check to see if our data has already been read off the connection
1345         by another blocking pending call before we block in poll.
1346         (check_for_reply_and_update_dispatch_unlocked):
1347         Code taken from _dbus_connection_block_pending_call - checks for
1348         an already read reply and updates the dispatch if there is one.
1349
1350         * test/name-test/test-pending-call-dispatch.c:
1351         New test for making sure we don't get stuck polling a 
1352         dbus connection which has no data on the socket when
1353         blocking out of order on two or more pending calls.
1354
1355 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1356
1357         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1358         make/automake don't detect that we're talking about the same
1359         .lo file if I specify the full path to the source files.
1360
1361 2006-02-26  Havoc Pennington  <hp@redhat.com>
1362
1363         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1364
1365         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1366         session bus variable is unset, suggest "man dbus-launch" and "man
1367         dbus-daemon" to figure out how to fix the problem
1368
1369 2006-02-25  Havoc Pennington  <hp@redhat.com>
1370
1371         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1372         should make this thing use the new glib options parser
1373
1374 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1375
1376         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1377         .lo files taking moc sources.
1378
1379 2006-02-25  Havoc Pennington  <hp@redhat.com>
1380
1381         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1382         and install it as a public header
1383
1384 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1385
1386         * Released 0.61
1387
1388 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1389         
1390         * proxies.py: Fix the callchain
1391
1392 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1393         
1394         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1395
1396         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1397         dbus/dbus-sysdeps.c
1398
1399         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1400         call _dbus_group_info_free_allocated which causes infinite loop,
1401         correctly call _dbus_group_info_free
1402
1403 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1404
1405         * qt/qdbusinterface_p.h:
1406         * qt/qdbusinterface.cpp: Use the standard
1407         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1408         calls instead of creating one for us.
1409
1410         * qt/qdbusconnection_p.h:
1411         * qt/qdbusintegrator.cpp: Remove debugging code.
1412
1413         * qt/qdbusintegrator.cpp:
1414         * qt/qdbusmessage.cpp:
1415         * qt/qdbusmessage_p.h:
1416         * qt/qdbusmessage.h: Change the behaviour of automatic
1417         reply-sending: now a reply is always sent, unless the caller
1418         didn't request one or if the user slot has already sent one.
1419
1420 2006-02-16  Robert McQueen  <robot101@debian.org>
1421
1422         * configure.in: Patch from Debian packages by Sjoerd Simons
1423         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1424         arguments so it's possible to build both bindings in the
1425         same tree.
1426
1427         * qt/Makefile.am: Fix truncated value so that make dist works.
1428
1429 2006-02-16  Robert McQueen  <robot101@debian.org>
1430
1431         * acinclude.m4, configure.in: Patch from Brad Hards
1432         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1433         improving quoting, re-ordering a few checks, and a few other
1434         aesthetic tidy-ups.
1435
1436 2006-02-16  Robert McQueen  <robot101@debian.org>
1437
1438         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1439         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1440         assertion that the next element to read from the iter is fixed in
1441         size. This is not the case when you are at the end of the iter,
1442         because the next element type is INVALID.
1443
1444         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1445         a bogus assert which means that you may not initialise a 0-length
1446         string unless you provide a non-NULL pointer. This prevented
1447         you from marshalling messages containing zero-length arrays in
1448         some cases.
1449
1450         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1451         from Rob to correct bogus asserts when trying to demarshal an
1452         array and get_fixed_array got you 0 elements. Append nothing to
1453         the GArray in this case.
1454
1455         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1456         an empty array via the glib bindings. Without all of the above
1457         patches, this new test fails.
1458
1459 2006-02-16  Robert McQueen  <robot101@debian.org>
1460
1461         * glib/dbus-gmain.c: Make the previous commit compile.
1462
1463         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1464         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1465         specify sender_keyword="foo", path_keyword="bar" when adding
1466         a signal listener, so that you can bind to signals generically
1467         but still do something useful in your callback.
1468
1469         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1470         chars so that they're not cast to chars and made negative. Thanks
1471         to Jakub Stachowski for reporting this and testing the fix.
1472
1473 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1474
1475         * dbus/dbus-glib.h:
1476         * glib/dbus-gmain.h:
1477         (dbus_g_connection_open): new method for openning
1478         a connection to an arbitrary address in the glib bindings
1479
1480         * ChangeLog: checkin last entry which doesn't seem to be commited
1481
1482 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1483
1484         * tools/dbus-launch.c: Fixed sh syntax output
1485
1486 2006-02-13  Robert McQueen  <robot101@debian.org>
1487
1488         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1489         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1490         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1491         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1492         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1493         missing piece of the glib bindings jigsaw puzzle. This modifies
1494         the existing specialised types to have N type parameters (rather
1495         than the current 1 or 2 for arrays and dictionaries respectively).
1496         You can then use this to get a glib type to represent any arbitrary
1497         D-Bus struct type using dbus_g_type_get_struct. The only
1498         implementation of these types is with GValueArrays as before,
1499         but it's now possible to store these in arrays, emit them in
1500         signals, etc.
1501
1502 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1503
1504         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1505         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1506         <thiago.macieira at trolltech.com>
1507
1508 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1509
1510         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1511         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1512
1513 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1514
1515         * bus/connection.c (bus_connections_expect_reply): Make
1516         pending reply limit not common to all connections (Bug #5416)
1517         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1518
1519 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1520
1521         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1522
1523 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1524
1525         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1526         patch from Doug Goldstein <cardoe at gentoo.org>
1527
1528 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1529
1530         * mono/Arguments.cs: Fix a magic number in the mono bindings
1531         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1532
1533 2006-01-27  Robert McQueen  <robot101@debian.org>
1534
1535         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1536         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1537         when generating the client-side methods, instead of overloading
1538         CSymbol which broke everything horribly. My apologies.
1539
1540 2006-01-27  Robert McQueen  <robot101@debian.org>
1541
1542         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1543         by me and Rob Taylor to add a simple_free function to D-Bus map
1544         and collection types, which allows those types which can be freed
1545         with a GDestroyNotify (such as GHashTables and GArrays, but not
1546         GPtrArrays) to be stored as the values in hashtables.
1547
1548         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1549         Patch by Rob Taylor to add nested dicts to the glib tests to check
1550         the above code works, and appears not to leak when called repeatedly.
1551
1552 2006-01-27  Robert McQueen  <robot101@debian.org>
1553
1554         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1555         to free a D-Bus allocated string with dbus_free () instead of
1556         g_free ().
1557
1558 2006-01-27  Iain Holmes  <iain@openedhand.com>
1559
1560         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1561         method from being called multiple times.
1562
1563 2006-01-19  Robert McQueen  <robot101@debian.org>
1564
1565         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1566         <rob.taylor@collabora.co.uk> to add support for generating bindings
1567         to arrays that are represented as GPtrArrays rather than GArrays (ie
1568         size-variable things, such as strings, objects, structs, etc).
1569
1570 2006-01-05  Robert McQueen  <robot101@debian.org>
1571
1572         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1573         <ricardo.kekki@movial.fi> to make it possible to inherit from
1574         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1575         a private part, and moving the setting of the DBusGProxyManager into a
1576         connection property, allowing proper GObject construction.
1577
1578 2006-01-05  Robert McQueen  <robot101@debian.org>
1579
1580         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1581         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1582         annotations when generating glib client bindings.
1583
1584 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1585
1586         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1587
1588         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1589
1590 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1591
1592         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1593
1594 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1595
1596         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1597
1598 2005-12-19  Ross Burton  <ross@openedhand.com>
1599
1600         * doc/dbus-tutorial.xml:
1601         Document the Glib client-side bindings, and list all possible annotations.
1602
1603 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1604
1605         * dbus/bus.c (dbus_bus_release_name): Add documentation
1606
1607 2005-12-06  Robert McQueen  <robot101@debian.org>
1608
1609         * python/service.py: s/sucessful/successful/ so we're allocating to
1610         and reading from the same variable. Oops.
1611
1612 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1613
1614         * Released 0.60
1615
1616 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1617
1618         * test/qt/Makefile.am: build from srcdir
1619
1620         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1621         Note - this code is wrong and needs to be fixed by the Qt binding
1622         developers.  The flags should be treated as bitfields and not enums.
1623
1624         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1625
1626 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1627
1628         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1629           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1630           in production code
1631
1632 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1633
1634         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1635         method for getting messages off the bus in the absence of a
1636         mainloop.  This method is much like 
1637         dbus_connection_read_write_dispatch except it does not dispatch
1638         the messages to a registered filter function.  Instead it
1639         allows a developer to process messages by directly popping
1640         them off the bus.
1641
1642 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1643
1644         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1645         the parser to continue instead of returning error
1646         (bus_desktop_file_load): Do not free parser data when
1647         parse_section_start or parse_key_value fails because it was 
1648         already freed by parser_free (patch from Carlos Garcia Campos  
1649         <carlosgc at gnome.org>)
1650
1651 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1652
1653         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1654         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1655         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1656         test/test-segfault.c, test/test-utils.c,
1657         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1658         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1659         Various cleanup of dead code and compiler warnings (patch from
1660         Kjartan Maraas <kmaraas at gnome.org>) 
1661
1662 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1663
1664         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1665         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1666
1667 2005-11-27  Robert McQueen  <robot101@debian.org>
1668
1669         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1670         part of the preceding one. Oops. Merge patch by Johan Hedberg
1671         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1672         on big-endian platforms.
1673
1674         * test/python/test-client.py: Add some 16-bit integers to the test
1675         values.
1676
1677 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1678
1679         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1680         method return message for property getters
1681
1682 2005-11-27  Robert McQueen  <robot101@debian.org>
1683
1684         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1685         with type v of an instance of dbus.Variant(foo, type='x') caused
1686         it to be boxed twice before sending over the bus.
1687
1688         * python/dbus_bindings.pyx, python/service.py,
1689         test/python/test-client.py: Update the constants for the new
1690         request_name flags, and update comments/test cases now that queueing
1691         is the default action.
1692
1693 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1694
1695         * configure.in:
1696         - Change version to 0.60 for impending release
1697         - upped the sonames because of ABI and API breakage
1698
1699 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1700
1701         * configure.in: Add test/name-test/Makefile to the generated
1702         Makefile list
1703
1704         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1705         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1706         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1707         not to queue an ower if it can't be the primary owner
1708
1709         * bus/bus.h: Add new internal BusOwner struct
1710
1711         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1712         to bus_registry_ensure and don't set the prohibit_replacement flag
1713         since they are now set per BusOwner and not per name.
1714         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1715         that returns the list of connections in a name's connection queue
1716         
1717         * bus/services.c (struct BusService): remove prohibit_replacement field
1718         (struct BusOwner): new struct for keeping track of queued connections
1719         and their associated flags for the queue
1720         (struct BusRegistry): add a BusOwner memory pool
1721         (bus_registry_new): initialize the BusOwner memory pool
1722         (bus_registry_unref): free the BusOwner memory pool
1723         (_bus_service_find_owner_link): new internal method for
1724         searching the queue for a specific connection
1725         (bus_owner_set_flags): new method for adding setting the flags on a
1726         bus owner
1727         (bus_owner_new): new method that creates a BusOwner object from the
1728         pool and sets its flags
1729         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1730         (bus_registry_ensure): Add the flags parameter
1731         (bus_registry_acquire_service): Switch from using raw connections to
1732         using the BusOwner struct
1733         Add new state machine for dealing with the new set of flags
1734         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1735         cancel_ownership, free_ownership_cancel_data, 
1736         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1737         restore_ownership, free_ownership_restore_data, 
1738         add_restore_ownership_to_transaction): Switch to using BusOwner 
1739         instead of raw connections
1740         (bus_service_add_owner): Add flags parameter
1741         Switch to using BusOwner instead of raw connections
1742         Add state machine for dealing with the new set of flags
1743         (bus_service_swap_owner): Swaps the first and second owners in the
1744         queue.  Used to make sure proper signals are sent when a service looses 
1745         or gains primary ownership.  We never insert an owner at the top of the
1746         queue.  Instead we insert it in the second position and then swap.
1747         (bus_service_remove_owner): Remove the owner from the queue sending
1748         out the NameLost and NameOwnerChanged signals if the we were the 
1749         primary owner
1750         (bus_service_get_primary_owners_connection): New method that extracts
1751         the connection from the primary owner
1752         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1753         connection
1754         (bus_service_get_allow_replacement): Changed from the old 
1755         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1756         primary owner and returns if it can be replaced or not
1757         (bus_service_set_prohibit_replacement): removed
1758         (bus_service_has_owner): returns TRUE if and owner with
1759         the specified connection exists in the queue
1760         
1761         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1762         method that only compiles if tests are enabled.  Allows us to get the 
1763         unique name of a connection so we can check it against the queue when
1764         doing regression tests
1765
1766         * bus/activation.c (bus_activation_send_pending_auto_activate),
1767         bus/dispatch.c (bus_dispatch),  
1768         bus/driver.c (bus_driver_handle_get_service_owner, 
1769         bus_driver_handle_get_connection_unix_user, 
1770         bus_driver_handle_get_connection_unix_process_id,
1771         bus_driver_handle_get_connection_selinux_security_context),
1772         bus/signals.c (connection_is_primary_owner): 
1773         use bus_service_get_primary_owners_connection instead of
1774         bus_service_get_primary_owner
1775
1776         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1777         _dbus_listen_unix_socket): Calculate the length of the socket
1778         path and use that instead of using a fixed length which was
1779         causing socket names to contain many trailing Nul bytes.
1780
1781         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1782         (dbus_g_method_get_sender): New method for extracting the sender 
1783         from a DBusGMethodInvocation
1784         (dbus_g_method_return_get_reply): changed name to 
1785         dbus_g_method_get_reply
1786         (dbus_g_method_return_send_reply): changed name to
1787         dbus_g_method_send reply
1788
1789         * doc/dbus-specification.xml: New docs that describe how the new
1790         queueing system works and talks about the changes to the how
1791         we specify socket names
1792
1793         * glib/examples/example-service.c, 
1794         glib/examples/example-signal-emitter.c,
1795         glib/examples/statemachine/statemachine-server.c:
1796         Changed the RequestName flags to the new system
1797
1798         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1799         regression test suite for testing various states of the new
1800         queueing system
1801         
1802 2005-11-15  Robert McQueen  <robot101@debian.org>
1803
1804         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1805         Taylor to add two methods, dbus_g_method_return_get_reply and
1806         dbus_g_method_return_send_reply, to allow you to get the reply
1807         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1808         and send it. The GLib bindings can't marshal a return value of
1809         something like a(s) if the array is empty - ultimately they should be
1810         made to heed the signature of the out arguments as the Python bindings
1811         now can, but this is a workable interim solution which might have
1812         other applications.
1813
1814 2005-11-15  Robert McQueen  <robot101@debian.org>
1815
1816         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1817         method to org.freedesktop.DBus to release a bus name or give up
1818         waiting in the queue for it.
1819
1820         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1821         dbus_bus_release_name method to send the ReleaseName method calls.
1822         Add constants for the return values to dbus/dbus-shared.h.
1823
1824         * doc/dbus-specification.xml: Document the new ReleaseName method
1825         in the specification.
1826
1827         * python/dbus_bindings.pyx: Add a low-level python binding for the
1828         release name method.
1829
1830         * python/exceptions.py, python/service.py: Make freeing BusName
1831         objects release the name. Add a NameExistsException, and fix a
1832         bug with creating UnknownMethodException.
1833
1834         * test/python/test-client.py: Add tests for freeing BusName
1835         objects causing names to be released.
1836
1837 2005-11-14  Robert McQueen  <robot101@debian.org>
1838
1839         * python/service.py: Include the traceback in the error reply when we
1840         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1841
1842 2005-11-14  David Zeuthen  <davidz@redhat.com>
1843
1844         Patch from Timo Hoenig <thoenig@suse.de>.
1845
1846         * bus/bus.c: I've recently investigated why the automatic reload
1847         of configuration files does not work as expected.
1848
1849         Currently, reloading configuration files does only work when
1850         running dbus-daemon with --nodaemon.  If we are running as daemon
1851         we're hitting a dnotify bug once we fork the process.
1852
1853         We're initializing the dnotify fds before calling fork().  Once
1854         the child process forked it does still have the fds (and they
1855         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1856         getting SIGIO as changes are made to the configuration files.
1857
1858         The attached patch moves the initialization of the dnotify fds to
1859         process_config_postinit().  This is safe for all current code
1860         paths and solves the dnotify disfunction.  If we're running
1861         dbus-daemon as daemon the fds for dnotify are now being
1862         initialized after fork() for the child process.
1863
1864         * configure.in: The current configure.in check for dnotify probes
1865         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1866         match for 'xlinux', too. Additionally I have adapted the configure
1867         option's style to match with the others.
1868
1869 2005-11-14  Robert McQueen  <robot101@debian.org>
1870
1871         * python/decorators.py, python/service.py: Add a new argument to the
1872         dbus.service.method decorator called sender_keyword, which if set,
1873         specifies the name of an argument which will be provided the bus
1874         name of the method caller.
1875
1876         * test/python/test-client.py, test/python/test-service.py: Add a
1877         method and test to check the sender_keyword functionality.
1878
1879 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1880
1881         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1882         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1883         Simons <sjoerd at luon.net>)
1884
1885         * AUTHORS: Add Robert McQueen for his work on the Python
1886         Bindings and other parts of D-Bus
1887
1888 2005-11-07  Robert McQueen  <robot101@debian.org>
1889
1890         * python/decorators.py: Change emit_signal function to use the
1891         signature annotation of the signal when marhsalling the arguments from
1892         the service. Fix a bug where the code checking signature length
1893         against argument length referenced the wrong variable.
1894
1895         * python/introspect_parser.py: Avoid adding the type signature of
1896         signal arguments to any methods which occur after them in the
1897         introspection data (!) by making the parser a little more careful
1898         about its current state.
1899
1900         * python/service.py: Remove debug prints from last commit (again :D).
1901
1902         * test/python/test-client.py, test/python/test-service.py: Add test
1903         signals with signature decorators to test the strict marshalling code
1904         gives errors at the right time. Could do with checking the signals
1905         actually get emitted too, given that the test does nothing with
1906         signals at the moment...
1907
1908 2005-11-07  Robert McQueen  <robot101@debian.org>
1909
1910         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1911         instances to stop madness of creating new instances representing
1912         the same bus connection all the time, rendering any tracking of
1913         match rules and bus names quite meaningless. Caught a bug where
1914         the private argument to SessionBus() and friends was being passed
1915         in as use_default_mainloop by mistake. Still some problems with
1916         multiple dbus_binding.Connection instances representing the same
1917         low-level connection (eg when you use both SessionBus() and
1918         StarterBus() in same process), but it's a lot better now than it
1919         was.
1920
1921         * python/dbus_bindings.pyx: Add constants with the return values
1922         for bus_request_name().
1923
1924         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1925         and retrieve the same instances for the same name, so deletion can be
1926         done with refcounting. Also now throws some kind of error if you
1927         don't actually get the name you requested, unlike previously...
1928
1929         * test/python/test-client.py: Add tests for instance caching of buses
1930         and bus name objects.
1931
1932 2005-11-04  Robert McQueen  <robot101@debian.org>
1933
1934         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1935         marshalling of boolean values. Add some booleans to the values in
1936         the test client.
1937
1938         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1939         argument to the dbus.service.method decorator, which allows you to
1940         name arguments to take two callback functions for replying with
1941         return values or an exception.
1942
1943         * test/python/test-client.py, test/python/test-service.py: Add test
1944         case using asynchronous method reply functions, both return values and
1945         errors, and from within both the function itself and from a mainloop
1946         callback.
1947
1948         * python/decorators.py, python/service.py: Perform checking that the
1949         number of method/signal arguments matches the number of types in the
1950         signature at class loading time, not when you first introspect the
1951         class.
1952
1953         * python/service.py: Remove debug print left by the last commit.
1954
1955 2005-11-03  Robert McQueen  <robot101@debian.org>
1956
1957         * python/service.py: Heavy refactoring of method invocation, with
1958         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1959         in favour of a new _message_cb that uses seperate functions for
1960         looking up the method to call, marshalling the return values, and
1961         sending exceptions as errors, and is easier to follow as a
1962         consequence.  Fixes some corner cases about returning things that
1963         don't match your declared out_signature, allows exceptions to define
1964         _dbus_error_name and have it be sent over the bus as the error name,
1965         and paves the way for cool stuff like heeding the message no reply
1966         flag, asynchronous method implementations, informing the method of the
1967         sender, and including backtraces in the error messages.
1968
1969         * test/python/test-client.py: Catch and print exceptions thrown in the
1970         async callback tests, rather than passing them to the low-level
1971         bindings to be ignored in a noisy and frustrating manner.
1972
1973 2005-11-03  Robert McQueen  <robot101@debian.org>
1974
1975         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1976         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1977         tweak others to be consistent.
1978
1979         * test/python/test-client.py: Tweak output of testInheritance.
1980
1981 2005-10-29  Robert McQueen  <robot101@debian.org>
1982
1983         * python/service.py: Major changes to allow multiple inheritance
1984         from classes that define D-Bus interfaces:
1985         
1986          1. Create a new Interface class which is the parent class of
1987             Object, and make the ObjectType metaclass into InterfaceType.
1988         
1989          2. Patch written with Rob Taylor to replace use of method_vtable
1990             with code that walks the class's __MRO__ (method resolution order)
1991             to behave like Python does when invoking methods and allow
1992             overriding as you'd expect. Code is quite tricky because
1993             we have to find two methods, the one to invoke which has the
1994             right name and isn't decorated with the /wrong/ interface,
1995             and the one to pick up the signatures from which is decorated
1996             with the right interface.
1997         
1998             The same caveats apply as to normal multiple inheritance -
1999             this has undefined behaviour if you try and inherit from two
2000             classes that define a method with the same name but are
2001             decorated with different interfaces. You should decorate
2002             your overriding method with the interface you want.
2003         
2004          3. Replace grungy introspection XML generation code in the metaclass
2005             with dictionaries that cope correctly with multiple inheritance
2006             and the overriding of methods. This also uses the signature
2007             decorations to provide correct introspection data, including
2008             the debut appearance of the types of your return values. :D
2009
2010         * test/python/test-client.py, test/python/test-service.py: Add a test
2011         case to try invoking an method that overrides one inherited from a
2012         D-Bus interface class.
2013
2014 2005-10-29  Robert McQueen  <robot101@debian.org>
2015
2016         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2017         Add checking for the end of struct character when marshalling a
2018         struct in MessageIter.append_strict.
2019
2020         * python/examples/example-service.py,
2021         python/examples/gconf-proxy-service.py,
2022         python/examples/gconf-proxy-service2.py: Update to use gobject
2023         mainloop directly rather than appearing to depend on gtk.
2024
2025         * python/test/test-client.py, python/test/test-server.py: Remove
2026         obsolete and broken test scripts for old bindings. We have up to date
2027         and working tests in test/python/.
2028
2029 2005-10-29  Robert McQueen  <robot101@debian.org>
2030
2031         * python/decorators.py: Add optional arguments to the method and
2032         signal decorators to allow you to specify the signature of arguments
2033         and return values. Preserve the doc strings of signal functions in the
2034         decorated version, for pydoc and friends.
2035
2036         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2037         parse_signature_block function with an iterable dbus.Signature()
2038         type. Fix a bug in MessageIter.append_strict where you could append
2039         anything by claiming it was a string.
2040
2041         * python/service.py: Use the out_signature decoration on methods to
2042         marshal return values, meaning you no longer require dbus.Array()
2043         or dbus.Dictionary() to indicate the type when returning empty
2044         arrays or dictionaries. Fix a bug where exceptions which are defined
2045         in __main__ are not turned into error replies.
2046
2047         * test/python/test-client.py, test/python/test-service.py: Add test
2048         for correct marshalling of return values according to out_signature.
2049         Fix a bug in the async call test where the error_handler is missing a
2050         self argument.
2051
2052 2005-10-29  Robert McQueen  <robot101@debian.org>
2053
2054         * glib/Makefile.am, glib/examples/Makefile.am,
2055         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2056         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2057
2058         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2059
2060         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2061         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2062         the command line.
2063
2064 2005-10-27  Ross Burton  <ross@openedhand.com>
2065
2066         * dbus/dbus-marshal-header.c:
2067         Remove dead code.
2068
2069         * glib/dbus-gobject.c:
2070         Stop compiler warning.
2071
2072 2005-10-25  Ross Burton  <ross@openedhand.com>
2073
2074         * dbus/dbus-auth.c:
2075         * dbus/dbus-server-unix.c:
2076         * dbus/dbus-transport-unix.c:
2077         * glib/dbus-gmain.c:
2078         * glib/dbus-gobject.c:
2079         Add some const keywords.
2080
2081 2005-10-25  Ross Burton  <ross@openedhand.com>
2082
2083         * doc/dbus-specification.xml:
2084         Document the NoReply annotation.
2085
2086         * glib/dbus-binding-tool-glib.h:
2087         * glib/dbus-binding-tool-glib.c:
2088         Respect the NoReply annotation.
2089
2090 2005-10-24  Robert McQueen <robot101@debian.org>
2091
2092         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2093         derive from unicode instead of str, and encode/decode UTF-8 when
2094         marshalling/unmarshalling bus messages
2095
2096         * python/introspect_parser.py: encode introspection data as UTF-8
2097         before passing the buffer into libxml2
2098
2099         * test/python/test-client.py: add unicode test strings
2100
2101         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2102         ignore generated python test files
2103
2104 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2105
2106         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2107         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2108         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2109
2110         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2111         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2112         when constructing struct signatures
2113
2114         * python/_dbus.py (Bus): handle private connections using the
2115         private keyword in the constructor. defaults to private=False
2116         (Bus::close): new method to close a connection to the bus
2117
2118         * python/dbus_bindings.pyx (Connection::close): renamed method
2119         was previously called disconnect
2120         (bus_get): now supports getting a private connection
2121
2122         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2123         keyword is set to True.  if it is, execute the method without waiting
2124         for a reply
2125         (ProxyObject::_introspect_execute_queue): new method for executing
2126         all the pending methods that were waiting for the introspect to
2127         finish.  this is called when introspect either succeeds or fails
2128         (ProxyObject::_introspect_error_handler): call queued methods
2129
2130 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2131
2132         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2133         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2134
2135         * python/service.py (Object::_message_cb): handle exceptions correctly
2136         by sending them over the wire to the calling app.  This makes sure
2137         the client returns immediately instead of waiting the 15 seconds to
2138         timeout.
2139
2140         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2141         Add a test to benchmark how long it takes to introspect a service and 
2142         call a method which returns a large element (pretty fast)
2143
2144         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2145         method which pushes a lot of data
2146
2147 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2148
2149         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2150         reclaim memory outside of the loop and use del istead of just setting
2151         the key to None
2152
2153 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2154
2155         * python/service.py (ObjectType::_reflect_on_signal): Always close
2156         signal tag even when there are no arguments
2157
2158 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2159
2160         * configure.in: Set mono, mono-docs and Qt3 to default
2161         to no instead of auto when building.  These bindings do not
2162         have full time maintainers and will not be supported for the
2163         1.0 release.
2164
2165 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2166
2167         patches from Michael Krivoruchko <misha at sun.com>: 
2168         
2169         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2170         _dbus_connection_message_sent, 
2171         _dbus_connection_send_preallocated_unlocked_no_update, 
2172         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2173         is NULL when calling _dbus_verbose
2174
2175         * configure.in: check for functions getpeerucred and getpeereid
2176
2177         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2178         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2179         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2180         Patch was only tested on Solaris 10 x86 so it might be issues
2181         with other platforms (i.e. BSDs and MacOSX)
2182         
2183
2184 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2185
2186         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2187         instead of marshal basic so we can handle recursive types in a variant
2188
2189         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2190         in variants
2191
2192         * test/glib/test-service-glib.c, test-service-glib.xml
2193         (my_object_echo_variant [EchoVariant], 
2194         my_object_process_variant_of_array_of_ints123
2195         [ProcessVariantOfArrayOfInts123]): 
2196         Add two test methods
2197
2198         * python/introspect_parser.py: New module for parsing introspect
2199         data.
2200
2201         * python/dbus_bindings.pyx:
2202         (various places): when throwing errors fix to use errormsg instead 
2203         of message local variable because Pyrex can get confused with other 
2204         message variables (initial patch by Robert McQueen 
2205         <robert.mcqueen at collabora.co.uk>)
2206         (MessageIter::parse_signature_block): new method for getting the next
2207         block in a signiture.
2208         (MessageIter::append_strict): new method for appending values strictly
2209         using the passed in signature instead of guessing at the type
2210         (MessageItter:: append_dict, append_struct, append_array): use 
2211         signatures to marshal children if the signature is available
2212         
2213         * python/exceptions.py (IntrospectionParserException): new exception
2214
2215         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2216         introspected signatures if available, else we fall back to the
2217         old way of doing things.
2218         (ProxyObject::_introspect_reply_handler ): parse introspection data
2219         
2220         * python/service.py (ObjectType::_reflect_on_method): Properly
2221         terminate <method> if there are no args in the reflection data
2222
2223         * test/python/test-client.py: add tests for talking with the GLib
2224         test server.  This gives us better coverage for introspection since
2225         python to python will always generate arguments as variants.  It also
2226         allows us to test the robustness of the GLib bindings and interlanguage
2227         communications.
2228
2229         
2230 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2231
2232         * bus/driver.c (bus_driver_handle_introspect): Add signals
2233         to the introspect data. (patch from Daniel P. Berrange 
2234         <dan at berrange.com>)
2235
2236         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2237         
2238         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2239         _dbus_connection_run_builtin_filters): Changed these to
2240         be unlock_no_update functions and call 
2241         _dbus_connection_send_unlocked_no_update instead of
2242         dbus_connection_send to avoid locking errors.
2243         
2244         * doc/TODO: Removed the make Ping test TODO
2245         
2246 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2247
2248         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2249         We now copy the message from a DBusError and then free 
2250         the error object befor throwing the error
2251
2252         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2253         DBusBindingOutputMode enum which was causing a warning.
2254         #include <time.h> so using time_t is explicitly defined
2255
2256 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2257
2258         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2259         - dbus/dbus-bus.c
2260         (internal_bus_get): new method that take over the heavy lifting
2261         of dbus_bus_get and adds the ability to get a private connection
2262         to the bus
2263         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2264         interface as in previous versions
2265         (dbus_bus_get_private): new method that is a wrapper to 
2266         internal_bus_get to get a private connection to the bus
2267
2268         - dbus/dbus-bus.h
2269         (dbus_bus_get_private): add as a public libdbus interface
2270
2271         - dbus-1.pc.in: output system_bus_default_address and 
2272         sysconfdir variables so apps can use them when compiling
2273
2274 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2275         * dbus/qt: New Qt bindings
2276
2277 2005-09-12  Waldo Bastian  <bastian@kde.org>
2278
2279         * dbus/dbus-marshal-validate.c,
2280         doc/dbus-specification.xml, test/Makefile.am,
2281         test/test-names.c: allow hyphens in bus names.
2282
2283 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2284
2285         * test/data/auth/fallback.auth-script: we don't
2286         retry the EXTERNAL method when we know its going
2287         to fail anymore.
2288
2289 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2290
2291         * dbus/dbus-connection-internal.h: rename
2292         (add|remove|toggle)_(watch|timeout) to unlocked()
2293         
2294         * dbus/dbus-connection.c: ditto.
2295         
2296         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2297         Update some callers for the renaming.
2298
2299 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2300
2301         * dbus/dbus-auth.c: (record_mechanisms): don't
2302         retry the first auth mechanism because we know
2303         we're just going to get rejected again.
2304         
2305         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2306         Fix thinko ... and what a nasty little bugger to
2307         track down you were ...
2308
2309         * dbus/dbus-connection.c:
2310         (_dbus_connection_add_watch),
2311         (_dbus_connection_remove_watch): add note about
2312         these needing the connection to be locked.
2313         (_dbus_connection_get_dispatch_status_unlocked):
2314         set status to DATA_REMAINS when we queue the
2315         disconnected message.
2316         
2317         * bus/dispatch.c:
2318         (bus_dispatch): fix warning.
2319         (check_existent_service_no_auto_start):
2320         Expect ChildSignaled error too.
2321         (check_existent_hello_from_self): fix another
2322         couple of warnings.
2323         
2324 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2325
2326         Patches from James Willcox <snorp@snorp.net>
2327
2328         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2329
2330         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2331         support array "out" parameters.
2332
2333         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2334         for 16-bit int support.
2335
2336 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2337
2338         * Released 0.50
2339
2340         * Patch from Steve Grubb:
2341         - bus/activation.c (bus_activation_service_reload_test): clean up
2342         some indentation
2343         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2344         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2345         buffer overflows in the test suite.  This is non critical because
2346         it can not be exploited and this code is only run when doing a 
2347         make check.
2348
2349         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2350         - configure.in: Don't check and link against kdecore, only qt headers
2351         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2352         - gcj/org/freedesktop/dbus/Makefile.am:
2353         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2354         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2355         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2356         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2357         - tools/Makefile.am: Add platform extentions to binaries 
2358         (i.e. .exe on windows)
2359
2360         * configure.in: 
2361         - Make it so if no suitable version of python is found we only 
2362         disable building python instead of exiting the configure script
2363         - Require version 2.4 of glib for glib bindings
2364         - Up version to 0.50
2365
2366         * python/__init__.py: Sync version with libdbus to (0,50,0)
2367         
2368 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2369
2370         * dbus/dbus-object-tree.c (find_subtree_recurse):
2371         a couple of optimizations (bug #710):
2372         - do a binary search in the tree
2373         - insert a new child at the right place directly, no need for
2374           qsort anymore
2375         - do the "double alloc" thing when allocating children
2376
2377 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2378
2379         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2380
2381         * python/dbus_bindings.pyx: Memory management foo
2382         (global): remove hacky _user_data_references global list
2383         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2384         tuples. Unref user_data
2385         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2386         (Connection::__del__): Remove and replace with __dealloc__ method
2387         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2388         to keep tuple from being deallocated instead of the global var hack
2389         (Connection::register_object_path): Stuff user_data into a tuple.
2390         Use Py_INCREF to keep tuple from being deallocated instead of the 
2391         global var hack
2392         (Connection::register_fallback): Stuff user_data into a tuple.
2393         Use Py_INCREF to keep tuple from being deallocated instead of the 
2394         global var hack
2395         (GIL_safe_pending_call_notification): Don't unref the message
2396         because it gets unreffed when going out of scope.  Py_XDECREF
2397         the user_data
2398         (PendingCall::__del__): Remove and replace with __dealloc__ method
2399         (PendingCall::set_notify): ref the pending call because we will
2400         need it to stick around for when the notify callback gets called
2401         (Message::__del__): Remove and replace with __dealloc__ method
2402
2403         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2404         gthreads_init to match up with the dbus call
2405
2406         * python/glib.py (init_threads): Changed to threads_init to match
2407         up with gobject.threads_init().  init_threads is kept for backwards
2408         compat but will most likely be deprecated in the future
2409
2410         * test/python/test-client.py: 
2411         - revamp to use Python's unittest functionality
2412         - add async call tests
2413         - setup threads in glib and dbus so we make sure locks are working
2414         
2415 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2416
2417         * python/dbus_bindings.pyx 
2418         (_pending_call_notification, cunregister_function_handler, 
2419         cmessage_function_handler): All callback functions have been rearranged 
2420         to workaround a bug in Pyrex when working with the GIL which is Python's 
2421         global lock when dealing with threads.  They have been split into
2422         a wrapper function (which assumes the name of the old function) and
2423         a _GIL_safe_<function name> function which contains the functionality
2424         of the old function.  This ensures that Pyrex does not write code
2425         the lock is released.
2426         
2427
2428 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2429
2430         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2431         GIL global lock when calling back into Python
2432
2433 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2434
2435         * Release 0.36.2
2436
2437         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2438
2439         * bus/policy.c (bus_policy_allow_user): change default "user is
2440         allowed" to be "user has same uid as the bus itself"; any
2441         allow/deny rules will override.
2442
2443         * bus/session.conf.in: don't allow all users, since now by default
2444         the user that ran the bus can connect.
2445
2446 2005-08-26  Colin Walters  <walters@verbum.org>
2447
2448         * tools/dbus-print-message.c (print_message): Flush stdout
2449         after printing a message, so that redirecting to a file, then
2450         hitting Ctrl-C works.
2451
2452 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2453
2454         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2455         (EmptyMessage): new class that subclasses Message.  This is a workaround
2456         to a Pyrex bug that fails to call __del__ when the Message object goes out
2457         of scope.  For some reason subclassing Message fixes this bug
2458         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2459         - s/Message(_create=0)/EmptyMessage everywhere else
2460         
2461         * test/python/test-{server|client}.py: add the python/.libs directory
2462         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2463         get picked up from the system
2464
2465 2005-08-25  Colin Walters  <walters@verbum.org>
2466
2467         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2468         to Ryan Lortie for the suggestion.
2469
2470 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2471
2472         * test/python: Add python regression test
2473
2474         * configure.in: Add test/python/Makefile
2475
2476         * test/Makefile.am: Add the python directory to SUBDIRS
2477
2478 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2479
2480         * Release 0.36.1
2481
2482         * python/_dbus.py: 
2483         (Interface::connect_to_signal): propigate keywords for match on args
2484         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2485
2486         * python/proxies.py (ProxyObject::connect_to_signal):
2487         propigate keywords for match on args
2488
2489         * Makefile.am: point everything to pyexecdir since python borks
2490         on multilib
2491
2492 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2493
2494         * Release 0.36
2495
2496 2005-08-23  Colin Walters  <walters@verbum.org>
2497
2498         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2499
2500 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2501
2502         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2503         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2504         of defining DBusConnection ourselves.
2505
2506 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2507
2508         * python/dbus.pth: New path file to fix up problems when installing
2509         c libraries to lib64 and python files to lib.
2510
2511         * python/Makefile.am: install dbus.pth in the correct spot
2512
2513 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2514         * ChangeLog: clean up my last entry a bit
2515
2516         * doc/introspect.xsl: New stylesheet for converting introspection data
2517         into browser renderable xhtml. Contributed by Lennart Poettering.
2518
2519         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2520         Poettering.
2521
2522         * doc/dbus-tutorial.xml: 
2523         - Add Colin Walter to the Authors section for authoring the GLib
2524         section
2525         - Add descriptions of the new signature and type functionality
2526         in the Python complex type mapping section
2527         - Add a sidenote on the new args matching functionality in 
2528         the Python bindings
2529         - Fixed up some of the examples to use the gobject.MainLoop
2530         instead of gtk.main
2531         
2532         * python/_dbus.py:
2533         (Bus::_create_args_dict): New. Converts a hash of arg matches
2534         to a more useable format
2535         (Bus::add_signal_receiver): add a **keywords parameter for catching
2536         arg match parameters
2537         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2538         arg match parameters
2539         
2540         * python/matchrules.py:
2541         (MatchTree::exec_matches): Check for arg matches
2542         (SignalMatchRule::add_args_match): New method
2543         (SignalMatchRule::execute): Added args_list parameter as an optimization
2544         so we don't have to marshal the args more than once
2545         (SignalMatchRule::match_args_from_list): New method that checks to see
2546         if the rule's arg matches match an argument list.  Only arguments
2547         set in the rule are checked.
2548         (SignalMatchRule::match_args_from_rule): New method that checks to see
2549         if the rule's arg matches match another rule's.  All args have to match
2550         in order for this method to return true.  If either rule has more args
2551         then it is not a match.
2552         (SignalMatchRule::is_match): Add args match
2553         (SignalMatchRule::repr): Add args to the final output if they exist
2554
2555 2005-08-17  Ross Burton  <ross@burtonini.com>
2556
2557         * glib/dbus-gproxy.c:
2558         (dbus_g_proxy_call_no_reply): unref the message once sent.
2559         (dbus_g_proxy_call): protect against NULL proxy.
2560
2561 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2562
2563         * python/__init__.py: Version updated (0, 43, 0)
2564         
2565         * python/dbus_bindings.pyx: 
2566         - Fixed type objects to have self passed into __init__
2567         - Added the Variant type
2568         - Add the ability to specify types or signatures for Array, Variant 
2569         and Dictionary
2570         (Connection::send_with_reply_handlers): return a PendingCall object
2571         (_pending_call_notification): handle the case when an error is returned 
2572         without an error message in the body
2573         (MessageIter::get_boolean): return True or False instead of an integer
2574         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2575         and add checks for objects with embeded signatures or types (Array, 
2576         Variant and Dictionary)
2577         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2578         (MessageIter::append_dict): handle embeded types or signatures
2579         (MessageIter::append_array): handle embeded types or signatures
2580         (MessageIter::append_variant): new method
2581         
2582         * python/proxies.py:
2583         (DeferedMethod): New. Dummy executable object used when queuing calls 
2584         blocking on introspection data
2585         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2586         or shorter timeouts for method calls
2587         (ProxyObject): Add first pass at an introspection state machine
2588         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2589         introspection. 
2590         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2591         the usual mechanisms for sending messages.  This is to avoid a deadlock
2592         where the Intospect call would be queued waiting for the Introspect 
2593         call to finish ;-)
2594         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2595         when introspection returns with no error
2596         (ProxyObject::_introspect_error_handler): New.  This method is called 
2597         when introspection encounters an error
2598         (ProxyObject::__getattr__): Code to handle different introspection 
2599         states.  Queue async calls or block blocking calls if we are 
2600         introspecting.  Pass through as normal if we are not or are done with 
2601         introspecting.
2602         
2603         * python/service.py: Import signal and method from decorators.py
2604
2605         * python/types.py: Add Variant type
2606
2607 2005-08-16  Colin Walters  <walters@verbum.org>
2608
2609         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2610         DBusError message is NULL.
2611
2612 2005-08-09  Havoc Pennington  <hp@redhat.com>
2613
2614         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2615         malloc'd copy of the name parameter
2616
2617 2005-08-09  Havoc Pennington  <hp@redhat.com>
2618
2619         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2620         warning if the reply serial is set to 0
2621
2622 2005-08-04  Colin Walters  <walters@verbum.org>
2623
2624         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2625         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2626         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2627         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2628         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2629         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2630         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2631         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2632         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2633         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2634         
2635         Prefix name with _ to ensure they're not exported.  All callers
2636         updated.
2637
2638         * glib/dbus-gvalue.c (typecode_to_gtype)
2639         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2640         (signature_iter_to_g_type_dict)
2641         (signature_iter_to_g_type_array)
2642         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2643         (dbus_gtypes_from_arg_signature):
2644         Move to dbus-gsignature.c.
2645
2646         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2647         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2648         (dbus_binding_tool_output_glib_client): Ditto.
2649
2650         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2651         and dbus-gsignature.h
2652
2653         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2654         unused variable.
2655
2656 2005-08-03  Colin Walters  <walters@verbum.org>
2657
2658         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2659         catch any incompatible changes accidentally made.
2660
2661 2005-08-03  Havoc Pennington  <hp@redhat.com>
2662
2663         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2664         typo, from Julien Puydt
2665
2666         * bus/connection.c (bus_connection_disconnected): we were always
2667         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2668
2669 2005-08-01  Colin Walters  <walters@verbum.org>
2670
2671         Patch from Joe Markus Clarke:   
2672         
2673         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2674         use-after-free.
2675
2676 2005-08-01  Colin Walters  <walters@verbum.org>
2677         
2678         Patch from Joe Markus Clarke:   
2679         
2680         * tools/dbus-send.c (main): 
2681         
2682         Don't use C99 style initializers (bug #3933).
2683         
2684 2005-08-01  Colin Walters  <walters@verbum.org>
2685
2686         Patch from Joe Markus Clarke:   
2687
2688         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2689         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2690         * glib/dbus-gobject.c (write_interface):
2691
2692         Don't use C99 style initializers (bug #3933).
2693
2694 2005-07-31  Havoc Pennington  <hp@redhat.com>
2695
2696         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2697         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2698
2699 2005-07-30  Havoc Pennington  <hp@redhat.com>
2700
2701         * fix a bunch of Doxygen warnings and mistakes
2702
2703 2005-07-30  Havoc Pennington  <hp@redhat.com>
2704
2705         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2706         DBUS_BUILD_TESTS since it's now used in production code
2707
2708 2005-07-29  Havoc Pennington  <hp@redhat.com>
2709
2710         * test/glib/test-profile.c (write_junk): initialize the junk
2711         buffer so valgrind doesn't have a breakdown
2712
2713 2005-07-29  Havoc Pennington  <hp@redhat.com>
2714
2715         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2716         (match_rule_matches): remove unused arg
2717         (test_matching): add tests for match_rule_matches()
2718
2719         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2720         do arg0='foo' arg5='bar' in the match rules
2721         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2722
2723         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2724
2725 2005-07-29  Ross Burton  <ross@openedhand.com>
2726
2727         * dbus/dbus-connection.c:
2728         Don't create a DBusCondVar which is never used.
2729
2730 2005-07-27  Ross Burton  <ross@openedhand.com>
2731
2732         * dbus/dbus-message.c:
2733         Reduce the size of the maximum cached message to 10K.
2734
2735 2005-07-25  Ross Burton  <ross@openedhand.com>
2736
2737         * glib/dbus-gproxy.c:
2738         Remove matches when all proxies are unregistered.
2739
2740 2005-07-24  Colin Walters  <walters@verbum.org>
2741
2742         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2743         typedata; recursive arrays won't have it.
2744
2745         * test/glib/test-dbus-glib.c:
2746         * test/glib/test-service-glib.c:
2747         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2748         
2749 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2750
2751         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2752         proxies.py, service.py: Cleanup of code after running it through the
2753         pyflakes code checker mostly dealing with undefined names.  
2754         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2755
2756 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2757
2758         * NEWS: Update to 0.35.2
2759
2760 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2761
2762         * python/_dbus.py: Remove import of the dbus.services
2763         module as it no longer exists (patch from Dimitur Kirov)
2764
2765         * python/service.py (Object::__init__): Fixed typo
2766         s/name/bus_name (patch from Dimitur Kirov)
2767
2768         * python/examples/example-signal-emitter.py: import dbus.glib
2769         to get the main loop and use glib mainloop instead of gtk so
2770         X doesn't have to be running.
2771
2772         * python/examples/example-signal-recipient.py: import dbus.glib
2773         to get the main loop and use glib mainloop instead of gtk so
2774         X doesn't have to be running. Import the decorators module
2775         directly.
2776
2777         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2778         didn't pick up on but are needed to build
2779
2780         * configure.in: upped version to 0.35.2
2781
2782         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2783         added Colin Walters' SELinux API rename patch from head 
2784         s/unix sercurity context/selinux security context/
2785
2786 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2787
2788         * python/Makefile.am: dbus_binding.pxd.in should be included 
2789         in EXTRA_DIST not dbus_binding.pxd
2790         fix up $(srcdir) hopefully for the last time
2791
2792         * NEWS: Update to 0.35.1
2793
2794 2005-07-16  Colin Walters  <walters@verbum.org>
2795
2796         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2797         from bus_driver_handle_get_connection_unix_security_context.  Update for
2798         error usage.
2799         (message_handlers): Update for renames.
2800
2801         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2802         _dbus_string_init failure correctly.
2803         (bus_selinux_append_context): Convert SID to context.  Append it
2804         as a byte array.
2805         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2806         hasn't been called.
2807
2808         * bus/selinux.h: Update prototype.
2809
2810         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2811         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2812
2813 2005-07-15  Colin Walters  <walters@verbum.org>
2814
2815         * doc/TODO: Add note about convenience wrappers.
2816
2817 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2818
2819         * NEWS: Update to 0.35
2820
2821 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2822
2823         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2824         so distcheck doesn't fail
2825
2826         * glib/examples/Makefile.am: Add example-service.xml and 
2827         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2828
2829         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2830         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2831
2832         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2833         compiler looks in the right places during distcheck
2834
2835 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2836
2837         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2838         to fail
2839
2840 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2841
2842         * python/examples/example-service.py,
2843         python/examples/example-signal-emitter.py: Fixed up examples
2844         for API changes
2845
2846 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2847
2848         * python/__init__.py: Upped to version (0,42,0) because of
2849         the API change
2850
2851 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2852
2853         * ChangeLog: fix date in last entry
2854
2855         * configure.in, bus/system.conf.in: add the ability to configure 
2856         the system bus user at compiletime with the --with-dbus-user flag
2857         (patch from Kristof Vansant)
2858
2859 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2860
2861         * bus/dispatch.c, test/test-service.c: Add testcase
2862         for sending messages to oneself (TODO item).
2863
2864         * python/service.py (class Object): Swap ordering of bus_name 
2865         and object_path parameters to better support inheritance.
2866
2867         * doc/dbus-tutorial.xml: change Python docs to reflect change
2868         in parameter ordering and fix the inheritance section.
2869
2870         * doc/TODO: remove sending message to oneself TODO item
2871
2872 2005-07-15  Ross Burton  <ross@openedhand.com>
2873
2874         * glib/dbus-gproxy.c:
2875         Fix a leak when calling methods via the proxy.
2876
2877 2005-07-15  Colin Walters  <walters@verbum.org>
2878
2879         * bus/selinux.c (bus_selinux_append_context): Wrap in
2880         HAVE_SELINUX.
2881
2882 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2883
2884         * python/_dbus.py (Bus::remove_signal_receiver):
2885         don't add a callback to the match if none has been passed in
2886         
2887         * python/matchrules.py (SignalMatchTree::remove): if the rule
2888         being matched does not have a callback treat it as a wildcard
2889         fix matching logic
2890
2891         * doc/dbus-tutorial.xml: Add Python tutorial
2892
2893 2005-07-14  Colin Walters  <walters@verbum.org>
2894
2895         * bus/driver.c
2896         (bus_driver_handle_get_connection_unix_security_context): New function.
2897         (message_handlers): Add.
2898
2899         * bus/selinux.c (bus_selinux_append_context): New function; appends
2900         security context to message.
2901
2902         * bus/selinux.h: Prototype.
2903
2904         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2905
2906 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2907
2908         * bus/activation.c: clean up all tabs to be 8 spaces 
2909         (bus_activation_activate_service): make sure we clean up
2910         if activation fails
2911
2912         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2913         (check_shell_fail_service_auto_start): New function
2914         tests to make sure we get fail properly when trying to auto start a service
2915         with a faulty command line
2916         (check_shell_service_success_auto_start): New function tests to make sure
2917         auto started services get the arguments on the command line
2918
2919         * test/test-shell-service.c: Added service for testing auto-starting with 
2920         command line arguments
2921
2922         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2923         test/data/valid-service-files/debug-shell-echo-success.service.in:
2924         Added service files for testing auto-starting with command line arguments
2925
2926         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2927
2928 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2929
2930         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2931         
2932         * dbus/Makefile.am: added new files to build.
2933
2934         * bus/activation.c (bus_activation_activate_service): support
2935         activation commands with parameters.
2936
2937         * test/shell-test.c: added test program for the shell parsing
2938         code.
2939
2940 2005-07-13  David Zeuthen  <davidz@redhat.com>
2941
2942         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2943         64 bit signed and unsigned parameters
2944
2945 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2946
2947         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2948
2949         * python/service.py (class Name): renamed BusName to make it clearer
2950         what the object is for (a name on the bus)
2951
2952         * python/examples/example-service.py,
2953         python/examples/example-signal-emitter.py: change the Name object to
2954         BusName
2955
2956 2005-07-12  Colin Walters  <walters@verbum.org>
2957
2958         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2959
2960         * tools/dbus-launch.c: Include sys/select.h.
2961
2962 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2963         * python/dbus_bindings.pyx.in: removed
2964
2965         * python/dbus_bindings.pyx: Added.
2966         - Fixed some memleaks (patch from 
2967         Sean Meiners <sean.meiners@linspireinc.com>)
2968         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2969         own pxd file (Pyrex definition)
2970         - Broke out glib dependancies into its own pyx module
2971         
2972         * python/dbus_bindings.pdx: Added.
2973         - Defines C class Connection for exporting to other modules
2974
2975         * python/dbus_glib_bindings.pyx: Added.
2976         - New module to handle lowlevel dbus-glib mainloop integration
2977
2978         * python/glib.py: Added.
2979         - Registers the glib mainloop when you import this module
2980
2981         * python/services.py: Removed (renamed to service.py)
2982         
2983         * python/service.py: Added.
2984         - (class Server): renamed Name
2985
2986         * python/__init__.py: Bump ro version (0,41,0)
2987         -don't import the decorators or service module
2988         by default.  These now reside in the dbus.service namespace
2989
2990         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2991         setup function on creation 
2992
2993         * python/examples/example-service.py,
2994         python/examples/example-signal-emitter.py: update examples
2995
2996         * python/examples/gconf-proxy-service.py,
2997         python/examples/gconf-proxy-service2.py: TODO fix these up
2998
2999         * doc/TODO: Addition
3000         - Added a Python Bindings 1.0 section
3001         - added "Add match on args or match on details to match rules"
3002
3003
3004 2005-07-12  Colin Walters  <walters@verbum.org>
3005
3006         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3007         (statemachine-glue.h): 
3008         * glib/examples/Makefile.am (example-service-glue.h) 
3009         (example-signal-emitter-glue.h): 
3010         * glib/Makefile.am (dbus-glib-error-switch.h): 
3011         Add libtool --mode=execute so we use the built library instead
3012         of any installed one.
3013
3014 2005-07-11  Colin Walters  <walters@verbum.org>
3015
3016         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3017         (dbus_g_value_types_init): Remove assertion.
3018         (dbus_g_value_get_g_type, dbus_g_value_open)
3019         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3020         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3021         functions related to DBusGValue.  Now we marshal/demarshal
3022         structures as GValueArray.
3023         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3024         structures.
3025         (signature_iter_to_g_type_array): Don't call
3026         signature_iter_to_g_type_struct.
3027         (signature_iter_to_g_type_struct): Delete.
3028         (dbus_gvalue_to_signature): Delete.
3029         (dbus_gvalue_to_signature): New function with same name as other
3030         one; we can convert structures to signatures.
3031         (demarshal_valuearray): New function.
3032         (get_type_demarshaller): Use it.
3033         (demarshal_recurse): Delete.
3034         (marshal_proxy): New function.
3035         (marshal_map): Warn if we can't determine signature from type.
3036         (marshal_collection_ptrarray): Ditto.
3037         (marshal_collection_array): Ditto.
3038         (get_type_marshaller): Use marshal_valuearray.
3039         (marshal_recurse): Delete.
3040         (_dbus_gvalue_test): Add some tests.
3041
3042         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3043         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3044         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3045         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3046         (dbus_g_value_free): Remove prototypes.
3047
3048         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3049         G_TYPE_VALUE_ARRAY.
3050
3051         * glib/examples/example-service.c:
3052         * glib/examples/example-client.c: Implement GetTuple.
3053
3054         * test/glib/test-dbus-glib.c:
3055         * test/glib/test-service-glib.c:
3056         * test/glib/test-service-glib.xml: Add structure tests.
3057
3058 2005-07-10  Colin Walters  <walters@verbum.org>
3059
3060         * doc/TODO: Knock off some GLib items with this patch.
3061
3062         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3063         (_dbus_gvalue_signals_error): New functions.
3064
3065         * glib/dbus-gvalue-utils.h: Prototype them.
3066
3067         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3068         and change to not output const/retval flags for input args.  All
3069         callers updated.
3070         (invoke_object_method): Refactor to handle return values.  Add
3071         some more comments in various places.  Remove debug g_print.
3072
3073         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3074
3075         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3076         Handle G_TYPE_NONE.
3077         (compute_gsignature): New function; refactored from code from
3078         compute_marshaller and compute_marshaller_name.  Enhance to
3079         handle return values and async ops more cleanly.  Update for
3080         async ops returning NONE instead of BOOLEAN.
3081         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3082         and output appropriate string.
3083         (generate_glue): Handle return value annotation.  Also don't dump
3084         constness flag for input arguments.
3085
3086         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3087         files shared between installed library and utilities.
3088         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3089         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3090         binding tool can access gtype utility functions.
3091
3092         * test/glib/test-service-glib.c: 
3093         * test/glib/test-service-glib.xml: 
3094         * test/glib/test-dbus-glib.c: Add some tests for return values.
3095
3096 2005-07-09  Colin Walters  <walters@verbum.org>
3097
3098         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3099         argument if available, not method.
3100
3101         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3102         (invoke_object_method): First, remove some redundant
3103         GValues (object_value, error_value) in favor of working on
3104         array directly.  Second, rework constness to be less buggy.
3105         Now we iterate directly over the argument metadata instead
3106         of parallel iterating over output signature and metadata.
3107
3108         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3109
3110         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3111         annotation on input args.
3112         
3113 2005-07-09  Colin Walters  <walters@verbum.org>
3114
3115         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3116         Define.
3117
3118         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3119         annotation.
3120
3121         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3122         (method_dir_signature_from_object_info): Handle arg_iterate change.
3123         (write_interface): Ditto.
3124         (lookup_object_info): Don't barf if format_version is > 0.
3125         (invoke_object_method): Handle arg constness.
3126
3127         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3128         (arg_info_new): Create.
3129         (arg_info_unref): Destroy.
3130         (arg_info_get_annotations, arg_info_get_annotation) 
3131         (arg_info_add_annotation): New functions.
3132
3133         * glib/dbus-gidl.h: Prototype them.
3134
3135         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3136         args, disallow them in properties.
3137         (parse_annotation): Handle arg annotations.
3138
3139         * test/glib/test-service-glib.xml: 
3140         * test/glib/test-service-glib.c: Update to make some methods
3141         const.
3142
3143 2005-07-08  Colin Walters  <walters@verbum.org>
3144
3145         * test/glib/test-service-glib.xml: 
3146         * test/glib/test-service-glib.c:
3147         * test/glib/test-dbus-glib.c: Test a{sv}.
3148
3149         * glib/examples/statemachine/statemachine.c:
3150         * glib/examples/statemachine/statemachine-server.c:
3151         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3152         add progress bar, etc.
3153
3154         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3155         needed anymore due to generic array/map marshalling.
3156         (dbus_g_value_types_init): Don't register basic arrays or the
3157         string/string hash.
3158         (dbus_gtype_from_signature_iter): Don't try to recurse into
3159         variants.
3160         (dbus_gtype_to_signature): Check collection/map before type
3161         metadata.
3162         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3163         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3164         generic map creation/append functions instead of hash table
3165         specifically.
3166         (get_type_demarshaller): Handle maps.
3167         (demarshal_collection): Dispatch on collection type to either
3168         demarshal_collection_ptrarray or demarshal_collection_array.
3169         (get_type_marshaller): Handle maps.
3170         (marshal_collection): Dispatch collection type to either
3171         marshal_collection_ptrarray or marshal_collection_array.
3172         (_dbus_gvalue_test): New test.
3173
3174         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3175         (hash_free_from_gtype): Use it to free GValues.
3176         (hashtable_append): New function.
3177         (ptrarray_append): Fix prototype.
3178         (slist_append): Ditto.
3179         (_dbus_gvalue_utils_test): Extend tests.
3180
3181         * glib/dbus-gtype-specialized.c
3182         (dbus_g_type_specialized_init_append): Renamed from
3183         dbus_g_type_specialized_collection_init_append.  Remove const from
3184         value, since we steal it.
3185         (dbus_g_type_specialized_map_append): New function.
3186
3187         * glib/dbus-gtype-specialized.h: Update prototypes.
3188         Add DBusGTypeSpecializedMapAppendFunc.
3189
3190         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3191         _dbus_gvalue_test.
3192         
3193         * glib/dbus-gtest.h: Prototype it.
3194
3195 2005-07-08  Ross Burton  <ross@openedhand.com>
3196
3197         * dbus/dbus-glib.h:
3198         Add DBysGAsyncData for the async bindings.
3199
3200         * glib/dbus-binding-tool-glib.c:
3201         Re-enable the async bindings.
3202
3203         * test/glib/test-dbus-glib.c:
3204         Add a test for the generated async bindings.
3205
3206 2005-07-08  Colin Walters  <walters@verbum.org>
3207
3208         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3209         connection concept.
3210         
3211 2005-07-08  Colin Walters  <walters@verbum.org>
3212         
3213         * tools/Makefile.am: Kill of print-introspect in favor of using
3214         dbus-send --print-reply=literal.
3215
3216         * test/glib/test-service-glib.xml: 
3217         * test/glib/test-service-glib.c (my_object_get_objs): New test
3218         for "ao".
3219
3220         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3221         (main): Test GetObjs.
3222
3223         * glib/examples/statemachine/Makefile.am:
3224         * glib/examples/statemachine/sm-marshal.list:
3225         * glib/examples/statemachine/statemachine-client.c:
3226         * glib/examples/statemachine/statemachine-server.c:
3227         * glib/examples/statemachine/statemachine-server.xml:
3228         * glib/examples/statemachine/statemachine.c:
3229         * glib/examples/statemachine/statemachine.h:
3230         * glib/examples/statemachine/statemachine.xml:
3231
3232         New example.
3233
3234         * glib/examples/example-service.c (main): Move invocation
3235         of dbus_g_object_type_install_info earlier, to emphasize it
3236         should only be done once.
3237
3238         * glib/examples/example-signal-emitter.c (main): Ditto.
3239
3240         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3241
3242         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3243         (dbus_gvalue_marshal): Update prototypes.
3244
3245         * glib/dbus-gvalue.c: Update all marshalling functions to take
3246         const GValue instead of GValue.
3247         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3248         types.
3249         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3250         change.
3251         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3252         Return a newly-allocated string.
3253         (demarshal_proxy, demarshal_object_path, demarshal_object)
3254         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3255         we get the wrong types from message.
3256         (get_type_demarshaller): New function, extracted from
3257         dbus_gvalue_demarshal.
3258         (demarshal_collection): New function, demarshals generic
3259         collection.
3260         (dbus_gvalue_demarshal): Just invoke result of
3261         get_type_demarshaller.  Throw error if we don't have one.
3262         (marshal_garray_basic): Abort on OOM.
3263         (get_type_marshaller): New function, extracted from
3264         dbus_gvalue_marshal.
3265         (collection_marshal_iterator, marshal_collection): New functions;
3266         implements generic marshalling for an iteratable specialized
3267         collection.
3268         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3269
3270         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3271         G_TYPE_STRING.
3272         (ptrarray_value_from_gvalue): Ditto.
3273         (ptrarray_append, ptrarray_free): New functions.
3274         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3275         (slist_append, slist_end_append, slist_free): New functions.
3276         (dbus_g_type_specialized_builtins_init): Add append fuctions
3277         for GPtrArray and GSList.  Register GSList.
3278         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3279
3280         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3281         New.
3282         (dbus_g_type_specialized_collection_init_append)
3283         (dbus_g_type_specialized_collection_append)
3284         (dbus_g_type_specialized_collection_end_append): Prototype.
3285         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3286         end_append_func.
3287
3288         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3289         (dbus_g_type_specialized_collection_append) 
3290         (dbus_g_type_specialized_collection_end_append): New functions.
3291         (dbus_g_type_map_value_iterate): Take const GValue.
3292         (dbus_g_type_collection_value_iterate): Ditto.
3293
3294         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3295         _dbus_gvalue_utils_test.
3296         
3297         * glib/dbus-gtest.h: Prototype it.
3298
3299         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3300         using uninitialized owner_list.
3301         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3302         public API.
3303         (dbus_g_proxy_end_call_internal): Update to use error set
3304         from dbus_gvalue_demarshal instead of setting it here.
3305         (dbus_g_proxy_begin_call): Move return_if_fail here.
3306
3307         * glib/dbus-gobject.c (write_interface): Update for
3308         dbus_gtype_to_signature returning new string.
3309
3310         * configure.in: Add glib/examples/statemachine.
3311
3312 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3313
3314         * configure.in: Add a configure option, --with-console-auth-dir
3315         
3316         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3317         new setting.  Patch from Kay Sievers.
3318
3319 2005-07-06  Colin Walters  <walters@verbum.org>
3320
3321         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3322         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3323         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3324         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3325         Delete in favor of dbus_g_proxy_begin_call and
3326         dbus_g_proxy_cancel_call.
3327         (DBusGProxyCall, DBusGProxyCallNotify): New.
3328         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3329         data, and destroy function.  This replaces
3330         dbus_g_pending_call_set_notify.
3331         (dbus_g_proxy_cancel_call): Prototype.
3332         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3333
3334         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3335         pending_calls map.
3336         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3337         internal proxy for calls to the bus. Remove
3338         pending_nameowner_calls, now the internal proxy keeps track.
3339         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3340         pending_nameowner_calls.
3341         (got_name_owner_cb): Update prototype, and use
3342         dbus_g_proxy_end_call.
3343         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3344         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3345         favor of using internal proxy.
3346         (dbus_g_proxy_manager_unregister): Update to use
3347         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3348         (dbus_g_proxy_init): Initialize pending calls map.
3349         (dbus_g_proxy_constructor): New.
3350         (dbus_g_proxy_class_init): Add get/set property functions,
3351         constructor, and add NAME, PATH, and INTERFACE properties.
3352         (cancel_pending_call): New function.
3353         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3354         cancel them.
3355         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3356         (GPendingNotifyClosure): New structure.
3357         (d_pending_call_notify, d_pending_call_free): Moved here from
3358         dbus-glib.c.
3359         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3360         ordering.
3361         (manager_begin_bus_call): New internal function for talking to
3362         internal bus proxy.
3363         (dbus_g_proxy_new): Construct object using GObjet properties.
3364         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3365         Create closure of same, and insert call into map of pending calls.
3366         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3367         call.  Look up pending call in current set.  Remove it when we've
3368         completed.
3369         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3370         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3371         and destroy function directly.
3372         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3373         (dbus_g_proxy_call): Invoke with NULL callback.
3374         (dbus_g_proxy_cancel_call): New function, replaces
3375         dbus_g_pending_call_cancel.
3376
3377         * glib/dbus-gparser.c (validate_signature): Fix call to
3378         dbus_set_g_error.
3379
3380         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3381         New quark for attaching metadata to GType.
3382         (info_hash): Delete.
3383         (lookup_object_info): Look up using quark.
3384         (dbus_g_object_type_install_info): Check that a type is classed,
3385         not that it's an object.  Also just install type data using quark
3386         instead of using global hash.
3387
3388         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3389         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3390         (GPendingNotifyClosure): Delete.
3391         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3392         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3393
3394         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3395         client method generation until we can fix it...
3396         
3397         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3398         (load_from_service_thread_func): Ditto.
3399
3400         * tools/dbus-names-model.c (struct NamesModel): Hold
3401         DBusGProxyCall.
3402         (have_names_notify): Update prototype, use
3403         dbus_g_proxy_cancel_call.
3404         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3405
3406         * tools/dbus-monitor.c (filter_func): Update for print_message
3407         API change.
3408
3409         * test/glib/test-dbus-glib.c: Add more tests for async
3410         invocations.  Update many begin_call/end_call pairs to just use
3411         dbus_g_proxy_call.
3412
3413         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3414         allows us to dump print-introspect.c.
3415
3416         * tools/dbus-print-message.h (print_message): Add literal argument
3417         to print_message which is intended to allow printing arguments without
3418         metadata like "string=".
3419
3420         * tools/dbus-print-message.c (print_iter): Add literal argument.
3421         (print_message): Allow printing string messages literally.
3422
3423 2005-07-05  Colin Walters  <walters@verbum.org>
3424
3425         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3426         Remove value refcount leak, original patch from Jorn Baayen
3427         <jorn@openedhand.com>.  Also remove useless extra value in favor
3428         of prepending to value array directly.
3429
3430 2005-07-02  Colin Walters  <walters@verbum.org>
3431
3432         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3433
3434 2005-07-01  Colin Walters  <walters@verbum.org>
3435
3436         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3437         
3438         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3439         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3440         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3441         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3442
3443 2005-06-30  Colin Walters  <walters@verbum.org>
3444
3445         * test/glib/test-dbus-glib.c:
3446         * test/glib/test-service-glib.c:
3447         * test/glib/test-service-glib.xml: Update tests for new error
3448         setting bits, also add async tests (patch from Ross Burton).
3449
3450         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3451         DBUS_GLIB_THREADS_LIBS.
3452
3453         * glib/dbus-gproxy.c (get_name_owner)
3454         (dbus_g_pending_call_end_valist): Ditto.
3455
3456         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3457         domain (GQuark) to DBusGErrorInfo.  
3458         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3459         quark in error_metadata.  Take message interface as default
3460         error message interface.
3461         (gerror_to_dbus_error_message): Pass message interface.
3462         (dbus_set_g_error): Resurrected.
3463         (dbus_g_error_info_free): New function.
3464         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3465         of _peek to actually create the object class if it hasn't been
3466         created yet.
3467         (dbus_g_error_domain_register): New function.
3468
3469         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3470
3471         * glib/dbus-gparser.c (validate_signature): Ditto.
3472
3473         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3474         (dbus_g_error_domain_register): Prototype.
3475
3476         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3477         Update tests.
3478
3479 2005-06-29  Colin Walters  <walters@verbum.org>
3480
3481         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3482         DBUS_TYPE_G_OBJECT_PATH.
3483
3484         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3485         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3486         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3487         (dbus_g_object_path_get_g_type): New function.
3488         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3489         to DBUS_TYPE_G_OBJECT_PATH by default.
3490         (demarshal_proxy): Remove unused name variable.
3491         (demarshal_object_path, marshal_object_path): New functions.
3492         (demarshal_proxy_array, marshal_proxy_array): Delete.
3493         
3494         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3495         DBUS_TYPE_G_OBJECT_PATH to char *.
3496         (dbus_g_type_get_lookup_function): Map builtin
3497         DBUS_TYPE_G_OBJECT_PATH.
3498
3499         * test/glib/test-dbus-glib.c
3500         * test/glib/test-service-glib.c (my_object_objpath): 
3501         Adapt tests to new object path marshalling.
3502
3503 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3504
3505         * configure.in: force check for Python >= 2.4
3506
3507 2005-06-29  Colin Walters  <walters@verbum.org>
3508         
3509         Patch from Ross Burton <ross@openedhand.com>
3510         
3511         * glib/dbus-gobject.c (invoke_object_method): Unset object
3512         value in all cases, not only in async case.
3513
3514 2005-06-29  Colin Walters  <walters@verbum.org>
3515
3516         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3517         name_call for keeping track of any outgoing GetNameOwner call.
3518         Also add for_owner and associated.
3519         (struct _DBusGProxyManager): Add owner_names, which is hash table
3520         that maps a base name to a list of names it owns (that we're
3521         interested in).  Add pending_nameowner_calls which is a list of
3522         all outstanding GetNameOwner; avoids us having to iterate over
3523         every proxy.  Add unassociated_proxies which keeps track of name
3524         proxies with no associated name owner.
3525         (dbus_g_proxy_manager_unref): Destroy owner_names.
3526         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3527         name refcounts.
3528         (find_name_in_info, name_owner_foreach)
3529         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3530         (dbus_g_proxy_manager_monitor_name_owner)
3531         (dbus_g_proxy_manager_unmonitor_name_owner)
3532         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3533         New functions; they manipulate the owner_names mapping.
3534         (got_name_owner_cb): New function.
3535         (get_name_owner): New function, extracted from
3536         dbus_g_proxy_new_for_name_owner.
3537         (dbus_g_proxy_manager_register): For now we need to keep track of
3538         all NameOwnerChanged.  Also if the proxy is for a name, if we
3539         don't already know the name owner, queue a new GetNameOwner
3540         request and add it to our list of unassociated proxies.  Otherwise
3541         inc the refcount.
3542         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3543         cancel any pending GetNameOwner call, etc.
3544         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3545         the owner_names mapping to look up the current names for the
3546         signal source, and dispatch to any proxies for that name.
3547         (dbus_g_proxy_new): Initialize new members.
3548         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3549         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3550         (dbus_g_pending_call_end_valist): New function, extracted from
3551         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3552         but want to use the GLib infrastructure.  Also note how many
3553         arguments in reply were over.
3554         (dbus_g_pending_call_end): New function, just call
3555         dbus_g_pending_call_end_valist.
3556         (dbus_g_proxy_end_call_internal): Just call
3557         dbus_g_pending_call_end_valist.
3558
3559         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3560         of builtin marshaller for STRING_STRING_STRING.
3561
3562         * test/glib/test-dbus-glib.c: 
3563         * test/glib/test-service-glib.c:
3564         * test/glib/test-service-glib.xml:
3565         Extend tests to cover name proxies, destruction of owner proxies,
3566         etc.
3567         
3568         * glib/examples/example-signal-recipient.c
3569         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3570         
3571         * tools/dbus-send.c (main): Print D-BUS error name in addition
3572         to message.
3573
3574 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3575
3576         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3577         cmessage_function_handler): Patch from 
3578         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3579         by using the Py_GILState_Ensure/Release to synchronize with the
3580         python runtime.
3581         
3582 2005-06-28  Ray Strode  <rstrode@redhat.com>
3583
3584         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3585         babysitter helper process on last unref, bug #2813.
3586
3587 2005-06-27  Colin Walters  <walters@verbum.org>
3588
3589         * test/glib/test-dbus-glib.c: 
3590         * test/glib/test-service-glib.c:
3591         * test/glib/test-service-glib.xml:
3592         Test hash table signal emitting.
3593
3594         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3595         types to their fundamental basis types, since this is what
3596         marshallers operate on.  Also add an entry for VOID__BOXED.
3597         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3598
3599 2005-06-26  Havoc Pennington  <hp@redhat.com>
3600
3601         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3602         from Don Park
3603
3604 2005-06-26  Colin Walters  <walters@verbum.org>
3605
3606         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3607         (dbus_g_error_set): New public function from its ashes; used by
3608         both service-side method implementation and GLib bindings
3609         internals.
3610         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3611         (_dbus_glib_test): Add some tests.
3612
3613         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3614
3615         * test/glib/test-service-glib.c (my_object_throw_error): Use
3616         dbus_g_error_set.
3617
3618         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3619         errors thrown by dbus_g_error_set.
3620
3621         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3622
3623         * glib/dbus-gparser.c (validate_signature): Ditto.
3624
3625         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3626         (dbus_g_proxy_end_call_internal): Ditto.
3627
3628         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3629         converts DBUS_ERROR_x to DBUS_GERROR_x.
3630         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3631
3632         * doc/TODO: Remove error TODO.
3633
3634         * doc/dbus-tutorial.xml: Update with documentation about error
3635         handling.
3636
3637         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3638         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3639         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3640
3641 2005-06-22  Colin Walters  <walters@verbum.org>
3642         
3643         Patch from Ross Burton <ross@openedhand.com>
3644
3645         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3646
3647 2005-06-20  Colin Walters  <walters@verbum.org>
3648
3649         * configure.in: Add glib/examples.
3650
3651         * glib/Makefile.am: Add examples/
3652
3653         * glib/examples/.cvsignore
3654         * glib/examples/Makefile.am
3655         * glib/examples/example-client.c
3656         * glib/examples/example-service.c
3657         * glib/examples/example-service.xml
3658         * glib/examples/example-signal-emitter.c
3659         * glib/examples/example-signal-emitter.xml
3660         * glib/examples/example-signal-recipient.c:
3661         New files; GLib binding examples, ported from
3662         python/examples.
3663
3664 2005-06-20  Colin Walters  <walters@verbum.org>
3665
3666         * dbus/dbus-glib.h: 
3667         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3668         dbus_g_proxy_call.
3669
3670         * glib/dbus-binding-tool-glib.c: 
3671         * doc/dbus-tutorial.xml: 
3672         * test/glib/test-dbus-glib.c: Update for rename.
3673         
3674 2005-06-20  Colin Walters  <walters@verbum.org>
3675
3676         Patch suggested by Ross Burton <ross@openedhand.com>
3677
3678         * glib/dbus-gobject.c (export_signals): Free signal name.
3679         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3680         memory leak.  Add a bit of documentation.
3681         (dbus_g_method_return_error): Free context, and note we do
3682         so.
3683
3684 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3685
3686         * dbus/dbus-glib.h:
3687         * glib/dbus-gobject.c:
3688         * glib/dbus-gproxy.c:
3689         * glib/dbus-gvalue.c: Predeclare structs as 
3690         typedef struct _Something Something instead of 
3691         typedef struct Something Something, so we can 
3692         redeclare the prototypes. Other GNOME libraries 
3693         do this already.
3694
3695 2005-06-17  Colin Walters  <walters@verbum.org>
3696
3697         * tools/dbus-names-model.c (have_names_notify): Fix call
3698         to dbus_g_proxy_end_call.
3699         
3700 2005-06-17  Colin Walters  <walters@verbum.org>
3701
3702         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3703         spew warnings if we get malformed remote signals.
3704
3705         * glib/dbus-gobject.c (propsig_iterate): New function.
3706         (lookup_object_info): New function, extracted from
3707         lookup_object_and_method.
3708         (introspect_properties, introspect_signals): Delete; these
3709         are merged into write_interface.
3710         (write_interface): Write out signals and properties here;
3711         dump the org.gtk.object stuff and use the interface given
3712         in the introspection data blob.  Also fix up property XML.
3713         (lookup_values): New function.
3714         (introspect_interfaces): Gather a mapping from interface to a
3715         list of its methods, signals, and properties, then write out
3716         each interface.
3717         (lookup_object_and_method): Use lookup_object_info.
3718         (struct DBusGSignalClosure): Add interface.
3719         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3720         we can just use the constant data.
3721         (dbus_g_signal_closure_finalize): Don't free signal name.
3722         (signal_emitter_marshaller): Use interface from signal closure.
3723         (export_signals): Only export signals mentioned in introspection
3724         blob.
3725         (dbus_g_connection_register_g_object): Warn if we have no
3726         introspection data for an object.
3727         (funcsig_equal): Remove unused variable.
3728         (dbus_g_object_register_marshaller): Take varargs instead of
3729         list.
3730         (dbus_g_object_register_marshaller_array): New function,
3731         extracted from old dbus_g_object_register_marshaller.
3732
3733         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3734         signals and property data.
3735         (write_quoted_string): New function, extracted from generate_glue.
3736         (generate_glue): Write signals and properties to introspection
3737         blob.
3738
3739         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3740         exported_signals and exported_properties.
3741         (dbus_g_object_register_marshaller): Update prototype.
3742         (dbus_g_object_register_marshaller_array): Prototype.
3743         
3744         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3745
3746         * test/glib/test-service-glib.c: Add new test signals and method
3747         to emit them.
3748
3749         * test/glib/test-service-glib.xml: Add some test signals.
3750
3751         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3752         and my-object-marshal.h
3753         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3754         my-object-marshal.c.
3755         (my-object-marshal.c, my-object-marshal.h): Implement.
3756
3757         * test/glib/.cvsignore: Update.
3758
3759         * doc/TODO: Remove two GLib TODO items fixed by this
3760         patch.
3761
3762 2005-06-16  Colin Walters  <walters@verbum.org>
3763
3764         * doc/TODO: Update for GLib bindings.
3765         
3766 2005-06-16  Colin Walters  <walters@verbum.org>
3767
3768         * glib/dbus-binding-tool-glib.c:
3769         * glib/dbus-gobject.c:
3770         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3771         from Ross Burton, for his GLib bindings work.
3772
3773 2005-06-16  Colin Walters  <walters@verbum.org>
3774
3775         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3776         to iterate instead of walking to G_TYPE_INVALID.
3777
3778         Patch based on a patch from Ryan Gammon.
3779
3780 2005-06-16  Colin Walters  <walters@verbum.org>
3781
3782         * bus/bus.c (bus_context_new): Set parser to NULL
3783         after we unref it (Patch from Chris Boscolo, #2174).
3784         
3785 2005-06-16  Colin Walters  <walters@verbum.org>
3786
3787         * python/dbus_bindings.pyx.in: Import size_t,
3788         __int64_t, __uint64_t, and __signed.
3789
3790         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3791         Define cmsg struct, output it.
3792         (_dbus_read_credentials_unix_socket):
3793         Use cmsg struct.
3794         
3795         Patch from Joe Markus Clarke for FreeBSD support.
3796         
3797 2005-06-16  Colin Walters  <walters@verbum.org>
3798
3799         * tools/dbus-send.c (append_array): Use strtok.
3800         (append_dict): New function.
3801         (type_from_name): New function, extracted from main.
3802         (main): Handle sending dicts.
3803
3804         * tools/dbus-print-message.c (print_iter): Print dict
3805         entries.
3806         
3807 2005-06-16  Colin Walters  <walters@verbum.org>
3808
3809         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3810         values as the empty string (#2948).
3811         
3812 2005-06-16  Colin Walters  <walters@verbum.org>
3813
3814         * dbus/Makefile.am:
3815         * mono/doc/Makefile.am:
3816         * test/glib/Makefile.am:
3817
3818         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3819
3820 2005-06-16  Colin Walters  <walters@verbum.org>
3821
3822         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3823         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3824
3825         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3826         Increment pointer after swapping fixed array.  Add assertion
3827         for array length.
3828                 
3829 2005-06-15  Colin Walters  <walters@verbum.org>
3830
3831         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3832         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3833         
3834 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3835
3836         * NEWS: Update to 0.34
3837
3838 2005-06-15  David Zeuthen  <davidz@redhat.com>
3839
3840         * configure.in (LT_CURRENT): Revert back to 1 as the library
3841         hasn't changed and we've certainly not committed to protocol
3842         stability yet.  All this does is to break ABI. See commit note
3843         from hp@redhat.com 2005-05-05 for details.
3844         
3845 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3846
3847         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3848         (_dbus_connection_run_builtin_filters): New method
3849         (dbus_connection_dispatch): Run the builtin filters which in turn
3850         runs the peer filter which handles Ping messages.
3851
3852         * doc/TODO: 
3853          - Ping isn't handled: This patch fixes it
3854          
3855          - Add a test case for the Ping message: added TODO item
3856
3857 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3858
3859         * dbus/dbus-message.c:
3860         (dbus_message_has_path): New method
3861         (dbus_message_has_interface): New method
3862         (dbus_message_has_member): New method
3863
3864         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3865         New method
3866
3867         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3868         the keyring directory is private to the user
3869
3870         * doc/TODO:
3871          - The convenience functions in dbus-bus.h should perhaps have
3872          the signatures that they would have if they were autogenerated
3873          stubs. e.g. the acquire service function. We should also evaluate
3874          which of these functions to include, in light of the fact that
3875          GLib/Qt native stubs will probably also exist.: Punted
3876
3877          - add dbus_message_has_path(), maybe has_member/interface:
3878          fixed in this patch
3879
3880          - in dbus-keyring.c, enforce that the keyring dir is not
3881          world readable/writable: Fixed in this patch
3882
3883 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3884
3885         * dbus/dbus-marshal-validate.h: Added a new validation
3886         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3887         out of memory errors when validating signitures
3888
3889         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3890         in places where we previously used DBUS_VALID and a FALSE return 
3891         value to indicate OOM
3892         
3893         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3894         Use a stack to track the number of elements inside containers.  The 
3895         stack values are then used to validate that dict entries have only two
3896         elements within them.
3897         (validate_body_helper): check the reason for failure when validating
3898         varients
3899         
3900         * dbus/dbus-message.c (load_message): use 
3901         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3902         DBUS_VALID and a FALSE return value to indicate OOM
3903
3904         * doc/TODO: remove "- validate dict entry number of fields" as this
3905         patch fixes it
3906
3907 2005-06-14  David Zeuthen  <davidz@redhat.com>
3908
3909         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3910         watches (if applicable) and add new watches
3911
3912         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3913         (main): Setup SIGIO signal handler if using D_NOTIFY
3914
3915         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3916
3917         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3918         (merge_included): Also merge conf_dirs list
3919         (bus_config_parser_unref): Clear conf_dirs list
3920         (include_dir): Add directory to conf_dirs list
3921         (bus_config_parser_get_conf_dirs): New function
3922
3923         * bus/dir-watch.[ch]: New files
3924
3925         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3926
3927         * configure.in: Add checks for D_NOTIFY on Linux
3928
3929 2005-06-14  Colin Walters  <walters@verbum.org>
3930
3931         * glib/dbus-binding-tool-glib.c:
3932         * glib/dbus-gobject.c:
3933         * glib/dbus-gvalue.c: Fix indentation and brace style.
3934         
3935 2005-06-14  Ross Burton <ross@openedhand.com>.
3936
3937         * glib/dbus-glib.h: Make DBusGMethodInvocation
3938         a private structure.  Rearrange prototypes a bit.
3939         
3940         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3941         documentation for first_arg_type.
3942         
3943         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3944         here, add documentation.  Move dbus_g_method_return
3945         and dbus_g_method_return_error into public API
3946         section.
3947
3948 2005-06-14  Colin Walters  <walters@verbum.org>
3949
3950         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3951         Add missing return statements, noticed by Ross Burton.
3952         
3953 2005-06-13  Ross Burton <ross@openedhand.com>.
3954
3955         * glib/dbus-gobject.c: Handle errors on message
3956         demarshalling by sending error message back.
3957         * glib/dbus-gvalue.c: Initialize return variables.
3958
3959 2005-06-13  Colin Walters  <walters@verbum.org>
3960
3961         * glib/Makefile.am: Fix thinko in last patch.
3962
3963 2005-06-13  Colin Walters  <walters@verbum.org>
3964
3965         * glib/Makefile.am: Move dbus-gtype-specialized.c
3966         and dbus-gtype-specialized.h into a _HEADERS variable,
3967         install them.
3968
3969 2005-06-12  Colin Walters  <walters@verbum.org>
3970
3971         Async signals and various bugfixes and testing by
3972         Ross Burton <ross@openedhand.com>.
3973
3974         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3975         (dbus_gvalue_genmarshal_name_from_type)
3976         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3977         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3978         (dbus_g_value_types_init, dbus_gtype_from_signature)
3979         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3980         (dbus_gtypes_from_arg_signature): New function prototypes.
3981         (dbus_gvalue_demarshal): Take context and error arguments.
3982         (dbus_gvalue_demarshal_variant): New function.
3983         (dbus_gvalue_demarshal_message): New function.
3984         (dbus_gvalue_store): Delete.
3985
3986         * glib/dbus-gvalue.c:
3987
3988         File has been almost entirely rewritten; now we special-case
3989         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3990         hash tables correctly, etc.  Full support for recursive values
3991         is not yet complete.
3992
3993         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3994         argument of signal to G_TYPE_POINTER since we now pass a
3995         structure.
3996         (lookup_g_marshaller): Delete in favor of
3997         _dbus_gobject_lookup_marshaller.
3998         (marshal_dbus_message_to_g_marshaller): Use
3999         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4000         to handle remote signal callbacks.
4001         (dbus_g_proxy_new_from_proxy): New function; creates a new
4002         DBusGProxy by copying an existing one.
4003         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4004         (dbus_g_proxy_get_path): New functions.
4005         (dbus_g_proxy_marshal_args_to_message): New function;
4006         factored out of existing code.
4007         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4008         from a varargs array.
4009         (dbus_g_proxy_begin_call_internal): New function.
4010         (dbus_g_proxy_end_call_internal): New function.
4011         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4012         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4013         after collecting args into value array.
4014         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4015         invoke dbus_g_proxy_end_call_internal.
4016         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4017         end_call_internal.
4018         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4019         types.
4020         (array_free_all): New function.
4021         (dbus_g_proxy_add_signal): Take GTypes.
4022
4023         * glib/dbus-gobject.h:
4024         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4025         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4026         Prototype.
4027
4028         * glib/dbus-gobject.c: Add a global marshal_table hash which
4029         stores mappings from type signatures to marshallers.  Change lots
4030         of invocations of dbus_gtype_to_dbus_type to
4031         dbus_gtype_to_signature.
4032         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4033         (introspect_signals): Fix test for query.return_type.
4034         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4035         (invoke_object_method): Many changes.  Handle asynchronous
4036         invocations.  Convert arguments with
4037         dbus_gvalue_demarshal_message.  Handle errors.  Use
4038         DBusSignatureIter instead of strlen on args. Handle all arguments
4039         generically.  Special-case variants.
4040         (dbus_g_method_return, dbus_g_method_return_error): New function.
4041         (DBusGSignalClosure): New structure, closes over signal
4042         information.
4043         (dbus_g_signal_closure_new): New function.
4044         (dbus_g_signal_closure_finalize): New function.
4045         (signal_emitter_marshaller): New function; is special marshaller
4046         which emits signals on bus.
4047         (export_signals): New function; introspects object signals and
4048         connects to them.
4049         (dbus_g_object_type_install_info): Take GType instead of
4050         GObjectClass.
4051         (dbus_g_connection_register_g_object): Invoke export_signals.
4052         (dbus_g_connection_lookup_g_object): New function.
4053         (DBusGFuncSignature) New structure; used for mapping type
4054         signatures to marshallers.
4055         (funcsig_hash): New function; hashes DBusGFuncSignature.
4056         (funcsig_equal): New function; compares DBusGFuncSignature.
4057         (_dbus_gobject_lookup_marshaller): New function.
4058         (dbus_g_object_register_marshaller): New function; used to
4059         register a marshaller at runtime for a particular signature.
4060
4061         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4062
4063         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4064         which notes a server method implementation should be
4065         asynchronous.
4066
4067         * glib/dbus-binding-tool-glib.c
4068         (dbus_binding_tool_output_glib_server): Call
4069         dbus_g_value_types_init.
4070         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4071         variants specially.
4072         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4073         of a lookup function.
4074         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4075         (write_untyped_out_args): New method; write output arguments.
4076         (write_formal_declarations_for_direction): Function for
4077         writing prototypes.
4078         (write_formal_parameters_for_direction): Function for
4079         writing implementations.
4080         (write_typed_args_for_direction): Function for writing
4081         arguments prefixed with GTypes.
4082         (write_async_method_client): Write out async version
4083         of method.
4084
4085         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4086         (dbus_g_type_get_marshal_name): Move mapping from GType
4087         to marshal name into here.
4088         (dbus_g_type_get_c_name): Move into here.
4089         (compute_marshaller): Convert signature to type with
4090         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4091         (compute_marshaller_name): Ditto.
4092         (compute_marshaller): Handle async signal annotations.
4093         (gather_marshallers): Return if we don't have a known
4094         prefix.
4095         (generate_glue): Collect introspection blob here, and
4096         write all of the blob at the end.  This allows an object
4097         with multiple interfaces to work.
4098         Mark async methods in introspection blob.
4099
4100         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4101         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4102         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4103
4104         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4105         avoids people accidentally using DBUS_TYPE_* which should
4106         not be necessary anymore.
4107         Do include dbus-gtype-specialized.h, which are utilities
4108         for GLib container types.
4109         Add various #defines for types such as
4110         DBUS_TYPE_G_BOOLEAN_ARRAY.
4111         (DBusGValueIterator, DBusGValue): Define, not fully used
4112         yet.
4113         (dbus_g_value_get_g_type): Type for recursive value.
4114         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4115         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4116         (dbus_g_value_free): Prototypes.
4117         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4118         (dbus_g_proxy_set_interface): Prototype.
4119         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4120         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4121         types.
4122         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4123         Accessors.
4124         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4125         doing async invocations.
4126         (dbus_g_method_return, dbus_g_method_return_error):
4127         Prototypes.
4128         * doc/dbus-tutorial.xml: Update GLib section.
4129         
4130         * tools/dbus-viewer.c (load_child_nodes): Update
4131         for new invocation type of dbus_g_proxy_end_call.
4132         (load_from_service_thread_func): Ditto.
4133
4134         * tools/print-introspect.c (main): Ditto.
4135
4136         * tools/dbus-names-model.c (have_names_notify)
4137         (names_model_reload, names_model_set_connection)
4138         Use GTypes.
4139
4140         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4141         needed since Python bindings use GLib bindings.
4142
4143         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4144         Add --prefix argument.
4145
4146         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4147         unneeded --ignore-unsupported arg.
4148         
4149         * test/glib/test-service-glib.c: 
4150         * test/glib/test-service-glib.xml:
4151         * test/glib/test-dbus-glib.c: Add many more tests.
4152
4153 2005-06-06  David Zeuthen  <davidz@redhat.com>
4154
4155         * doc/TODO: Add item about need to remove deprecated functions.
4156
4157         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4158
4159         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4160         to repair the ABI which was broken with the last commit.
4161
4162 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4163
4164         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4165         (dbus_connection_disconnect): renamed to dbus_connection_close 
4166         for API symmetry with dbus_connection_open
4167         (_dbus_connection_open_internal): 
4168         s/dbus_connection_disconnect/dbus_connection_close
4169
4170         * dbus/dbus-bus.c (dbus_bus_get):
4171         s/dbus_connection_disconnect/dbus_connection_close
4172
4173         * bus/connection.c (bus_connections_unref, 
4174         bus_connections_setup_connection, bus_connections_expire_incomplete):
4175         s/dbus_connection_disconnect/dbus_connection_close
4176
4177         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4178         kill_client_connection_unchecked, check_hello_connection):
4179         s/dbus_connection_disconnect/dbus_connection_close
4180
4181         * bus/bus.c (new_connection_callback):
4182         s/dbus_connection_disconnect/dbus_connection_close
4183
4184         * tools/dbus-send.c (main):
4185         s/dbus_connection_disconnect/dbus_connection_close
4186
4187         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4188         s/dbus_connection_disconnect/dbus_connection_close
4189         
4190         * test/test-service.c (path_message_func, filter_func):
4191         s/dbus_connection_disconnect/dbus_connection_close
4192         
4193         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4194         
4195 2005-05-25  Colin Walters  <walters@verbum.org>
4196
4197         * dbus/dbus-protocol.h: Move various bus service #defines such
4198           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4199           dbus/dbus-shared.h.
4200         * dbus/dbus-shared.h: Various defines moved here.
4201         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4202
4203 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4204
4205         * python/__init__.py: Python bindings deserve a minor version
4206         update.  Upped to (0, 40, 2)
4207
4208 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4209
4210         * python/decorators.py: add explicitly_pass_message decorator
4211         for passing in the dbus message as keyword for edge case signal
4212         handling
4213
4214         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4215         to conform with what dbus expects for match rules
4216         (SignalMatchRule.execute): add the dbus message as a keyword
4217         if the signal handler has requested it
4218
4219         * python/examples/example/signal-recipient.py: added some more
4220         examples on how to hook up to signals
4221
4222 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4223
4224         * python/decorators.py: import dbus_bindings
4225
4226         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4227         SignalMatchNode): new classes that implement wildcard signal
4228         callback matching using a tree lookup. Heavily modified from a
4229         patch sent by Celso Pinto (fd.o bug #3241)
4230
4231         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4232         use new match classes to handle signals.
4233
4234 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4235         
4236         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4237
4238 2005-05-18  Havoc Pennington  <hp@redhat.com>
4239
4240         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4241         gettext. Not really worth requiring yet perhaps, but any
4242         production quality 1.0 would require it so we should go ahead and
4243         get things set up. We do have a couple token calls to
4244         bindtextdomain in the code already.
4245
4246 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4247
4248         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4249         when using recursive g_main_loops
4250
4251         * python/_dbus.py (class Bus): add the ProxyObjectClass
4252         alias for ProxyObject to make it easier for the Twisted 
4253         networking framework to integrate dbus.
4254
4255         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4256         alias for ProxyMethod to make it easier for the Twisted 
4257         networking framework to integrate dbus. 
4258
4259 2005-05-11  Ross Burton  <ross@openedhand.com>
4260
4261         * glib/dbus-glib-tool.c: Add --prefix argument.
4262         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4263         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4264         Add prefix argument.
4265         (generate_glue): Pass prefix argument down.
4266         (dbus_binding_tool_output_glib_server): Pass prefix to
4267         glib-genmarshal.
4268         
4269 2005-05-11  Colin Walters  <walters@verbum.org>
4270
4271         * tools/dbus-send.c (append_array): New function.
4272         (append_arg): Broken out from main.
4273         (main): Add cheesy hack to send arrays and variants.
4274         (usage): Update.
4275         * tools/dbus-print-message.c (print_iter): Broken out
4276         from main.
4277
4278 2005-05-11  Colin Walters  <walters@verbum.org>
4279
4280         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4281         New function, returns signature string for signature iter.
4282         * dbus/dbus-signature.h: Prototype it.
4283         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4284         New function, returns signature string for message iter.
4285         (dbus_message_iter_get_array_len): New function, returns
4286         length of array.
4287         (dbus_message_iter_get_fixed_array): Fix assertion; this
4288         function should be used when the iter is pointing to the
4289         contents of an array
4290         * dbus/dbus-message.h: Prototypes.
4291         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4292         New function; returns length of an array.
4293         * dbus/dbus-marshal-recursive.h: Prototype it.
4294         
4295 2005-05-11  Colin Walters  <walters@verbum.org>
4296
4297         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4298         compilation error.
4299         
4300 2005-05-08  Havoc Pennington  <hp@redhat.com>
4301
4302         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4303         daemon's pid, not the parent's pid, to the file descriptor.
4304         Reported by Taj Morton.
4305
4306 2005-05-05  Havoc Pennington  <hp@redhat.com>
4307
4308         * configure.in (LT_*): add notes on how the libtool versioning
4309         works to save thinking. Increment soname to indicate protocol
4310         breakage (though really the library interface hasn't changed I
4311         guess)
4312
4313         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4314         verify the GUID received from server matches what we were
4315         expecting, if we had an expectation
4316
4317         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4318         (_dbus_auth_get_guid_from_server): new function
4319         (send_begin): parse the OK args
4320
4321         * doc/dbus-specification.xml: add GUID to the auth protocol
4322
4323 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4324
4325         * Fix my name in previous changelog ;)
4326
4327         * python/proxies.py (ProxyObject.__getattr__): add further patch
4328         from Anthony Baxter to throw an AttributeError when python 
4329         __special__ functions are called instead of marshling them over 
4330         the bus (Bug#1685 comment 3).
4331
4332 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4333
4334         * python/Makefile.am: changed to use pyexecdir for the binding
4335         shared libraries (Bug#2494)
4336
4337         * python/exceptions.py: bring exceptions over from the bindings
4338         so they can be used in applications (Bug#2036)
4339         Make all exceptions derive from DBusException
4340
4341         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4342         of classes so that print obj doesn't throw an exception (Bug #1685)
4343
4344 2005-05-03  Ross Burton  <ross@openedhand.com>
4345
4346         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4347         Return if we get an error during registration.  Set up a
4348         weak reference on object to unregister if object is destroyed.
4349         (unregister_gobject): New function.
4350         
4351 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4352
4353         * python/dbus_bindings.pyx.in: 
4354         - added new type classes for hinting to the marashaler what type 
4355         to send over the wire
4356         - added int16 and uint16 marshalers
4357         - Fixed a bug in the type constants that caused int32 to go out
4358         as uint16 over the wire
4359         * python/dbus.py: split up into different files and renamed _dbus.py
4360         * python/__init__.py, python/_util.py, python/decorators.py, 
4361         python/exceptions.py, python/proxies.py, python/services.py,
4362         python/types.py: new files split off from dbus.py
4363         * python/Makefile.am: Add new files, remove dbus.py and 
4364         install all python files to <python module dir>/dbus
4365         * python/examples/*: Added #!/usr/bin/env python to the top of
4366         every example.  Patch provided by Tatavarty Kalyan
4367
4368 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4369
4370         * NEWS: Update to 0.33
4371
4372 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4373
4374         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4375         method for doing async calls
4376         (_pending_call_notification): New C function for handling pendning call
4377         callbacks
4378         (set_notify): New method for setting pending call notification
4379         
4380         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4381         Async capabilities added to remote method calls
4382         (Sender): class removed
4383         (RemoteService): class removed
4384         (ObjectTree): class removed for now
4385         (RemoteObject): Renamed to ProxyObject
4386         (RemoteMethod): Renamed to ProxyMethod
4387         (method): Decorator added for decorating python methods as dbus methods
4388         (signal): Decorator added for decorating python methods as signal emitters
4389         (ObjectType): Metaclass added for generating introspection data and the
4390         method callback vtable
4391         (Interface): Wrapper class added to wrap objects in a dbus interface
4392         (Object): Uses ObjectType as its metaclass and exports Introspect
4393         of the org.freedesktop.DBus.Introspectable interface
4394         (ValidationException, UnknownMethodException): new exceptions
4395
4396         * python/examples/*: Modified to fit with the new bindings
4397
4398 2005-04-23  Havoc Pennington  <hp@redhat.com>
4399
4400         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4401         reported by Tony Houghton
4402
4403         * test/test-service.c (main): test
4404         dbus_connection_get_object_path_data()
4405
4406         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4407         the exact_match
4408         (_dbus_object_tree_get_user_data_unlocked): new function used by
4409         dbus_connection_get_object_path_data()
4410         (do_register): add assertion test for get_user_data_unlocked
4411         (object_tree_test_iteration): more tests
4412
4413         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4414         new function from Dan Reed to let you get the user data from 
4415         dbus_connection_register_object_path()
4416
4417 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4418
4419         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4420         in numerous places that did not account for the NULL terminator
4421         (signature_from_seed): changed the manual string copy loop to 
4422         just use strcpy instead
4423         make check should now pass
4424
4425 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4426
4427         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4428         so that it allows messages that are not signals to pass in 
4429         NULL as the interface.
4430
4431 2005-04-18  David Zeuthen  <davidz@redhat.com>
4432
4433         * glib/dbus-gmain.c (io_handler_destroy_source): 
4434         (timeout_handler_destroy_source, connection_setup_free): 
4435         Also unref the source to avoid memory leaks.
4436
4437 2005-04-13  David Zeuthen  <davidz@redhat.com>
4438
4439         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4440         more reasonable, yet still totally arbitrary, value :-). 
4441
4442 2005-04-13  David Zeuthen  <davidz@redhat.com>
4443
4444         * doc/TODO: Added an "important for 1.0" item about selinux
4445         allow/deny messages
4446
4447 2005-04-13  David Zeuthen  <davidz@redhat.com>
4448
4449         * bus/selinux.c: Add c-file-style to top of file
4450         (log_audit_callback): Don't free the data here anymore
4451         (bus_selinux_check): Don't take spid and tpid since appending
4452         that to auxdata may OOM.
4453         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4454         to the caller if we are OOM by taking an error object.
4455         (bus_selinux_allows_send): -do-
4456
4457         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4458         and bus_selinux_allows_send
4459
4460         * bus/bus.c (bus_context_check_security_policy): Pass error and
4461         pass on OOM thrown by bus_selinux_allows_send()
4462
4463         * bus/services.c (bus_registry_acquire_service): Pass error and
4464         pass on OOM thrown by bus_selinux_allows_acquire_service()
4465
4466 2005-04-13  Havoc Pennington  <hp@redhat.com>
4467
4468         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4469         message at a time to avoid monopolizing the main loop, bug 
4470         #2953 from Benjamin Otte
4471
4472 2005-04-09  Havoc Pennington  <hp@redhat.com>
4473
4474         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4475         possible overlap, fix from Daniel Reed
4476         (fixup_alignment): fix signedness warnings
4477         (_dbus_string_append_unichar): ditto
4478
4479 2005-04-09  Havoc Pennington  <hp@redhat.com>
4480
4481         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4482
4483         * glib/dbus-glib-tool.c (main): fix warning
4484
4485         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4486
4487         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4488         add a new function that can be used in simple applications that
4489         don't have a main loop and are willing to block
4490
4491 2005-04-05  David Zeuthen  <davidz@redhat.com>
4492
4493         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4494
4495         * glib/dbus-gmain.c:
4496         (io_handler_destroy_source): Remove from list of IO handlers
4497         of the ConnectionSetup object
4498         (timeout_handler_destroy_source): -do- for timeout handlers
4499         (io_handler_source_finalized): Don't remove from list since
4500         we now do that in io_handler_destroy_source(). Renamed from
4501         io_handler_source_destroyed
4502         (timeout_handler_source_destroyed): -do- for timeout handlers
4503         (connection_setup_free): It is now safe to iterate over all
4504         IO and timeout handlers as the _destroy_source removes them
4505         from the list synchronously
4506
4507 2005-03-30  Havoc Pennington  <hp@redhat.com>
4508
4509         * configure.in: change check to gtk 2.4
4510
4511         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4512         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4513         to 2.4
4514
4515 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4516
4517         * News: Update 0.32
4518
4519         * HACKING: Fixed realease instructions.  configure.in should be updated to
4520           the next release by the person who made the last release.
4521
4522 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4523
4524         * python/lvalue_cast_post_process.py - removed.  Patch has been
4525           submitted to Pyrex maintainers that fixes gcc4.0 errors
4526
4527         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4528
4529 2005-03-24  Daniel Reed  <n@ml.org>
4530
4531         * tools/Makefile.am: Make print-introspect and
4532         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4533
4534 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4535
4536         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4537
4538         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4539           had in Red Hat packages for a while but for some reason never 
4540           got merged upstream
4541           (_dbus_is_a_number): New checks if a string
4542           can be converted to a number and does the conversion if it can
4543           (_dbus_user_database_lookup): Add check to see if the given username
4544           is a udi.  This allows udi's to be used instead of usernames in the
4545           config file.
4546           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4547           is a gdi.  This allows gdi's to be used instead of groupnames in the
4548           config file.
4549
4550 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4551
4552         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4553           code so that it compiles with gcc4.0
4554
4555         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4556           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4557           results back to dbus_binding.c
4558
4559 2005-03-20  Colin Walters  <walters@verbum.org>
4560
4561         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4562
4563         * configure.in: Require GTK+ 2.6.
4564         
4565 2005-03-20  Colin Walters  <walters@verbum.org>
4566
4567         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4568
4569 2005-03-17  Tom Parker  <palfrey@tevp.net>
4570
4571         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4572         print DBUS_UID_UNSET; instead print passed username.  Also
4573         be sure to actually use gid looked up in cache.
4574         
4575         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4576         for DBUS_GID_UNSET and groupname.
4577
4578 2005-03-17  Colin Walters  <walters@verbum.org>
4579
4580         * bus/print-introspect.c: Move to tools/.
4581         * bus/run-with-tmp-session-bus.sh: Ditto.
4582         
4583         * glib/Makefile.am (dbus-glib-bindings.h): Move
4584         generation to tools/Makefile.am.
4585
4586         * test/glib/run-test.sh: Update to handle move
4587         of run-with-tmp-session-bus.sh.
4588
4589         * test/glib/test-service-glib.c: Update to handle
4590         move of dbus-glib-bindings.h.
4591
4592         * tools/print-introspect.c: Moved here
4593         from bus/, and ported to GLib bindings.
4594
4595         * tools/run-with-tmp-session-bus.sh: Moved here
4596         from bus/.
4597
4598         * tools/Makefile.am: Generate dbus-glib-bindings.h
4599         and dbus-bus-introspect.xml here.
4600
4601         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4602         Update.
4603
4604 2005-03-17  Colin Walters  <walters@verbum.org>
4605
4606         * bus/driver.c (write_args_for_direction): Use
4607         _dbus_string_get_const_data to retrieve string;
4608         _dbus_string_get_const_data_len doesn't actually return
4609         a NULL-terminated substring.
4610
4611         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4612         (main): Change to use org_freedesktop_DBus_request_name
4613         instead of using g_proxy_begin_call/end_call.
4614
4615 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4616
4617         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4618         generating the finalizer.  Fixes from Ben Maurer.
4619
4620 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4621
4622         * mono/BusDriver.cs: Update method names: ListServices
4623         becomes ListNames; GetOwner becomes GetNameOwner.
4624
4625         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4626         onto the eval stack when removing the delegate.
4627
4628 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4629
4630         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4631         LT_CURRENT.  Set it to the autoconf variable.
4632                                                                                 
4633         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4634         classes that disconnects the signal handler delegate from the
4635         service object.  Fixes a big leak of proxy objects on the
4636         client side of things.  Patch from Ben Maurer
4637         <bmaurer@ximian.com>
4638
4639 2005-03-12  Colin Walters  <walters@verbum.org>
4640
4641         * bus/driver.c (write_args_for_direction): New function,
4642         parses a type signature into arguments and outputs to
4643         XML.
4644         (bus_driver_handle_introspect): Use it instead of
4645         hardcoding XML for certain signatures.
4646         
4647         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4648         dependency on dbus-daemon.
4649
4650         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4651         argument, pass it to dbus_binding_tool_output_glib_client.
4652
4653         * glib/dbus-binding-tool-glib.c
4654         (generate_client_glue): Protect against multiple inclusion.
4655         (dbus_binding_tool_output_glib_client): Add
4656         G_BEGIN_DECLS/G_END_DECLS.
4657
4658         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4659         Change to just take iface prefix directly.
4660         (write_formal_parameters): Clarify error message.
4661         (check_supported_parameters): New function; checks to see type
4662         signatures of method parameters are supported.
4663         (generate_client_glue): Handle ignore_unsupported flag.
4664         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4665         parameter.
4666
4667         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4668         --ignore-unsupported by default until glib bindings
4669         support arrays.
4670
4671 2005-03-11  Colin Walters  <walters@verbum.org>
4672
4673         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4674         install it.
4675
4676         * bus/print-introspect.c: New file; prints introspection
4677         data for a given name and object path.
4678
4679         * bus/run-with-tmp-session-bus.sh: New file, refactored
4680         from test/glib/run-test.sh.  Creates a temporary session
4681         bus and runs another program.
4682
4683         * test/glib/run-test.sh: Refactor to invoke
4684         run-with-tmp-session-bus.sh.
4685
4686         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4687         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4688         macros instead of hardcoding.
4689
4690         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4691
4692 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4693
4694         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4695         this unref; it doesn't match up evenly in some codepaths.
4696         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4697         this evenly matches with the ref near the top of this function.
4698
4699 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4700
4701         * dbus/dbus-object-tree.c
4702         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4703         and we try to unregister a path that's not registered, still go
4704         through the process of unlocking and don't just return.
4705
4706 2005-03-09  Colin Walters  <walters@verbum.org>
4707
4708         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4709         to this are generated for client-side wrappers.  Invokes a
4710         D-BUS method and returns reply values.  
4711
4712         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4713         function; writes signature string for argument direction.
4714         (write_args_for_direction): Change to pass input values directly
4715         instead of via address, and fix indentation.
4716         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4717         make generated wrappers inlineable.
4718
4719         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4720         note about using dbus_type_is_fixed.
4721
4722         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4723         dbus/dbus-signature.c as dbus_type_is_fixed.
4724
4725         All callers updated.
4726
4727         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4728         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4729
4730         * dbus/dbus-signature.h: Prototype.
4731
4732         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4733         error printf code.
4734
4735         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4736         appropriate instead of just freeing it.
4737         (main): Free returned strings using g_free.
4738
4739         * test/glib/Makefile.am (test-service-glib-glue.h)
4740         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4741
4742         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4743         simply maps a simple D-BUS type to GType.
4744         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4745         GType.
4746         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4747         initialize the value with it.
4748         (dbus_gvalue_binding_type_from_type): Unused, delete.
4749         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4750         various types instead of unmarshalling to value data directly.
4751         Remove can_convert boolean.
4752         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4753         returning directly instead of using can_convert boolean.
4754         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4755         Stores a GValue in a pointer to a value of its corresponding C
4756         type.
4757
4758         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4759         add dbus_gvalue_store.
4760
4761 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4762
4763         Fix a bunch of lifecycle and memory management problems
4764         in the mono bindings.
4765
4766         * mono/Arguments.cs (Arguments): Implement IDisposable
4767
4768         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4769         strictly a static class.
4770
4771         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4772         delegates into this file.
4773         (Connection): Implement IDisposable.
4774         (Dispose): Disconnect the connection and set the raw connection
4775         pointer to IntPtr.Zero.
4776         (~Connection): Call Dispose().
4777         (RegisterObjectPath): Added.  Manages the registration of object
4778         paths so we can cleanly disconnect them at dispose/finalize time.
4779         (UnregisterObjectPath): Ditto.
4780         (set_RawConnection): Unregister all of the object paths when
4781         changing the underlying DBusConnection.  Add them back onto the
4782         new connection, if any.
4783
4784         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4785         more unmanaged resources anymore, so it's not necessary.  Move all
4786         the DBusObjectPathVTable stuff out of here.
4787         (Handler): Save references to our delegates so that they don't get
4788         finalized.  Call Connection.RegisterObjectPath() instead of
4789         dbus_connection_register_object_path() directly.
4790         (Message_Called): Dispose the message after we're finished with
4791         it.
4792
4793         * mono/Message.cs (Message): Implement IDisposable.
4794         (Dispose): Dispose the Arguments, and set the RawMessage to
4795         IntPtr.Zero.
4796         (SendWithReplyAndBlock): We own the ref to the reply that comes
4797         back from dbus_connection_send_with_reply_and_block() so add a
4798         comment about that and unref it after we've constructed a managed
4799         MethodReturn class around it.  Fixes a big, big leak.
4800
4801         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4802         method.
4803         (BuildSignalHandler): After we've sent the Signal message, dispose
4804         of it.
4805         (BuildMethod): Dispose of the method call and reply messages after
4806         we've sent the message and extracted the data we want from the
4807         reply.
4808
4809         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4810         anymore.
4811         (Service_FilterCalled): Dispose of the message after we're
4812         finished with it.
4813
4814 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4815
4816         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4817         After we attach our pending call to the connection, unref
4818         it.  Fixes a leak.
4819  
4820         * mono/Connection.cs (set_RawConnection): Disconnect our
4821         filter and match callbacks from the old connection and
4822         reconnect them to the new connection, if any.
4823
4824         * mono/DBusType/Array.cs: "Code" is a static member, so
4825         don't use "this" to refer to it.  Fix for stricter checking
4826         in Mono 1.1.4.
4827  
4828         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4829         object path that we pass into unmanaged code.
4830  
4831         * mono/DBusType/String.cs (Append): Don't leak the string
4832         that we pass into unmanged code.
4833
4834 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4835         * NEWS: Update for 0.31
4836
4837         * configure.in: Release 0.31
4838         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4839
4840         * qt/Makefile.am: fixed build
4841
4842         * dbus/Makefile.am: soname bump for libdbus
4843
4844         * glib/Makefile.am: soname bump for libdbus-glib
4845
4846 2005-03-05  Havoc Pennington  <hp@redhat.com>
4847
4848         * dbus/dbus-sysdeps.c:
4849         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4850         value
4851         (_dbus_generate_random_bytes_buffer): fix return value
4852
4853         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4854         checks actually work, from Tom Parker <fdo@tevp.net>
4855
4856 2005-03-01  Colin Walters  <walters@verbum.org>
4857
4858         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4859         functions copied from dbus-glib-tool.c.
4860         (main): Convert lots of error code to use them.
4861         Also add some testing for introspection bits.
4862
4863 2005-03-01  Colin Walters  <walters@verbum.org>
4864         
4865         * doc/TODO: Remove introspection signature TODO.
4866
4867 2005-02-27  Colin Walters  <walters@verbum.org>
4868
4869         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4870         Change return value to const char * instead of int so we can do
4871         full signatures.
4872         (struct PropertyInfo, struct ArgInfo): Store char *.
4873         (property_info_new, arg_info_new): Update parameters, strdup.
4874         (property_info_unref, arg_info_unref): Free.
4875
4876         * glib/dbus-gidl.h: Update prototypes.
4877
4878         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4879         (validate_signature): New function, just validates signature and
4880         sets GError.
4881         (parse_property, parse_arg): Invoke validate_signature.  Store
4882         signature instead of just type code.
4883
4884         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4885         function to return a primary type for a signature, dropping
4886         information about types in container types.
4887         (dbus_gvalue_genmarshal_name_from_type)
4888         (dbus_gvalue_binding_type_from_type)
4889         (dbus_gvalue_ctype_from_type): Update to take full signature
4890          instead of type code.
4891         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4892
4893         * glib/dbus-gvalue.h: Update prototypes for above.
4894
4895         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4896         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4897         (introspect_properties, introspect_signals, write_interface):
4898         Update to handle signatures, and remove usage of
4899         _dbus_gutils_type_to_string.
4900         (handle_introspect): Print out type codes instead of e.g. "string"
4901         in hardcoded introspection XML; also use x_AS_STRING constants
4902         instead of hardcoding in string.
4903
4904         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4905         to string.  Remove usage of _dbus_gutils_type_to_string.
4906
4907         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4908
4909         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4910         deletion.
4911         
4912         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4913         (compute_marshaller_name, generate_glue): Handle signature change
4914         to string.
4915         (write_formal_parameters, write_args_for_direction): Ditto, and
4916         remove FIXME.
4917
4918         * tools/dbus-tree-view.c (type_to_string): Delete.
4919         (info_set_func_text): Update to print full signatures.
4920
4921         * test/glib/test-service-glib.xml: Change types to new
4922         introspection format.
4923
4924 2005-02-26  Havoc Pennington  <hp@redhat.com>
4925
4926         * doc/TODO: remove the "guid" item
4927
4928         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4929         (with_bus_thread_func): use open_private
4930
4931         * dbus/dbus-connection.c (dbus_connection_open_private): new
4932         function that works like the old dbus_connection_open()
4933         (dbus_connection_open): now returns an existing connection if
4934         possible
4935
4936         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4937         through the GUID to the transport
4938
4939         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4940         GUID in hex-encoded form.
4941
4942         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4943         pass GUID argument in to the transport
4944
4945         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4946         guid argument
4947
4948         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4949
4950         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4951
4952 2005-02-25  Havoc Pennington  <hp@redhat.com>
4953
4954         * doc/dbus-specification.xml: document the GUID thing
4955
4956         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4957         globally unique ID for the server, and put a "guid=hexencoded"
4958         field in the address
4959
4960         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4961
4962         * dbus/dbus-message.c: ditto
4963
4964         * dbus/dbus-dataslot.c: ditto
4965
4966         * dbus/dbus-list.c: ditto
4967
4968         * dbus/dbus-internals.h: wait, just include
4969         dbus-threads-internal.h here
4970         
4971         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4972         use in main library
4973
4974         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4975
4976 2005-02-24  Colin Walters  <walters@verbum.org>
4977
4978         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4979
4980 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4981
4982         * glib/Makefile.am: added dbus-gobject.h to sources list
4983         so distcheck doesn't fail
4984         
4985 2005-02-24  Havoc Pennington  <hp@redhat.com>
4986
4987         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4988         you must disconnect before unref, since locking and other things
4989         are screwed up otherwise. Fix assorted other locking stuff.
4990
4991         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4992         fix compilation
4993
4994         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4995         into a private header and don't export from the library
4996
4997         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4998
4999 2005-02-24  Colin Walters  <walters@verbum.org>
5000         
5001         * dbus/dbus-signature.c: New file; implements various functions
5002         related to type signatures.  Includes an interator for parsing,
5003         validation functions.
5004         (dbus_type_is_basic): Moved here from
5005         dbus-marshal-basic.c:_dbus_type_is_basic.
5006         (dbus_type_is_container): Moved here from
5007         dbus-marshal-basic.c:_dbus_type_is_container.
5008
5009         All callers of _dbus_type_is_container and _dbus_type_is_basic
5010         updated, and include dbus-signature.h.
5011
5012         * dbus/dbus-signature.h: New file; prototypes for the above.
5013
5014         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5015         dbus-signature.h.
5016
5017         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5018         function factored out of _dbus_first_type_in_signature.
5019         (_dbus_first_type_in_signature_c_str): New function; returns first
5020         type code for a type signature character.
5021
5022         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5023         handle function moves.
5024
5025         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5026
5027         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5028         function; skips to next complete type in type signature.
5029         Implemented using previous skip_one_complete_type.  Now
5030         skip_one_complete_type just delegates to
5031         _dbus_type_signature_next.
5032
5033         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5034         to dbus-signature.c
5035         (_dbus_type_is_container): Ditto.
5036
5037         * doc/dbus-specification.xml: Update introspection sample to
5038         use real type signatures.
5039
5040         * dbus/dbus-test.h: Prototype signature test.
5041
5042         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5043         signature tests.
5044
5045         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5046
5047 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5048
5049         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5050         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5051
5052 2005-02-21  Colin Walters  <walters@verbum.org>
5053
5054         * dbus/dbus-test-main.c (main): Take optional specific test
5055         argument.
5056
5057         * dbus/dbus-test.c (run_test): New function, runs a test function
5058         with no data directory.
5059         (run_data_test): Like above, but takes data directory.
5060         (dbus_internal_do_not_use_run_tests): Take
5061         specific test argument.  Replace lots of cut n' paste code
5062         with run_test and run_data_test.
5063
5064         * dbus/dbus-test.h: Update prototype for
5065         dbus_internal_do_not_use_run_tests.
5066
5067 2005-02-20  Havoc Pennington  <hp@redhat.com>
5068
5069         Fix bugs reported by Daniel P. Berrange
5070         
5071         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5072         (protected_change_watch): new function
5073         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5074         (_dbus_server_add_watch): change to work like the
5075         dbus-connection.c equivalents; like those, probably kind of
5076         busted, but should at least mostly work for now
5077         (dbus_server_disconnect): drop the lock if we were already
5078         disconnected, patch from Daniel P. Berrange
5079
5080         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5081         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5082         same stuff
5083
5084         * doc/TODO: todo about unscrewing this mess
5085
5086 2005-02-19  Colin Walters  <walters@verbum.org>
5087
5088         * glib/dbus-binding-tool-glib.c
5089         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5090
5091         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5092         as errno.h and sys/stat.h.
5093         (lose): New function, prints error with
5094         newline and exits.
5095         (lose_gerror): Similar, but takes GError for message.
5096         (main): Add --output argument to specify output file to write to,
5097         instead of always printing to stdout.  In this mode, determine
5098         timestamps on source files to see whether any are newer than the
5099         target file.  If not, exit.  Also convert a number of error
5100         messages to use lose (since it's shorter), and switch to using
5101         g_io_channel_shutdown.
5102
5103 2005-02-19  Havoc Pennington  <hp@redhat.com>
5104
5105         * glib/dbus-gobject.c
5106         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5107
5108         * glib/dbus-glib.c: fix doxygen warnings
5109
5110         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5111         is found on an <arg>
5112
5113 2005-02-17  Colin Walters  <walters@verbum.org>
5114
5115         * glib/dbus-gobject.h: Don't export
5116         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5117         
5118         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5119         (invoke_object_method): Handle it.
5120
5121         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5122         Handle rename.
5123         
5124 2005-02-17  Colin Walters  <walters@verbum.org>
5125
5126         * bus/.cvsignore, doc/.cvsignore
5127         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5128         Update.
5129
5130 2005-02-17  Colin Walters  <walters@verbum.org>
5131         
5132         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5133         Rename to DBUS_SERVICE_DBUS.
5134         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5135         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5136         Change the value from "org.freedesktop.Local"
5137         to "org.freedesktop.DBus.Local".
5138         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5139         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5140         DBUS_INTERFACE_INTROSPECTABLE.
5141         Change the value from "org.freedesktop.Introspectable"
5142         to "org.freedesktop.DBus.Introspectable".
5143         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5144         DBUS_INTERFACE_PROPERTIES.
5145         Change the value from "org.freedesktop.Properties"
5146         to "org.freedesktop.DBus.Properties".
5147         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5148         DBUS_INTERFACE_PEER.
5149         Change the value from "org.freedesktop.Peer"
5150         to "org.freedesktop.DBus.Peer".
5151         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5152         DBUS_INTERFACE_LOCAL.
5153         Change the value from "org.freedesktop.Local"
5154         to "org.freedesktop.DBus.Local".
5155
5156         All other users of those constants have been changed.
5157
5158         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5159
5160         * glib/dbus-gobject.c (handle_introspect): Use constants.
5161
5162         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5163
5164 2005-02-17  Colin Walters  <walters@verbum.org>
5165
5166         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5167         (parse_node, parse_interface, parse_method, parse_signal)
5168         (parse_property, parse_annotation): Lose if we're currently in an
5169         annotation.
5170         (parse_annotation): New function.
5171         (parser_start_element, parser_end_element): Handle annotation.
5172         (parse_method, parse_interface): Remove support for c_name attribute,
5173         switch to annotations.
5174
5175         * glib/dbus-gidl.h (interface_info_get_binding_names)
5176         (method_info_get_binding_names)
5177         (interface_info_get_binding_name, method_info_get_binding_name)
5178         (interface_info_set_binding_name, method_info_set_binding_name):
5179         Remove.
5180         (interface_info_get_annotations, method_info_get_annotations)
5181         (interface_info_get_annotation, method_info_get_annotation)
5182         (interface_info_add_annotation, method_info_add_annotation):
5183         Prototype.
5184
5185         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5186         for "bindings".
5187         (struct MethodInfo): Ditto.
5188         Straightfoward conversion of binding methods into annotation methods
5189         as prototyped.
5190
5191         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5192
5193         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5194
5195         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5196         Use new annotation API.
5197
5198         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5199         annotation element.
5200         
5201         * doc/dbus-specification.xml: Discuss introspection annotations,
5202         include list of well-known annotations.
5203
5204         * test/glib/test-service-glib.xml: Make validate against new DTD.
5205
5206 2005-02-17  Colin Walters  <walters@verbum.org>
5207
5208         This patch is based on initial work from
5209         Paul Kuliniewicz <kuliniew@purdue.edu>.
5210
5211         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5212         initialization of GValue from dbus type to here.
5213         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5214         for the "glib-genmarshal" program from a DBus type.
5215         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5216         into the C name for it we use in the glib bindings.
5217         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5218         glib C type (not GValue).
5219         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5220
5221         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5222         from dbus-gobject.c.
5223
5224         * glib/dbus-gutils.h: Prototype it.
5225
5226         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5227         (marshal_dbus_message_to_g_marshaller): Use new shared function
5228         dbus_glib_marshal_dbus_message_to_gvalue_array.
5229
5230         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5231         Will be changed once we have annotations.
5232
5233         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5234         GStaticRWLock.  Callers updated.
5235         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5236         (string_table_next): New function for iterating over zero-terminated
5237         string value array.
5238         (string_table_lookup): New function; retrieves specific entry in
5239         array.
5240         (get_method_data): New function; look up method data in object data chunk.
5241         (object_error_domain_prefix_from_object_info)
5242         (object_error_code_from_object_info): New functions, but not implemented yet.
5243         (method_interface_from_object_info): New function; retrieve interface name.
5244         (method_name_from_object_info): New function; retrieve method name.
5245         (method_arg_info_from_object_info): New function; retrieve argument data.
5246         (arg_iterate): New function; iterates over serialized argument data.
5247         (method_dir_signature_from_object_info): New function; returns a
5248         GString holding type signature for arguments for just one
5249         direction (input or output).
5250         (method_input_signature_from_object_info)
5251         (method_output_signature_from_object_info): New functions.
5252         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5253         converts dbus message arguments into a GValue array.  Used for both
5254         signal handling and method invocation.
5255         (struct DBusGlibWriteIterfaceData): New utility structure.
5256         (write_interface): New function; generate introspection XML for
5257         an interface.
5258         (introspect_interfaces): New function; gathers all interface->methods,
5259         generates introspection XML for them.
5260         (handle_introspect): Invoke introspect_interfaces.
5261         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5262         (lookup_object_and_method): New function; examines an incoming message
5263         and attempts to match it up (via interface, method name, and argument
5264         signature) with a known object and method.
5265         (gerror_domaincode_to_dbus_error_name): New function; converts a
5266         GError domain and code into a DBus error name.  Needs GError data
5267         added to object introspection to work well.
5268         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5269         GError.
5270         (invoke_object_method): New function to invoke an object method
5271         looked up via lookup_object_and_method.  Parses the incoming
5272         message, turns it into a GValue array, then invokes the marshaller
5273         specified in the DBusGMethodInfo.  Creates a new message with
5274         either return values or error message as appropriate.
5275         (gobject_message_function): Invoke lookup_object_and_method and
5276         invoke_object_method.
5277
5278         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5279         (enum DBusBindingOutputMode): New enum for binding output modes.
5280         (pretty_print): Print binding names.
5281         (dbus_binding_tool_error_quark): GError bits.
5282         (version): Fix typo.
5283         (main): Create GIOChannel for output.  Parse new --mode argument,
5284         possible values are "pretty-print", "glib-server", "glib-client".
5285         Use mode to invoke appropriate function.
5286         
5287         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5288
5289         * glib/dbus-glib-tool.h: New header, just includes GError bits
5290         for now.
5291
5292         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5293         maps binding style to name.
5294         (struct MethodInfo): Ditto.
5295         (get_hash_keys, get_hash_key): Utility function, returns keys for
5296         a GHashTable.
5297         (interface_info_new, method_info_new): Initialize bindings.
5298         (interface_info_unref, method_info_unref): Destroy bindings.
5299         (method_info_get_binding_names, method_info_get_binding_name)
5300         (interface_info_get_binding_names, interface_info_get_binding_name):
5301         Functions for retrieving binding names.
5302         (method_info_set_binding_name, interface_info_set_binding_name):
5303         Functions for setting binding names.
5304
5305         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5306         for glib binding generation.
5307
5308         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5309         and client-side glib glue generation.
5310
5311         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5312         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5313         dbus-glib-tool.h.
5314
5315         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5316         of using GClosureMarshal directly.
5317         (struct DBusGObjectInfo): Add n_infos member.
5318
5319         * test/glib/test-service-glib.xml: New file; contains introspection data
5320         for MyTestObject used in test-service-glib.c.
5321
5322         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5323         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5324         (my_object_uppercase, my_object_many_args): New test methods.
5325         (main): Use dbus_g_object_class_install_info to include generated object
5326         info.
5327
5328         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5329         as well as client-side bindings.
5330
5331         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5332         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5333         using both the dbus_gproxy stuff directly as well as the generated bindings.
5334
5335 2005-02-15  Havoc Pennington  <hp@redhat.com>
5336
5337         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5338         complete a pending call, don't run filters first.
5339
5340         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5341         dbus_pending_call_steal_reply
5342
5343         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5344         _dbus_connection_block_pending_call
5345         (dbus_pending_call_get_reply): change to steal_reply and return a
5346         ref
5347
5348         * dbus/dbus-connection.c
5349         (dbus_connection_send_with_reply_and_block): port to work in terms
5350         of DBusPendingCall
5351         (_dbus_connection_block_pending_call): replace block_for_reply
5352         with this
5353
5354 2005-02-14  Havoc Pennington  <hp@redhat.com>
5355
5356         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5357         properly handle looking up group information by name; fix 
5358         from j@bootlab.org
5359
5360 2005-02-13  Havoc Pennington  <hp@redhat.com>
5361
5362         * dbus/dbus-connection.c (dbus_connection_return_message) 
5363         (dbus_connection_borrow_message): hold dispatch lock while message
5364         is outstanding
5365         (_dbus_connection_block_for_reply): hold dispatch lock while we
5366         block for the reply, so nobody steals our reply
5367         (dbus_connection_pop_message): hold the dispatch lock while we
5368         pluck the message
5369
5370 2005-02-13  Havoc Pennington  <hp@redhat.com>
5371
5372         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5373         (_dbus_connection_release_dispatch)
5374         (_dbus_connection_acquire_io_path)
5375         (_dbus_connection_release_io_path): make the mutex and condvar
5376         control access to the "acquired" flag. Drop the connection lock
5377         while waiting on the condvar. Hopefully these are baby steps in
5378         roughly the right direction.
5379
5380 2005-02-13  Havoc Pennington  <hp@redhat.com>
5381
5382         * dbus/dbus-connection.c: use separate mutexes for the condition
5383         variables; this is some kind of baseline for sanity, but the
5384         condition variables still aren't used correctly afaict
5385
5386 2005-02-13  Havoc Pennington  <hp@redhat.com>
5387
5388         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5389         fix a double-unlock
5390
5391         * dbus/dbus-connection.c
5392         (_dbus_connection_detach_pending_call_unlocked): add this
5393
5394         Initial semi-correct pass through to fix thread locking; there are
5395         still some issues with the condition variable paths I'm pretty
5396         sure
5397         
5398         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5399         lock/unlock calls
5400
5401         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5402         rename to add _unlocked
5403         (struct DBusConnection): move "dispatch_acquired" and
5404         "io_path_acquired" to use only one bit each.
5405         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5406         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5407         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5408         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5409         (_dbus_connection_remove_timeout) 
5410         (_dbus_connection_toggle_timeout): drop lock when calling out to
5411         user functions; done in a hacky/bad way.
5412         (_dbus_connection_send_and_unlock): add a missing unlock
5413         (_dbus_connection_block_for_reply): add a missing unlock
5414
5415         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5416         drop lock in a hacky probably unsafe way to call out to user
5417         function
5418
5419 2005-02-12  Havoc Pennington  <hp@redhat.com>
5420
5421         * tools/dbus-tree-view.c (info_set_func_text): display more
5422         details on args
5423
5424         * bus/driver.c (bus_driver_handle_list_services): list the bus
5425         driver
5426
5427         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5428
5429         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5430         (method_info_get_n_args): new function
5431
5432 2005-02-12  Havoc Pennington  <hp@redhat.com>
5433
5434         * bus/driver.c (bus_driver_handle_introspect): add introspection
5435         for bus driver
5436
5437 2005-02-12  Havoc Pennington  <hp@redhat.com>
5438
5439         * bus/driver.c: put the signature of each bus driver method in the
5440         table of handlers and check it on incoming calls; this isn't
5441         really useful, but going to add introspect support in a minute.
5442
5443 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5444
5445         * mono/Connection.cs: The unpredictability of finalizers in mono
5446         prevents us from deterministically disconnecting the filters from
5447         the Service class's finalizer, so move tracking of filters and
5448         matches here.  Add API for that.
5449
5450         * mono/Service.cs: Remove the code, add code which calls the
5451         methods now on the Connection class.
5452
5453 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5454
5455         * python/dbus.py (class Sender): added to support dbus signals better
5456         (Bus::add_signal_receiver): added expand_args parameter which defaults
5457         to True.  When expand args is True the signal handler will pass the 
5458         message arguments as parameters to the signal handler.  If False
5459         revert to previous behavior where the signal handler must get the
5460         argument list from the message.  This is to help port applications
5461         like HAL that have a tendancy to send variable length argument lists.
5462         self._match_rule_to_receivers is now a dict of dicts.
5463         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5464         removing it from a list
5465         (Bus::_signal_func): change signal handlers so that interface,
5466         signal_name, service, path and message are packed into a Sender
5467         object and that is passed to the handler.  If expand_args is True
5468         extract the args list from the message and append it to the parameter
5469         list
5470         
5471         * python/dbus_bindings.pyx.in (class Signature): added to support 
5472         signiature types
5473         (MessageIter::__init__): changed iteration limit to match D-BUS
5474         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5475         STRUCT and VARIENT type support
5476         (MessageIter::python_value_to_dbus_sig): made recursive to support
5477         recursive types
5478         (MessageIter::append*): added Signature, dict, tuple 
5479         support
5480
5481         * python/examples/example-client.py: added examples of getting tuples
5482         and dicts
5483
5484         * python/examples/example-service.py: added examples of sending tuples
5485         and dicts
5486
5487         * python/examples/example-signal-recipient.py: Fixed to handle new
5488         signal callback format
5489
5490 2005-02-10  Havoc Pennington  <hp@redhat.com>
5491
5492         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5493         (call dbus_g_proxy_add_signal)
5494
5495         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5496         escape the hostname
5497         (_dbus_server_new_for_domain_socket): escape the path
5498
5499         * dbus/dbus-address.c (dbus_address_escape_value): new
5500         (dbus_address_unescape_value): new
5501         (dbus_parse_address): unescape values
5502
5503         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5504
5505         * doc/dbus-specification.xml: explain how to escape values in
5506         addresses
5507
5508 2005-02-10  Havoc Pennington  <hp@redhat.com>
5509
5510         * dbus/dbus-message-factory.c (generate_special): modify test to
5511         avoid using a non-basic dict key
5512
5513         * dbus/dbus-marshal-validate-util.c: add test for the below
5514
5515         * doc/dbus-specification.xml: require that dict keys are a basic
5516         type
5517
5518         * dbus/dbus-marshal-validate.c
5519         (_dbus_validate_signature_with_reason): require that dict key is a
5520         basic type
5521
5522 2005-02-10  Havoc Pennington  <hp@redhat.com>
5523
5524         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5525         change to be _and_unlock instead of _unlocked
5526
5527         * dbus/dbus-connection.c
5528         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5529         have no_update so we can find this bug quickly in future
5530
5531 2005-02-10  Havoc Pennington  <hp@redhat.com>
5532
5533         * dbus/dbus-message-util.c (verify_test_message): tests for string
5534         array
5535
5536         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5537         support for arrays of string/signature/path
5538
5539 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5540
5541         * dbus/dbus-connection.c
5542         (_dbus_connection_queue_received_message_link,
5543         _dbus_connection_message_sent): Add the path to
5544         the verbose output.
5545         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5546         _dbus_connection_send_preallocated_unlocked(), updated the
5547         dispatch status, and unlocks.  Fixes a bug where certain
5548         situations (like a broken pipe) could cause a Disconnect message
5549         to not be sent, tricking the bus into thinking a service was still
5550         there when the process had quit.
5551         (_dbus_connection_send_preallocated): Call
5552         _dbus_connection_send_preallocated_and_unlock().
5553         (_dbus_connection_send_and_unlock): Added.  Calls
5554         _dbus_connection_send_preallocated_and_unlock().
5555         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5556         (dbus_connection_send_with_reply): Update the dispatch status and
5557         unlock.
5558
5559         * mono/Service.cs (~Service): Added.  Removes the filter so that
5560         we don't get unmanaged code calling back into a GCed delegate.
5561         (RemoveFilter); Added.
5562
5563 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5564
5565         * dbus/dbus-message.c (dbus_message_iter_open_container):
5566         - Removed check for iterator type being an array because
5567         get_arg_type does not work with writer iterators
5568         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5569
5570 2005-02-07  Havoc Pennington  <hp@redhat.com>
5571
5572         * doc/dbus-specification.xml: some more language cleanups; add
5573         stuff about how to deal with invalid protocol and extension
5574         points; add _ to allowed chars in auth commands; add EXTENSION_
5575         auth command prefix
5576
5577 2005-02-06  Havoc Pennington  <hp@redhat.com>
5578
5579         * s/expected/required/ in a couple places for clarity
5580
5581 2005-02-07  Colin Walters  <walters@verbum.org>
5582
5583         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5584         sender or proposed_recipient.
5585
5586 2005-02-06  Havoc Pennington  <hp@redhat.com>
5587
5588         * dbus/dbus-message-factory.c (generate_special): more tests
5589
5590         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5591         array length that exceeds the maximum
5592
5593 2005-02-05  Havoc Pennington  <hp@redhat.com>
5594
5595         * dbus/dbus-message-factory.c (generate_special): more test cases,
5596         increasing coverage
5597
5598         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5599         reason why a signature was invalid
5600
5601         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5602         skip the length of the string before we look at it in validation
5603
5604         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5605         equal_substring
5606
5607         * dbus/dbus-message.c (_dbus_message_loader_new): default
5608         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5609
5610 2005-02-05  Havoc Pennington  <hp@redhat.com>
5611
5612         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5613         if the signature of a variant was empty
5614         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5615         struct with no element type)
5616
5617         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5618         mangled messages to break things
5619
5620 2005-02-04  Havoc Pennington  <hp@redhat.com>
5621
5622         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5623         g_quark_try_string() so it actually can return 0
5624         (dbus_g_proxy_connect_signal): ditto
5625
5626 2005-02-04  Havoc Pennington  <hp@redhat.com>
5627
5628         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5629         bogus warning
5630         (tristring_from_message): assert cleanly on null path/interface
5631         (should not be possible though I decided later)
5632         (dbus_g_proxy_dispose): move proxy manager unregistration here
5633         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5634         g_return_if_fail() checks
5635
5636 2005-02-04  Havoc Pennington  <hp@redhat.com>
5637
5638         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5639
5640         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5641         (with some minor changes)
5642
5643         * doc/dbus-specification.xml: add deprecated attribute to
5644         introspection format
5645
5646 2005-01-31  Havoc Pennington  <hp@redhat.com>
5647
5648         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5649         think it's sort of right
5650
5651 2005-01-30  Havoc Pennington  <hp@redhat.com>
5652
5653         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5654
5655 2005-01-30  Havoc Pennington  <hp@redhat.com>
5656
5657         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5658
5659         * autogen.sh: change to autotools 1.9
5660
5661         * glib/dbus-gproxy.c: completely change how signals work
5662         (dbus_g_proxy_add_signal): new function to specify signature of a
5663         signal
5664         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5665         and g_warning if the incoming message has the wrong signature.
5666
5667 2005-01-30  Havoc Pennington  <hp@redhat.com>
5668
5669         * tools/dbus-names-model.c (have_names_notify): fix this
5670
5671         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5672         up the string array handling a bit 
5673
5674 2005-01-30  Havoc Pennington  <hp@redhat.com>
5675
5676         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5677         (dbus_g_pending_call_cancel): new function
5678
5679         * dbus/dbus-glib.h: move GType decls for connection/message here;
5680         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5681         here, just kind of rationalizing how we handle all that
5682
5683         * tools/dbus-names-model.c: new file for a tree model listing the
5684         services on a bus
5685
5686         * tools/dbus-tree-view.c (model_new): use proper typing on the
5687         model rows
5688
5689 2005-01-30  Havoc Pennington  <hp@redhat.com>
5690
5691         * glib/dbus-gmain.c: add a custom GSource back that just checks
5692         whether the message queue has anything in it; otherwise, there are 
5693         cases where we won't see messages in the queue since there was no 
5694         IO visible to the glib main loop
5695
5696         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5697         increase default message timeout to 25 seconds
5698
5699 2005-01-30  Havoc Pennington  <hp@redhat.com>
5700
5701         * test/glib/test-profile.c (no_bus_stop_server): remove the
5702         warning about the g_warning that I just fixed
5703
5704         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5705         custom source, seems to be a lot easier to understand and work
5706         better.
5707
5708 2005-01-30  Havoc Pennington  <hp@redhat.com>
5709
5710         I think this main loop thing is conceptually broken, but here are 
5711         some band aids. I'll maybe rewrite it in a minute.
5712         
5713         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5714         custom GSource, so don't pass it in; confusing
5715         (gsource_server_finalize, gsource_connection_finalize): add
5716         finalize handlers that remove all the watches.  
5717
5718 2005-01-30  Havoc Pennington  <hp@redhat.com>
5719
5720         * glib/dbus-gobject.c (introspect_properties): fix the XML
5721         generated
5722
5723         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5724         which effectively detects the use of freed messages
5725
5726         * glib/dbus-gobject.c (handle_introspect): modify and return the
5727         reply message instead of the incoming message
5728
5729         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5730         gee, maybe it should SEND THE XML instead of just making a string
5731         and freeing it again ;-)
5732
5733         * tools/dbus-print-message.c (print_message): improve printing of
5734         messages
5735
5736         * configure.in: add debug-glib.service to the output
5737
5738 2005-01-30  Havoc Pennington  <hp@redhat.com>
5739
5740         dbus-viewer introspected and displayed the bus driver
5741         
5742         * dbus/dbus-object-tree.c 
5743         (object_tree_test_iteration): add tests for a handler registered on "/"
5744
5745         * dbus/dbus-object-tree.c
5746         (_dbus_decompose_path): fix to handle path "/" properly
5747         (run_decompose_tests): add tests for path decomposition
5748         
5749         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5750         properly
5751
5752         * glib/dbus-gobject.c (handle_introspect): fix quotes
5753
5754         * test/glib/run-test.sh: support launching the bus, then running
5755         dbus-viewer
5756
5757         * test/glib/test-service-glib.c (main): put in a trivial gobject
5758         subclass and register it on the connection
5759
5760         * bus/driver.c (bus_driver_handle_introspect): implement
5761         introspection of the bus driver service
5762
5763         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5764         identifiers, doctype decl
5765
5766         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5767         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5768         returning the service unchanged.
5769         (bus_driver_handle_message): remove old check for reply_serial in
5770         method calls, now the message type deals with that
5771         (bus_driver_handle_message): handle NULL interface
5772
5773         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5774
5775         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5776         -1 for len
5777
5778         * tools/dbus-viewer.c: add support for introspecting a service on
5779         a bus
5780
5781         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5782         (dbus_g_pending_call_unref): add
5783
5784 2005-01-29  Havoc Pennington  <hp@redhat.com>
5785
5786         * tools/dbus-tree-view.c: add support for displaying properties.
5787         (run dbus-viewer with an introspect xml file as arg, then resize
5788         the window so the tree elements show up, not sure what that is)
5789
5790         * glib/dbus-gobject.c (handle_introspect): return
5791         org.freedesktop.Properties and org.freedesktop.Introspectable
5792         interfaces when we are introspected.
5793
5794         * doc/dbus-specification.xml: allow empty interface name when 
5795         Get/Set a property
5796
5797 2005-01-29  Havoc Pennington  <hp@redhat.com>
5798
5799         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5800         though it uses glib, it could be extended for any binding in
5801         principle
5802
5803         * glib/dbus-gobject.c (gobject_message_function): change to the
5804         new way properties work
5805
5806         * dbus/dbus-protocol.h: add the new interfaces
5807
5808         * doc/dbus-specification.xml: document the introspection format,
5809         Introspectable interface, and add an org.freedesktop.Properties
5810         interface.
5811
5812         * glib/dbus-gparser.c: add support for a <property> element
5813
5814         * glib/dbus-gidl.c: add PropertyInfo
5815
5816         * glib/dbus-gobject.c (handle_introspect): put the outermost
5817         <node> outside the signal and property descriptions.
5818         (introspect_properties): export properties as <property> rather
5819         than as method calls
5820
5821 2005-01-28  Havoc Pennington  <hp@redhat.com>
5822
5823         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5824         related to authentication protocol
5825
5826 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5827
5828         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5829                 - BUS_ACTIVATION -> BUS_STARTER
5830                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5831                 - class MessageIter (__init__): Added recursion checking 
5832                 so we throw a nice error instead of just disconnecting from the
5833                 bus.
5834                 (get): Added arg_type parameter for recursion.
5835                 Removed the nil type
5836                 Added signiture type placeholder (not implemented)
5837                 Added struct type placeholder (not implemented)
5838                 Added varient type placeholder (not implemented)
5839                 Commented out dict type for now     
5840                 (get_element_type): renamed from get_array_type
5841                 (get_*): changed to use the dbus_message_iter_get_basic API
5842                 (get_*_array): removed in favor of recursive get_array method
5843                 (get_array): new recursive method which calls get to marshal
5844                 the elements of the array
5845                 (value_to_dbus_sig): New method returns the corrasponding
5846                 dbus signiture to a python value
5847                 (append): Comment out dict handling for now
5848                 Handle lists with the new recursive API
5849                 Comment out None handling for now
5850                 (append_nil): removed
5851                 (append_*): changed to use dbus_message_iter_append_basic API
5852                 (append_*_array): removed in favor of recursive append_array 
5853                 method
5854                 (__str__): Make it easier to print out recursive iterators
5855                 for debugging
5856                 - class Message (__str__): moved type inspection to the
5857                 MessageIter class' __str__ method
5858                 (get_iter): Added an append parameter wich defaults to False
5859                 If True use the new API's to create an append iterator
5860
5861         * python/dbus.py: Update to use new bindings API
5862                 - TYPE_ACTIVATION -> TYPE_STARTER
5863                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5864                 - class ActivationBus -> class StarterBus
5865                 - class RemoteObject (__call__): get an append iterator
5866                 - (_dispatch_dbus_method_call): get an append iterator
5867                 - class Object (emit_signal): get an append iterator
5868
5869         * python/examples/: Fixed up the examples to work with the new API
5870                 
5871 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5872
5873         * configure.in: Bump version up to 0.30.
5874
5875         * HACKING: Add a release item to bump the version number up after 
5876         a release.
5877
5878 2005-01-28  Havoc Pennington  <hp@redhat.com>
5879
5880         * doc/dbus-specification.xml: update to describe 16-bit types and
5881         dict entries
5882
5883         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5884         assertion
5885
5886         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5887         type
5888
5889         * dbus/dbus-marshal-recursive.c: implement
5890
5891 2005-01-27  Havoc Pennington  <hp@redhat.com>
5892
5893         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5894
5895         * configure.in: find the right type for 16 and 32 bit ints as well
5896         as 64
5897
5898         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5899         the 16-bit types so people don't have to stuff them in 32-bit or
5900         byte arrays.
5901
5902 2005-01-27  Havoc Pennington  <hp@redhat.com>
5903
5904         * dbus/dbus-message.c: byteswap the message if you init an
5905         iterator to read/write from it
5906         
5907         * dbus/dbus-marshal-byteswap.c: new file implementing 
5908         _dbus_marshal_byteswap()
5909
5910         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5911
5912 2005-01-26  Havoc Pennington  <hp@redhat.com>
5913         
5914         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5915         build, apparently - nobody noticed?)
5916         
5917 2005-01-26  Havoc Pennington  <hp@redhat.com>
5918
5919         * dbus/dbus-marshal-recursive.h: remove todo comment
5920
5921 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5922
5923         * Land the mono binding changes to conform to the new APIs.
5924
5925         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5926         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5927
5928         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5929         type code as a string.
5930         (InitAppending): Rename dbus_message_append_iter_init() to
5931         dbus_message_iter_init_append().
5932
5933         * mono/BusDriver.cs: Rename ServiceEventHandler to
5934         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5935         Rename ServiceOwnerChanged to NameOwnerChanged.
5936
5937         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5938         underlying C call.
5939
5940         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5941
5942         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5943         dbus_bus_acquire_service() to dbus_bus_request_name().
5944
5945         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5946         of Type.UnderlyingSystemType to get the correct element type for
5947         the array.
5948         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5949         dbus_message_get_{element|arg}_type() instead of
5950         dbus_message_iter_init_array_iterator().
5951         (Append): Replace dbus_message_iter_append_array() with
5952         dbus_message_iter_open_container() and
5953         dbus_message_iter_close_container().
5954
5955         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5956         types have been removed.
5957         
5958         * mono/DBusType/*.cs: Replace calls of
5959         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5960         but specify the type in the DllImport extern declaration.  Ditto
5961         for dbus_message_iter_append_[type]() ->
5962         dbus_message_iter_append_basic().
5963
5964         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5965         NameOwnerChangedHandler.
5966
5967 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5968
5969         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5970                 - get_base_service -> get_unique_name
5971                 - bus_get_base_service -> bus_get_unique_name
5972                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5973                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5974                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5975                 - bus_activate_service -> bus_start_service_by_name
5976                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5977                 - bus_acquire_service -> bus_request_name
5978                 - dbus_bus_acquire_service -> dbus_bus_request_name
5979                 - bus_service_exists -> bus_name_has_owner
5980                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5981
5982         * python/dbus.py: Rename of methods
5983                 - activate_service -> start_service_by_name
5984                 - bus_acquire_service -> bus_request_name
5985                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5986                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5987
5988         
5989 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5990
5991         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5992         signature for the method that can't be found.
5993
5994         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5995         the message has any arguments, we need to call
5996         _dbus_type_reader_get_current_type(), not
5997         _dbus_type_reader_has_next().
5998
5999 2005-01-24  Havoc Pennington  <hp@redhat.com>
6000
6001         * dbus/dbus-message-factory.c: more testing of message validation
6002
6003         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6004         header
6005
6006 2005-01-23  Havoc Pennington  <hp@redhat.com>
6007
6008         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6009         get this all working, not many tests in the framework yet though
6010
6011 2005-01-22  Havoc Pennington  <hp@redhat.com>
6012
6013         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6014         tutorial, based on work from David Wheeler.
6015
6016 2005-01-21  Havoc Pennington  <hp@redhat.com>
6017
6018         * dbus/dbus-bus.c: add more return_if_fail checks
6019
6020         * dbus/dbus-message.c (load_message): have the "no validation"
6021         mode (have to edit the code to toggle the mode for now though)
6022
6023         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6024         skips all validation; I want to use this at least for benchmark
6025         baseline, I'm not sure if it should be a publicly-available switch.
6026
6027 2005-01-21  Havoc Pennington  <hp@redhat.com>
6028
6029         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6030         toplevel doxygen group as the low-level API stuff
6031
6032         * dbus/dbus.h: note that libdbus is the low-level API
6033
6034 2005-01-20  Havoc Pennington  <hp@redhat.com>
6035
6036         * update-dbus-docs.sh: script to update docs on the web site, only
6037         works for me though. neener.
6038
6039 2005-01-20  Havoc Pennington  <hp@redhat.com>
6040
6041         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6042         code can reveal bugs in it
6043
6044 2005-01-20  Havoc Pennington  <hp@redhat.com>
6045
6046         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6047         select() version, patches from Tor Lillqvist
6048
6049 2005-01-20  Havoc Pennington  <hp@redhat.com>
6050
6051         * doc/dbus-tutorial.xml: replace > with &gt;
6052
6053         * bus/services.c (bus_registry_acquire_service): validate the name
6054         and return a better error if it's no good.
6055
6056         * doc/dbus-specification.xml: note NO_AUTO_START change
6057
6058         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6059         from AUTO_START, we're toggling the default
6060
6061         * bus/dispatch.c: adapt the tests to change of auto-start default
6062
6063 2005-01-18  Havoc Pennington  <hp@redhat.com>
6064
6065         * rename dbus-daemon-1 to dbus-daemon throughout
6066
6067 2005-01-18  Havoc Pennington  <hp@redhat.com>
6068
6069         * Throughout, grand renaming to strip out the use of "service",
6070         just say "name" instead (or "bus name" when ambiguous).  Did not
6071         change the internal code of the message bus itself, only the
6072         programmer-facing API and messages.
6073         
6074         * doc/dbus-specification.xml: further update the message bus section
6075         
6076         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6077         in error case
6078
6079 2005-01-17  Havoc Pennington  <hp@redhat.com>
6080
6081         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6082         ever
6083
6084         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6085         "invalid name character" not only non-ASCII
6086
6087         * doc/dbus-specification.xml: further update spec, message bus 
6088         parts are still out-of-date but the marshaling etc. stuff is now
6089         accurate-ish
6090
6091 2005-01-17  Havoc Pennington  <hp@redhat.com>
6092
6093         * doc/dbus-specification.xml: partially update spec
6094
6095 2005-01-17  Havoc Pennington  <hp@redhat.com>
6096
6097         * Throughout, align variant bodies according to the contained
6098         type, rather than always to 8. Should save a fair bit of space in
6099         message headers.
6100         
6101         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6102         fix handling of case where p == end
6103
6104         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6105
6106 2005-01-17  Havoc Pennington  <hp@redhat.com>
6107
6108         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6109
6110         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6111         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6112         are marshaling/unmarshaling a boolean.
6113
6114 2005-01-16  Havoc Pennington  <hp@redhat.com>
6115
6116         This is about it on what can be disabled/deleted from libdbus
6117         easily, back below 150K anyhow. Deeper cuts are more work than 
6118         just turning the code off as I've done here.
6119         
6120         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6121         signed int convenience funcs
6122
6123         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6124         verbose mode
6125
6126         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6127         things out of libdbus
6128
6129         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6130         
6131         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6132         tests-enabled-only, though it should probably be deleted)
6133
6134         * dbus/dbus-message-util.c: same stuff
6135
6136         * dbus/dbus-auth-util.c: same stuff
6137
6138 2005-01-16  Havoc Pennington  <hp@redhat.com>
6139
6140         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6141
6142         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6143         way for stripping down dbus-userdb.c stuff included in libdbus.
6144         Rename _dbus_parse_uid for consistency.
6145
6146 2005-01-16  Havoc Pennington  <hp@redhat.com>
6147
6148         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6149         name the assertion failed in
6150
6151         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6152         (_dbus_return_val_if_fail): assert that the name of the function
6153         containing the check doesn't start with '_', since we only want to 
6154         use checks on public functions
6155         
6156         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6157         checks to assertions
6158
6159         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6160         change checks to asserts for private function
6161
6162         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6163         to asserts for private function
6164
6165         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6166         broken assertion that was breaking make check
6167         (_dbus_type_reader_array_is_empty): remove this rather than fix
6168         it, was only used in assertions
6169
6170 2005-01-16  Havoc Pennington  <hp@redhat.com>
6171
6172         * test/unused-code-gc.py: hacky script to find code that's used
6173         only by the bus (not libdbus) or used only by tests or not used at
6174         all. It has some false alarms, but looks like we can clean up a
6175         lot of size from libdbus.
6176
6177         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6178         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6179         
6180 2005-01-16  Havoc Pennington  <hp@redhat.com>
6181
6182         * Add and fix docs according to Doxygen warnings throughout
6183         source.
6184         
6185         * dbus/dbus-marshal-recursive.c
6186         (_dbus_type_reader_array_is_empty): change this to just call
6187         array_reader_get_array_len() and make it static
6188
6189         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6190         from get_array_type
6191         (dbus_message_iter_init_append): rename from append_iter_init
6192
6193         * dbus/dbus-marshal-recursive.c
6194         (_dbus_type_reader_get_element_type): rename from
6195         _dbus_type_reader_get_array_type
6196
6197 2005-01-15  Havoc Pennington  <hp@redhat.com>
6198
6199         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6200
6201         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6202         when DBUS_DISABLE_ASSERT
6203         (_dbus_marshal_set_basic): be sure we align for the string length
6204
6205         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6206         this look faster
6207
6208         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6209         inline macro version
6210         (_dbus_string_set_byte): provide inline macro version
6211
6212 2005-01-15  Havoc Pennington  <hp@redhat.com>
6213
6214         * Land the new message args API and type system.
6215
6216         This patch is huge, but the public API change is not 
6217         really large. The set of D-BUS types has changed somewhat, 
6218         and the arg "getters" are more geared toward language bindings;
6219         they don't make a copy, etc.
6220
6221         There are also some known issues. See these emails for details
6222         on this huge patch:
6223         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6224         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6225         
6226         * dbus/dbus-marshal-*: all the new stuff
6227
6228         * dbus/dbus-message.c: basically rewritten
6229
6230         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6231         freed blocks to be all non-nul bytes so using freed memory is less
6232         likely to work right
6233
6234         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6235         DBUS_FAIL_MALLOC=N environment variable, so you can do
6236         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6237         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6238         thorough.
6239
6240         * qt/message.cpp: port to the new message args API
6241         (operator<<): use str.utf8() rather than str.unicode()
6242         (pretty sure this is right from the Qt docs?)
6243
6244         * glib/dbus-gvalue.c: port to the new message args API
6245
6246         * bus/dispatch.c, bus/driver.c: port to the new message args API
6247
6248         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6249         "locked" flag to TRUE and align_offset to 0; I guess we never
6250         looked at these anyhow, but seems cleaner.
6251
6252         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6253         move allocation padding macro to this header; use it to implement
6254         (_DBUS_STRING_STATIC): ability to declare a static string.
6255
6256         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6257         change to return TRUE if the interface is not set.
6258
6259         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6260         to dbus-marshal-validate.[hc]
6261
6262         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6263         dbus-internals.c
6264
6265         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6266         to dbus-marshal-*.[hc]
6267
6268         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6269         function here from dbus-marshal.c
6270
6271 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6272
6273         * NEWS: Update for 0.23.
6274
6275         * configure.in: Release 0.23.
6276
6277 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6278
6279         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6280         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6281         behind.
6282
6283         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6284         uninstall"
6285
6286         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6287         is an enum, get the enum's underlying type.  Another mono
6288         1.1.3 fix.
6289
6290 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6291
6292         Patch from Sjoerd Simons <sjoerd@luon.net>
6293
6294         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6295         DESTDIR.  It breaks stuff.
6296
6297 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6298
6299         Patch from Tambet Ingo <tambet@ximian.com>
6300
6301         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6302         calling type.GetElementType().  The code previously depended on
6303         broken Mono behavior, which was fixed in Mono 1.1.3.
6304
6305         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6306         Activator.CreateInstance() so that the class's constructor is
6307         called with the right parameters.
6308
6309 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6310
6311         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6312
6313         * dbus/dbus-connection.c
6314         (_dbus_connection_queue_received_message_link): Call
6315         _dbus_connection_remove_timeout() instead of the _locked()
6316         variant, since it's always called from
6317         _dbus_connection_handle_watch(), which handles the locking.
6318         Removed the _locked() variant since it's no longer used.
6319
6320 2005-01-03  Havoc Pennington  <hp@redhat.com>
6321
6322         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6323         return
6324         
6325 2004-12-26  Havoc Pennington  <hp@redhat.com>
6326
6327         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6328
6329 2005-01-03  Havoc Pennington  <hp@redhat.com>
6330
6331         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6332         floating point
6333
6334         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6335
6336 2005-01-02  Havoc Pennington  <hp@redhat.com>
6337
6338         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6339
6340 2005-01-01  Havoc Pennington  <hp@redhat.com>
6341
6342         * configure.in: add -Wfloat-equal
6343
6344 2005-01-01  Havoc Pennington  <hp@redhat.com>
6345
6346         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6347         for a variety of reasons '==' doesn't do this.
6348
6349 2004-12-31  Havoc Pennington  <hp@redhat.com>
6350
6351         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6352         I keep wishing I had
6353
6354 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6355
6356         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6357
6358 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6359
6360         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6361         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6362         dbus-protocol.h.  Because they are defines and not enums they are not
6363         autogenerated.
6364
6365 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6366
6367         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6368         dbus_bus_activate_service
6369
6370         * python/dbus.py (Bus.activate_service): activate a service on the
6371         bus.
6372
6373 2004-12-24  Havoc Pennington  <hp@redhat.com>
6374
6375         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6376         file format has also changed and I haven't adapted to that yet
6377         
6378         * Makefile.am: load .gcno files from latest gcc
6379
6380 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6381         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6382
6383         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6384         lowlevel binding
6385
6386         * python/dbus.py (get_unix_user): Added binding to 
6387         call dbus_bindings.bus_get_unix_user
6388
6389         * python/extract.py: Modified the proto_pat regex to
6390         handle unsigned long
6391
6392 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6393
6394         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6395         better POSIX compliance.
6396
6397 2004-12-19  Havoc Pennington  <hp@redhat.com>
6398
6399         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6400         (_dbus_string_insert_8_aligned): new functions
6401
6402         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6403
6404 2004-12-18  Havoc Pennington  <hp@redhat.com>
6405
6406         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6407         macro
6408
6409         * dbus/dbus-message.c: fix a comment, and add a still-unused
6410         not-implemented function
6411
6412         * dbus/dbus-marshal.h: fix comment
6413
6414         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6415
6416 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6417
6418         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6419         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6420         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6421         Type.UnderlyingSystemType to get the actual system type
6422         underneath.  This code previously depended on the broken Mono
6423         behavior, which was fixed in 1.1.3.
6424
6425 2004-11-27  Havoc Pennington  <hp@redhat.com>
6426
6427         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6428         are disabled
6429         (_dbus_string_get_const_data): inline when asserts are disabled
6430
6431         * dbus/dbus-message.c: record the _dbus_current_generation of
6432         creation so we can complain if dbus_shutdown() is used improperly.
6433         Do this only if checks are enabled.
6434
6435         * dbus/dbus-connection.c: ditto
6436         
6437 2004-11-26  Havoc Pennington  <hp@redhat.com>
6438
6439         * test/glib/test-profile.c: add with_bus mode to profile echoes
6440         that go through the bus.
6441
6442         * test/glib/run-test.sh: add ability to run test-profile
6443
6444         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6445         config file reload.
6446
6447 2004-11-26  Havoc Pennington  <hp@redhat.com>
6448
6449         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6450         thing was implemented
6451
6452 2004-11-26  Havoc Pennington  <hp@redhat.com>
6453
6454         * test/glib/test-profile.c: tweak a bit, add support for some
6455         made-up minimal malloc overhead with plain sockets, since in 
6456         real life some sort of buffers are unavoidable thus we could 
6457         count them in the theoretical best case
6458
6459 2004-11-26  Havoc Pennington  <hp@redhat.com>
6460
6461         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6462         where I was trying to cache one too many messages
6463
6464 2004-11-26  Havoc Pennington  <hp@redhat.com>
6465
6466         * dbus/dbus-message.c: reimplement message cache as an array which 
6467         makes the cache about twice as fast and saves maybe 1.5% overall
6468
6469 2004-11-26  Havoc Pennington  <hp@redhat.com>
6470
6471         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6472         message cache lock here
6473
6474 2004-11-26  Havoc Pennington  <hp@redhat.com>
6475
6476         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6477         the "char byte_order" next to each other to save 4 bytes
6478         (dbus_message_new_empty_header): reduce preallocation, since the
6479         message cache should achieve a similar effect
6480         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6481         message cache that keeps a few DBusMessage around in a pool,
6482         another 8% speedup or so.
6483
6484         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6485
6486 2004-11-25  Havoc Pennington  <hp@redhat.com>
6487
6488         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6489         to write, without reading or blocking, try it before the poll()
6490         and skip the poll() if nothing remains to write. This is about a
6491         3% speedup in the echo client/server
6492
6493 2004-11-25  Havoc Pennington  <hp@redhat.com>
6494
6495         The primary change here is to always write() once before adding
6496         the write watch, which gives us about a 10% performance increase.
6497         
6498         * dbus/dbus-transport-unix.c: a number of modifications to cope
6499         with removing messages_pending
6500         (check_write_watch): properly handle
6501         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6502         messages_pending stuff
6503         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6504         AUTHENTICATED cases
6505         (unix_handle_watch): after writing, see if the write watch can be
6506         removed
6507         (unix_do_iteration): assert that write_watch/read_watch are
6508         non-NULL rather than testing that they aren't, since they 
6509         aren't allowed to be NULL. check_write_watch() at the end so 
6510         we add the watch if we did not finish writing (e.g. got EAGAIN)
6511
6512         * dbus/dbus-transport-protected.h: remove messages_pending call,
6513         since it resulted in too much inefficient watch adding/removing; 
6514         instead we now require that the transport user does an iteration 
6515         after queueing outgoing messages, and after trying the first
6516         write() we add a write watch if we got EAGAIN or exceeded our 
6517         max bytes to write per iteration setting
6518
6519         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6520         function
6521
6522         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6523         freed and then accessed, valgrind flagged this bug, fix it
6524
6525         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6526         as the last valid field plus 1, where really it is equal to the
6527         last valid field. Corrects some message corruption issues.
6528
6529         * dbus/dbus-mainloop.c: verbosity changes
6530
6531         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6532         instead of aborting in one of the test codepaths
6533
6534         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6535         caused not printing the pid ever again if a verbose was missing
6536         the newline at the end
6537         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6538
6539         * dbus/dbus-connection.c: verbosity changes; 
6540         (dbus_connection_has_messages_to_send): new function
6541         (_dbus_connection_message_sent): no longer call transport->messages_pending
6542         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6543         try to write() immediately, so we can avoid the write watch. This
6544         is the core purpose of this patchset
6545         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6546         dump the outgoing message queue, so nobody will get confused
6547         trying to send them or thinking stuff is pending to be sent
6548
6549         * bus/test.c: verbosity changes
6550
6551         * bus/driver.c: verbosity/assertion changes
6552
6553         * bus/dispatch.c: a bunch of little tweaks to get it working again
6554         because this patchset changes when/where you need to block.
6555
6556 2004-11-23  Havoc Pennington  <hp@redhat.com>
6557
6558         * test/glib/test-profile.c: modify to accept a plain_sockets
6559         argument in which case it will bench plain sockets instead of
6560         libdbus, for comparison purposes.
6561
6562 2004-11-22  Havoc Pennington  <hp@redhat.com>
6563
6564         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6565         threads for more time, so sysprof can get a grip on it.
6566
6567         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6568         pointless variable
6569
6570 2004-11-13  Havoc Pennington  <hp@redhat.com>
6571
6572         * test/glib/test-profile.c: fix this thing up a bit
6573
6574         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6575         preallocation sizes by a fair bit; not sure if this will be an
6576         overall performance win or not, but it does reduce reallocs.
6577
6578         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6579         the test hack that forced constant realloc if asserts are
6580         disabled, so we can profile sanely. Sprinkle in some
6581         _DBUS_UNLIKELY() which are probably pointless, but before I
6582         noticed the real performance problem I put them in.
6583         (_dbus_string_validate_utf8): micro-optimize this thing a little
6584         bit, though callgrind says it didn't help; then special-case
6585         ascii, which did help a lot; then be sure we detect nul bytes as
6586         invalid, which is a bugfix.
6587         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6588         superstition; use memset to nul the padding instead of a manual
6589         loop.
6590         (_dbus_string_get_length): inline this as a
6591         macro; it showed up in the profile because it's used for loop
6592         tests and so forth
6593
6594 2004-11-10  Colin Walters  <walters@verbum.org>
6595
6596         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6597         for extra paranoia.
6598
6599 2004-11-09  Colin Walters  <walters@verbum.org>
6600
6601         * dbus/dbus-string.c (_dbus_string_get_length): New
6602         function, writes DBusString to C buffer.
6603
6604         * dbus/dbus-string.h: Prototype it.
6605
6606         * dbus/dbus-message.c (dbus_message_type_to_string): New
6607         function, converts message type into C string.
6608
6609         * dbus/dbus-message.h: Prototype it.
6610
6611         * bus/selinux.c (bus_selinux_check): Take source pid,
6612         target pid, and audit data.  Pass audit data to
6613         avc_has_perm.
6614         (log_audit_callback): New function, appends extra
6615         audit information.
6616         (bus_selinux_allows_acquire_service): Also take
6617         service name, add it to audit data.
6618         (bus_selinux_allows_send): Also take message
6619         type, interface, method member, error name,
6620         and destination, and add them to audit data.
6621         (log_cb): Initialize func_audit.
6622         
6623         * bus/selinux.h (bus_selinux_allows_acquire_service)
6624         (bus_selinux_allows_send): Update prototypes 
6625
6626         * bus/services.c (bus_registry_acquire_service): Pass
6627         service name to bus_selinux_allows_acquire_service.
6628
6629         * bus/bus.c (bus_context_check_security_policy): Pass
6630         additional audit data.  Move assignment of dest
6631         to its own line.
6632
6633 2004-11-07  Colin Walters  <walters@verbum.org>
6634
6635         * dbus/dbus-transport-unix.c (do_authentication): Always
6636         initialize auth_completed.
6637         
6638 2004-11-07  Colin Walters  <walters@verbum.org>
6639
6640         * bus/bus.c (load_config): Break into three
6641         separate functions: process_config_first_time_only,
6642         process_config_every_time, and process_config_postinit.
6643         (process_config_every_time): Move call of
6644         bus_registry_set_service_context_table into
6645         process_config_postinit.
6646         (process_config_postinit): New function, does
6647         any processing that needs to happen late
6648         in initialization (and also on reload).
6649         (bus_context_new): Instead of calling load_config,
6650         open config parser here and call process_config_first_time_only
6651         and process_config_every_time directly.  Later, after
6652         we have forked but before changing UID,
6653         invoke bus_selinux_full_init, and then call
6654         process_config_postinit.
6655         (bus_context_reload_config): As in bus_context_new,
6656         load parse file inside here, and call process_config_every_time
6657         and process_config_postinit.
6658
6659         * bus/services.h, bus/services.c
6660         (bus_registry_set_service_context_table): Rename
6661         from bus_registry_set_sid_table.  Take string hash from config
6662         parser, and convert them here into SIDs.
6663
6664         * bus/config-parser.c (struct BusConfigParser): Have
6665         config parser only store a mapping of service->context
6666         string.
6667         (merge_service_context_hash): New function.
6668         (merge_included): Merge context string hashes instead
6669         of using bus_selinux_id_table_union.
6670         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6671         simply create a new string hash.
6672         (bus_config_parser_unref): Unref it.
6673         (start_selinux_child): Simply insert strings into hash,
6674         don't call bus_selinux_id_table_copy_over.
6675
6676         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6677         (bus_selinux_id_table_copy_over): Delete.
6678
6679 2004-11-03  Colin Walters  <walters@verbum.org>
6680
6681         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6682         variables.
6683         
6684 2004-11-03  Colin Walters  <walters@verbum.org>
6685
6686         * bus/test-main.c (test_pre_hook): Fix test logic,
6687         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6688
6689 2004-11-02  Colin Walters  <walters@redhat.com>
6690
6691         * bus/selinux.c (bus_selinux_init): Split into two functions,
6692         bus_selinux_pre_init and bus_selinux_post_init.
6693         (bus_selinux_pre_init): Just determine whether SELinux is
6694         enabled.
6695         (bus_selinux_post_init): Do everything else.
6696
6697         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6698         config file, and bus_selinux_post_init after.  This ensures that
6699         we don't lose the policyreload notification thread that
6700         bus_selinux_init created before forking previously.
6701         
6702         * bus/test-main.c (test_pre_hook): Update for split.
6703
6704 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6705
6706         Patch from Johan Fischer <linux@fischaz.com>
6707         
6708         * mono/doc/Makefile.am (install-data-local): Added directory
6709         install for DESTDIR
6710
6711 2004-10-29  Colin Walters  <walters@redhat.com>
6712
6713         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6714         parameter for fd to write pid to.       
6715
6716         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6717         
6718         * bus/bus.c (bus_context_new): Pass print_pid_fd
6719         to _dbus_become_daemon (bug #1720)
6720
6721 2004-10-29  Colin Walters  <walters@redhat.com>
6722
6723         Patch from Ed Catmur <ed@catmur.co.uk>
6724
6725         * mono/doc/Makefile.am (install-data-local): Handle
6726         DESTDIR.
6727
6728 2004-10-29  Colin Walters  <walters@redhat.com>
6729
6730         * bus/.cvsignore, qt/.cvsignore: Update.
6731
6732 2004-10-29  Colin Walters  <walters@redhat.com>
6733
6734         Patch from Kristof Vansant <de_lupus@pandora.be>
6735
6736         * configure.in: Detect Slackware.
6737         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6738         * bus/rc.messagebus.in: New file.
6739
6740 2004-10-29  Colin Walters  <walters@redhat.com>
6741
6742         * tools/dbus-monitor.c (filter_func): Return
6743         DBUS_HANDLER_RESULT_HANDLED in filter function
6744         for now.  See:
6745         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6746
6747 2004-10-29  Colin Walters  <walters@redhat.com>
6748
6749         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6750
6751         * bus/services.c (bus_registry_acquire_service): 
6752         Correctly retrieve service name from DBusString
6753         for printing.
6754
6755 2004-10-29  Colin Walters  <walters@redhat.com>
6756
6757         * dbus/dbus-glib.h: Update documentation to not
6758         refer to internal APIs.
6759
6760 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6761
6762         * mono/Arguments.cs (GetDBusTypeConstructor):
6763         type.UnderlyingSystemType will return "System.Byte" if you do it
6764         on "byte[]", which is not what we want.  So check the type.IsArray
6765         property and use System.Array instead.
6766
6767 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6768
6769         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6770         the DBusUserInfo structure since this is passed into the function.
6771         This would cause a double free when the function that allocated
6772         the structure would try to free it when an error occured.
6773
6774         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6775         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6776         for service activation to avoid 32bit/64bit parallel install issues
6777
6778 2004-10-21  Colin Walters  <walters@verbum.org>
6779
6780         * AUTHORS: Fix my email address, the @gnu.org one
6781         has been bouncing for some time.  Also add J5.
6782         
6783 2004-10-21  Colin Walters  <walters@verbum.org>
6784
6785         * dbus/dbus-transport-unix.c (do_authentication): Return
6786         authentication status to callers.
6787         (unix_handle_watch): If we completed authentication this round,
6788         don't do another read.  Instead wait until the next iteration,
6789         after we've read any pending data in the auth buffer.
6790         (unix_do_iteration): Ditto.
6791         (unix_handle_watch): Updated for new do_authentication prototype.
6792
6793 2004-10-18  Colin Walters  <walters@verbum.org>
6794
6795         * bus/selinux.c (bus_selinux_enabled): Handle
6796         --disable-selinux case.
6797         
6798 2004-10-18  Colin Walters  <walters@verbum.org>
6799
6800         * bus/selinux.h: Add bus_selinux_enabled.
6801         
6802         * bus/selinux.c (bus_selinux_enabled): Implement it.
6803         
6804         * bus/config-parser.c (struct include): Add
6805         if_selinux_enabled member.
6806         (start_busconfig_child): Parse if_selinux_enabled
6807         attribute for include.
6808         (bus_config_parser_content): Handle it.
6809
6810         * bus/session.conf.in, bus/system.conf.in: Add
6811         inclusion of context mapping to default config files;
6812         conditional on SELinux being enabled.
6813         
6814         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6815         
6816         * test/data/invalid-config-files/badselinux-1.conf, 
6817         test/data/invalid-config-files/badselinux-2.conf:
6818         Test files for bad syntax.
6819         
6820 2004-10-17  Colin Walters  <walters@verbum.org>
6821
6822         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6823         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6824         format specifier mismatches.
6825
6826 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6827
6828         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6829         format string.
6830
6831         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6832         pointer (bug #1540, Leonardo Boiko).
6833
6834 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6835
6836         * mono/BusDriver.cs: Changed BusDriver struct to remove
6837         the ServiceCreated and ServiceDeleted events and replace them
6838         with the new ServiceOwnerChanged event.
6839
6840         * mono/example/BusListener.cs: Added a new example program,
6841         which listens for and reports any ServiceOwnerChanged events
6842         on the bus driver.
6843
6844         * mono/example/Makefile.am (DESTDIR): Build changes for the
6845         new BusListener.cs example.
6846
6847 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6848
6849         * bus/signals.c (bus_match_rule_parse): validate the components of
6850         match rules (bug #1439).
6851
6852         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6853
6854 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6855
6856         * doc/dbus-specification.xml: document ServiceOwnerChanged
6857         signal.
6858         
6859         * bus/driver.c, bus/driver.h, bus/services.c: Use
6860         ServiceOwnerChanged signal instead of ServiceCreated and
6861         ServiceDeleted.
6862         
6863         * bus/dispatch.c: update testcase for the new signal.
6864
6865 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6866
6867         Patch from Nat Friedman <nat@novell.com>
6868
6869         * mono/Makefile.am: A number of small build fixes to allow "make
6870         distcheck" to succeed.
6871
6872         * mono/example/Makefile.am: "make distcheck" fixes.
6873
6874         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6875         key in @srcdir@.
6876
6877         * test/Makefile.am: "make distcheck" fixes.
6878
6879 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6880
6881         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6882
6883         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6884
6885         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6886         messages after the first one (bug #1389).
6887         
6888         * bus/dispatch.c (check_double_hello_message): add a test case for
6889         the double hello message bug.
6890         (check_existent_service_activation): fix check of spawning error.
6891         
6892 2004-09-16  David Zeuthen  <david@fubar.dk>
6893
6894         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6895
6896 2004-09-12  David Zeuthen  <david@fubar.dk>
6897
6898         Patch from Kay Sievers <kay.sievers@vrfy.org>
6899
6900         * bus/bus.c (bus_context_new):
6901         * bus/bus.h:
6902         * bus/main.c (usage)
6903         (main):
6904         Add commandline option --nofork to override configuration file
6905         setting.
6906
6907 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6908
6909         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6910         compilers don't like it (bug #974).
6911
6912 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6913
6914         * qt/connection.*: Applied patch by Jérôme Lodewyck
6915         <lodewyck@clipper.ens.fr> to integrate an existing
6916         connection into the Qt eventloop
6917
6918 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6919
6920         * mono/BusDriver.cs: Added.  This is a class for interacting with
6921         the org.freedesktop.DBus service.
6922
6923         * mono/Message.cs: Added a mechanism to expose the message that is
6924         currently being dispatched via the static Message.Current
6925         property.  Added Message.Sender and Message.Destination
6926         properties.
6927
6928         * mono/Handler.cs: Expose the dispatched message via
6929         Message.Current when handling method calls.
6930
6931         * mono/Service.cs: Expose the dispatched message via
6932         Message.Current when handling signal emissions.
6933         
6934         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6935         Connection.BaseService property.
6936
6937 2004-08-28  Havoc Pennington  <hp@redhat.com>
6938
6939         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6940
6941         More fixes from Steve Grubb
6942         
6943         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6944         (_dbus_listen_tcp_socket): fix fd leak
6945
6946         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6947         EINTR to a bit lower in the code
6948
6949 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6950
6951         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6952         TRUE if we are inquiring about the existence of the built-in
6953         org.freedesktop.DBus service.
6954
6955 2004-08-25  John Palmieri  <johnp@redhat.com>
6956         * bus/config-parser.c:
6957         (struct PolicyType): Add POLICY_CONSOLE
6958         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6959         (start_busconfig_child): Sets up console element when
6960         <policy at_console=""> is encountered in a policy file
6961         (append_rule_from_element): Convert console elements to console
6962         rules.
6963
6964         * bus/policy.c: 
6965         (bus_policy_create_client_policy): Add console rules to the client
6966         policy based on if the client is at the console
6967         (bus_policy_append_console_rule): New function for adding a
6968         console rule to a policy
6969         (bus_policy_merge): Handle console rule merging
6970
6971         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6972         where we check for console user files
6973         
6974         * dbus/dbus-sysdeps.c:
6975         (_dbus_file_exists): New function which checks if the given
6976         file exists
6977         (_dbus_user_at_console): New function which does the system
6978         specific process of checking if the user is at the console
6979
6980         * dbus/dbus-userdb.c:
6981         (_dbus_is_console_user): New function converts a UID to user name
6982         and then calls the system specific _dbus_user_at_console to 
6983         see if the user is at the console and therefor a console user
6984
6985 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6986
6987         * bus/config-parser.c (set_limit):
6988         * bus/dbus-daemon-1.1.in:
6989         * test/data/valid-config-files/many-rules.conf: set the
6990         max_match_rules_per_connection limt from the config file. 
6991
6992         * doc/busconfig.dtd: update the DTD.
6993
6994         * bus/driver.c: remove some unused variables.
6995
6996 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6997
6998         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6999         it's been replaced by dbus_g_bus_get
7000
7001 2004-08-23  Colin Walters  <walters@redhat.com>
7002
7003         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7004
7005         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7006
7007         * bus/selinux.c: Create a thread for policy reload notification.
7008         (bus_selinux_get_policy_root): Implement.
7009
7010         * bus/config-parser.c (start_busconfig_child)
7011         (bus_config_parser_content): Support SELinux-root relative
7012         inclusion.
7013
7014         * configure.in <HAVE_SELINUX>: Add -lpthread.
7015         
7016         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7017         (test_post_hook): Move memory checking into here.
7018         (test_pre_hook, test_post_hook): Move SELinux checks in
7019         here, but conditional on a DBUS_TEST_SELINUX environment
7020         variable.  Unfortunately we can't run the SELinux checks
7021         as a normal user, since they won't have any permissions
7022         for /selinux.  So this will have to be tested manually
7023         for now, until we have virtualization for most of
7024         libselinux.
7025         
7026 2004-08-23  Havoc Pennington  <hp@redhat.com>
7027
7028         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7029         drop supplementary groups, suggested by Steve Grubb
7030
7031 2004-08-20  Colin Walters  <walters@redhat.com>
7032
7033         * bus/config-parser.c (start_busconfig_child): Remove some unused
7034         variables.
7035         
7036         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7037         warning.
7038
7039 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7040
7041         * configure.in: If --enable-mono is passed in, if we can't find
7042         mono error out.
7043
7044         * mono/Makefile.am: Use /gacutil to install assemblies into the
7045         GAC and not /root.
7046
7047 2004-08-12  Havoc Pennington  <hp@redhat.com>
7048
7049         * NEWS: update for 0.22
7050
7051         * configure.in: release 0.22
7052
7053 2004-08-11  Colin Walters  <walters@redhat.com>
7054
7055         * tools/dbus-send.c (main, usage): Add --reply-timeout
7056         argument.
7057
7058 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7059
7060         * bus/bus.c (process_config_first_time_only): get rid of an unused
7061         DBusError that was causing a memoy leak (bug #989).
7062
7063         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7064         fix compilation on Solaris/Forte C (bug #974)
7065
7066         * bus/main.c (main): plug two minuscule memleaks.
7067
7068 2004-08-10  Havoc Pennington  <hp@redhat.com>
7069
7070         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7071
7072 2004-08-09  Havoc Pennington  <hp@redhat.com>
7073
7074         * COPYING: switch to Academic Free License version 2.1 instead of
7075         2.0, to resolve complaints about patent termination clause.
7076
7077 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7078
7079         * README: added documentation for the --enable-python 
7080         configure switch.
7081
7082 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7083
7084         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7085         _unref in the SELinux support.
7086
7087         * doc/busconfig.dtd: update DTD for SELinux support.
7088
7089         * bus/config-loader-libxml.c: fix error handler and parser
7090         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7091
7092         * configure.in: remove the warning about libxml2.
7093
7094         * dbus/dbus-bus.c: silence doxygen warning.
7095
7096 2004-07-31  Colin Walters  <walters@redhat.com>
7097
7098         * configure.in: Move #error in SELinux check to its own line.
7099
7100 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7101
7102         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7103         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7104         dbus_error_set.
7105
7106         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7107         broken by the change in the _SET_OOM macros.
7108
7109 2004-07-31  Colin Walters  <walters@redhat.com>
7110
7111         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7112         BUS_SET_OOM.
7113
7114 2004-07-31  Colin Walters  <walters@redhat.com>
7115
7116         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7117         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7118         AC_MSG_CHECKING.
7119
7120 2004-07-24  Havoc Pennington  <hp@redhat.com>
7121
7122         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7123
7124         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7125         functionality
7126
7127         * configure.in: add --enable-selinux
7128         
7129         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7130
7131         * bus/main.c (main): initialize and shut down selinux
7132
7133         * bus/connection.c: store SELinux ID on each connection, to avoid 
7134         repeated getting of the string context and converting it into 
7135         an ID
7136
7137         * bus/bus.c (bus_context_get_policy): new accessor, though it
7138         isn't used
7139         (bus_context_check_security_policy): check whether the security
7140         context of sender connection can send to the security context of
7141         recipient connection
7142
7143         * bus/config-parser.c: add parsing for <selinux> and <associate>
7144         
7145         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7146         implement dbus_connection_get_unix_fd()
7147
7148         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7149         function, used by the selinux stuff
7150         
7151 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7152
7153         * bus/config-loader-libxml.c: complete the implementation of
7154         libxml backend for config file loader. Doesn't work with full OOM
7155         test yet. 
7156         
7157         * configure.in: change error when selecting libxml into a warning.
7158         
7159         * test/data/invalid-config-files: add two non-well-formed XML
7160         files. 
7161         
7162         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7163         
7164         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7165         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7166         be necessary to read all the buffer. (bug #894)
7167
7168         * bus/activation.c (bus_activation_activate_service): fix a
7169         potential assertion failure (bug #896). Small optimization in the
7170         case of auto-activation messages.
7171
7172         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7173         add test case for byte-through-vararg bug (#901). patch by Kimmo
7174         Hämäläinen. 
7175
7176 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7177
7178         * python/dbus.py:
7179         * python/dbus_bindings.pyx.in:
7180         Add dbus.init_gthreads (), allow emit_signal to pass
7181         arguments to the signal.
7182         
7183 2004-07-24  Havoc Pennington  <hp@redhat.com>
7184
7185         * AUTHORS: add some people, not really comprehensively, let me
7186         know if I missed you
7187
7188 2004-07-24  Havoc Pennington  <hp@redhat.com>
7189
7190         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7191         Owen
7192
7193         * test/Makefile.am (DIST_SUBDIRS): here also
7194
7195 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7196
7197         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7198         breaking build on Solaris, reported by Farhad Saberi on the ML.
7199
7200         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7201         va_arg invocation to account for integer promotion in the case of
7202         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7203
7204         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7205         _dbus_list_get_first_link, not _dbus_list_get_first.
7206
7207         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7208
7209         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7210         handler functions so that the asserts in _dbus_object_subtree_unref
7211         do not fail.
7212
7213         * dbus/dbus-transport-unix.c (do_reading):
7214         _dbus_transport_queue_messages return value is of type
7215         dbus_bool_t, not DBusDispatchStatus.
7216         
7217 2004-07-19  David Zeuthen  <david@fubar.dk>
7218
7219         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7220
7221         * bus/dispatch.c:
7222         (check_get_connection_unix_user): Debug says GetProperty; but the
7223         method is called GetConnectionUnixUser
7224         (check_get_connection_unix_process_id): New function
7225         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7226         also call check_get_connection_unix_process_id()
7227         
7228         * bus/driver.c:
7229         (bus_driver_handle_get_connection_unix_process_id): New function,
7230         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7231         interface
7232         
7233         * dbus/dbus-auth.c:
7234         (handle_server_data_external_mech): Set pid from the credentials
7235         obtained from the socket
7236         
7237         * dbus/dbus-connection.c:
7238         (dbus_connection_get_unix_process_id): New function
7239         
7240         * dbus/dbus-connection.h: 
7241         Add prototype for dbus_connection_get_unix_process_id
7242         
7243         * dbus/dbus-transport.c:
7244         (_dbus_transport_get_unix_process_id): New function
7245         
7246         * dbus/dbus-transport.h:
7247         Add prototype for _dbus_transport_get_unix_process_id
7248         
7249 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7250
7251         * dbus/dbus-message.c: Message counter fix, patch by Christian
7252         Hammond <chipx86@gnupdate.org>
7253
7254 2004-07-18  Seth Nickell  <seth@gnome.org>
7255
7256         * python/dbus.py:
7257         * python/dbus_bindings.pyx.in:
7258         * python/tests/test-client.py:
7259
7260         Add dbus.ByteArray and dbus_bindings.ByteArray
7261         types so that byte streams can be passed back.
7262
7263         Give jdahlin the heaps of credit that are so
7264         rightfully his.
7265         
7266 2004-07-12  Seth Nickell  <seth@gnome.org>
7267
7268         * python/dbus.py:
7269
7270         Add message argument to the default object_method_handler
7271         function.
7272         
7273         * python/dbus_bindings.pyx.in:
7274
7275         Automatically return NIL when passed an empty list
7276         (we can't pass back a list since lists are typed
7277         and we don't have any idea what type the the client
7278         intended the list to be... :-( )
7279         
7280 2004-07-10  Seth Nickell  <seth@gnome.org>
7281
7282         * python/examples/Makefile.am:
7283
7284         Fix distcheck breakage caused by new examples.
7285
7286 2004-07-10  Seth Nickell  <seth@gnome.org>
7287
7288         * python/dbus.py:
7289
7290         Add "message" argument to service-side dbus.Object
7291         methods. This will break existing services written
7292         using the python bindings, but will allow extraction
7293         of all the message information (e.g. who its from).
7294
7295         Add improved "object oriented" signal handling/emission.
7296         
7297         * python/examples/example-service.py:
7298
7299         Nix this example.
7300         
7301         * python/examples/example-signal-emitter.py:
7302         * python/examples/example-signal-recipient.py:
7303
7304         Two new examples that show how to emit and receive
7305         signals using the new APIs.
7306         
7307         * python/examples/example-signals.py:
7308         * python/examples/gconf-proxy-service.py:
7309         * python/examples/gconf-proxy-service2.py:
7310
7311         Add "message" argument to service methods.
7312
7313 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7314
7315         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7316         * dbus/bus.c (dbus_bus_get_unix_user)
7317         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7318         method of org.freedesktop.DBus interface.
7319
7320         * bus/dispatch.c: test case
7321
7322 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7323
7324         * python/Makefile.am: switched include directory from glib/ to dbus/
7325         since dbus-glib.h moved
7326  
7327 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7328
7329         * configure.in: prevent building the gcj stuff and libxml loader
7330         since they are broken.
7331
7332 2004-06-20  Havoc Pennington  <hp@redhat.com>
7333
7334         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7335         codes from the dbus error names
7336         
7337         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7338         as dbus/dbus-glib.h and that breakage is now visible due to 
7339         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7340         
7341         * glib/dbus-glib.h: s/gproxy/g_proxy/
7342
7343         * dbus/dbus-shared.h: new header to hold stuff shared with
7344         binding APIs
7345         
7346         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7347         than dbus-errors.h
7348
7349         * glib/dbus-glib.h (dbus_set_g_error): move to
7350         dbus-glib-lowlevel.h
7351
7352         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7353         of stuff to enable this
7354
7355         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7356
7357         * a bunch of other changes with the same basic "separate glib 
7358         bindings from dbus.h" theme
7359         
7360 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7361
7362         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7363
7364         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7365
7366 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7367
7368         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7369         the reply value of the ServiceExists message.
7370
7371 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7372
7373         * python/dbus_bindings.pyx.in: No longer need to parse path
7374         elements and pass them as arrays of strings.  The C API now
7375         accepts plain path strings.
7376         (_build_parsed_path): removed 
7377
7378 2004-06-07  Havoc Pennington  <hp@redhat.com>
7379
7380         * doc/TODO: remove auto-activation item since it's done; sort
7381         items by importance/milestone
7382
7383 2004-06-07  Havoc Pennington  <hp@redhat.com>
7384
7385         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7386         random signature when using REQUIRED_FIELDS (this hack won't work
7387         in the long term)
7388
7389         * dbus/dbus-message.c: change the signature to be a header field,
7390         instead of message->signature special-case string. Incremental
7391         step forward. Then we can fix up code to send the signature in the
7392         message, then fix up code to validate said signature, then fix up
7393         code to not put the typecodes inline, etc.
7394         (load_one_message): don't make up the signature after the fact
7395         (decode_header_data): require signature field for the known
7396         message types
7397
7398         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7399
7400         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7401
7402 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7403
7404         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7405
7406         * mono/Handler.cs: Updated to follow new path argument for
7407         (un-)registering objects.
7408
7409         * mono/example/Makefile.am:
7410         * mono/Makefile.am:
7411         * configure.in: Bumped required version for mono and use new -pkg
7412         syntax for deps
7413
7414 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7415
7416         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7417         registration functions take the path argument as char* instead of
7418         char**.
7419
7420         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7421         split off the path decompostion part of
7422         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7423         warnings. 
7424
7425         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7426         
7427 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7428  
7429         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7430         machine approach.  A state is implemented as a function that
7431         handles incoming events as specified for that state.
7432         
7433         * doc/dbus-specification.xml: Update auth protocol state machine
7434         specification to match implementation.  Remove some leftover
7435         base64 examples.
7436
7437 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7438
7439         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7440         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7441         quiet doxygen.
7442
7443         * Doxyfile.in: remove deprecated options.
7444
7445         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7446         glib/test-thread.h, glib/test-thread-client.c,
7447         glib/test-thread-server.c, glib/test-profile.c,
7448         glib/test-dbus-glib.c: remove these unused files.
7449
7450 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7451
7452         * dbus/dbus-object-tree.c
7453         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7454         non-fallback handlers (bug #684).
7455         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7456         (find_subtree_recurse): report wether the returned subtree is an
7457         exact match or a "fallback" match higher up in the tree.
7458         (object_tree_test_iteration): update test case.
7459
7460 2004-06-01  Seth Nickell  <seth@gnome.org>
7461
7462         * python/dbus_bindings.pyx.in:
7463         * python/tests/test-client.py:
7464
7465         Round off basic type support. Add dicts (yay!), and 
7466         remaining array types.
7467
7468         Make MessageIter more general so it works for dicts too.
7469
7470         Mark all loop variables as C integers.
7471         
7472 2004-05-31  Havoc Pennington  <hp@redhat.com>
7473
7474         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7475         "in" before "out"
7476
7477         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7478
7479         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7480         option that runs the tests, and start filling in some code
7481         including for starters just dumping the interfaces to stdout
7482
7483         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7484
7485         * test/data/valid-introspection-files/lots-of-types.xml: test of
7486         an example introspection file
7487
7488         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7489         "node" (I think...)
7490
7491 2004-05-31  Seth Nickell  <seth@gnome.org>
7492
7493         * python/dbus_bindings.pyx.in:
7494         * python/tests/test-client.py:
7495
7496         Test Suite: 1
7497         Python Bindings: 0
7498
7499         Fix string array memory trashing bug... oops...
7500
7501 2004-05-30  Seth Nickell  <seth@gnome.org>
7502
7503         * python/dbus.py:
7504
7505         Add a nicer-but-less-flexible alternate API for handling 
7506         calls to virtual objects in dbus.ObjectTree.
7507
7508         Screw up the argument order to the dbus.Object constructor
7509         for consistency with dbus.ObjectTree (and to make dbus_methods
7510         optional for future extension)
7511         
7512         * python/examples/Makefile.am:
7513         * python/examples/gconf-proxy-service.py:
7514         * python/examples/gconf-proxy-service2.py:
7515
7516         Alternate implementation of gconf-proxy-service using the
7517         nicer dbus.ObjectTree API.
7518         
7519         * python/examples/example-service.py:
7520         * python/tests/test-server.py
7521
7522         Reverse the argument order to deal with dbus.Object constructor
7523         changes.
7524         
7525 2004-05-30  Seth Nickell  <seth@gnome.org>
7526
7527         * python/examples/example-client.py:
7528         * python/examples/example-service.py:
7529
7530         Take it back. Lists seem to work but they're broken
7531         in the test suite. Make the base examples use
7532         lists (works fine).
7533
7534 2004-05-30  Seth Nickell  <seth@gnome.org>
7535
7536         * python/dbus_bindings.pyx.in:
7537         * python/tests/test-client.py:
7538
7539         Add some more tests and fix errors that crop up.
7540         Unfortunately, currently it seems like marshalling
7541         and unmarshalling of lists is completely broken :-(
7542
7543 2004-05-30  Seth Nickell  <seth@gnome.org>
7544
7545         * python/dbus_bindings.pyx.in:
7546
7547         Add support for ObjectPath type.
7548
7549         * python/dbus.py:
7550
7551         Refactor message handling code to a common function.
7552         
7553         * python/tests/test-client.py:
7554         * python/tests/test-server.py:
7555
7556         Add tests that check to make sure values of all types
7557         can be echoed from a service w/o mangling.
7558         
7559 2004-05-29  Seth Nickell  <seth@gnome.org>
7560
7561         * python/dbus.py:
7562
7563         Add ObjectTree class which allows implementation
7564         of trees of "virtual" objects. Basically the python
7565         wrapper for "register_fallback".
7566         
7567         * python/examples/Makefile.am
7568         * python/examples/gconf-proxy-client.py:
7569         * python/examples/gconf-proxy-service.py:
7570
7571         Implement a simple GConf proxy service that supports
7572         get/set on string and int GConf keys using the ObjectTree.
7573         
7574 2004-05-29  Seth Nickell  <seth@gnome.org>
7575
7576         * python/dbus.py:
7577         * python/examples/example-client.py:
7578         * python/examples/example-service.py:
7579         * python/examples/list-system-services.py:
7580
7581         Add SessionBus, SystemBus and ActivationBus classes
7582         so you don't need to know the special little BUS_TYPE
7583         flag.
7584         
7585 2004-05-29  Havoc Pennington  <hp@redhat.com>
7586
7587         * bus/config-parser.c (process_test_valid_subdir): temporarily
7588         stop testing config parser OOM handling, since expat has issues
7589         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7590
7591         * bus/dbus-daemon-1.1.in: change requested_reply to
7592         send_requested_reply/receive_requested_reply so we can send the
7593         replies, not just receive them.
7594
7595         * bus/config-parser.c: parse the new
7596         send_requested_reply/receive_requested_reply
7597
7598         * bus/policy.c (bus_client_policy_check_can_send): add
7599         requested_reply argument and use it
7600
7601         * bus/bus.c (bus_context_check_security_policy): pass through
7602         requested_reply status to message send check
7603
7604         * bus/system.conf.in: adapt to requested_reply change
7605         
7606 2004-05-28  Havoc Pennington  <hp@redhat.com>
7607
7608         * test/glib/test-service-glib.c (main): remove unused variable
7609
7610         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7611
7612         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7613         from the enum, no longer in use.
7614
7615         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7616         works right.
7617
7618         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7619         whether error_name passed in is a valid error name.
7620
7621 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7622
7623         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7624         OBJECT_PATH and OBJECT_PATH_ARRAY
7625
7626 2004-05-28  Seth Nickell  <seth@gnome.org>
7627
7628         * python/examples/Makefile.am:
7629
7630         Forget to add Makefile.am. Do not pass go.
7631
7632 2004-05-28  Michael Meeks  <michael@ximian.com>
7633
7634         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7635         fix no int64 case.
7636
7637         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7638
7639         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7640         (_dbus_message_iter_get_basic_type_array): impl.
7641         drastically simplify ~all relevant _get methods to use these.
7642         (_dbus_message_iter_append_basic_array),
7643         (dbus_message_iter_append_basic): impl
7644         drastically simplify ~all relevant _append methods to use these.
7645
7646         * dbus/dbus-message-builder.c (parse_basic_type) 
7647         (parse_basic_array, lookup_basic_type): impl.
7648         (_dbus_message_data_load): prune scads of duplicate /
7649         cut & paste coding.
7650
7651         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7652         (_dbus_demarshal_basic_type): implement,
7653         (demarshal_and_validate_len/arg): beef up debug.
7654         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7655
7656 2004-05-27  Seth Nickell  <seth@gnome.org>
7657
7658         * configure.in:
7659         * python/Makefile.am:
7660
7661         Include the example python apps in the tarball.
7662         
7663         * python/examples/list-system-services.py
7664
7665         Add a python new example that fetches the list of services
7666         from the system bus.
7667         
7668 2004-05-27  Seth Nickell  <seth@gnome.org>
7669
7670         * python/dbus.py:
7671         * python/dbus_bindings.pyx.in:
7672
7673         Fix failure to notify that a signal was not handled,
7674         resulted in hung functions.
7675         
7676 2004-05-25  Colin Walters  <walters@redhat.com>
7677
7678         * tools/dbus-monitor.c (main): Monitor all types of messages.
7679
7680 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7681
7682         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7683         which unregisters the object path and disposes the handler.
7684
7685 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7686  
7687         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7688          
7689         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7690         operands to && so we call dbus_message_iter_next () for the last
7691         argument also.
7692
7693 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7694
7695         * dbus/dbus-object-tree.c
7696         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7697         children even if the requested path isn't registered.
7698         (object_tree_test_iteration): test object_tree_list_registered.
7699
7700         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7701         it to 0.
7702         
7703 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7704
7705         * doc/TODO: Remove resolved items.
7706
7707         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7708         field.
7709         
7710         * bus/connection.c (bus_connections_expect_reply): Enforce the
7711         per-connection limit on pending replies.
7712         
7713         Patch from Jon Trowbridge <trow@ximian.com>:
7714  
7715         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7716         up a watch that triggers a config reload when one end of the pipe
7717         becomes readable.
7718         (signal_handler): Instead of doing the config reload in our SIGHUP
7719         handler, just write to the reload pipe and let the associated
7720         watch handle the reload when control returns to the main loop.
7721  
7722         * bus/driver.c (bus_driver_handle_reload_config): Added.
7723         Implements a ReloadConfig method for requesting a configuration
7724         file reload via the bus driver.
7725  
7726 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7727
7728         * HACKING: Updated release instructions concerning the wiki page.
7729
7730 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7731
7732         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7733         filter against auth->allowed_mechs; we only add allowed mechs in
7734         record_mechanisms().
7735  
7736         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7737         ALLOWED_MECHS to auth-script format so we can set the list of
7738         allowed mechanisms.
7739  
7740         * data/auth/client-out-of-mechanisms.auth-script: New test to
7741         check client disconnects when it is out of mechanisms to try.
7742  
7743         * dbus/dbus-auth.c (process_command): Remove check for lines
7744         longer that 1 MB; we only buffer up maximum 16 kB.
7745  
7746         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7747         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7748         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7749         assume there might be unused bytes.
7750  
7751         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7752         client-out-of-mechs, it is handled in process_reject(). Move check
7753         for max failures to send_rejected(), as it's a server-only thing.
7754
7755         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7756         send_auth(), send_data(), send_rejected(), send_error(),
7757         send_ok(), send_begin() and send_cancel().
7758
7759 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7760
7761         Remove base64 encoding, replace with hex encoding. Original patch
7762         from trow@ximian.com, added error handling.
7763
7764         * dbus/dbus-string.c (_dbus_string_base64_encode)
7765         (_dbus_string_base64_decode): Remove.
7766         (_dbus_string_hex_decode): Add end_return argument so we can
7767         distinguish between OOM and invalid hex encoding.
7768         (_dbus_string_test): Remove base64 tests and add test case for
7769         invalid hex.
7770
7771         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7772         Replace base64 with hex.
7773
7774         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7775         for invalid hex encoded data in auth protocol.
7776
7777 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7778
7779         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7780         leak.
7781
7782 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7783
7784         * mono/dbus-sharp.dll.config.in: Added for GAC
7785         * mono/dbus-sharp.snk: Added for GAC
7786         * mono/Assembly.cs.in: Added for GAC
7787         * mono/Makefile.am: Changes for GAC installation        
7788         * configure.in: Added refs for dbus-sharp.dll.config.in and
7789         Assembly.cs.in. More fixes for mono testing
7790         * mono/example/Makefile.am: Changed var to CSC
7791         * Makefile.am: Changed flag name to DBUS_USE_CSC
7792
7793 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7794
7795         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7796         * mono/doc/*: Added documentation framework
7797         * configure.in: Added monodoc check
7798         * README: Added description of mono configure flags
7799
7800 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7801
7802         * doc/dbus-specification.xml: Added a "Required" column to the 
7803         header fields table and changed the "zero or more" verbage in
7804         the above paragraph to read "The header must contain the required 
7805         named header fields and zero or more of the optional named header 
7806         fields".
7807         * test/data/invalid-messages/*.message: Added the required PATH 
7808         named header field to the tests so that they don't fail on 
7809         'Missing path field'
7810
7811 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7812
7813         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7814         the stack by implicitly defining variable and parameter types and
7815         removing the hack of defining C pointers as python objects and later
7816         casting them.
7817
7818 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7819
7820         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7821
7822 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7823
7824         * mono/DBusType/Dict.cs: Handle empty dicts
7825         * mono/DBusType/Array.cs: Handle empty arrays
7826         * mono/Arguments.cs: Handle empty arguments
7827
7828 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7829
7830         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7831         field
7832
7833 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7834
7835         * test/data/valid-messages/standard-*.message: Update message
7836         test scripts to new header field names.
7837
7838 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7839
7840         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7841         overflow to times_we_did_each_thing array which would chop off the
7842         first character of the failure_dir string. Increased the size of
7843         the array to 7 to reflect the number of random mutation functions
7844         we have.
7845
7846 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7847
7848         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7849         unix_server->watch here, it is unreffed in disconnect.
7850         (_dbus_server_new_for_tcp_socket): convert NULL host to
7851         "localhost" here so we don't append NULL to address.
7852         
7853         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7854         various addresses, including tcp with no explicit host.
7855
7856 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7857
7858         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7859         fix incorrect setting of .name_offset in the HeaderField (it was
7860         off by two bytes, positioned right after the name and typecode)
7861
7862         * bus/bus.c (bus_context_new, bus_context_unref): test before
7863         calling dbus_server_free_data_slot and _dbus_user_database_unref
7864         in case of an error.
7865
7866         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7867         by libdbus-gtool.
7868
7869 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7870
7871         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7872         _dbus_poll() instead of select().
7873
7874 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7875
7876         * bus/main.c (signal_handler): Reload the configuration files
7877         on SIGHUP.
7878         (main): Set up our SIGHUP handler.
7879
7880         * bus/bus.c (struct BusContext): Store the config file, user and
7881         fork flag in the BusContext.
7882         (process_config_first_time_only): Added.  Contains the code
7883         (previously in bus_context_new) for setting up the BusContext from
7884         the BusConfigParser that should only be run the first time the
7885         config files are read.
7886         (process_config_every_time): Added.  Contains the code (previously
7887         in bus_context_new) for setting up the BusContext from the
7888         BusConfigParser that should be run every time the config files are
7889         read.
7890         (load_config): Added.  Builds a BusConfigParser from the config
7891         files and passes the resulting structure off to
7892         process_config_first_time_only (assuming this is the first time)
7893         and process_config_every_time.
7894         (bus_context_new): All of the config-related code has been moved
7895         to process_config_first_time_only and process_config_every_time.
7896         Now this function just does the non-config-related initializations
7897         and calls load_config.
7898         (bus_context_reload_config): Added.
7899
7900 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7901
7902         * bus/driver.c (bus_driver_handle_get_service_owner):
7903         implement a GetServiceOwner method.
7904         * doc/dbus-specification.xml: document it.
7905         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7906         
7907         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7908         implement, using the bus GetServiceOwner method.
7909
7910         * test/glib/test-dbus-glib.c:
7911         use dbus_gproxy_new_for_service_owner so that we can receive the
7912         signal. 
7913
7914 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7915
7916         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7917         dbus/dbus-message.c, dbus/dbus-protocol.h
7918         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7919
7920         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7921         dbus/dbus-message.c, dbus/dbus-protocol.h
7922         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7923
7924         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7925         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7926         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7927
7928         * doc/dbus-specification.xml (Header Fields Table):
7929         s/SERVICE/DESTINATION
7930         s/SENDER_SERVICE/SENDER
7931
7932
7933 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7934
7935         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7936         a few seconds.
7937
7938 2004-04-13  Michael Meeks  <michael@ximian.com>
7939
7940         * glib/dbus-gobject.c (handle_introspect): split out
7941         (introspect_properties): this.
7942         (handle_introspect): implement this.
7943
7944         * test/glib/Makefile.am: use the absolute path so the bus
7945         daemon's chdir ("/") doesn't kill us dead.
7946
7947         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7948
7949 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7950
7951         * bus/config-parser.c (struct BusConfigParser): Added
7952         included_files field.
7953         (seen_include): Added.  Checks whether or not a file has already
7954         been included by any parent BusConfigParser.
7955         (bus_config_parser_new): Copy the parent's included_files.
7956         (include_file): Track which files have been included, and fail on
7957         circular inclusions.
7958         (process_test_valid_subdir): Changed printf to report if we are
7959         testing valid or invalid conf files.
7960         (all_are_equiv): Changed printf to be a bit clearer about
7961         what we are actually doing.
7962         (bus_config_parser_test): Test invalid configuration files.
7963
7964 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7965
7966         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7967         argument.  If non-null, the newly-constructed BusConfigParser will
7968         be initialized with the parent's BusLimits instead of the default
7969         values.
7970         (include_file): When including a config file, pass in
7971         the current parser as the parent and then copy the BusLimits
7972         from the included BusConfigParser pack to the current parser.
7973         (process_test_valid_subdir): Renamed from process_test_subdir.
7974         (process_test_equiv_subdir): Added.  Walks through a directory,
7975         descending into each subdirectory and loading the config files
7976         it finds there.  If any subdirectory contains two config files
7977         that don't produce identical BusConfigParser structs, fail.
7978         For now, the BusConfigParser's BusPolicies are not compared.
7979         (bus_config_parser_test): Call both process_test_valid_subdir and
7980         process_test_equiv_subdir.
7981
7982         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7983         argument and pass it along to the call to bus_config_parser_new.
7984         Also made a few small changes to allow this code to compile.
7985
7986         * bus/config-loader-expat.c (bus_config_load): Take a parent
7987         argument and pass it along to the call to bus_config_parser_new.
7988
7989         * bus/bus.c (bus_context_new): Load the config file
7990         with a NULL parent argument.
7991
7992 2004-03-29  Michael Meeks  <michael@ximian.com>
7993
7994         * glib/dbus-gobject.c (introspect_properties): split
7995         out, fix mangled 'while' flow control.
7996         (introspect_signals): implement.
7997         (handle_introspect): update.
7998
7999 2004-03-29  Michael Meeks  <michael@ximian.com>
8000
8001         * glib/dbus-gobject.c (set_object_property): split out / 
8002         re-work, use the property type, and not the message type(!)
8003         (get_object_property): ditto.
8004
8005         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8006         (dbus_gvalue_marshal): make this code re-usable, needed
8007         for signals too, also on both proxy and server side.
8008         Re-write for more efficiency / readability.
8009
8010 2004-03-29  Michael Meeks  <michael@ximian.com>
8011
8012         * dbus/dbus-message.c
8013         (dbus_message_new_error_printf): impl.
8014
8015         * dbus/dbus-connection.c
8016         (dbus_connection_unregister_object_path): fix warning.
8017
8018         * configure.in: fix no-mono-installed situation.
8019
8020 2004-03-27  Havoc Pennington  <hp@redhat.com>
8021
8022         Patch from Timo Teräs:
8023         
8024         * tools/dbus-send.c (main): if --print-reply, assume type is
8025         method call; support boolean type args
8026         
8027         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8028         bunch of memleak and logic bugs
8029         
8030 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8031
8032         * mono/Arguments.cs:
8033         * mono/Introspector.cs:
8034         * mono/Handler.cs:
8035         * mono/InterfaceProxy.cs:
8036         * mono/Message.cs
8037         * mono/ProxyBuilder.cs:
8038         * mono/Service.cs:
8039         Added InterfaceProxy class to avoid building proxies for every
8040         object.
8041
8042         * dbus-message.h:
8043         * dbus-message.c (dbus_message_append_args_valist)
8044         (dbus_message_iter_get_object_path)
8045         (dbus_message_iter_get_object_path_array)
8046         (dbus_message_iter_append_object_path)
8047         (dbus_message_iter_append_object_path_array):
8048         Added object_path iter functions to handle OBJECT_PATH arguments
8049         
8050 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8051
8052         First checkin of mono bindings.
8053         * configure.in:
8054         * Makefile.am:
8055         Build stuff for the bindings
8056         * dbus-sharp.pc.in: Added for pkgconfig
8057         
8058 2004-03-21  Havoc Pennington  <hp@redhat.com>
8059
8060         * test/test-service.c (main): remove debug spew
8061
8062 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8063
8064         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8065         arrays
8066
8067         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8068         (dbus_message_iter_init_array_iterator)
8069         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8070         indicate whether the iterator is empty
8071
8072         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8073         warnings
8074
8075 2004-03-19  Havoc Pennington  <hp@redhat.com>
8076
8077         * NEWS: 0.21 updates
8078
8079         * configure.in: 0.21
8080
8081         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8082         
8083         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8084         you don't need pyrex to make dist
8085
8086         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8087         sources; run moc
8088         
8089 2004-03-18  Richard Hult  <richard@imendio.com>
8090
8091         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8092         (dbus_message_set_auto_activation): Add doxygen docs.
8093
8094 2004-03-16  Richard Hult  <richard@imendio.com>
8095
8096         * bus/activation.c: (bus_activation_service_created),
8097         (bus_activation_send_pending_auto_activation_messages),
8098         (bus_activation_activate_service):
8099         * bus/activation.h:
8100         * bus/dispatch.c: (bus_dispatch),
8101         (check_nonexistent_service_auto_activation),
8102         (check_service_auto_activated),
8103         (check_segfault_service_auto_activation),
8104         (check_existent_service_auto_activation), (bus_dispatch_test):
8105         * bus/driver.c: (bus_driver_handle_activate_service):
8106         * bus/services.c: (bus_registry_acquire_service):
8107         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8108         (dbus_message_get_auto_activation):
8109         * dbus/dbus-message.h:
8110         * dbus/dbus-protocol.h: Implement auto-activation.
8111         
8112         * doc/dbus-specification.xml: Add auto-activation to the spec.
8113
8114 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8115
8116         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8117         fix a bug with CUSTOM types.
8118
8119         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8120         a unit test for this bug (used to fail).
8121
8122 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8123
8124         * bus/activation.c:
8125         (babysitter_watch_callback): notify all pending activations waiting for
8126           the same exec that the activation failed.
8127         (bus_activation_activate_service): shortcut the activation if we 
8128           already waiting for the same executable to start up.
8129
8130 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8131
8132         * bus/activation.c: 
8133         - Added service file reloading. 
8134           Each service files directory is kept in an hash table in 
8135           BusActivation and each BusActivationEntry knows what .service-file it
8136           was read from. So when you try to activate a service the bus will 
8137           check if it's been updated, removed or if new .service-files has 
8138           been installed.
8139         - Test code at the bottom for the service file reloading.
8140         * bus/test-main.c: (main):
8141         * bus/test.h:
8142         - added service reloading test.
8143         * dbus/dbus-sysdeps.c: 
8144         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8145
8146 2004-03-08  Michael Meeks  <michael@ximian.com>
8147
8148         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8149         bail immediately if disconnected, to avoid busy loop.
8150
8151         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8152         cleanup cut/paste/inefficiency.
8153
8154 2004-03-01  David Zeuthen  <david@fubar.dk>
8155
8156         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8157         bug where args were used twice. This bug resulted in a segfault
8158         on a Debian/PPC system when starting the messagebus daemon. Include
8159         dbus-sysdeps.h for DBUS_VA_COPY
8160
8161         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8162
8163         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8164         appropriate va_copy implementation. From GLib
8165         
8166 2004-02-24  Joe Shaw  <joe@ximian.com>
8167
8168         * bus/services.c (bus_registry_acquire_service): We need to pass
8169         in the service name to dbus_set_error() to prevent a crash.
8170
8171 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8172
8173         * AUTHORS: Reveal my True identity.
8174
8175 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8176
8177         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8178         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8179
8180 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8181
8182         * doc/TODO: Added not about better error check of configuration files.
8183
8184 2003-12-02  Richard Hult  <richard@imendio.com>
8185
8186         * Update AFL version to 2.0 throughout the source files to reflect
8187         the update that was done a while ago.
8188
8189 2003-12-02  Richard Hult  <richard@imendio.com>
8190
8191         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8192         wrote_dict_key to FALSE on the iter that the dict is appended to,
8193         just like when appending other types. Fixes a bug where a dict
8194         couldn't be put inside a dict.
8195         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8196         (message_iter_test, _dbus_message_test): Add test case for dict
8197         inside dict.
8198
8199 2003-12-01  David Zeuthen  <david@fubar.dk>
8200
8201         * python/dbus.py: Add the actual message when calling the reciever
8202         of a signal such that parameters can be inspected. Add the method
8203         remove_signal_receiver
8204         
8205 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8206
8207         * bus/*.[ch]:
8208         * dbus/*.[ch]:
8209         * glib/*.[ch]: Made ref functions return the pointer
8210
8211 2003-11-25  Zack Rusin  <zack@kde.org>
8212
8213         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8214
8215         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8216         wrappers,
8217
8218         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8219         the Integrator and to better fit with the server,
8220
8221 2003-11-24  Zack Rusin  <zack@kde.org>
8222
8223         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8224         the integrator handles it now
8225
8226         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8227         since QTimer wasn't really meant to be used the way DBusTimeout is
8228
8229 2003-11-24  Zack Rusin  <zack@kde.org>
8230
8231         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8232         Integrator class which integrates D-BUS with the Qt event loop,
8233
8234         * qt/connection.h, qt/connection.cpp: Move all the code which
8235         was dealing with D-BUS integration to the Integrator class,
8236         and start using Integrator,
8237
8238 2003-11-23  Zack Rusin  <zack@kde.org>
8239
8240         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8241         wrapper
8242
8243         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8244         switching namespaces to DBusQt, reworking the class,
8245
8246         * Makefile.cvs: switching dependencies so that it matches KDE 
8247         schematics,
8248         
8249         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8250         the library
8251
8252 2003-11-19  Havoc Pennington  <hp@redhat.com>
8253
8254         * NEWS: update
8255
8256         * configure.in: bump version to 0.20
8257
8258         * configure.in (have_qt): add yet another place to look for qt
8259         (someone hand trolltech a .pc file...)
8260
8261 2003-11-01  Havoc Pennington  <hp@redhat.com>
8262
8263         * doc/dbus-specification.xml: add state machine docs on the auth
8264         protocol; just a first draft, I'm sure it's wrong.      
8265
8266 2003-10-28  David Zeuthen  <david@fubar.dk>
8267
8268         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8269         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8270         
8271 2003-10-28  Havoc Pennington  <hp@redhat.com>
8272
8273         * dbus/dbus-message.c (get_next_field): delete unused function
8274
8275 2003-10-28  Havoc Pennington  <hp@redhat.com>
8276
8277         * bus/expirelist.c (do_expiration_with_current_time): detect
8278         failure of the expire_func due to OOM
8279
8280         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8281
8282         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8283         NoReply error that's now created by the bus when the service exits
8284
8285 2003-10-28  Havoc Pennington  <hp@redhat.com>
8286
8287         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8288         tests for set_path, set_interface, set_member, etc.
8289
8290         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8291
8292         * dbus/dbus-message.c (set_string_field): always just delete and
8293         re-append the field; accept NULL for deletion
8294         (re_align_fields_recurse): reimplement
8295         
8296 2003-10-26  Havoc Pennington  <hp@redhat.com>
8297
8298         * dbus/dbus-connection.c: fix docs to properly describe the
8299         disconnected message
8300         (_dbus_connection_notify_disconnected): remove this function; 
8301         we can't synchronously add the disconnected message, we have to 
8302         do it after we've queued any remaining real messages
8303         (_dbus_connection_get_dispatch_status_unlocked): queue the
8304         disconnect message only if the transport has finished queueing all
8305         its real messages and is disconnected.
8306         (dbus_connection_disconnect): update the dispatch status here
8307
8308 2003-10-22  Havoc Pennington  <hp@redhat.com>
8309
8310         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8311
8312         * bus/connection.c (bus_transaction_send_from_driver): set the
8313         destination to the connection's base service
8314
8315 2003-10-20  Havoc Pennington  <hp@redhat.com>
8316
8317         hmm, make check is currently not passing.
8318         
8319         * doc/dbus-specification.xml: add requirement that custom type
8320         names follow the same rules as interface names.
8321
8322         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8323         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8324         'map'
8325
8326         * doc/dbus-specification.xml: update type codes to match
8327         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8328         CUSTOM. Add type OBJECT_PATH to the spec.
8329
8330 2003-10-17  Havoc Pennington  <hp@redhat.com>
8331
8332         * bus/driver.c (create_unique_client_name): use "." as separator
8333         in base service names instead of '-'
8334
8335         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8336         byte at the end of the string
8337
8338         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8339         optimization macros since string validation seems to be a slow
8340         point.
8341         
8342         * doc/dbus-specification.xml: restrict valid
8343         service/interface/member/error names. Add test suite code for the
8344         name validation.
8345
8346         * dbus/dbus-string.c: limit service/interface/member/error names 
8347         to [0-9][A-Z][a-z]_
8348
8349         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8350         format arg to verbose spew
8351
8352         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8353         memory, return instead of g_error
8354
8355         * test/test-service.c (path_message_func): support emitting a
8356         signal on request
8357
8358         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8359         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8360         assuming the activation bus was the session bus so that services
8361         started manually will still register.
8362         (init_connections_unlocked): fix so that in OOM situation we get
8363         the same semantics when retrying the function
8364         
8365         * test/test-service.c (main): change to use path registration, to
8366         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8367         than DBUS_BUS_SESSION
8368
8369 2003-10-16  Havoc Pennington  <hp@redhat.com>
8370
8371         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8372
8373         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8374         coverage of the tests
8375         (coverage-report.txt): don't move the .da and .bbg files around
8376
8377 2003-10-16  Havoc Pennington  <hp@redhat.com>
8378
8379         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8380         to put there
8381
8382 2003-10-16  Havoc Pennington  <hp@redhat.com>
8383
8384         * bus/connection.c (bus_pending_reply_expired): either cancel or
8385         execute, not both
8386         (bus_connections_check_reply): use unlink, not remove_link, as we
8387         don't want to free the link; fixes double free mess
8388
8389         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8390         where no reply was received
8391
8392         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8393         fix a refcount leak
8394
8395         * bus/signals.c (match_rule_matches): add special cases for the
8396         bus driver, so you can match on sender/destination for it.
8397
8398         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8399         DBUS_PRINT_BACKTRACE is set
8400
8401         * dbus/dbus-internals.c: add pid to assertion failure messages
8402
8403         * dbus/dbus-connection.c: add message type code to the debug spew
8404
8405         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8406         sender=foo not service=foo
8407
8408         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8409         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8410         DBUS_ACTIVATION_ADDRESS instead
8411
8412         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8413         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8414
8415         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8416         context struct
8417
8418         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8419         (dbus_message_iter_get_object_path_array): new function (half
8420         finished, disabled for the moment)
8421         
8422         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8423         DBUS_MESSAGE_TYPE_ERROR
8424
8425         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8426         avoid redirecting stderr to /dev/null
8427         (babysit): close stdin if not doing the "exit_with_session" thing
8428
8429         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8430         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8431         stdout/stdin, so things don't get confused
8432         
8433         * bus/system.conf.in: fix to allow replies, I modified .conf
8434         instead of .conf.in again.
8435
8436 2003-10-14  David Zeuthen  <david@fubar.dk>
8437
8438         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8439         argtype to arg_type when raising unknown arg type exception.
8440         Changed type list to reflect the changes in dbus-protocol.h so 
8441         the bindings actually work.
8442
8443 2003-10-14  Havoc Pennington  <hp@redhat.com>
8444
8445         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8446         to have a bug keeping it from outputting the .da files sometimes
8447         (string_get_string): don't append garbage nul bytes to the string.
8448
8449 2003-10-15  Seth Nickell  <seth@gnome.org>
8450
8451         * python/Makefile.am:
8452
8453         Include dbus_h_wrapper.h in the dist tarball.
8454
8455 2003-10-14  Havoc Pennington  <hp@redhat.com>
8456
8457         * bus/bus.c (bus_context_check_security_policy): revamp this to
8458         work more sanely with new policy-based requested reply setup
8459
8460         * bus/connection.c (bus_transaction_send_from_driver): set bus
8461         driver messages as no reply
8462
8463         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8464         requested_reply attribute on allow/deny rules
8465
8466         * bus/system.conf: add <allow requested_reply="true"/>
8467
8468         * bus/driver.c (bus_driver_handle_message): fix check for replies
8469         sent to the bus driver, which was backward. How did this ever work
8470         at all though? I think I'm missing something.
8471
8472         * dbus/dbus-message.c (decode_header_data): require error and
8473         method return messages to have a reply serial field to be valid
8474         (_dbus_message_loader_queue_messages): break up this function;
8475         validate that reply serial and plain serial are nonzero; 
8476         clean up the OOM/error handling.
8477         (get_uint_field): don't return -1 from this
8478         (dbus_message_create_header): fix signed/unsigned bug
8479
8480         * bus/connection.c (bus_connections_expect_reply): save serial of
8481         the incoming message, not reply serial
8482
8483 2003-10-14  Havoc Pennington  <hp@redhat.com>
8484
8485         * bus/connection.c: implement pending reply tracking using
8486         BusExpireList
8487
8488         * bus/bus.c (bus_context_check_security_policy): verify that a
8489         reply is pending in order to allow a reply to be sent. Deny 
8490         messages of unknown type.
8491
8492         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8493
8494         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8495         (bus_context_get_reply_timeout): new
8496
8497 2003-10-13  Seth Nickell  <seth@gnome.org>
8498
8499         * python/Makefile.am:
8500
8501         Pass "make distcheck": remove a couple files from DIST_FILES
8502         that weren't included in the final version.
8503
8504 2003-10-12  Havoc Pennington  <hp@pobox.com>
8505
8506         Added test code that 1) starts an actual bus daemon and 2) uses
8507         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8508         more testing possible, but this is the basic framework.
8509         
8510         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8511         empty proxy lists from the proxy list hash
8512
8513         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8514         couple of return_if_fail checks
8515
8516         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8517         to allocate, so everything is cleared to NULL as it should be.
8518
8519         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8520         source as data to dbus_connection_set_timeout_functions() as the 
8521         timeout functions expected
8522
8523         * test/glib/run-test.sh: add a little script to start up a message
8524         bus and run tests using it
8525
8526         * tools/dbus-launch.1: updates
8527
8528         * tools/dbus-launch.c (main): add --config-file option
8529
8530         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8531         that could never be reached.
8532
8533         * dbus/dbus-message.c (dbus_message_new_method_return) 
8534         (dbus_message_new_error, dbus_message_new_signal): set the
8535         no-reply-expected flag on all these. Redundant, but may
8536         as well be consistent.
8537
8538 2003-10-11  Havoc Pennington  <hp@pobox.com>
8539
8540         * test/decode-gcov.c (function_solve_graph): make broken block
8541         graph a nonfatal error since it seems to be broken. Need to debug
8542         this.
8543
8544         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8545         can't just check type > INVALID < LAST anymore
8546
8547         * dbus/dbus-message.c (dbus_message_get_signature): new function
8548         (dbus_message_has_signature): new function
8549         (struct DBusMessage): add signature field (right now it isn't sent
8550         over the wire, just generated on the fly)
8551         (dbus_message_copy): copy the signature, and init strings to
8552         proper length to avoid some reallocs
8553         (dbus_message_iter_init_array_iterator): return void, since it
8554         can't fail
8555         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8556         (_dbus_message_loader_queue_messages): add silly temporary hack to
8557         fill in message->signature on load
8558
8559         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8560         characters, so they are relatively human-readable.
8561
8562 2003-10-11  Havoc Pennington  <hp@pobox.com>
8563
8564         * dbus/dbus-message.c (_dbus_message_test): add more test
8565         coverage, but #if 0 for now since they uncover a bug 
8566         not fixed yet; I think in re_align_field_recurse()
8567         (re_align_field_recurse): add FIXME about broken assertion
8568
8569         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8570
8571         * bus/connection.c: share a couple code bits with expirelist.c
8572
8573         * bus/expirelist.h, bus/expirelist.c: implement a generic
8574         expire-items-after-N-seconds facility, was going to share between
8575         expiring connections and replies, decided not to use for expiring
8576         connections for now.
8577
8578         * COPYING: include AFL 2.0 (still need to change all the file headers)
8579
8580 2003-10-09  Havoc Pennington  <hp@redhat.com>
8581
8582         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8583         gcc 3.3. Not that we do anything about it yet.
8584
8585         * bus/signals.c (bus_match_rule_parse): impose max length on the
8586         match rule text
8587
8588         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8589
8590 2003-10-09  Havoc Pennington  <hp@redhat.com>
8591
8592         Make matching rules theoretically work (add parser).
8593         
8594         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8595         the case where destination is explicitly specified as bus driver
8596         and someone else is eavesdropping.
8597         
8598         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8599         definition of eavesdropping and assertion
8600
8601         * tools/dbus-send.c (main): use dbus_message_type_from_string
8602
8603         * bus/signals.c (bus_match_rule_parse): implement
8604
8605         * dbus/dbus-message.c (dbus_message_type_from_string): new
8606
8607         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8608
8609 2003-10-02  Havoc Pennington  <hp@pobox.com>
8610
8611         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8612         dbus_gproxy_oneway_call
8613
8614         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8615         (dbus_server_setup_with_g_main): fix to allow calling them more
8616         than once on the same args
8617         (dbus_bus_get_with_g_main): new function
8618
8619 2003-10-02  Havoc Pennington  <hp@redhat.com>
8620
8621         * doc/dbus-tutorial.xml: write some stuff
8622
8623 2003-09-29  Havoc Pennington  <hp@pobox.com>
8624
8625         * configure.in: split checks for Doxygen from XML docs, check for
8626         xmlto
8627
8628         * doc/Makefile.am: XML-ify all the docs, and add a blank
8629         dbus-tutorial.xml
8630
8631 2003-09-29  Havoc Pennington  <hp@pobox.com>
8632
8633         * Merge dbus-object-names branch. To see the entire patch 
8634         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8635         it's huuuuge though.
8636         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8637         
8638 2003-09-28  Havoc Pennington  <hp@pobox.com>
8639
8640         * HACKING: update to reflect new server
8641
8642 2003-09-26  Seth Nickell  <seth@gnome.org>
8643
8644         * python/dbus.py:
8645         * python/examples/example-signals.py:
8646
8647         Start implementing some notions of signals. The API
8648         is really terrible, but they sort of work (with the
8649         exception of being able to filter by service, and to
8650         transmit signals *as* a particular service). Need to
8651         figure out how to make messages come from the service
8652         we registered :-(
8653         
8654         * python/dbus_bindings.pyx.in:
8655
8656         Removed duplicate message_handler callbacks.
8657         
8658 2003-09-25  Havoc Pennington  <hp@redhat.com>
8659
8660         * bus/session.conf.in: fix my mess
8661
8662 2003-09-25  Havoc Pennington  <hp@pobox.com>
8663
8664         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8665
8666 2003-09-25  Seth Nickell  <seth@gnome.org>
8667
8668         * python/examples/example-service.py:
8669
8670         Johan notices complete wrong code in example-service, but
8671         completely wrong in a way that works exactly the same (!).
8672         Johan is confused, how could this possibly work? Example
8673         code fails to serve purpose of making things clear.
8674         Seth fixes.
8675
8676 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8677
8678         * doc/dbus-specification.sgml: don't require header fields
8679         to be 4-byte aligned and specify that fields should be
8680         distinguished from padding by the fact that zero is not
8681         a valid field name.
8682         
8683         * doc/TODO: remove re-alignment item and add item to doc
8684         the OBJECT_PATH type.
8685         
8686         * dbus/dbus-message.c:
8687         (HeaderField): rename the original member to value_offset
8688         and introduce a name_offset member to keep track of where
8689         the field actually begins.
8690         (adjust_field_offsets): remove.
8691         (append_int_field), (append_uint_field),
8692         (append_string_field): don't align the start of the header
8693         field to a 4-byte boundary.
8694         (get_next_field): impl finding the next marhsalled field
8695         after a given field.
8696         (re_align_field_recurse): impl re-aligning a number of
8697         already marshalled fields.
8698         (delete_field): impl deleting a field of any type and
8699         re-aligning any following fields.
8700         (delete_int_or_uint_field), (delete_string_field): remove.
8701         (set_int_field), (set_uint_field): no need to re-check
8702         that we have the correct type for the field.
8703         (set_string_field): ditto and impl re-aligning any
8704         following fields.
8705         (decode_header_data): update to take into account that
8706         the fields aren't 4-byte aligned any more and the new
8707         way to distinguish padding from header fields. Also,
8708         don't exit when there is too much header padding.
8709         (process_test_subdir): print the directory.
8710         (_dbus_message_test): add test to make sure a following
8711         field is re-aligned correctly after field deletion.
8712         
8713         * dbus/dbus-string.[ch]:
8714         (_dbus_string_insert_bytes): rename from insert_byte and
8715         allow the insert of multiple bytes.
8716         (_dbus_string_test): test inserting multiple bytes.
8717
8718         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8719         warning note to docs about having to re-align any
8720         marshalled values following the string.
8721         
8722         * dbus/dbus-message-builder.c:
8723         (append_string_field), (_dbus_message_data_load):
8724         don't align the header field.
8725         
8726         * dbus/dbus-auth.c: (process_test_subdir): print the
8727         directory.
8728         
8729         * test/break-loader.c: (randomly_add_one_byte): upd. for
8730         insert_byte change.
8731         
8732         * test/data/invalid-messages/bad-header-field-alignment.message:
8733         new test case.
8734         
8735         * test/data/valid-messages/unknown-header-field.message: shove
8736         a dict in the unknown field.
8737
8738 2003-09-25  Seth Nickell  <seth@gnome.org>
8739
8740         * python/dbus.py:
8741         * python/dbus_bindings.pyx.in:
8742
8743         Handle return values.
8744         
8745         * python/examples/example-client.py:
8746         * python/examples/example-service.py:
8747
8748         Pass back return values from the service to the client.
8749         
8750 2003-09-24  Seth Nickell  <seth@gnome.org>
8751
8752         * python/dbus.py:
8753
8754         Connect Object methods (when you are sharing an object) up... pass
8755         in a list of methods to be shared. Sharing all the methods just
8756         worked out too weird. You can now create nice Services over the
8757         DBus in Python. :-)
8758         
8759         * python/dbus_bindings.pyx.in:
8760
8761         Keep references to user_data tuples passed into C functions so 
8762         Python doesn't garbage collect on us.
8763
8764         Implement MethodReturn and Error subclasses of Message for creating
8765         DBusMessage's of those types.
8766         
8767         * python/examples/example-client.py:
8768         * python/examples/example-service.py:
8769
8770         Simple example code showing both how create DBus services and objects,
8771         and how to use them.
8772
8773 2003-09-23  Havoc Pennington  <hp@pobox.com>
8774
8775         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8776
8777 2003-09-23  Havoc Pennington  <hp@redhat.com>
8778
8779         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8780         (dbus_gproxy_disconnect_signal): implement
8781         (dbus_gproxy_manager_remove_signal_match): implement
8782         (dbus_gproxy_manager_add_signal_match): implement
8783         (dbus_gproxy_oneway_call): implement
8784
8785 2003-09-23  Havoc Pennington  <hp@pobox.com>
8786
8787         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8788         subclass. This means dropping the transparent thread safety of the
8789         proxy; you now need a separate proxy per-thread, or your own
8790         locking on the proxy. Probably right anyway.
8791         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8792
8793 2003-09-22  Havoc Pennington  <hp@redhat.com>
8794
8795         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8796
8797 2003-09-21  Seth Nickell  <seth@gnome.org>
8798
8799         First checkin of the Python bindings.
8800         
8801         * python/.cvsignore:
8802         * python/Makefile.am:
8803         * python/dbus_bindings.pyx.in:
8804         * python/dbus_h_wrapper.h:
8805
8806         Pieces for Pyrex to operate on, building a dbus_bindings.so
8807         python module for low-level access to the DBus APIs.
8808         
8809         * python/dbus.py:
8810
8811         High-level Python module for accessing DBus objects.
8812
8813         * configure.in:
8814         * Makefile.am:
8815
8816         Build stuff for the python bindings.
8817
8818         * acinclude.m4:
8819
8820         Extra macro needed for finding the Python C header files.
8821
8822 2003-09-21  Havoc Pennington  <hp@pobox.com>
8823
8824         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8825         implementing the proxy manager, didn't get very far.
8826
8827         * dbus/dbus-bus.c (dbus_bus_add_match): new
8828         (dbus_bus_remove_match): new
8829
8830         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8831         path_name argument; adjust the other not-yet-implemented 
8832         gproxy constructors to be what I think they should be.
8833
8834 2003-09-21  Havoc Pennington  <hp@pobox.com>
8835
8836         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8837         by default for message bus connections.
8838
8839         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8840         exit_on_disconnect flag is set and we process the disconnected
8841         signal.
8842         (dbus_connection_set_exit_on_disconnect): new function
8843
8844 2003-09-21  Havoc Pennington  <hp@pobox.com>
8845
8846         Get matching rules mostly working in the bus; only actually
8847         parsing the rule text remains. However, the client side of
8848         "signal connections" hasn't been started, this patch is only the
8849         bus side.
8850         
8851         * dbus/dispatch.c: fix for the matching rules changes
8852         
8853         * bus/driver.c (bus_driver_handle_remove_match)
8854         (bus_driver_handle_add_match): send an ack reply from these
8855         method calls
8856
8857         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8858         arguments, reported by Seth Nickell
8859
8860         * bus/config-parser.c (append_rule_from_element): support
8861         eavesdrop=true|false attribute on policies so match rules 
8862         can be prevented from snooping on the system bus.
8863
8864         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8865         and "destination" in attribute names; fix some docs bugs; 
8866         add eavesdrop=true|false attribute
8867
8868         * bus/driver.c (bus_driver_handle_add_match)
8869         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8870         messages
8871
8872         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8873         rid of broadcast service concept, signals are just always broadcast
8874
8875         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8876         mostly implement matching rules stuff (currently only exposed as signal
8877         connections)
8878
8879 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8880
8881         * doc/dbus-specification.sgml: Change the header field name
8882         to be an enum and update the rest of the spec to reference
8883         the fields using the conventinal name.
8884
8885         * dbus/dbus-protocol.h: update to reflect the spec.
8886
8887         * doc/TODO: add item to remove the 4 byte alignment requirement.
8888         
8889         * dbus/dbus-message.c: Remove the code to generalise the
8890         header/body length and serial number header fields as named
8891         header fields so we can reference field names using the 
8892         protocol values.
8893         (append_int_field), (append_uint_field), (append_string_field):
8894         Append the field name as a byte rather than four chars.
8895         (delete_int_or_uint_field), (delete_string_field): reflect the
8896         fact that the field name and typecode now occupy 4 bytes instead
8897         of 8.
8898         (decode_string_field), (decode_header_data): update to reflect
8899         protocol changes and move the field specific encoding from
8900         decode_string_field() back into decode_header_data().
8901         
8902         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8903         Add utility to aid debugging.
8904         
8905         * dbus/dbus-message-builder.c:
8906         (append_string_field), (_dbus_message_data_load): Update to
8907         reflect protocol changes; Change the FIELD_NAME directive
8908         to HEADER_FIELD and allow it to take the field's conventional
8909         name rather than the actual value.
8910         
8911         * test/data/*/*.message: Update to use HEADER_FIELD instead
8912         of FIELD_NAME; Always align the header on an 8 byte boundary
8913         *before* updating the header length.
8914
8915 2003-09-15  Havoc Pennington  <hp@pobox.com>
8916
8917         * dbus/dbus-pending-call.c: add the get/set object data
8918         boilerplate as for DBusConnection, etc. Use generic object data
8919         for the notify callback.
8920
8921         * glib/dbus-gparser.c (parse_node): parse child nodes
8922
8923         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8924         
8925         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8926         contain functions shared between the convenience lib and the
8927         installed lib
8928
8929         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8930         -export-symbols-regex to the GLib library
8931
8932         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8933         fix the locking in here, and add a default handler for
8934         Introspect() that just returns sub-nodes.
8935
8936 2003-09-14  Havoc Pennington  <hp@pobox.com>
8937
8938         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8939         rather than gfoo consistent
8940
8941         * glib/dbus-gproxy.h: delete for now, move contents to
8942         dbus-glib.h, because the include files don't work right since we
8943         aren't in the dbus/ subdir.
8944         
8945         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8946         (dbus_gproxy_end_call): finish
8947         (dbus_gproxy_begin_call): finish
8948
8949         * glib/dbus-gmain.c (dbus_set_g_error): new
8950
8951         * glib/dbus-gobject.c (handle_introspect): include information
8952         about child nodes in the introspection
8953
8954         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8955         function to help in implementation of introspection
8956
8957         * dbus/dbus-object-tree.c
8958         (_dbus_object_tree_list_registered_and_unlock): new function
8959
8960 2003-09-12  Havoc Pennington  <hp@pobox.com>
8961
8962         * glib/dbus-gidl.h: add common base class for all the foo_info
8963         types
8964
8965         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8966         similar to kdcop
8967
8968         * test/Makefile.am: try test srcdir -ef . in addition to test
8969         srcdir = ., one of them should work (yeah lame)
8970         
8971         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8972         library
8973         
8974         * glib/dbus-gparser.h: make description_load routines return
8975         NodeInfo* not Parser*
8976
8977         * Makefile.am (SUBDIRS): build test dir after all library dirs
8978
8979         * configure.in: add GTK+ detection
8980
8981 2003-09-07  Havoc Pennington  <hp@pobox.com>
8982
8983         * Make Doxygen contented.
8984
8985 2003-09-07  Havoc Pennington  <hp@pobox.com>
8986
8987         * doc/dbus-specification.sgml: more updates
8988
8989 2003-09-06  Havoc Pennington  <hp@pobox.com>
8990
8991         * doc/dbus-specification.sgml: partial updates
8992
8993         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8994         zillionth time; hopefully I edited the right file this time.
8995
8996         * bus/config-parser.c (append_rule_from_element): support
8997         send_type, send_path, receive_type, receive_path
8998
8999         * bus/policy.c: add message type and path to the list of things
9000         that can be "firewalled"
9001
9002 2003-09-06  Havoc Pennington  <hp@pobox.com>
9003
9004         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9005         (dbus_connection_register_object_path): make this not handle
9006         messages to paths below the given path
9007
9008 2003-09-03  Havoc Pennington  <hp@pobox.com>
9009
9010         * test/glib/Makefile.am: add this with random glib-linked test
9011         programs
9012
9013         * glib/Makefile.am: remove the random test programs from here,
9014         leave only the unit tests
9015
9016         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9017         uscore/javacaps conversion, and fix     
9018         (get_object_property, set_object_property): change to .NET
9019         convention for mapping props to methods, set_FooBar/get_FooBar, 
9020         since one language has such a convention we may as well copy it. 
9021         Plus real methods in either getFooBar or get_foo_bar style won't 
9022         collide with this convention.
9023
9024 2003-09-01  Havoc Pennington  <hp@pobox.com>
9025
9026         * glib/dbus-gparser.c: implement
9027
9028         * glib/dbus-gobject.c: start implementing skeletons support
9029
9030         * configure.in: when disabling checks/assert, also define
9031         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9032
9033 2003-09-01  Havoc Pennington  <hp@pobox.com>
9034
9035         * glib/Makefile.am: rearrange a bunch of files and get "make
9036         check" framework set up
9037
9038 2003-08-31  Havoc Pennington  <hp@pobox.com>
9039
9040         * fix build with --disable-tests
9041
9042 2003-08-30  Havoc Pennington  <hp@pobox.com>
9043
9044         * dbus/dbus-connection.c: purge DBusMessageHandler
9045
9046         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9047         use callbacks everywhere
9048
9049 2003-08-30  Havoc Pennington  <hp@pobox.com>
9050
9051         * test/data/valid-config-files/system.d/test.conf: change to 
9052         root for the user so warnings don't get printed
9053
9054         * dbus/dbus-message.c: add dbus_message_get_path,
9055         dbus_message_set_path
9056         
9057         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9058         dispatching to a path
9059
9060         * dbus/dbus-string.c (_dbus_string_validate_path): add
9061
9062         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9063         (_dbus_marshal_object_path): implement
9064
9065         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9066         to contain the path to the target object
9067         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9068         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9069
9070 2003-08-30  Havoc Pennington  <hp@pobox.com>
9071
9072         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9073
9074 2003-08-29  Havoc Pennington  <hp@pobox.com>
9075
9076         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9077         registered
9078         (struct DBusObjectSubtree): shrink this
9079         a lot, since we may have a lot of them
9080         (_dbus_object_tree_free_all_unlocked): implement
9081         (_dbus_object_tree_dispatch_and_unlock): implement
9082
9083 2003-08-29  Havoc Pennington  <hp@pobox.com>
9084
9085         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9086
9087 2003-08-28  Havoc Pennington  <hp@pobox.com>
9088
9089         purge DBusObjectID
9090         
9091         * dbus/dbus-connection.c: port to no ObjectID, create a
9092         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9093
9094         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9095         everything except UnregisterFunction and MessageFunction
9096         
9097         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9098         add DBUS_TYPE_OBJECT_PATH
9099         
9100         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9101         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9102         path-based object IDs
9103
9104 2003-08-25  Havoc Pennington  <hp@pobox.com>
9105
9106         Just noticed that dbus_message_test is hosed, I wonder when I
9107         broke that. I thought make check was passing earlier...
9108         
9109         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9110         container tree, will replace most of dbus-object-registry
9111
9112         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9113         screwup
9114
9115 2003-08-19  Havoc Pennington  <hp@pobox.com>
9116
9117         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9118         (dbus_message_is_error): fix this function
9119
9120         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9121         match
9122
9123         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9124         reflect clarified man page
9125         (bus_client_policy_check_can_send): ditto
9126         
9127         * bus/session.conf.in: fixup
9128
9129         * bus/system.conf.in: fixup
9130
9131 2003-08-18  Havoc Pennington  <hp@redhat.com>
9132
9133         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9134
9135         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9136         dumb bug created earlier (wrong order of args to
9137         decode_header_data())
9138         
9139         * tools/dbus-send.c: port
9140
9141         * tools/dbus-print-message.c (print_message): port
9142
9143         * test/data/*messages: port all messages over
9144         
9145         * dbus/dbus-message-builder.c: support including 
9146         message type
9147         
9148         * bus/driver.c: port over
9149         
9150         * bus/dispatch.c: port over to new stuff
9151
9152         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9153         rename disconnect signal to "Disconnected"
9154
9155 2003-08-17  Havoc Pennington  <hp@pobox.com>
9156
9157         This doesn't compile yet, but syncing up so I can hack on it from
9158         work. What are branches for if not broken code? ;-)
9159         
9160         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9161         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9162         DBUS_HEADER_FIELD_ERROR_NAME
9163         
9164         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9165         for the interface+member pairs
9166         (string_hash): change to use g_str_hash algorithm
9167         (find_direct_function, find_string_function): refactor these to
9168         share most code.
9169         
9170         * dbus/dbus-message.c: port all of this over to support 
9171         interface/member fields instead of name field
9172
9173         * dbus/dbus-object-registry.c: port over
9174         
9175         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9176         from _dbus_string_validate_name
9177
9178         * bus/dbus-daemon-1.1: change file format for the 
9179         <deny>/<allow> stuff to match new message naming scheme
9180
9181         * bus/policy.c: port over
9182
9183         * bus/config-parser.c: parse new format
9184         
9185 2003-08-16  Havoc Pennington  <hp@pobox.com>
9186
9187         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9188         broken assertion
9189
9190         * glib/dbus-gproxy.c: some hacking
9191
9192 2003-08-15  Havoc Pennington  <hp@redhat.com>
9193
9194         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9195
9196         * dbus/dbus-connection.c
9197         (dbus_connection_send_with_reply_and_block): factor out internals;
9198         change to convert any error replies to DBusError instead of 
9199         returning them as a message
9200
9201 2003-08-15  Havoc Pennington  <hp@pobox.com>
9202
9203         * dbus/dbus-connection.c, 
9204         dbus/dbus-pending-call.c: Finish the pending call stuff
9205
9206 2003-08-14  Havoc Pennington  <hp@redhat.com>
9207
9208         * dbus/dbus-pending-call.c: start on new object that will replace
9209         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9210         replies
9211
9212         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9213         with remote interfaces
9214
9215         * dbus/dbus-gidl.c: do the boring boilerplate in here
9216         
9217 2003-08-12  Havoc Pennington  <hp@pobox.com>
9218
9219         * bus/dispatch.c (bus_dispatch): make this return proper 
9220         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9221
9222         * dbus/dbus-errors.c (dbus_set_error): use
9223         _dbus_string_append_printf_valist
9224
9225         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9226         (_dbus_string_append_printf): new
9227
9228         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9229         UNKNOWN_METHOD
9230
9231         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9232         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9233         message is unhandled.
9234
9235 2003-08-11  Havoc Pennington  <hp@pobox.com>
9236
9237         * bus/test.c (client_disconnect_handler): change to return
9238         HANDLED (would have been REMOVE_MESSAGE)
9239
9240         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9241         HANDLED/NOT_YET_HANDLED instead of
9242         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9243         should be used.
9244
9245 2003-08-10  Havoc Pennington  <hp@pobox.com>
9246
9247         * tools/dbus-send.c (main): add --type argument, for now
9248         supporting only method_call and signal types.
9249
9250         * tools/dbus-print-message.c: print message type
9251
9252         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9253         init connection->objects
9254
9255         * doc/dbus-specification.sgml: fix sgml
9256
9257         * bus/*.c: port over to object-instance API changes
9258
9259         * test/test-service.c: ditto
9260         
9261         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9262         name, we will have to fix up the rest of the code to also handle
9263         this
9264         (dbus_message_new): generic message-creation call
9265         (set_string_field): allow appending name field
9266
9267 2003-08-06  Havoc Pennington  <hp@pobox.com>
9268
9269         * dbus/dbus-object-registry.c: implement signal connection 
9270         and dispatch
9271
9272         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9273
9274         * dbus/dbus-internals.c (_dbus_memdup): new function
9275
9276 2003-08-02  Havoc Pennington  <hp@pobox.com>
9277
9278         * dbus/dbus-message.c (dbus_message_get_no_reply)
9279         (dbus_message_set_no_reply): add these and remove
9280         set_is_error/get_is_error
9281
9282         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9283         remove the ERROR flag, since there's now an ERROR type
9284
9285 2003-08-01  Havoc Pennington  <hp@pobox.com>
9286
9287         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9288         implement
9289
9290         * dbus/dbus-message.c (dbus_message_get_type): new function
9291
9292         * doc/dbus-specification.sgml: add "type" byte to messages
9293
9294 2003-08-01  Havoc Pennington  <hp@pobox.com>
9295
9296         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9297         a message type enum to distinguish kinds of message
9298         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9299         that need not be replied to
9300
9301 2003-08-01  Havoc Pennington  <hp@pobox.com>
9302
9303         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9304         (unpack_8_octets): fix no-64-bit-int bug
9305
9306         * dbus/dbus-object-registry.c (validate_id): validate the 
9307         connection ID bits, not just the instance ID.
9308
9309         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9310         the connection-global 33 bits of the object ID
9311
9312         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9313         object ID in the new way
9314
9315         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9316         define server/client/instance bits.
9317
9318 2003-07-30  Havoc Pennington  <hp@pobox.com>
9319
9320         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9321         build
9322
9323 2003-07-13  Havoc Pennington  <hp@pobox.com>
9324
9325         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9326         fields to DBusObjectVTable and DBusObjectInfo
9327
9328 2003-07-12  Havoc Pennington  <hp@pobox.com>
9329
9330         * dbus/dbus-object-registry.c: implement unit test,
9331         fix bugs discovered in process
9332
9333         * dbus/dbus-connection.c: remove handler_table and
9334         register_handler(), add DBusObjectRegistry usage
9335
9336         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9337         (dbus_object_id_set_null): new functions
9338
9339 2003-07-08  Havoc Pennington  <hp@pobox.com>
9340
9341         * dbus/dbus-object.c: implement some of this
9342
9343         * dbus/dbus-object-registry.c
9344         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9345         param
9346         (_dbus_object_registry_new): handle OOM
9347
9348 2003-07-08  Havoc Pennington  <hp@pobox.com>
9349
9350         * dbus/dbus-object.h: sketch out an API for registering objects
9351         with a connection, that allows us to use as little as 24 bytes
9352         per object and lets application code represent an object in 
9353         any conceivable way.
9354
9355         * dbus/dbus-object-registry.c: implement the hard bits of the
9356         DBusConnection aspect of object API. Not yet wired up.
9357         
9358 2003-07-06  Havoc Pennington  <hp@pobox.com>
9359
9360         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9361         (_dbus_marshal_object_id): new
9362         (_dbus_demarshal_object_id): new
9363         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9364         consolidate identical switch cases. Don't conditionalize handling
9365         of DBUS_TYPE_UINT64, need to handle the type always.
9366         (_dbus_marshal_validate_arg): consolidate identical cases, and
9367         handle DBUS_TYPE_OBJECT_ID
9368
9369         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9370
9371         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9372
9373 2003-09-28  Havoc Pennington  <hp@pobox.com>
9374
9375         * real 0.13 release
9376
9377 2003-09-28  Havoc Pennington  <hp@pobox.com>
9378
9379         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9380         to work with Debian db2html
9381
9382 2003-09-28  Havoc Pennington  <hp@pobox.com>
9383
9384         * configure.in: 0.13
9385
9386         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9387         stylesheet-images for benefit of Debian
9388         
9389         Change back to using filesystem-linked sockets for the system
9390         bus, so only root can create the default system bus address.
9391         
9392         * bus/system.conf.in: change to use
9393         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9394
9395         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9396         from here.
9397
9398         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9399         here, and AC_DEFINE DBUS_SYSTEM_PATH
9400
9401 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9402
9403         * doc/TODO:
9404         * doc/busconfig.dtd:
9405         Add busconfig DTD.
9406         
9407 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9408
9409         * doc/dbus-specification.sgml:
9410         Add activation reply values.
9411         
9412 2003-08-05  Havoc Pennington  <hp@redhat.com>
9413
9414         * configure.in: 0.12
9415
9416 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9417
9418         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9419         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9420         (add_watch), (remove_watch), (create_source):
9421         Refcount fds, fixes some reentrancy issues.
9422         
9423 2003-07-30  Havoc Pennington  <hp@redhat.com>
9424
9425         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9426         bus address to be abstract if we have abstract sockets
9427
9428         * NEWS: update
9429
9430 2003-07-28  Havoc Pennington  <hp@redhat.com>
9431
9432         * bus/messagebus.in: fix to avoid processname/servicename 
9433         confusion, from Michael Kearey
9434         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9435         
9436 2003-07-23  Havoc Pennington  <hp@pobox.com>
9437
9438         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9439         fix from Andy Hanton to remove broken "+1"
9440
9441 2003-07-16  Havoc Pennington  <hp@pobox.com>
9442
9443         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9444         babysitter process, as suggested by Thomas Leonard, so 
9445         an "eval `dbus-launch --exit-with-session`" will actually 
9446         return
9447
9448 2003-07-16  Havoc Pennington  <hp@pobox.com>
9449
9450         * configure.in: print out EXPANDED_* variables in the summary at
9451         the end; clean up the code that computes EXPANDED_ variables and
9452         get the ones using exec_prefix right. Should make things work
9453         when you build without --prefix
9454
9455 2003-06-29  Havoc Pennington  <hp@pobox.com>
9456
9457         * mono/Test.cs (class Test): fire up a main loop and run it
9458
9459         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9460         done once, the app has to do it
9461
9462 2003-06-26  Havoc Pennington  <hp@pobox.com>
9463
9464         * mono/Connection.cs: set up connection with the glib main loop
9465
9466 2003-07-01  Havoc Pennington  <hp@redhat.com>
9467
9468         * doc/dbus-specification.sgml: clarify the format of a type code,
9469         change suggested by Jim Blandy
9470
9471 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9472
9473         * doc/Makefile.am:
9474         * tools/Makefile.am: Don't assume srcdir == builddir.
9475
9476         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9477         the allocated block.
9478         (_dbus_memory_test): New function.
9479         * dbus/dbus-test.h: Add _dbus_memory_test ().
9480         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9481
9482         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9483         of %c%c%c%c.
9484         (dbus_message_new): Remove obsolete @todo.
9485
9486         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9487         (_dbus_marshal_set_uint64): Fix comment.
9488
9489         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9490         hardcode FIELD_REPLY_SERIAL.
9491
9492         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9493         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9494
9495         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9496         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9497
9498 2003-06-24  Havoc Pennington  <hp@pobox.com>
9499
9500         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9501
9502 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9503
9504         * configure.in:
9505         * gcj/.cvsignore:
9506         * gcj/Hello.java:
9507         * gcj/Makefile.am:
9508         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9509         * gcj/org/.cvsignore:
9510         * gcj/org/Makefile.am:
9511         * gcj/org/freedesktop/.cvsignore:
9512         * gcj/org/freedesktop/Makefile.am:
9513         * gcj/org/freedesktop/dbus/.cvsignore:
9514         * gcj/org/freedesktop/dbus/Makefile.am:
9515         * gcj/org/freedesktop/dbus/Message.java: (Message),
9516         (Message.Message):
9517         * gcj/org/freedesktop/dbus/natMessage.cc:
9518         Fix the build system.
9519
9520 2003-06-22  Havoc Pennington  <hp@pobox.com>
9521
9522         * mono/Connection.cs: add more bindings
9523
9524         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9525         more than once.
9526
9527 2003-06-22  Havoc Pennington  <hp@pobox.com>
9528
9529         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9530         Start wrapping more stuff.
9531
9532 2003-06-22  Havoc Pennington  <hp@pobox.com>
9533
9534         * mono/Message.cs: implement Message.Wrap() that ensures we only
9535         have a single C# wrapper per DBusMessage, assuming it works which
9536         it probably doesn't.
9537
9538         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9539         (dbus_message_free_data_slot): new
9540         (dbus_message_set_data): new
9541         (dbus_message_get_data): new
9542
9543 2003-06-22  Havoc Pennington  <hp@pobox.com>
9544
9545         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9546         (_dbus_data_slot_allocator_alloc): rework these to keep a
9547         reference count on each slot and automatically manage a global
9548         slot ID variable passed in by address
9549
9550         * bus/bus.c: convert to new dataslot API
9551
9552         * dbus/dbus-bus.c: convert to new dataslot API
9553
9554         * dbus/dbus-connection.c: convert to new dataslot API
9555
9556         * dbus/dbus-server.c: convert to new dataslot API
9557
9558         * glib/dbus-gmain.c: ditto
9559
9560         * bus/test.c: ditto
9561
9562         * bus/connection.c: ditto
9563
9564 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9565
9566         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9567         after the gcj checks so that the correct configuration tags
9568         will be added to libtool.
9569
9570         * dbus-glib-1.pc.in: No need to specify any includes since
9571         dbus-1.pc.in has those.
9572
9573 2003-06-22  Havoc Pennington  <hp@pobox.com>
9574
9575         * mono/*, gcj/*, configure.in, Makefile.am:
9576         Check in makefiles and subdirs for mono and gcj bindings.
9577         Neither binding actually exists, just trying to get through
9578         all the build and other boring bits.
9579
9580 2003-06-21  Philip Blundell  <philb@gnu.org>
9581
9582         * tools/dbus-monitor.1: Updated.
9583
9584         * tools/dbus-send.1: Likewise.
9585
9586 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9587
9588         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9589         for hangup and error after checking read so we won't discard
9590         pending data if both hangup and read are set.
9591
9592 2003-06-19  Philip Blundell  <philb@gnu.org>
9593
9594         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9595
9596         * tools/dbus-send.c: Accept both --system and --session.
9597
9598         * tools/dbus-monitor.c: Same here.
9599
9600 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9601
9602         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9603         from C++ (Patch by Miloslav Trmac).
9604
9605 2003-06-15  Joe Shaw  <joe@assbarn.com>
9606
9607         * configure.in: Check for socklen_t.
9608
9609         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9610
9611         * test/test-segfault.c: Add #include <sys/time.h>
9612
9613         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9614         dbus-launch needs it.
9615
9616 2003-06-09  Havoc Pennington  <hp@redhat.com>
9617
9618         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9619         SUN_LEN, it breaks abstract socket usage
9620
9621         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9622         starts of lines.
9623
9624 2003-06-04  Havoc Pennington  <hp@pobox.com>
9625
9626         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9627         using unix:abstract=/foo, and when listening in a tmpdir
9628         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9629
9630         * dbus/dbus-transport.c (_dbus_transport_open): support
9631         unix:abstract=/foo
9632
9633         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9634         support abstract sockets
9635
9636         * dbus/dbus-transport-unix.c
9637         (_dbus_transport_new_for_domain_socket): support abstract sockets
9638
9639         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9640         toggle as an argument, implement abstract namespace support
9641         (_dbus_listen_unix_socket): ditto
9642
9643         * configure.in: add --enable-abstract-sockets and implement
9644         a configure check for autodetection of the right value.
9645
9646 2003-06-01  Havoc Pennington  <hp@pobox.com>
9647
9648         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9649         in /tmp (though on Linux this will end up being useless,
9650         when we add abstract namespace support)
9651
9652         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9653         subst'ing it
9654
9655 2003-05-28  Colin Walters  <walters@verbum.org>
9656
9657         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9658
9659 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9660
9661         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9662
9663 2003-05-17  Colin Walters  <walters@gnu.org>
9664
9665         * tools/dbus-send.c: Don't exit with an error code if --help was
9666         passed.  Default to using the session bus instead of the system
9667         one.
9668
9669         * tools/dbus-launch.c: Ditto.
9670
9671         * tools/dbus-monitor.c: Ditto.
9672
9673         * tools/dbus-send.1: Update with new arguments.
9674
9675         * tools/dbus-launch.c: Emit code to export variables.  New
9676         arguments -s and -c to specify shell syntax, and a bit of code to
9677         autodetect syntax.  Also, allow specifying a program to run.
9678
9679         * tools/dbus-launch.1: Update with new arguments.
9680
9681         * tools/dbus-send.1: Ditto.
9682
9683         * tools/dbus-monitor.1: Ditto.
9684
9685 2003-05-17  Havoc Pennington  <hp@pobox.com>
9686
9687         * bus/config-parser.c (merge_included): merge in policies from
9688         child configuration file.
9689
9690         * bus/policy.c (bus_policy_merge): function to merge two policies
9691         together
9692
9693 2003-05-16  Havoc Pennington  <hp@redhat.com>
9694
9695         * dbus/dbus-connection.c: disable verbose lock spew
9696
9697         * tools/dbus-send.c: add --print-reply command line option
9698
9699         * tools/dbus-print-message.h (print_message): new util function
9700         shared by dbus-send and dbus-monitor
9701
9702         * tools/dbus-monitor.c (handler_func): exit on disconnect
9703
9704         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9705         disconnected, don't try to use the read_watch
9706
9707         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9708         so we can find this bug more easily
9709
9710 2003-05-16  Havoc Pennington  <hp@redhat.com>
9711
9712         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9713         NULL as DBusHashTable is annoyingly likely to do.
9714
9715 2003-05-16  Colin Walters  <walters@verbum.org>
9716
9717         * tools/dbus-monitor.c: Add --session argument and usage()
9718         function.
9719
9720         * tools/dbus-monitor.1: Update with new --session arg.
9721
9722         * bus/Makefile.am (install-data-hook): Create
9723         $(libdir)/dbus-1.0/services so that the session bus is happy.
9724
9725 2003-05-15  Havoc Pennington  <hp@redhat.com>
9726
9727         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9728         on non-x86. ifdef's are evil.
9729
9730 2003-05-15  Havoc Pennington  <hp@redhat.com>
9731
9732         * configure.in: 0.11
9733
9734         * NEWS: update
9735
9736         * bus/Makefile.am (initddir): apparently we are supposed to put
9737         init scripts in /etc/rc.d/init.d not /etc/init.d
9738
9739         * bus/Makefile.am: remove the "you must --enable-tests to make
9740         check" as it broke distcheck
9741
9742         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9743
9744 2003-05-13  James Willcox  <jwillcox@gnome.org>
9745
9746         * configure.in:
9747         * bus/activation.c: (bus_activation_service_created),
9748         (bus_activation_activate_service):
9749         * bus/driver.c: (bus_driver_send_service_deleted),
9750         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9751         (bus_driver_send_service_acquired),
9752         (bus_driver_send_welcome_message),
9753         (bus_driver_handle_list_services):
9754         * bus/session.conf.in:
9755         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9756         (dbus_bus_service_exists), (dbus_bus_activate_service):
9757         * dbus/dbus-bus.h:
9758
9759         Add some convenience API which lets you activate a service, and did a
9760         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9761         and dbus_message_get_args()
9762
9763 2003-05-11  Havoc Pennington  <hp@pobox.com>
9764
9765         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9766         calling _dbus_marshal_validate_arg() for every byte in a byte
9767         array, etc.
9768
9769         * dbus/dbus-message-handler.c: use atomic reference counting to
9770         reduce number of locks slightly; the global lock in here sucks
9771
9772         * dbus/dbus-connection.c
9773         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9774         update_dispatch_status that can be called with lock held; then use
9775         in a couple places to reduce locking/unlocking
9776         (dbus_connection_send): hold the lock over the whole function
9777         instead of acquiring it twice.
9778
9779         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9780
9781         * bus/connection.c (bus_connections_setup_connection): fix access
9782         to already-freed memory.
9783
9784         * dbus/dbus-connection.c: keep a little cache of linked list
9785         nodes, to avoid using the global linked list alloc lock in the
9786         normal send-message case. Instead we just use the connection lock
9787         that we already have to take.
9788
9789         * dbus/dbus-list.c (_dbus_list_find_last): new function
9790
9791         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9792         change to use a struct for the atomic type; fix docs,
9793         they return value before increment, not after increment.
9794
9795         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9796         (_dbus_string_append_8_aligned): new functions to try to
9797         microoptimize this operation.
9798         (reallocate_for_length): break this out of set_length(), to
9799         improve profile info, and also so we can consider inlining the
9800         set_length() part.
9801
9802         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9803         strings with some preallocation, cuts down on our calls to realloc
9804         a fair bit. Though if we can get the "move entire string to empty
9805         string" optimization below to kick in here, it would be better.
9806
9807         * dbus/dbus-string.c (_dbus_string_move): just call
9808         _dbus_string_move_len
9809         (_dbus_string_move_len): add a special case for moving
9810         an entire string into an empty string; we can just
9811         swap the string data instead of doing any reallocs.
9812         (_dbus_string_init_preallocated): new function
9813
9814 2003-05-11  Havoc Pennington  <hp@pobox.com>
9815
9816         Write a "test-profile" that does echo client-server with threads;
9817         profile reveals lock contention, memcpy/realloc of buffers, and
9818         UTF-8 validation as hot spots. 20% of lock contention eliminated
9819         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9820         contention is global mempool locks for GList and DBusList.
9821
9822         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9823         x86 implementation
9824
9825         * dbus/dbus-connection.c (struct DBusConnection): use
9826         dbus_atomic_t for the reference count
9827
9828         * dbus/dbus-message.c (struct DBusMessage): declare
9829         dbus_atomic_t values as volatile
9830
9831         * configure.in: code to detect ability to use atomic integer
9832         operations in assembly, from GLib patch
9833
9834         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9835         time, tired of it being wrong in threads and forked processes
9836
9837         * glib/test-profile.c: a little program to bounce messages back
9838         and forth between threads and eat CPU
9839
9840         * dbus/dbus-connection.c: add debug spew macros for debugging
9841         thread locks; include config.h at top; fix deadlock in
9842         dbus_connection_flush()
9843
9844 2003-05-08  Havoc Pennington  <hp@pobox.com>
9845
9846         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9847         data from getting written, and there wasn't a good reason to
9848         use _exit really.
9849
9850         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9851         dbus_verbose lines in test coverage
9852         (main): add list of functions sorted by # of untested blocks
9853         to the coverage report
9854
9855         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9856
9857         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9858
9859         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9860         extend test coverage
9861
9862         * test/data/auth/cancel.auth-script: test canceling an
9863         authentication
9864
9865         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9866         aren't used. in CVS history if we end up needing them.
9867
9868 2003-05-04  Havoc Pennington  <hp@pobox.com>
9869
9870         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9871         unit test
9872
9873         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9874         function, which assumed length was in # of strings, not bytes
9875
9876         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9877         missing coverage
9878
9879         * dbus/dbus-connection.c
9880         (_dbus_connection_queue_received_message): disable function for
9881         now, we are only using it in test mode
9882
9883         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9884         remove a mistaken FIXME
9885
9886 2003-05-04  Havoc Pennington  <hp@pobox.com>
9887
9888         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9889         unlock mutex on successful return, patch from Anders Gustafsson
9890
9891 2003-05-04  Havoc Pennington  <hp@pobox.com>
9892
9893         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9894         Anders Gustafsson
9895
9896 2003-05-04  Havoc Pennington  <hp@pobox.com>
9897
9898         * tools/dbus-launch.c: implement
9899
9900         * bus/main.c (main), bus/bus.c (bus_context_new):
9901         implement --print-pid and --fork
9902
9903 2003-05-03  Havoc Pennington  <hp@redhat.com>
9904
9905         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9906         the address had no value, and add to test suite. Fix and
9907         regression test from Miloslav Trmac
9908
9909 2003-05-03  Havoc Pennington  <hp@pobox.com>
9910
9911         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9912         watch is invalid when handled
9913
9914         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9915         dbus-launch utility to launch the bus from a shell script.  Didn't
9916         actually implement dbus-launch yet, it's just a placeholder still.
9917
9918 2003-05-03  Havoc Pennington  <hp@pobox.com>
9919
9920         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9921         daemon; also documents daemon config file, so replaces
9922         doc/config-file.txt. Corrected some stuff from config-file.txt in
9923         the process of moving it.
9924
9925 2003-05-03  Havoc Pennington  <hp@pobox.com>
9926
9927         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9928         add some man pages
9929
9930 2003-05-03  Colin Walters  <walters@verbum.org>
9931
9932         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9933         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9934
9935         * Makefile.am: Update to use new .pc versioning scheme.
9936
9937 2003-05-02  Havoc Pennington  <hp@redhat.com>
9938
9939         * bus/system.conf.in: allow send/receive to/from message bus
9940         service
9941
9942 2003-04-30  Havoc Pennington  <hp@redhat.com>
9943
9944         * configure.in: print a note when building with unit tests and
9945         without assertions
9946
9947 2003-04-30  Havoc Pennington  <hp@redhat.com>
9948
9949         * Makefile.am: add a check-local that complains if you didn't
9950         configure with --enable-tests
9951
9952 2003-04-29  Havoc Pennington  <hp@redhat.com>
9953
9954         * glib/dbus-gmain.c: docs cleanups
9955
9956         * dbus/dbus-types.h: add docs on int64 types
9957
9958         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9959         public API docs section
9960
9961 2003-04-29  Havoc Pennington  <hp@redhat.com>
9962
9963         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9964         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9965         parallel install API version, not with the D-BUS package version.
9966
9967         * HACKING: move some of README over here
9968
9969         * README: updates, and document API/ABI policy
9970
9971         * configure.in: reindentation
9972
9973 2003-04-29  Havoc Pennington  <hp@redhat.com>
9974
9975         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9976         to use this library" to be sure people have the right
9977         expectations.
9978
9979 2003-04-28  Havoc Pennington  <hp@redhat.com>
9980
9981         * configure.in: add --enable-docs which by default is auto yes if
9982         doxygen and db2html found, no otherwise; but can be forced on/off
9983
9984         * doc/Makefile.am: conditionalize whether to build docs on
9985         --enable-docs
9986
9987 2003-04-28  Havoc Pennington  <hp@redhat.com>
9988
9989         * configure.in: 0.10
9990
9991         * NEWS: update
9992
9993         * bus/system.conf.in: add <includedir>system.d</includedir>
9994
9995         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9996         username was provided but not uid
9997
9998         * bus/config-parser.c (struct BusConfigParser): keep track of
9999         whether the parser is toplevel or was included; change some
10000         of the error handling if it's included.
10001
10002 2003-04-27  Havoc Pennington  <hp@pobox.com>
10003
10004         Unbreak my code...
10005
10006         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10007         report correct status if we finish processing authentication
10008         inside this function.
10009
10010         * bus/activation.c (try_send_activation_failure): use
10011         bus_transaction_send_error_reply
10012
10013         * bus/connection.c (bus_connection_get_groups): return an error
10014         explaining the problem
10015
10016         * bus/bus.c (bus_context_check_security_policy): implement
10017         restriction here that inactive connections can only send the
10018         hello message. Also, allow bus driver to send anything to
10019         any recipient.
10020
10021         * bus/connection.c (bus_connection_complete): create the
10022         BusClientPolicy here instead of on-demand.
10023         (bus_connection_get_policy): don't return an error
10024
10025         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10026         sender field in message being replied to
10027
10028         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10029         causing it to return FALSE always
10030
10031         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10032         we checked sender rather than destination
10033
10034 2003-04-25  Havoc Pennington  <hp@redhat.com>
10035
10036         test suite is slightly hosed at the moment, will fix soon
10037
10038         * bus/connection.c (bus_connections_expire_incomplete): fix to
10039         properly disable the timeout when required
10040         (bus_connection_set_name): check whether we can remove incomplete
10041         connections timeout after we complete each connection.
10042
10043         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10044         probably still broken.
10045
10046         * bus/services.c (bus_registry_acquire_service): implement max
10047         number of services owned, and honor allow/deny rules on which
10048         services a connection can own.
10049
10050         * bus/connection.c (bus_connection_get_policy): report errors here
10051
10052         * bus/activation.c: implement limit on number of pending
10053         activations
10054
10055 2003-04-25  Havoc Pennington  <hp@redhat.com>
10056
10057         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10058         where we used >= 0 instead of != DBUS_UID_UNSET.
10059
10060 2003-04-25  Havoc Pennington  <hp@redhat.com>
10061
10062         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10063         were toggled without add/remove, fix from Anders Gustafsson
10064
10065 2003-04-24  Havoc Pennington  <hp@redhat.com>
10066
10067         * test/data/valid-config-files/basic.conf: add <limit> tags to
10068         this test
10069
10070         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10071         <limit> tag in configuration file.
10072
10073 2003-04-24  Havoc Pennington  <hp@redhat.com>
10074
10075         * bus/dispatch.c: somehow missed some name_is
10076
10077         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10078         (_dbus_timeout_set_interval): new
10079
10080         * bus/connection.c (bus_connections_setup_connection): record time
10081         when each connection is first set up, and expire them after the
10082         auth timeout passes.
10083
10084 2003-04-24  Havoc Pennington  <hp@redhat.com>
10085
10086         * dbus/dbus-message.c (dbus_message_name_is): rename
10087         (dbus_message_service_is): rename
10088         (dbus_message_sender_is): rename
10089         (dbus_message_get_service): rename
10090
10091 2003-04-24  Havoc Pennington  <hp@redhat.com>
10092
10093         * configure.in: add --enable-checks
10094
10095         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10096
10097         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10098         to use thread locks.
10099         (_dbus_connection_handler_destroyed_locked): move some private
10100         functions into proper docs group
10101
10102         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10103         _dbus_return_val_if_fail
10104
10105         Throughout: use dbus_return_if_fail
10106
10107 2003-04-23  James Willcox  <jwillcox@gnome.org>
10108
10109         * glib/dbus-glib.h:
10110         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10111         (dbus_connection_setup_with_g_main),
10112         (dbus_server_setup_with_g_main):
10113         * glib/test-dbus-glib.c: (main):
10114         * glib/test-thread-client.c: (main):
10115         * glib/test-thread-server.c: (new_connection_callback), (main):
10116         * tools/dbus-monitor.c: (main):
10117
10118         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10119         and dbus_server_setup_with_g_main().
10120
10121 2003-04-20  Havoc Pennington  <hp@pobox.com>
10122
10123         * doc/dbus-specification.sgml: document the restrictions on
10124         message and service names
10125
10126 2003-04-22  Havoc Pennington  <hp@redhat.com>
10127
10128         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10129         support, and do some code cleanups to share more code and
10130         speed up array marshal/demarshal.
10131
10132         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10133
10134         * configure.in: generate dbus-arch-deps.h
10135
10136         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10137         64-bit typecodes
10138
10139 2003-04-22  Havoc Pennington  <hp@redhat.com>
10140
10141         * test/data/valid-messages/opposite-endian.message: fix test
10142         to use proper type for rply field
10143
10144         * test/data/invalid-messages: add tests for below validation
10145
10146         * dbus/dbus-message.c (decode_header_data): validate field types,
10147         and validate that named fields are valid names
10148         (decode_name_field): consider messages in the
10149         org.freedesktop.Local. namespace to be invalid.
10150
10151         * dbus/dbus-string.c (_dbus_string_validate_name): new
10152
10153 2003-04-19  Havoc Pennington  <hp@pobox.com>
10154
10155         * bus/driver.c (bus_driver_handle_hello): check limits and
10156         return an error if they are exceeded.
10157
10158         * bus/connection.c: maintain separate lists of active and inactive
10159         connections, and a count of each. Maintain count of completed
10160         connections per user. Implement code to check connection limits.
10161
10162         * dbus/dbus-list.c (_dbus_list_unlink): export
10163
10164         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10165         number of bytes in the message queue for a connection
10166
10167 2003-04-18  Havoc Pennington  <hp@pobox.com>
10168
10169         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10170
10171         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10172         memleaks
10173
10174         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10175         on realloc be sure to update the pointer in the keyring
10176
10177         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10178         offset to avoid writing to unallocated memory
10179
10180         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10181         try the next mechanism, so we properly handle OOM
10182
10183         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10184         on OOM.
10185         (_dbus_keyring_new): fix OOM bug
10186         (_dbus_keyring_new_homedir): always set error; impose a maximum
10187         number of keys we'll load from the file, mostly to speed up the
10188         test suite and make its OOM checks more useful, but also for
10189         general sanity.
10190
10191         * dbus/dbus-auth.c (process_error_server): reject authentication
10192         if we get an error from the client
10193         (process_cancel): on cancel, send REJECTED, per the spec
10194         (process_error_client): send CANCEL if we get an error from the
10195         server.
10196
10197 2003-04-18  Havoc Pennington  <hp@pobox.com>
10198
10199         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10200         debug spew
10201
10202         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10203         handling problem
10204
10205         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10206         about DBUS_TEST_HOMEDIR once
10207
10208         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10209         the environment
10210
10211         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10212         config file so we test the right thing
10213
10214         Throughout: assorted docs improvements
10215
10216 2003-04-18  Havoc Pennington  <hp@pobox.com>
10217
10218         * glib/dbus-gmain.c: adapt to watch changes
10219
10220         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10221
10222         * dbus/dbus-server.h: remove dbus_server_handle_watch
10223
10224         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10225
10226         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10227         like DBusTimeout, so we don't need dbus_connection_handle_watch
10228         etc.
10229
10230 2003-04-17  Havoc Pennington  <hp@redhat.com>
10231
10232         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10233         database usage so it all goes via the DBusUserDatabase cache.
10234
10235 2003-04-17  Havoc Pennington  <hp@redhat.com>
10236
10237         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10238         there was an OOM watch we skipped, we always return TRUE so we
10239         iterate again to have a look at it again. Fixes test suite hang.
10240         Code rearrangement also lets us lose some memset and only iterate
10241         over callbacks once.
10242
10243         * bus/driver.c (bus_driver_handle_message): sense of test for
10244         reply was backward
10245
10246 2003-04-16  Havoc Pennington  <hp@pobox.com>
10247
10248         * doc/dbus-specification.sgml: make spec say serials are unsigned
10249
10250         * dbus/dbus-message.h: change message serials to unsigned
10251
10252         * dbus/dbus-connection.c: adapt to message serials being unsigned
10253
10254 2003-04-15  Havoc Pennington  <hp@pobox.com>
10255
10256         * bus/bus.c: create and keep around a shared DBusUserDatabase
10257         object.
10258
10259         * bus/connection.c (bus_connection_get_groups): don't cache
10260         groups for user in the connection object, since user database
10261         object now does that.
10262
10263 2003-04-16  Havoc Pennington  <hp@redhat.com>
10264
10265         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10266         list of size counters
10267         (_dbus_message_loader_putback_message_link): put back a popped link
10268
10269         * dbus/dbus-connection.c
10270         (dbus_connection_set_max_live_messages_size): rename
10271         max_received_size
10272         (dbus_connection_get_outgoing_size): get size of outgoing
10273         queue
10274         (_dbus_connection_set_connection_counter): remove this cruft
10275
10276 2003-04-14  Havoc Pennington  <hp@redhat.com>
10277
10278         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10279         caching, but at some point we might want to be able to use a
10280         different database.
10281
10282         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10283         SHA1 conf file to test the sha1 auth mechanism, since the regular
10284         test always uses EXTERNAL when available.
10285
10286         * configure.in,
10287         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10288         add conf file that requires use of sha1 auth
10289
10290 2003-04-13  Havoc Pennington  <hp@pobox.com>
10291
10292         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10293         from Philip Blundell to send messages and monitor them.
10294
10295 2003-04-13  Havoc Pennington  <hp@pobox.com>
10296
10297         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10298         callbacks
10299
10300         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10301         users
10302
10303         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10304         fix to only recover unused bytes if we're already authenticated
10305         (_dbus_transport_get_is_authenticated): fix to still mark us
10306         authenticated if there are unused bytes.
10307
10308         * bus/dispatch.c: implement security policy checking
10309
10310         * bus/connection.c (bus_transaction_send_from_driver): new
10311
10312         * bus/bus.c (bus_context_check_security_policy): new
10313
10314         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10315         now we just set the DBusError and it gets converted to an error
10316         reply.
10317
10318         * bus/connection.c (allow_user_function): enable code using actual
10319         data from the config file
10320
10321         * bus/policy.c (list_allows_user): handle wildcard rules for
10322         user/group connection perms
10323
10324 2003-04-13  Havoc Pennington  <hp@pobox.com>
10325
10326         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10327
10328         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10329
10330         * bus/policy.c (bus_policy_append_mandatory_rule)
10331         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10332         (bus_policy_append_group_rule): new functions
10333
10334 2003-04-12  Havoc Pennington  <hp@pobox.com>
10335
10336         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10337
10338         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10339         the pid/gid/uid, just for paranoia.
10340
10341         * test/break-loader.c (randomly_do_n_things): find a byte
10342         containing a type code, and randomly change it to a different
10343         type code.
10344
10345 2003-04-12  Havoc Pennington  <hp@pobox.com>
10346
10347         * bus/policy.h: change BusPolicy to be the thing from the config
10348         file, and rename old BusPolicy to BusClientPolicy
10349
10350         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10351         match change in how policy works
10352
10353         * dbus/dbus-internals.h: mark assert_not_reached as
10354         __attribute((noreturn))__
10355
10356 2003-04-11  Havoc Pennington  <hp@redhat.com>
10357
10358         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10359         the broadcast service. Use boolean return for ServiceExists.
10360
10361 2003-04-11  Havoc Pennington  <hp@redhat.com>
10362
10363         * configure.in: add another directory to look for qt in.
10364
10365 2003-04-11  Havoc Pennington  <hp@redhat.com>
10366
10367         * AUTHORS: add Colin Walters
10368
10369 2003-04-11  Havoc Pennington  <hp@redhat.com>
10370
10371         * NEWS: update
10372
10373         * configure.in: 0.9
10374
10375 2003-04-11  Havoc Pennington  <hp@redhat.com>
10376
10377         * bus/messagebus.in: remove pid file when stopping the
10378         message bus, since the bus won't have privileges to remove it
10379         itself.
10380
10381 2003-04-11  Havoc Pennington  <hp@redhat.com>
10382
10383         * bus/bus.c (bus_context_new): move credentials change after
10384         creating pidfile
10385
10386 2003-04-11  Havoc Pennington  <hp@pobox.com>
10387
10388         * test/decode-gcov.c: add "below average functions" to the
10389         coverage report, and change how some of the code works.
10390
10391         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10392         not in the coverage stats.
10393
10394         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10395         couple places so running the test suite doesn't result in megaspam.
10396
10397 2003-04-11  Havoc Pennington  <hp@pobox.com>
10398
10399         * bus/dispatch.c (check_existent_service_activation): accept a no
10400         memory error in a place we didn't before
10401
10402         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10403         in case the first one failed," since the test suite is less
10404         broken now.
10405
10406 2003-04-10  Havoc Pennington  <hp@pobox.com>
10407
10408         * bus/dispatch.c (check_segfault_service_activation): add test
10409         for launching an executable that just crashes.
10410
10411         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10412         don't leave a million cores. We'll see how portable this is.
10413
10414 2003-04-10  Havoc Pennington  <hp@pobox.com>
10415
10416         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10417         the possible parent failures before we fork, so that we don't
10418         fail to create a babysitter after creating the child.
10419
10420         * bus/activation.c (bus_activation_activate_service): kill child
10421         if we don't successfully complete the activation.
10422
10423 2003-04-10  Havoc Pennington  <hp@redhat.com>
10424
10425         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10426         the connection if it's disconnected
10427
10428         * bus/activation.c (bus_activation_service_created): use new
10429         transaction features to roll back removal of pending activation if
10430         we don't successfully create the service after all. Don't remove
10431         pending activation if the function fails.
10432
10433         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10434         (_dbus_list_insert_after_link): new code to facilitate
10435         services.c fixes
10436
10437         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10438         new functionality, so we can preallocate the ability to insert
10439         into a hash table.
10440
10441         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10442         allowing us to put custom hooks in a transaction to be used for
10443         cancelling said transaction
10444
10445         * doc/dbus-specification.sgml: add some discussion of secondary
10446         service owners, and disallow zero-length service names
10447
10448         * bus/services.c (bus_registry_acquire_service): new function,
10449         splits out part of bus_driver_handle_acquire_service() and fixes
10450         a bug where we didn't remove the service doing the acquiring
10451         from the secondary queue if we failed to remove the current owner
10452         from the front of the queue.
10453
10454 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10455
10456         * doc/dbus-specification.sgml:
10457         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10458
10459 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10460
10461         * bus/.cvsignore:
10462         * glib/.cvsignore:
10463         * test/.cvsignore:
10464         Added files to cvsignore
10465
10466         * dbus/dbus-message.h:
10467         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10468         Make get_named() take two out argument and return a boolean.
10469         (dbus_message_iter_get_args_valist):
10470         Update usage of get_named().
10471         (dbus_message_iter_append_byte):
10472         Fix typo
10473         (dbus_message_iter_append_named)
10474         Fix typo
10475         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10476         More tests.
10477
10478 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10479
10480         * dbus/dbus-marshal.[ch]:
10481         Add array_type_pos argument to _dbus_marshal_validate_arg.
10482         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10483
10484         * dbus/dbus-message.[ch]:
10485         Multi-dimensional arrays have full type specification in the
10486         outermost array. Iter code re-arranged to handle this.
10487         Added some more iter tests.
10488
10489         * doc/dbus-specification.sgml:
10490         Add me to authors.
10491         Remove old FIXME.
10492         Update new array encoding description.
10493         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10494
10495         * test/data/invalid-messages/array-with-mixed-types.message:
10496         * test/data/valid-messages/array-of-array-of-uint32.message:
10497         Change to the new array format.
10498
10499         * test/data/invalid-messages/too-short-dict.message:
10500         Fix bug in test.
10501
10502         * test/data/valid-messages/recursive-types.message:
10503         Fix up and extend test.
10504
10505 2003-04-10  Havoc Pennington  <hp@pobox.com>
10506
10507         * bus/dispatch.c: lots of fixes
10508
10509         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10510         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10511         that was crack, broke the test service.
10512
10513         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10514         handling to avoid piling up errors if we get a failure on the
10515         first address.
10516
10517         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10518         pid in assertion failures.
10519
10520         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10521         to some fixed size of file descriptor array. Don't return TRUE
10522         anytime a timeout exists, that led to lots of busy loop silliness
10523         in the tests.
10524
10525 2003-04-09  Havoc Pennington  <hp@redhat.com>
10526
10527         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10528         I'd checked this in earlier but hadn't.
10529
10530 2003-04-09  Havoc Pennington  <hp@redhat.com>
10531
10532         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10533         the activation test (man this is getting old!)
10534
10535 2003-04-09  Havoc Pennington  <hp@redhat.com>
10536
10537         * test/test-utils.c: use dispatch status function to fix this up
10538
10539         * bus/connection.c (connection_watch_callback): don't dispatch
10540         from here
10541         (connection_timeout_callback): don't dispatch from here
10542         (bus_connections_setup_connection): set the dispatch status function
10543         (bus_connection_disconnected): unset it
10544
10545         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10546         used to add a connection to be dispatched
10547         (_dbus_loop_iterate): do the dispatching at the end of each
10548         iteration
10549
10550         * dbus/dbus-connection.c
10551         (dbus_connection_set_dispatch_status_function): new function
10552         allowing us to fix up main loop usage
10553         (_dbus_connection_last_unref): free all the various function
10554         user data
10555         (dbus_connection_dispatch): call the DispatchStatusFunction
10556         whenever this function returns
10557         (dbus_connection_handle_watch): call DispatchStatusFunction
10558         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10559         (reply_handler_timeout): call DispatchStatusFunction
10560         (dbus_connection_flush): call DispatchStatusFunction
10561
10562 2003-04-09  Havoc Pennington  <hp@redhat.com>
10563
10564         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10565         a memory leak
10566
10567         * bus/dispatch.c (check_service_activated): fix bug in test
10568
10569         * dbus/dbus-mainloop.c (check_timeout): fix this up
10570
10571         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10572         verbose output so we can sort out output from different processes,
10573         e.g. in the activation case.
10574
10575 2003-04-08  Colin Walters  <walters@gnu.org>
10576
10577         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10578         the pid file.
10579         (bus_context_new): Set it.
10580         (bus_context_unref): Use it to delete the pid file.
10581
10582 2003-04-08  Havoc Pennington  <hp@redhat.com>
10583
10584         * test/data/invalid-messages/array-with-mixed-types.message:
10585         regression test that fails for the moment
10586
10587         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10588         tests for convenience
10589
10590         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10591         array of nil, it broke things.
10592
10593         * test/data/invalid-messages/array-of-nil.message: regression test
10594
10595         * test/data/valid-messages/array-of-array-of-uint32.message:
10596         happened to write this so added it to suite
10597
10598 2003-04-08  Havoc Pennington  <hp@redhat.com>
10599
10600         * bus/driver.c (bus_driver_handle_acquire_service): init
10601         retval/reply before checking name
10602
10603         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10604         recursion depth argument
10605
10606         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10607         in the public struct for future extension
10608
10609         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10610         typo
10611
10612         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10613         message
10614
10615         * doc/dbus-specification.sgml: fix typo
10616
10617 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10618
10619         Implemented recursive types, named types and new-style iters
10620
10621         * bus/driver.c:
10622         * glib/test-thread-client.c: (thread_func):
10623         * glib/test-thread-server.c: (handle_test_message):
10624         * test/test-service.c: (handle_echo):
10625         Update to new api
10626
10627         * dbus/Makefile.am:
10628         * dbus/dbus-dict.c:
10629         * dbus/dbus-dict.h:
10630         * dbus/dbus.h
10631         Remove DBusDict
10632
10633         * dbus/dbus-internals.c: (_dbus_type_to_string):
10634         Update for new types.
10635
10636         * dbus/dbus-marshal.[ch]:
10637         Implement recursive types and the new marshalling format.
10638         Remove hardcoded dict marshalling.
10639         Marshal named types.
10640
10641         * dbus/dbus-message-builder.c:
10642         Add BYTE_ARRAY.
10643         Remove references to old types
10644
10645         * dbus/dbus-message.[ch]:
10646         New non-refcounted iter API that supports recursive iters.
10647         Use iters for appending, including support for recursive
10648         iters.
10649         Add byte and named type support.
10650         Update everything to new marshalling formats.
10651         Add tests for new API.
10652
10653         * dbus/dbus-protocol.h:
10654         Remove old array types.
10655         Add types: BYTE, ARRAY, DICT, NAMED
10656
10657         * dbus/dbus-string.c:
10658         * dbus/dbus-sysdeps.c:
10659         Make parse_double locale safe.
10660
10661         * dbus/dbus-test-main.c:
10662         Call setlocale.
10663
10664         * dbus/dbus-test.c:
10665         Kill dict test
10666
10667         * doc/dbus-specification.sgml:
10668         Update spec
10669
10670         * test/data/incomplete-messages/missing-body.message:
10671         * test/data/invalid-messages/bad-boolean.message:
10672         * test/data/invalid-messages/bad-boolean-array.message:
10673         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10674         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10675         * test/data/invalid-messages/too-short-dict.message:
10676         * test/data/valid-messages/dict-simple.message:
10677         * test/data/valid-messages/dict.message:
10678         * test/data/valid-messages/emptiness.message:
10679         * test/data/valid-messages/lots-of-arguments.message:
10680         * test/data/valid-messages/no-padding.message:
10681         * test/data/valid-messages/recursive-types.message:
10682         Add missing NAME fields
10683         Fix up dicts & arrays
10684
10685         * test/data/invalid-messages/dict-with-nil-value.message:
10686         Removed, this is not invalid anymore.
10687
10688         * test/data/valid-messages/recursive-types.message:
10689         Add new test for deeply recursive types.
10690
10691 2003-04-07  Havoc Pennington  <hp@pobox.com>
10692
10693         * bus/driver.c (bus_driver_handle_acquire_service): return an
10694         error if you try to acquire a service that starts with ':'
10695
10696 2003-04-07  Havoc Pennington  <hp@redhat.com>
10697
10698         * doc/dbus-specification.sgml: require that base service names
10699         start with ':' and that the base service is created/deleted
10700         as first and last things a connection does on the bus
10701
10702         * bus/dispatch.c (check_existent_service_activation): lots more
10703         work on the activation test; it doesn't fully pass yet...
10704
10705         * test/test-service.c (main): fix so we don't memleak the
10706         connection to the message bus
10707         (filter_func): accept a message asking us to exit
10708
10709 2003-04-06  Havoc Pennington  <hp@pobox.com>
10710
10711         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10712         from Colin Walters
10713
10714         * configure.in: fixes to Qt detection from Colin Walters
10715
10716         * doc/Makefile.am: Only remove generated docbook dirs if they
10717         exist, from Colin Walters
10718
10719         * dbus/dbus-bus.c: change how we set well-known connections to
10720         NULL, so that it works if a single connection is stored in
10721         two well-known array slots.
10722
10723         * test/Makefile.am: remove a lot of stuff that isn't immediately
10724         useful, it's in CVS history if we want it.
10725
10726         * test/test-service.c: use dbus-mainloop instead of that
10727         watch.[hc] crack
10728
10729 2003-04-06  Havoc Pennington  <hp@pobox.com>
10730
10731         * dbus/Makefile.am: split lists of sources into stuff that goes in
10732         the library, util functions that go in the lib and are also used
10733         elsewhere, and util functions that are used in tests/daemon but
10734         don't go in the lib.
10735
10736         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10737         here so it can be used in test binaries also
10738
10739 2003-04-06  Havoc Pennington  <hp@pobox.com>
10740
10741         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10742         here in the parent process, so we can return an error if it
10743         fails. Also, move some of the code into the child so the parent
10744         is less hosed if we fail midway through.
10745
10746         * bus/bus.c (bus_context_new): move pidfile detection further up
10747         in the function, before we start overwriting sockets and such.
10748
10749         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10750
10751         * configure.in: add --with-system-pid-file and --with-system-socket
10752
10753 2003-04-06  Colin Walters  <walters@verbum.org>
10754
10755         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10756
10757         * bus/system.conf.in: Declare a pidfile.
10758
10759         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10760         create one (if appropriate).
10761
10762         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10763         (struct BusConfigParser) [pidfile]: New.
10764         (element_type_to_name, merge_included, start_busconfig_child)
10765         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10766         (bus_config_parser_unref): Free it.
10767         (bus_config_parser_get_pidfile): New function.
10768
10769         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10770
10771         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10772
10773         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10774
10775         * dbus/dbus-sysdeps.h: Prototype it.
10776
10777 2003-04-06  Havoc Pennington  <hp@pobox.com>
10778
10779         * bus/bus.c (bus_context_new): print the address in here, rather
10780         than in main(), because we need to do it before forking the daemon
10781
10782         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10783         on the service nonexistent error
10784
10785         * bus/driver.c (bus_driver_handle_acquire_service): set the
10786         sender on the AcquireService reply
10787
10788         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10789         server also listen on a UNIX socket so services can connect to it.
10790
10791 2003-04-06  Havoc Pennington  <hp@pobox.com>
10792
10793         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10794         so it detects deadlocks and also we actually init threads when
10795         debugging.
10796
10797 2003-04-06  Havoc Pennington  <hp@pobox.com>
10798
10799         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10800         save the domain socket name, and unlink it when we disconnect the
10801         server. Means that at least when we exit normally, we won't leave
10802         a bunch of junk in /tmp
10803
10804         * dbus/dbus-transport-unix.c
10805         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10806         memory management). (I was making a real change here but then
10807         didn't)
10808
10809 2003-04-06  Havoc Pennington  <hp@pobox.com>
10810
10811         * bus/bus.c (bus_context_new): fix wrong handling of
10812         server_data_slot_unref() in the error case.
10813
10814         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10815         "(condition) != 0" to _dbus_real_assert so that
10816         "_dbus_assert (pointer)" doesn't cause a warning
10817
10818         * bus/main.c (main): accept --print-address option to print out
10819         the message bus address
10820
10821         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10822
10823         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10824         "tmpdir" option to unix: address on client side
10825
10826         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10827         to unix: address
10828
10829         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10830         we can use to create sockets in the test suite.
10831
10832         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10833         cleanly. To be used for testing.
10834
10835         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10836
10837         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10838
10839         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10840         handle trying to call this when there's no servers active
10841
10842 2003-04-05  Havoc Pennington  <hp@pobox.com>
10843
10844         * NEWS: update
10845
10846         * configure.in: 0.8
10847
10848 2003-04-05  Havoc Pennington  <hp@pobox.com>
10849
10850         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10851         crash on startup. Need to get "try starting the daemon"
10852         in the test suite I guess. ;-)
10853
10854         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10855         tracked the number of open connections; it's better done in
10856         application-specific code as you want it to span all servers etc.
10857
10858 2003-04-05  Havoc Pennington  <hp@pobox.com>
10859
10860         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10861         patch from Colin Walters
10862
10863 2003-04-05  Havoc Pennington  <hp@pobox.com>
10864
10865         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10866         reality; in fact multiple mechanisms are allowed.
10867
10868         * dbus/dbus-internals.c (_dbus_real_assert)
10869         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10870         _dbus_assert_not_reached() into functions, so that they don't show
10871         up in basic block counts for test coverage, and don't use up as
10872         much disk space. Does mean slower execution speed though, so
10873         assumes --disable-asserts is the normal production case.
10874
10875 2003-04-05  Havoc Pennington  <hp@pobox.com>
10876
10877         * test/Makefile.am (dist-hook): also dist *.in files
10878
10879         * NEWS: update
10880
10881         * configure.in: 0.7
10882
10883 2003-04-05  Havoc Pennington  <hp@pobox.com>
10884
10885         * dbus/dbus-string.c: docs warning
10886
10887         * dbus/dbus-spawn.c: missing docs
10888
10889         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10890
10891 2003-04-05  Havoc Pennington  <hp@pobox.com>
10892
10893         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10894         magic from GLib
10895
10896         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10897         to -1 once we've reaped the babysitter
10898         (_dbus_babysitter_handle_watch): do as much work as we can, not
10899         just one go of it
10900
10901         * bus/activation.c: add code using DBusBabysitter so that we
10902         handle it when a service fails to start up properly.
10903         (bus_activation_service_created): don't remove the activation
10904         entries as we go, just let them get removed when we free the pending
10905         activation. Unref reply messages after sending them.
10906
10907 2003-04-05  Havoc Pennington  <hp@pobox.com>
10908
10909         * test/decode-gcov.c (main): print per-directory stats in the report
10910
10911         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10912
10913 2003-04-05  Havoc Pennington  <hp@pobox.com>
10914
10915         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10916
10917         * test/decode-gcov.c: hack up a little program to suck data
10918         out of gcov files. Yes this is sort of silly.
10919
10920         * configure.in: define something in config.h and do an
10921         AM_CONDITIONAL when gcov is enabled
10922
10923 2003-04-04  Havoc Pennington  <hp@redhat.com>
10924
10925         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10926         return a "babysitter" object that is used to monitor the status of
10927         the spawned process and reap it when required.
10928
10929         * test/test-segfault.c, test/test-exit.c,
10930         test/test-sleep-forever.c: binaries that do various lame things,
10931         used in the test suite.
10932
10933         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10934
10935 2003-04-03  Havoc Pennington  <hp@pobox.com>
10936
10937         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10938         in preparation for modifying it, dbus-sysdeps is getting
10939         a bit unmanageable.
10940
10941 2003-04-03  Havoc Pennington  <hp@redhat.com>
10942
10943         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10944         have multiple ones
10945
10946         * bus/*.[hc]: adapt to mainloop change
10947
10948 2003-04-03  Havoc Pennington  <hp@redhat.com>
10949
10950         * bus/activation.c (load_directory): fix up memleaks
10951         (bus_activation_entry_free): free the entry
10952
10953         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10954         we get one from the message bus; fix memleaks.
10955
10956         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10957
10958 2003-04-03  Havoc Pennington  <hp@pobox.com>
10959
10960         * bus/config-parser.c (bus_config_parser_unref): free
10961         list of mechanisms, bug discovered by test suite enhancements
10962         (putting system.conf and session.conf into suite)
10963
10964         * test/Makefile.am, test/test-service.c: add placeholder for a
10965         test service that we'll activate as part of test suite. Doesn't
10966         do anything yet.
10967
10968         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10969         setting NULL value, and use system malloc not dbus_malloc()
10970         when we have unavoidable memleakage.
10971
10972         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10973         didn't work, and support DBUS_BUS_ACTIVATION.
10974
10975         * bus/activation.c (child_setup): pass our well-known bus type to
10976         the child
10977
10978         * bus/config-parser.c: support <type> to specify well-known type
10979
10980         * doc/dbus-specification.sgml: document the env variables to
10981         locate well-known buses and find service activator
10982
10983 2003-04-02  Havoc Pennington  <hp@redhat.com>
10984
10985         * test/Makefile.am (all-local): add a rule to copy tests to
10986         builddir, so we can have generated tests. Use this to remove the
10987         silly hack for testing system.conf and session.conf. Will use this
10988         shortly to generate .service files pointing to test binaries.
10989
10990 2003-04-02  Havoc Pennington  <hp@redhat.com>
10991
10992         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10993         current alloc and needed new length, not max of the doubled
10994         allocation and needed new length. Also, when building tests,
10995         don't do the double-allocation stuff, just realloc every time.
10996
10997 2003-04-02  Havoc Pennington  <hp@redhat.com>
10998
10999         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11000         in error messages
11001         (_dbus_string_get_dirname): new
11002         (_dbus_sysdeps_test): new
11003         (_dbus_directory_open): include dirnames in error messages
11004
11005         * bus/config-parser.c: interpret <include> and <includedir> and
11006         <servicedir> relative to config file location if the given
11007         filename is not absolute.
11008
11009         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11010
11011 2003-04-02  Havoc Pennington  <hp@redhat.com>
11012
11013         * bus/connection.c (bus_transaction_send_error_reply): set sender
11014         service for the error, and unref the reply on success
11015
11016         * bus/activation.c: convert to use BusTransaction so OOM can be
11017         handled correctly
11018         (bus_activation_service_created): set sender of the message
11019
11020 2003-04-01  Havoc Pennington  <hp@redhat.com>
11021
11022         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11023         <includedir> (at least mostly)
11024
11025         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11026         first, then the user ID
11027
11028 2003-04-01  Havoc Pennington  <hp@pobox.com>
11029
11030         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11031         function
11032
11033         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11034
11035         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11036
11037         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11038         socket 0777, and unlink any existing socket.
11039
11040         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11041         the configuration file so specifies; set up auth mechanism
11042         restrictions
11043
11044         * bus/config-parser.c (bus_config_parser_content): add support
11045         for <fork> option and fill in code for <auth>
11046
11047         * bus/system.conf.in: add <fork/> to default configuration,
11048         and limit auth mechanisms to EXTERNAL
11049
11050         * doc/config-file.txt (Elements): add <fork>
11051
11052         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11053         (_dbus_change_identity): new function
11054
11055 2003-03-31  Havoc Pennington  <hp@redhat.com>
11056
11057         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11058         (_dbus_listen_unix_socket): fix off-by-one error in null
11059         termination spotted by Nalin
11060
11061 2003-03-31  Havoc Pennington  <hp@redhat.com>
11062
11063         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11064         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11065         having a real home directory available.
11066
11067 2003-03-31  Havoc Pennington  <hp@redhat.com>
11068
11069         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11070
11071         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11072
11073         * configure.in: add support for specifying a style of init script
11074         to install
11075
11076 2003-03-31  Havoc Pennington  <hp@redhat.com>
11077
11078         Fix some annoying DBusString API and fix all affected code.
11079
11080         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11081         max_length argument
11082         (_dbus_string_get_data): change to return string instead of using
11083         an out param
11084         (_dbus_string_get_const_data): ditto
11085         (_dbus_string_get_data_len): ditto
11086         (_dbus_string_get_const_data_len): ditto
11087
11088 2003-03-31  Havoc Pennington  <hp@redhat.com>
11089
11090         * bus/main.c (main): fix up the command line arguments to be nicer
11091
11092 2003-03-31  Havoc Pennington  <hp@redhat.com>
11093
11094         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11095         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11096         final location that lands in the config file
11097
11098         * bus/config-loader-expat.c (bus_config_load): fix type of
11099         XML_Parser variable
11100
11101         * doc/TODO: remove TODO item for dbus_bus_get()
11102
11103         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11104
11105 2003-03-31  Havoc Pennington  <hp@pobox.com>
11106
11107         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11108         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11109         argument since they are always client side
11110
11111         * dbus/dbus-server.c (dbus_server_get_address): new function
11112
11113         * bus/main.c (main): take the configuration file as an argument.
11114
11115         * test/data/valid-config-files/debug-allow-all.conf: new file to
11116         use with dispatch.c tests for example
11117
11118         * bus/test-main.c (main): require test data dir
11119
11120         * bus/bus.c (bus_context_new): change this to take a
11121         configuration file name as argument
11122
11123         * doc/config-file.txt (Elements): add <servicedir>
11124
11125         * bus/system.conf, bus/session.conf: new files
11126
11127         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11128         well-known socket if none set
11129
11130         * configure.in: create system.conf and session.conf
11131
11132 2003-03-30  Havoc Pennington  <hp@pobox.com>
11133
11134         * bus/config-parser.c: hacking
11135
11136         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11137         to shut down, since it could cause weirdness with the DBusList
11138         lock
11139
11140         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11141         link-oriented stack routines
11142         (alloc_link): free the mempool if the first alloc from it fails
11143
11144         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11145
11146         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11147         from GLib
11148         (_dbus_string_skip_white): new
11149
11150         * doc/config-file.txt (Elements): add <includedir>
11151
11152 2003-03-28  Havoc Pennington  <hp@pobox.com>
11153
11154         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11155         (_dbus_string_copy_data): new functions
11156
11157 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11158
11159         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11160         * dbus/dbus-bus.h:
11161         Add dbus_bus_get.
11162
11163         * dbus/dbus-memory.c:
11164         Fix a doc comment.
11165
11166 2003-03-28  Havoc Pennington  <hp@pobox.com>
11167
11168         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11169         I think it may have just been superstition. Not sure.
11170
11171         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11172         failures that were not being handled.
11173
11174         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11175
11176         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11177         row that will fail on out-of-memory.
11178
11179         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11180         function for testing out-of-memory handling.
11181
11182         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11183         allocation functions, they do map exactly to the expat ones.
11184
11185 2003-03-27  Havoc Pennington  <hp@redhat.com>
11186
11187         * bus/config-loader-libxml.c (bus_config_load): add another error
11188         check
11189
11190 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11191
11192         * doc/TODO:
11193         Add note about automatic service activation.
11194
11195         * doc/dbus-specification.sgml:
11196         Rename the specification and clarify a few things.
11197
11198 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11199
11200         * Doxyfile.in:
11201         * dbus/dbus-address.c:
11202         * dbus/dbus-dict.c:
11203         * dbus/dbus-marshal.c:
11204         * dbus/dbus-server-debug-pipe.c:
11205         * dbus/dbus-transport-unix.c:
11206         Fix documentation warnings.
11207
11208 2003-03-26  Havoc Pennington  <hp@pobox.com>
11209
11210         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11211         after every test so it's quick and easy to see which leaked, and
11212         so we test multiple dbus_shutdown() calls
11213
11214         * configure.in: change configure.in XML stuff to also support
11215         expat
11216
11217         * config-loader-libxml.c: some hacking
11218
11219         * config-loader-expat.c: some hacking
11220
11221         * config-parser.c: some hacking, plus tests
11222
11223 2003-03-25  Havoc Pennington  <hp@redhat.com>
11224
11225         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11226
11227         * configure.in: add --with-xml option to specify XML library,
11228         right now only libxml is supported.
11229
11230         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11231         nonworking code between home and work, still just stubs
11232
11233 2003-03-24  Havoc Pennington  <hp@redhat.com>
11234
11235         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11236         file
11237
11238         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11239         NULL argument for "message" if the error is a well-known one,
11240         fill in a generic message in this case.
11241
11242         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11243         favor of DBusError
11244
11245         * bus/test.c (bus_test_flush_bus): add
11246
11247         * bus/policy.c (bus_policy_test): test code stub
11248
11249 2003-03-24  Havoc Pennington  <hp@pobox.com>
11250
11251         * bus/connection.c (bus_connections_setup_connection): set up
11252         the "can this user connect" function, but it always returns
11253         TRUE until we have a config file parser so we can have a config
11254         file that allows connections.
11255
11256 2003-03-23  Havoc Pennington  <hp@pobox.com>
11257
11258         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11259         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11260         the mutex, so we can check for proper memory management
11261         and OOM handling.
11262
11263         * dbus/dbus-dataslot.c: remove the mutex from
11264         DBusDataSlotAllocator and lock it manually when using it,
11265         to simplify fitting it into the global slots framework.
11266
11267         * dbus/dbus-threads.c (init_static_locks): rework how we're
11268         handling global locks so they are easily shut down.
11269
11270         * bus/policy.c (bus_policy_append_rule): fix
11271
11272         * bus/test-main.c (main): check for memleaks
11273
11274         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11275         test suite check for memleaks
11276
11277         * dbus/dbus-memory.c: add support in test mode for tracking
11278         number of outstanding blocks
11279
11280 2003-03-23  Havoc Pennington  <hp@pobox.com>
11281
11282         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11283         policies code
11284
11285         * dbus/dbus-hash.h: add ULONG hash keys
11286
11287         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11288         (_dbus_get_group_id): new function
11289
11290 2003-03-20  Havoc Pennington  <hp@redhat.com>
11291
11292         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11293         new function
11294         (dbus_connection_get_unix_user): new function
11295
11296 2003-03-20  Havoc Pennington  <hp@pobox.com>
11297
11298         * bus/connection.c (bus_connection_send_oom_error): assert that
11299         message has a sender
11300         (connection_execute_transaction): ditto
11301         (bus_connection_preallocate_oom_error): fix to set the sender, and
11302         set recipient to the destination service, not the bus driver
11303
11304         * bus/policy.c: hacking
11305
11306         * dbus/dbus-message.c (dbus_message_service_is): new function
11307         (dbus_message_sender_is): new
11308
11309 2003-03-19  Havoc Pennington  <hp@redhat.com>
11310
11311         * bus/policy.c: start sketching code for policy restrictions on
11312         what connections can do.
11313
11314 2003-03-18  Havoc Pennington  <hp@redhat.com>
11315
11316         * doc/TODO: some notes on high-level todo items. Little nitpick
11317         stuff is all in @todo, so no need to add it here.
11318
11319         * doc/config-file.txt: some notes on how config file might look
11320
11321 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11322
11323         * configure.in: 0.6
11324
11325         * NEWS: Update.
11326
11327 2003-03-17  Havoc Pennington  <hp@redhat.com>
11328
11329         * dbus/dbus-internals.h: add gcc attributes so that
11330         our printf-style functions warn on bad arguments to
11331         format
11332
11333         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11334         format bug
11335
11336         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11337         printf format bug
11338
11339 2003-03-17  Havoc Pennington  <hp@redhat.com>
11340
11341         * bus/test-main.c (main): make it print something as it runs
11342         so make check doesn't look stuck
11343
11344         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11345         from CVS, now obsolete
11346
11347 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11348
11349         * bus/dispatch.c: (bus_dispatch):
11350         Refetch the service name since it may have been reallocated
11351         when dbus_message_set_sender was called.
11352
11353         * dbus/dbus-sysdeps.c: (_dbus_accept):
11354         Add address and address length variables and use them to stop
11355         valgrind from complaining.
11356
11357 2003-03-17  Havoc Pennington  <hp@pobox.com>
11358
11359         All tests pass, no memleaks, no valgrind complaints.
11360
11361         * bus/test.c: refcount handler_slot
11362
11363         * bus/connection.c (bus_connections_new): refcount
11364         connection_data_slot
11365
11366         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11367         bytes so that auth scripts pass.
11368
11369         * bus/dispatch.c: init message_handler_slot so it gets allocated
11370         properly
11371
11372         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11373
11374         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11375         dealloc server_pipe_hash when no longer used for benefit of
11376         leak checking
11377
11378         * dbus/dbus-auth.c (process_command): memleak fix
11379
11380         * bus/dispatch.c (check_hello_message): memleak fix
11381
11382 2003-03-16  Havoc Pennington  <hp@pobox.com>
11383
11384         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11385
11386 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11387
11388         * bus/activation.c (bus_activation_activate_service): Append
11389         the pending activation entry to the list of pending activations.
11390
11391 2003-03-16  Havoc Pennington  <hp@pobox.com>
11392
11393         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11394         connections
11395
11396         * dbus/dbus-address.c (create_entry): fix OOM handling when
11397         failing to alloc entry->method
11398
11399 2003-03-16  Havoc Pennington  <hp@pobox.com>
11400
11401         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11402         the watch
11403
11404         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11405         add some missing dbus_set_result
11406
11407         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11408         alloc the DBusMessageHandler
11409
11410         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11411         the transport here, since we call this from the finalizer; it
11412         resulted in a double-finalize.
11413
11414         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11415         where we tried to use transport->connection that was NULL,
11416         happened when transport was disconnected early on due to OOM
11417
11418         * bus/*.c: adapt to handle OOM for watches/timeouts
11419
11420         * dbus/dbus-transport-unix.c: port to handle OOM during
11421         watch handling
11422
11423         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11424         reference to unused bytes instead of a copy
11425
11426         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11427         out of memory
11428
11429         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11430         FALSE on OOM
11431
11432         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11433         of memory
11434
11435 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11436
11437         * doc/dbus-specification.sgml:
11438         Document reply message for ActivateService.
11439
11440 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11441
11442         * bus/activation.c: (bus_pending_activation_entry_free),
11443         (bus_pending_activation_free), (bus_activation_new),
11444         (bus_activation_unref), (bus_activation_service_created),
11445         (bus_activation_activate_service):
11446         * bus/activation.h:
11447         * bus/bus.c: (bus_context_new):
11448         * bus/desktop-file.c: (new_section):
11449         * bus/driver.c: (bus_driver_send_service_deleted),
11450         (bus_driver_handle_activate_service):
11451         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11452         * bus/services.h:
11453         * dbus/dbus-connection.c:
11454         (dbus_connection_send_with_reply_and_block):
11455         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11456         * dbus/dbus-protocol.h:
11457         Make activation work better. Now pending activations will be queued
11458         and the daemon won't try to activate services that are already registered.
11459
11460 2003-03-16  Havoc Pennington  <hp@pobox.com>
11461
11462         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11463         connection data
11464
11465         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11466         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11467
11468 2003-03-16  Havoc Pennington  <hp@pobox.com>
11469
11470         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11471         this. always run the test suite before commit...
11472
11473         * bus/*: adapt to DBusConnection API changes
11474
11475         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11476         requires renaming stuff to avoid dbus_connection_dispatch name
11477         conflict.
11478
11479         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11480         function
11481
11482         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11483         separate from _dbus_message_loader_return_buffer()
11484
11485         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11486         this, because it's now always broken to use; the number of
11487         messages in queue vs. the number still buffered by the message
11488         loader is undefined/meaningless. Should use
11489         dbus_connection_get_dispatch_state().
11490         (dbus_connection_dispatch): rename from
11491         dbus_connection_dispatch_message
11492
11493 2003-03-16  Havoc Pennington  <hp@pobox.com>
11494
11495         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11496         implementation
11497
11498 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11499
11500         * dbus/dbus-connection.c:
11501         (dbus_connection_send_with_reply_and_block):
11502         Decrease connection->n_incoming when removing an entry
11503         from the list.
11504         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11505         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11506         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11507         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11508         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11509         (dbus_dict_get_byte_array):
11510         Handle NULL arrays and strings. Also add support for byte arrays.
11511
11512         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11513         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11514         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11515         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11516         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11517         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11518         * dbus/dbus-marshal.h:
11519         Add support for marshalling and demarshalling empty arrays and strings.
11520
11521         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11522         (dbus_message_append_string_array),
11523         (dbus_message_iter_get_boolean),
11524         (dbus_message_iter_get_boolean_array),
11525         (dbus_message_iter_get_int32_array),
11526         (dbus_message_iter_get_uint32_array),
11527         (dbus_message_iter_get_double_array),
11528         (dbus_message_iter_get_byte_array),
11529         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11530         (check_message_handling):
11531         Add support for getting empty arrays and dicts.
11532
11533         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11534         Don't do any validation at all for now, that's better than just checking
11535         for ASCII.
11536
11537         * test/data/valid-messages/emptiness.message:
11538         New test message with lots of empty arrays.
11539
11540 2003-03-16  Havoc Pennington  <hp@pobox.com>
11541
11542         * dbus/dbus-connection.c
11543         (_dbus_connection_queue_received_message_link): new function that
11544         can't fail due to OOM
11545
11546         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11547         new function pops a message together with a list link
11548         containing it.
11549
11550         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11551         message queuing functions to avoid needing to alloc memory
11552
11553 2003-03-16  Havoc Pennington  <hp@pobox.com>
11554
11555         Oops - test code was only testing failure of around 30 of the
11556         mallocs in the test path, but it turns out there are 500+
11557         mallocs. I believe this was due to misguided linking setup such
11558         that there was one copy of dbus_malloc etc. in the daemon and one
11559         in the shared lib, and only daemon mallocs were tested. In any
11560         case, the test case now tests all 500+ mallocs, and doesn't pass
11561         yet, though there are lots of fixes in this patch.
11562
11563         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11564         this so that it doesn't need to allocate memory, since it
11565         has no way of indicating failure due to OOM (and would be
11566         annoying if it did).
11567
11568         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11569
11570         * bus/Makefile.am: rearrange to create two self-contained
11571         libraries, to avoid having libraries with overlapping symbols.
11572         that was resulting in weirdness, e.g. I'm pretty sure there
11573         were two copies of global static variables.
11574
11575         * dbus/dbus-internals.c: move the malloc debug stuff to
11576         dbus-memory.c
11577
11578         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11579         empty.
11580
11581         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11582
11583         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11584         on failure.
11585
11586         * bus/dispatch.c (bus_dispatch_add_connection): free
11587         message_handler_slot when no longer using it, so
11588         memory leak checkers are happy for the test suite.
11589
11590         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11591
11592         * bus/bus.c (new_connection_callback): disconnect in here if
11593         bus_connections_setup_connection fails.
11594
11595         * bus/connection.c (bus_connections_unref): fix to free the
11596         connections
11597         (bus_connections_setup_connection): if this fails, don't
11598         disconnect the connection, just be sure there are no side
11599         effects.
11600
11601         * dbus/dbus-string.c (undo_alignment): unbreak this
11602
11603         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11604         leaking
11605         (_dbus_auth_new): fix the order in which we free strings
11606         on OOM failure
11607
11608         * bus/connection.c (bus_connection_disconnected): fix to
11609         not send ServiceDeleted multiple times in case of memory
11610         allocation failure
11611
11612         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11613         get the base service name
11614         (dbus_bus_register_client): don't return base service name,
11615         instead store it on the DBusConnection and have an accessor
11616         function for it.
11617         (dbus_bus_register_client): rename dbus_bus_register()
11618
11619         * bus/dispatch.c (check_hello_message): verify that other
11620         connections on the bus also got the correct results, not
11621         just the one sending hello
11622
11623 2003-03-15  Havoc Pennington  <hp@pobox.com>
11624
11625         Make it pass the Hello handling test including all OOM codepaths.
11626         Now to do other messages...
11627
11628         * bus/services.c (bus_service_remove_owner): fix crash when
11629         removing owner from an empty list of owners
11630         (bus_registry_ensure): don't leave service in the list of
11631         a connection's owned services if we fail to put the service
11632         in the hash table.
11633
11634         * bus/connection.c (bus_connection_preallocate_oom_error): set
11635         error flag on the OOM error.
11636
11637         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11638         handle _dbus_transport_set_connection failure
11639
11640         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11641         to create watches up front and simply enable/disable them as
11642         needed.
11643         (unix_connection_set): this can now fail on OOM
11644
11645         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11646         of enabling/disabling a watch or timeout.
11647
11648         * bus/loop.c (bus_loop_iterate): don't touch disabled
11649         watches/timeouts
11650
11651         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11652
11653 2003-03-15  Havoc Pennington  <hp@pobox.com>
11654
11655         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11656         write useful test code, after all that futzing around ;-)
11657
11658         Test does not yet pass because we can't handle OOM in
11659         _dbus_transport_messages_pending (basically,
11660         dbus_connection_preallocate_send() does not prealloc the write
11661         watch). To fix this, I think we need to add new stuff to
11662         set_watch_functions, namely a SetEnabled function so we can alloc
11663         the watch earlier, then enable it later.
11664
11665         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11666         dbus-memory.c to the convenience lib
11667
11668         * bus/test.c: rename some static functions to keep them clearly
11669         distinct from stuff in connection.c. Handle client disconnection.
11670
11671 2003-03-14  Havoc Pennington  <hp@pobox.com>
11672
11673         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11674         transport, tests more of the real codepath. Set up clients
11675         with bus_setup_debug_client.
11676
11677         * bus/test.c (bus_setup_debug_client): function to set up debug
11678         "clients" on the main loop
11679
11680         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11681         support
11682
11683         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11684         server type
11685
11686         * dbus/dbus-server-debug.c: support a debug server based on pipes
11687
11688         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11689         (_dbus_close): new function
11690
11691         * configure.in: check for socketpair
11692
11693 2003-03-14  Havoc Pennington  <hp@redhat.com>
11694
11695         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11696         cheesy hack
11697
11698         * dbus/dbus-transport-debug.c: rework this a good bit to be
11699         less complicated. hopefully still works.
11700
11701         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11702         manually
11703
11704         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11705         after running it
11706
11707         * dbus/dbus-message.c (dbus_message_copy): rename from
11708         dbus_message_new_from_message, fix it up to copy
11709         all the message fields, add test case
11710
11711         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11712         not quite passing yet
11713
11714 2003-03-14  Havoc Pennington  <hp@pobox.com>
11715
11716         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11717         until no work remains" in test code. (the large diff here
11718         is just code movement, no actual changes)
11719
11720         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11721         1, no point waiting around for test code.
11722         (_dbus_server_debug_accept_transport): unref the timeout
11723         after adding it (right?)
11724
11725         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11726
11727 2003-03-13  Havoc Pennington  <hp@redhat.com>
11728
11729         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11730         out of memory
11731
11732         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11733         of memory
11734
11735         * dbus/dbus-connection.h: Make AddWatchFunction and
11736         AddTimeoutFunction return a bool so they can fail on out-of-memory
11737
11738         * bus/bus.c (bus_context_new): set up timeout handlers
11739
11740         * bus/connection.c (bus_connections_setup_connection): set up
11741         timeout handlers
11742
11743         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11744         can fail
11745
11746         * bus/bus.c (bus_context_new): adapt to changes
11747
11748         * bus/connection.c: adapt to changes
11749
11750         * test/watch.c: adapt to DBusWatch changes
11751
11752         * bus/dispatch.c (bus_dispatch_test): started adding this but
11753         didn't finish
11754
11755 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11756
11757         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11758
11759 2003-03-13  Havoc Pennington  <hp@pobox.com>
11760
11761         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11762         set up a test framework as for the library
11763
11764 2003-03-12  Havoc Pennington  <hp@pobox.com>
11765
11766         Throughout: purge global variables, introduce BusActivation,
11767         BusConnections, BusRegistry, etc. objects instead.
11768
11769         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11770         message bus object
11771
11772         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11773         going to redo this a bit differently I think
11774
11775 2003-03-12  Havoc Pennington  <hp@redhat.com>
11776
11777         Mega-patch that gets the message bus daemon initially handling
11778         out-of-memory. Work still needed. Also lots of random
11779         moving stuff to DBusError instead of ResultCode.
11780
11781         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11782
11783         * dbus/dbus-connection.c
11784         (dbus_connection_send_with_reply_and_block): use DBusError
11785
11786         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11787         DBusResultCode
11788
11789         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11790         code here, as the only failure possible is OOM.
11791
11792         * bus/connection.c (bus_connection_disconnect):
11793         rename bus_connection_disconnected as it's a notification only
11794
11795         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11796         "name" on get_args failure, should be done by get_args;
11797         don't disconnect client for bad args, just return an error.
11798         (bus_driver_handle_service_exists): ditto
11799
11800         * bus/services.c (bus_services_list): NULL-terminate returned array
11801
11802         * bus/driver.c (bus_driver_send_service_lost)
11803         (bus_driver_send_service_acquired): send messages from driver to a
11804         specific client to the client's unique name, not to the broadcast
11805         service.
11806
11807         * dbus/dbus-message.c (decode_header_data): reject messages that
11808         contain no name field
11809         (_dbus_message_get_client_serial): rename to
11810         dbus_message_get_serial and make public
11811         (_dbus_message_set_serial): rename from set_client_serial
11812         (_dbus_message_set_reply_serial): make public
11813         (_dbus_message_get_reply_serial): make public
11814
11815         * bus/connection.c (bus_connection_foreach): allow stopping
11816         iteration by returning FALSE from foreach function.
11817
11818         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11819         (dbus_connection_free_preallocated_send)
11820         (dbus_connection_preallocate_send): new API for sending a message
11821         without possibility of malloc failure.
11822         (dbus_connection_send_message): rename to just
11823         dbus_connection_send (and same for whole function family)
11824
11825         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11826
11827         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11828
11829         * bus/activation.c: handle/return errors
11830
11831         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11832
11833         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11834         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11835         (_dbus_result_from_errno): move to this file
11836
11837 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11838
11839         * dbus/dbus-marshal.c:
11840         (_dbus_marshal_set_string):
11841         Take a length argument so we can marshal the correct string
11842         length.
11843
11844         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11845         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11846         (_dbus_marshal_test):
11847         * dbus/dbus-marshal.h:
11848         Add support for marshalling and demarshalling dicts.
11849
11850         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11851         Add support for TYPE DICT.
11852
11853         * dbus/dbus-message.c: (set_string_field):
11854         Adjust header padding.
11855
11856         (dbus_message_append_args_valist), (dbus_message_append_dict),
11857         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11858         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11859         (check_message_handling), (check_have_valid_message):
11860         * dbus/dbus-message.h:
11861         Add functions for setting and getting dicts.
11862
11863         * dbus/dbus-protocol.h:
11864         Add DBUS_TYPE_DICT.
11865
11866         * dbus/dbus.h:
11867         Add dbus-dict.h
11868
11869         * doc/dbus-specification.sgml:
11870         Add information about how dicts are marshalled.
11871
11872         * test/data/invalid-messages/dict-with-nil-value.message:
11873         * test/data/invalid-messages/too-short-dict.message:
11874         * test/data/valid-messages/dict-simple.message:
11875         * test/data/valid-messages/dict.message:
11876         Add sample messages containing dicts.
11877
11878 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11879
11880         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11881
11882 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11883
11884         * dbus/Makefile.am:
11885         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11886         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11887         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11888         (dbus_dict_set_double), (dbus_dict_set_string),
11889         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11890         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11891         (dbus_dict_set_string_array), (_dbus_dict_test):
11892         * dbus/dbus-dict.h:
11893         Fix according to comments from Havoc.
11894
11895 2003-03-06  Michael Meeks  <michael@server.home>
11896
11897         * configure.in: if we don't have kde-config, disable have_qt.
11898
11899 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11900
11901         * dbus/Makefile.am:
11902         Add dbus-dict.[ch]
11903
11904         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11905         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11906         (dbus_dict_remove), (dbus_dict_get_value_type),
11907         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11908         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11909         (dbus_dict_put_double), (dbus_dict_put_string),
11910         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11911         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11912         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11913         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11914         (dbus_dict_get_double), (dbus_dict_get_string),
11915         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11916         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11917         (dbus_dict_get_string_array), (_dbus_dict_test):
11918         * dbus/dbus-dict.h:
11919         Add DBusDict implementation
11920
11921         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11922         * dbus/dbus-test.h:
11923         Add _dbus_dict_test
11924
11925 2003-03-04  Havoc Pennington  <hp@pobox.com>
11926
11927         * test/data/auth/*: adapt to changes
11928
11929         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11930         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11931         userid
11932
11933         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11934         more stuff from being in a context name, to make the protocol
11935         simpler to deal with
11936
11937         * dbus/dbus-errors.c (dbus_error_has_name): new function
11938         (dbus_error_is_set): new function
11939
11940         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11941         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11942
11943         * dbus/dbus-connection.c (dbus_connection_flush): also read
11944         messages during a flush operation
11945
11946         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11947
11948 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11949
11950         * configure.in: Check for gethostbyname on Solaris.
11951
11952         * dbus/dbus-transport.c: (_dbus_transport_open):
11953         Remove duplicate "tcp" entry.
11954
11955         * doc/dbus-specification.sgml:
11956         Clarify some things.
11957
11958 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11959
11960         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11961         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11962         (_dbus_keyring_test):
11963         * dbus/dbus-md5.c: (_dbus_md5_compute):
11964         * dbus/dbus-sha.c: (_dbus_sha_compute):
11965         Plug memory leaks.
11966
11967 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11968
11969         * README: Add some things.
11970
11971 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11972
11973         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11974         after case DBUS_TYPE_BOOELAN.
11975
11976 2003-03-02  Havoc Pennington  <hp@pobox.com>
11977
11978         * test/break-loader.c (randomly_set_extreme_ints): add test that
11979         sets really huge and small integers
11980
11981         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11982         that length of boolean array fits in the string, and that
11983         string has room for boolean value in single-bool case.
11984
11985         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11986         optional value to "ALIGN" command which is what to fill the
11987         alignment with.
11988
11989         * test/data/valid-messages/no-padding.message: add regression
11990         test for the message padding problem
11991
11992 2003-03-02  Havoc Pennington  <hp@pobox.com>
11993
11994         * dbus/dbus-message.c (decode_header_data): fix to always init
11995         message_padding, from Benjamin Dauvergne
11996
11997 2003-03-02  Havoc Pennington  <hp@pobox.com>
11998
11999         * configure.in: 0.5
12000
12001         * NEWS: Update.
12002
12003 2003-03-01  Joe Shaw  <joe@assbarn.com>
12004
12005         * configure.in: Check for "struct cmsgcred" and try to access its
12006         members for BSD-like unices.
12007
12008         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12009         _dbus_read_credentials_unix_socket().
12010         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12011         read() for reading the credential byte off the unix socket.  Use
12012         struct cmsgcred on systems that support it.
12013
12014 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12015
12016         * glib/Makefile.am:
12017         * configure.in:
12018         Make gthreads-2.0 dependency optional. Don't build thread test if
12019         its not found.
12020
12021 2003-02-27  Havoc Pennington  <hp@pobox.com>
12022
12023         * dbus/dbus-connection.c
12024         (dbus_connection_send_message_with_reply_and_block): fix doh!
12025         doh! doh! bug that resulted in never removing a reply from the
12026         queue, no wonder we called get_reply_serial so much ;-)
12027
12028         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12029         and client serial instead of demarshaling them every time
12030
12031 2003-02-27  Havoc Pennington  <hp@pobox.com>
12032
12033         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12034         more inlined, using dbus-string-private.h, speeds things up
12035         substantially
12036
12037         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12038         when freeing the string
12039         (_dbus_string_steal_data): fix for align offset
12040         (undo_alignment): new function
12041
12042 2003-02-26  Havoc Pennington  <hp@redhat.com>
12043
12044         All kinds of audit fixes from Owen, plus initial attempt to
12045         handle unaligned memory returned from malloc.
12046
12047         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12048         leave room for align_offset and nul byte
12049         (fixup_alignment): function to track an align_offset and
12050         ensure real->str is aligned
12051         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12052         to allow a nul byte plus align offset
12053         (_dbus_string_lock): fix overflow issue
12054         (_dbus_string_init_const_len): add assertions on sanity of len,
12055         assign allocated to be ALLOCATION_PADDING larger than len
12056         (set_length): fixup the overflow handling
12057         (_dbus_string_get_data_len): fix overflow in assertion
12058         (open_gap): detect overflow in size of gap to be opened
12059         (_dbus_string_lengthen): add overflow check
12060         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12061         (_dbus_string_append): add overflow check
12062         (_dbus_string_append_unichar): overflow
12063         (_dbus_string_delete): fix overflow in assertion
12064         (_dbus_string_copy_len): overflow in assertion
12065         (_dbus_string_replace_len): overflows in assertions
12066         (_dbus_string_find): change to implement in terms of
12067         _dbus_string_find_to
12068         (_dbus_string_find_to): assorted fixage
12069         (_dbus_string_equal_c_str): assert c_str != NULL,
12070         fix logic so the function works
12071         (_dbus_string_ends_with_c_str): fix overflow thingy
12072         (_dbus_string_base64_encode): overflow fix
12073         (_dbus_string_validate_ascii): overflow
12074         (_dbus_string_validate_nul): overflow
12075
12076 2003-02-26  Havoc Pennington  <hp@redhat.com>
12077
12078         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12079
12080 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12081
12082         * configure.in:
12083         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12084
12085         * dbus/dbus-connection.c:
12086         * dbus/dbus-connection.h:
12087         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12088         Add dbus_connection_set_wakeup_main_function and use it when queueing
12089         incoming and outgoing messages.
12090
12091
12092         * dbus/dbus-dataslot.c:
12093         Threadsafe usage of DBusDataSlotAllocator
12094
12095         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12096         dbus_new can fail.
12097
12098         * dbus/dbus-server-unix.c:
12099         Add todo comment
12100
12101         * glib/dbus-gmain.c:
12102         Implement the new wakeup functions for glib.
12103
12104         * glib/Makefile.am:
12105         * glib/test-thread-client.c:
12106         * glib/test-thread-server.c:
12107         * glib/test-thread.h:
12108         Initial cut at some thread test code. Not really done yet.
12109
12110 2003-02-26  Havoc Pennington  <hp@pobox.com>
12111
12112         * dbus/dbus-connection.c
12113         (dbus_connection_send_message_with_reply_and_block): fix crash
12114         where we ref'd the outgoing message instead of the returned reply
12115
12116         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12117         at the end of this function, so if we didn't need to read for
12118         authentication, we reinstall it for receiving messages
12119
12120         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12121         a NULL sender for peer-to-peer case
12122
12123         * dbus/dbus-transport-unix.c (check_read_watch): handle
12124         !authenticated case correctly
12125
12126         * glib/dbus-gmain.c: add support for DBusServer
12127
12128         * dbus/dbus-server.c: add data slot support
12129
12130         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12131         return values and handle errors
12132
12133         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12134         DBusConnection
12135
12136         * Doxyfile.in (INPUT): add glib subdir
12137
12138         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12139         setup_with_g_main instead of hookup_with_g_main; write docs
12140
12141 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12142
12143         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12144         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12145         * dbus/dbus-message.c: (dbus_message_append_boolean),
12146         (dbus_message_append_boolean_array),
12147         (dbus_message_get_args_valist), (_dbus_message_test):
12148         * dbus/dbus-message.h:
12149         * doc/dbus-specification.sgml:
12150         Various fixes as pointed out by Havoc.
12151
12152         * test/data/invalid-messages/bad-boolean-array.message:
12153         * test/data/invalid-messages/bad-boolean.message:
12154         Add invalid boolean value test cases.
12155
12156 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12157
12158         * dbus/dbus-internals.c: (_dbus_type_to_string):
12159         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12160         (_dbus_marshal_validate_arg):
12161         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12162         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12163         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12164         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12165         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12166         (dbus_message_iter_get_double),
12167         (dbus_message_iter_get_boolean_array), (message_iter_test):
12168         * dbus/dbus-message.h:
12169         * dbus/dbus-protocol.h:
12170         * doc/dbus-specification.sgml:
12171         * test/data/valid-messages/lots-of-arguments.message:
12172         Add support for boolean and boolean array types.
12173
12174 2003-02-23  Havoc Pennington  <hp@pobox.com>
12175
12176         * dbus/dbus-keyring.c: finish most of this implementation and
12177         simple unit test
12178
12179         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12180         these barf if the error isn't cleared to NULL
12181
12182         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12183         (_dbus_create_directory): new function
12184
12185         * dbus/dbus-errors.c (dbus_set_error): fix warning
12186
12187         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12188         (_dbus_string_hex_decode): new function
12189         (test_hex_roundtrip): test code
12190
12191         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12192
12193         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12194
12195         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12196         the save-to-temp/rename trick to atomically write the new file
12197         (_dbus_string_parse_uint): new function
12198
12199 2003-02-22  Havoc Pennington  <hp@pobox.com>
12200
12201         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12202
12203 2003-02-22  Havoc Pennington  <hp@pobox.com>
12204
12205         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12206         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12207
12208         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12209
12210         * dbus/test/data/sha-1: add US government test suite for SHA-1
12211
12212 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12213
12214         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12215         Make string arrays NULL-terminated.
12216
12217         * dbus/dbus-memory.c: (dbus_free_string_array):
12218         * dbus/dbus-memory.h:
12219         New function for freeing NULL-terminated string arrays.
12220
12221         * dbus/dbus-message-builder.c: (append_quoted_string),
12222         (_dbus_message_data_load):
12223         Add support for array types.
12224
12225         * dbus/dbus-message.c: (check_message_handling):
12226         Add more types as test cases.
12227
12228         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12229         (_dbus_string_parse_double):
12230         Add the start offset to the end offset.
12231
12232         * test/data/valid-messages/lots-of-arguments.message:
12233         New test message with lots of arguments.
12234
12235 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12236
12237         * dbus/dbus-message.c: (dbus_message_append_nil),
12238         (dbus_message_append_int32), (dbus_message_append_uint32),
12239         (dbus_message_append_double), (dbus_message_append_string),
12240         (dbus_message_append_int32_array),
12241         (dbus_message_append_uint32_array),
12242         (dbus_message_append_double_array),
12243         (dbus_message_append_byte_array),
12244         (dbus_message_append_string_array):
12245         Fix all out-of-memory handling in these functions.
12246
12247 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12248
12249         * dbus/dbus-message.c: (dbus_message_append_nil):
12250         Fix a silly.
12251
12252 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12253
12254         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12255         (dbus_message_append_nil), (dbus_message_append_int32_array),
12256         (dbus_message_append_uint32_array),
12257         (dbus_message_append_double_array),
12258         (dbus_message_append_byte_array),
12259         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12260         (dbus_message_iter_get_int32_array),
12261         (dbus_message_iter_get_uint32_array),
12262         (dbus_message_iter_get_double_array),
12263         (dbus_message_iter_get_byte_array),
12264         (dbus_message_iter_get_string_array):
12265
12266         * dbus/dbus-message.h:
12267         Add functions for appending and getting arrays.
12268
12269 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12270
12271         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12272         element size at least 8 bytes, fixes mempool tests on
12273         64-bit machines.
12274
12275 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12276
12277         * dbus/dbus-transport-unix.c (unix_do_iteration):
12278         Unlock the connection mutex during a blocking select call.
12279         Add todo about how we need a way to wake up the select.
12280
12281         * dbus/dbus-connection-internal.h:
12282         * dbus/dbus-connection.c:
12283         Add _dbus_connection_lock and _dbus_connection_unlock.
12284
12285 2003-02-19  Havoc Pennington  <hp@pobox.com>
12286
12287         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12288         Doxyfile.in, not Doxyfile
12289
12290         * dbus/dbus-keyring.c: do some hacking on this
12291
12292         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12293
12294         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12295         dbus_error_init
12296         (dbus_set_error): remove dbus_error_init, check for message ==
12297         NULL *before* we sprintf into it, and add @todo about including
12298         system headers in this file
12299
12300         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12301
12302         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12303
12304         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12305         get various bits of user information based on either username
12306         or user ID
12307         (_dbus_homedir_from_username): new function
12308
12309 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12310
12311         * configure.in:
12312         Add check for nonposix getpwnam_r
12313
12314         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12315         Align the pool element size to a sizeof (void *) boundary.
12316
12317         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12318         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12319         General Solaris fixes.
12320
12321         * test/data/valid-messages/simplest-manual.message:
12322         Explicitly state that we want little-endian packing.
12323
12324 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12325
12326         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12327
12328         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12329         Added to create a transport connecting using a tcp/ip socket.
12330
12331         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12332         to a tcp socket at given host and port.
12333         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12334         hostname and port.
12335
12336         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12337
12338         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12339         Added to create a server listening on a TCP/IP socket.
12340
12341 2003-02-19  Havoc Pennington  <hp@pobox.com>
12342
12343         Throughout: mop up all the Doxygen warnings and undocumented
12344         stuff.
12345
12346         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12347         to search any paths.
12348
12349         * dbus/dbus-threads.c: move global mutex initializers to
12350         dbus-internals.h, multiple prototypes was confusing doxygen
12351         besides being kind of ugly
12352
12353         * Doxyfile (PREDEFINED): have Doxygen define
12354         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12355         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12356         (do not abuse the feature! it's for stuff like the autogenerated
12357         macros in dbus-md5.c, not just for things you don't feel like
12358         documenting...)
12359
12360 2003-02-18  Havoc Pennington  <hp@pobox.com>
12361
12362         * dbus/dbus-string.c (_dbus_string_zero): new function
12363
12364         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12365         wrap it in some dbus-friendly API
12366
12367         * dbus/dbus-types.h: add 16-bit types
12368
12369 2003-02-18  Joe Shaw  <joe@assbarn.com>
12370
12371         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12372         credentials from our currently running process.
12373         (get_word): Fix a buglet where we were copying the entire length
12374         instead of relative to our position.
12375
12376         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12377         keys on the stack... it's 640k of data.
12378
12379         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12380         read the credentials byte off the socket, even if we don't have
12381         SO_PEERCRED.
12382         (_dbus_poll): Implement poll() using select() for systems which
12383         don't have it.
12384
12385         * glib/test-dbus-glib.c (main): Print out an error if no
12386         parameters are given.
12387
12388         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12389         can fallback to a secondary auth mechanism if the first fails.
12390
12391 2003-02-18  Havoc Pennington  <hp@pobox.com>
12392
12393         * AUTHORS: add Alex
12394
12395 2003-02-17  Havoc Pennington  <hp@pobox.com>
12396
12397         * doc/dbus-specification.sgml: lots of cosmetic
12398         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12399         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12400         s/server/bus/ (except in authentication section). Add a section
12401         "Message Bus Message Routing"
12402
12403 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12404
12405         Release 0.4
12406
12407         * NEWS: Update
12408
12409 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12410
12411         * doc/dbus-specification.sgml:
12412         Specification updates.
12413
12414 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12415
12416         * bus/activation.c: (bus_activation_init), (child_setup),
12417         (bus_activation_activate_service):
12418         * bus/activation.h:
12419         * bus/main.c: (main):
12420         Set DBUS_ADDRESS environment variable.
12421
12422         * dbus/dbus-errors.c: (dbus_set_error):
12423         Don't use va_copy since that's a C99 feature.
12424
12425         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12426         (_dbus_spawn_async):
12427         * dbus/dbus-sysdeps.h:
12428         Add child_setup_func to _dbus_spawn_async.
12429
12430         * doc/dbus-specification.sgml:
12431         Update specification.
12432
12433         * test/spawn-test.c: (setup_func), (main):
12434         Fix test.
12435
12436 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12437
12438         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12439         Added todo.
12440
12441 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12442
12443         * doc/.cvsignore:
12444         * doc/Makefile.am:
12445         * doc/dbus-test-plan.sgml:
12446         Add test plan document.
12447
12448         * test/Makefile.am:
12449         Fix distcheck.
12450
12451 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12452
12453         * dbus/dbus-message.c: (decode_header_data),
12454         (_dbus_message_loader_return_buffer):
12455         Set the header padding amount when loading a message.
12456
12457 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12458
12459         * bus/dispatch.c: (send_one_message):
12460         Only send broadcast messages to registered connections.
12461
12462         * dbus/dbus-message.c: (dbus_message_name_is):
12463         * dbus/dbus-message.h:
12464         New convenience function.
12465
12466         * dbus/dbus-transport-debug.c: (do_reading):
12467         Only dispatch one message per run.
12468
12469         * test/Makefile.am:
12470         * test/bus-test.c: (new_connection_callback), (die),
12471         (test_hello_client1_handler), (test_hello_client2_handler),
12472         (test_hello_replies), (main):
12473
12474         * test/bus-test-loop.[ch]:
12475         Add these.
12476
12477 2003-02-16  Havoc Pennington  <hp@pobox.com>
12478
12479         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12480         backward conditional
12481
12482 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12483
12484         * dbus/dbus-connection.c:
12485         Implement sent_message_with_reply. (with_reply_and block is still
12486         busted).
12487         Made dispatch_message not lose message if OOM.
12488
12489         * dbus/dbus-errors.h:
12490         Add NoReply error (for reply timeouts).
12491
12492 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12493
12494         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12495         Actually free keys and values when destroying hashtable.
12496
12497 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12498
12499         * dbus/dbus-auth.c: (client_try_next_mechanism):
12500         Plug a leak.
12501
12502         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12503         Return TRUE if there's no thread implementation around.
12504
12505         * glib/dbus-gmain.c: (free_source),
12506         (dbus_connection_hookup_with_g_main):
12507         Make sure to remove the GSource when the connection is finalized.
12508
12509 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12510
12511         * bus/dispatch.c: (bus_dispatch_message_handler):
12512         * dbus/dbus-errors.h:
12513         Return an error if someone tries to send a message to a service
12514         that doesn't exist.
12515
12516 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12517
12518         * bus/activation.c: (load_directory), (bus_activation_init),
12519         (bus_activation_activate_service):
12520         * bus/activation.h:
12521         * bus/driver.c:
12522         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12523         More work on the activation handling.
12524
12525         * dbus/dbus-errors.h:
12526         Add some error messages
12527
12528         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12529         * dbus/dbus-message.h:
12530         New function that creates an error message.
12531
12532         * dbus/dbus-protocol.h:
12533         Add ACTIVATE_SERVER message.
12534
12535         * dbus/dbus-server-unix.c: (unix_handle_watch),
12536         (_dbus_server_new_for_domain_socket):
12537         Call _dbus_fd_set_close_on_exec.
12538
12539         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12540         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12541         (_dbus_fd_set_close_on_exec):
12542         * dbus/dbus-sysdeps.h:
12543         Add _dbus_fd_set_close_on exec function. Also add function that checks
12544         that all open fds are set to close-on-exec and warns otherwise.
12545
12546         * dbus/dbus-transport-unix.c:
12547         (_dbus_transport_new_for_domain_socket):
12548         Call _dbus_fd_set_close_on_exec.
12549
12550 2003-02-16  Havoc Pennington  <hp@pobox.com>
12551
12552         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12553         allow people to avoid setting SIGPIPE to SIG_IGN
12554         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12555         we've been asked not to
12556
12557 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12558
12559         * dbus/dbus-list.c: (_dbus_list_append_link),
12560         (_dbus_list_prepend_link):
12561         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12562         (dbus_realloc):
12563         Warning fixes.
12564
12565 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12566
12567         * bus/Makefile.am:
12568         * bus/activation.c: (bus_activation_entry_free),
12569         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12570         * bus/activation.h:
12571         * bus/main.c: (main):
12572         Add simple activation support, doesn't work yet though.
12573
12574 2003-02-15   Zack Rusin  <zack@kde.org>
12575
12576         * qt/dbus-qthread.cpp:  small casting fix
12577
12578 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12579
12580         * dbus/dbus-errors.c: (dbus_set_error):
12581         * dbus/dbus-errors.h:
12582         Add a few errors and make dbus_set_error void.
12583
12584         * dbus/dbus-sysdeps.c:
12585         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12586         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12587         * dbus/dbus-sysdeps.h:
12588         Add _dbus_spawn_async.
12589
12590         * test/spawn-test.c: (main):
12591         Test for _dbus_spawn_async.
12592
12593 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12594
12595         * dbus/dbus-internals.h:
12596         Fix build without tests.
12597
12598         * dbus/dbus-list.c: (alloc_link):
12599         Fix a segfault when a malloc fails.
12600
12601         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12602         (dbus_malloc0), (dbus_realloc):
12603         Add support for malloc debugging.
12604
12605 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12606
12607         * dbus/dbus-threads.c:
12608         * dbus/dbus-threads.h:
12609         Add condvars. Remove static mutext from API.
12610         Implement static mutexes by initializing them from threads_init.
12611
12612         * glib/dbus-gthread.c:
12613         * qt/dbus-qthread.cpp:
12614         Update with the thread api changes.
12615
12616
12617         * dbus/dbus-list.c:
12618         * dbus/dbus-list.h:
12619         Turn StaticMutex into normal mutex + init function.
12620         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12621         _dbus_list_append_link, _dbus_list_prepend_link
12622
12623
12624         * dbus/dbus-sysdeps.c:
12625         * dbus/dbus-sysdeps.h:
12626         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12627         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12628
12629         * dbus/dbus-protocol.h:
12630         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12631
12632         * dbus/dbus-message.c:
12633         Make ref/unref atomic.
12634         Fix some docs.
12635
12636         * dbus/dbus-connection-internal.h:
12637         * dbus/dbus-connection.c:
12638         * dbus/dbus-connection.h:
12639         Make threadsafe.
12640         Change _peek to _borrow,_return & _steal_borrowed.
12641         Change disconnect callback to event.
12642         Make dbus_connection_dispatch_messages reentrant.
12643
12644         * dbus/dbus-transport.c:
12645         Don't ref the connection on calls to the transport
12646         implementation.
12647
12648         * dbus/dbus-message-handler.c:
12649         Make threadsafe.
12650
12651         * glib/dbus-gmain.c:
12652         Don't use peek_message anymore
12653
12654         * test/Makefile.am:
12655         * test/debug-thread.c:
12656         * test/debug-thread.h:
12657         Simple thread implementation that asserts() on deadlocks in
12658         single-threaded code.
12659
12660         * test/bus-test.c:
12661         (main) Call debug_threads_init.
12662
12663         * test/watch.c:
12664         Use disconnect message instead of disconnect callback.
12665
12666         * bus/connection.c:
12667         * bus/connection.h:
12668         Don't call dbus_connection_set_disconnect_function. Instead export
12669         bus_connection_disconnect.
12670
12671         * bus/dispatch.c:
12672         Call bus_connection_disconnect when we get a disconnected message.
12673
12674 2003-02-15  Havoc Pennington  <hp@pobox.com>
12675
12676         * dbus/dbus-message.c (dbus_message_new): fool around with the
12677         docs
12678
12679 2003-02-14  Havoc Pennington  <hp@pobox.com>
12680
12681         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12682
12683         * dbus/dbus-memory.c: fail if the debug functions indicate we
12684         should
12685
12686         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12687         (_dbus_decrement_fail_alloc_counter): debug functions to
12688         simulate memory allocation failures
12689
12690 2003-02-14  Havoc Pennington  <hp@pobox.com>
12691
12692         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12693         to DBusError
12694
12695 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12696
12697         * bus/driver.c: (bus_driver_handle_hello):
12698         * bus/driver.h:
12699         * bus/services.c: (bus_service_lookup):
12700         Reorder message sending so we get a more sane order.
12701
12702         * test/bus-test.c: (message_handler):
12703         Fix tyop.
12704
12705 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12706
12707         * bus/driver.c: (bus_driver_send_service_deleted),
12708         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12709         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12710         (bus_driver_send_welcome_message),
12711         (bus_driver_handle_list_services),
12712         (bus_driver_handle_acquire_service),
12713         (bus_driver_handle_service_exists):
12714         * dbus/dbus-bus.c: (dbus_bus_register_client),
12715         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12716         * dbus/dbus-errors.c: (dbus_result_to_string):
12717         * dbus/dbus-errors.h:
12718         * dbus/dbus-message.c: (dbus_message_append_args),
12719         (dbus_message_append_args_valist), (dbus_message_get_args),
12720         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12721         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12722         (dbus_message_iter_get_byte_array),
12723         (dbus_message_iter_get_string_array), (message_iter_test),
12724         (check_message_handling), (_dbus_message_test):
12725         * dbus/dbus-message.h:
12726         * test/bus-test.c: (main):
12727         Change fields to arguments in messages, so that they won't be
12728         confused with header fields.
12729
12730         * glib/test-dbus-glib.c: (main):
12731         Remove append_fields from hello message.
12732
12733 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12734
12735         * dbus/dbus-errors.c:
12736         * dbus/dbus-message.c:
12737         * dbus/dbus-string.c:
12738         Documentation fixes.
12739
12740 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12741
12742         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12743         (remove_timeout):
12744         Implement support for timeouts in dbus-glib.
12745
12746 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12747
12748         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12749         * dbus/dbus-message.c: (process_test_subdir):
12750         * test/break-loader.c: (find_breaks_based_on):
12751         Plug some memory leaks.
12752
12753 2003-02-13  Richard Hult  <rhult@codefactory.se>
12754
12755         * bus/main.c: Fix build.
12756
12757         * dbus/dbus-errors.h:
12758         * dbus/dbus-errors.c: Fix copyright for Anders.
12759
12760 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12761
12762         * bus/Makefile.am:
12763         Add utils.[ch]
12764
12765         * bus/connection.c: (bus_connection_foreach):
12766         Fix a warning.
12767
12768         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12769         (unescape_string), (new_section), (parse_section_start),
12770         (parse_key_value), (report_error), (bus_desktop_file_load),
12771         (bus_desktop_file_get_string):
12772         * bus/desktop-file.h:
12773         Use DBusError for error reporting.
12774
12775         * bus/dispatch.c: (send_one_message),
12776         (bus_dispatch_message_handler):
12777         * bus/driver.c: (bus_driver_send_service_deleted),
12778         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12779         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12780         (bus_driver_send_welcome_message),
12781         (bus_driver_handle_list_services),
12782         (bus_driver_handle_acquire_service),
12783         (bus_driver_handle_service_exists):
12784         * bus/loop.c: (bus_loop_run):
12785         * bus/main.c:
12786         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12787
12788         * bus/utils.c: (bus_wait_for_memory):
12789         * bus/utils.h:
12790         New files with general utility functions.
12791
12792         * dbus/dbus-internals.h:
12793         Remove _DBUS_HANDLE_OOM.
12794
12795 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12796
12797         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12798         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12799         * dbus/dbus-errors.h:
12800         Add DBusError structure.
12801
12802 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12803
12804         * test/data/valid-messages/standard-acquire-service.message:
12805         * test/data/valid-messages/standard-hello.message:
12806         * test/data/valid-messages/standard-list-services.message:
12807         * test/data/valid-messages/standard-service-exists.message:
12808         Add some standard messages.
12809
12810 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12811
12812         * bus/driver.c: (bus_driver_send_welcome_message),
12813         (bus_driver_handle_list_services),
12814         (bus_driver_handle_acquire_service),
12815         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12816         Update for API changes in libdbus.
12817
12818         * dbus/dbus-message.c: (dbus_message_new_reply):
12819         * dbus/dbus-message.h:
12820         Remove the name argument. The spec states that replies shouldn't
12821         have a name.
12822
12823 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12824
12825         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12826         (report_error), (bus_desktop_file_load), (lookup_section),
12827         (lookup_line), (bus_desktop_file_get_raw),
12828         (bus_desktop_file_get_string):
12829         * bus/desktop-file.h:
12830         Some fixes, and new functions for getting a key value from a section.
12831
12832 2003-02-13  Havoc Pennington  <hp@pobox.com>
12833
12834         * test/data/auth/fail-after-n-attempts.auth-script: new test
12835
12836         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12837         reject the client.
12838
12839 2003-02-13  Havoc Pennington  <hp@pobox.com>
12840
12841         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12842         dbus_credentials_match were backward
12843
12844         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12845         NO_CREDENTIALS and ROOT_CREDENTIALS
12846
12847         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12848         into here. Never process more commands after we've reached an
12849         end state; store further data as unused bytes.
12850
12851         * test/data/auth/*: add more auth tests
12852
12853         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12854         command to match exact string and EXPECT_UNUSED to match unused
12855         bytes
12856
12857         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12858
12859 2003-02-12  Havoc Pennington  <hp@pobox.com>
12860
12861         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12862         \r off of popped lines
12863
12864         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12865         scripts
12866
12867         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12868         SEND, append \r\n
12869
12870 2003-02-12  Havoc Pennington  <hp@pobox.com>
12871
12872         * dbus/Makefile.am: remove break-loader from the build, since it
12873         moved.
12874
12875         * configure.in: add --enable-gcov to turn on coverage profiling
12876         flags and disable optimization
12877
12878 2003-02-10  Havoc Pennington  <hp@pobox.com>
12879
12880         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12881         initial cut at test framework for DBusAuth from laptop.
12882         Doesn't quite work yet but it compiles and I need to get
12883         it off the 266mhz laptop. ;-)
12884
12885         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12886         fix a memleak in error case
12887
12888 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12889
12890         * bus/Makefile.am:
12891         * bus/desktop-file.c:
12892         * bus/desktop-file.h:
12893         Add a desktop file parser.
12894
12895 2003-02-11  Zack Rusin  <zack@kde.org>
12896
12897         * qt/message.[h|cpp]: sample implementation
12898         of the KDE wrapper for DBusMessage
12899
12900 2003-02-09  Zack Rusin  <zack@kde.org>
12901
12902         * test/bus-test.c: make_it_compile
12903         * doc/dbus-specification.sgml: minimal semantic fix
12904
12905 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12906
12907         Release 0.3
12908
12909         * NEWS: Update
12910
12911 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12912
12913         * dbus/Makefile.am:
12914         * dbus/dbus-break-loader.c:
12915         * test/Makefile.am:
12916         * test/break-loader.c:
12917         Move dbus-break-loader to test/ and rename it to break-loader.
12918
12919 2003-02-02  Havoc Pennington  <hp@pobox.com>
12920
12921         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12922         for code to manage cookies in your home directory
12923
12924         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12925
12926         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12927         to authenticate, then disconnect the client.
12928
12929 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12930
12931         * dbus/dbus-message.c (dbus_message_append_fields):
12932         Correct docs.
12933
12934 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12935
12936         * doc/dbus-specification.sgml:
12937         Update address format section.
12938
12939 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12940
12941         * test/Makefile.am:
12942         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12943         (message_handler), (new_connection_callback), (loop_quit),
12944         (loop_run), (main):
12945         Add bus test.
12946
12947 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12948
12949         * bus/driver.c: (bus_driver_handle_service_exists):
12950         Simplify the code a bit.
12951
12952         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12953         Fix a silly.
12954
12955 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12956
12957         * bus/Makefile.am:
12958         Add libdbus-daemon.la and link to it.
12959
12960 2003-02-01  James Willcox  <jwillcox@gnome.org>
12961
12962         * bus/driver.c: (bus_driver_handle_own_service):
12963         Actually include the service reply code in the message.
12964
12965 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12966
12967         * bus/driver.c: (bus_driver_handle_service_exists):
12968         Don't unref the incoming message.
12969
12970 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12971
12972         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12973
12974 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12975
12976         * dbus/dbus-server.c: (dbus_server_listen):
12977         * dbus/dbus-transport.c: (_dbus_transport_open):
12978         ifdef out the calls to the debug transport and server.
12979
12980 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12981
12982         * dbus/dbus-watch.c (dbus_watch_get_flags):
12983         Add note in the docs that ERROR or HANGUP won't be returned
12984         and are assumed always on.
12985
12986         * glib/dbus-gmain.c (add_watch):
12987         Always add IO_ERR | IO_HUP
12988
12989         * dbus/dbus-message.h:
12990         Add semicolon after dbus_message_iter_get_string_array().
12991         Makes qt code build again
12992
12993 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12994
12995         * bus/driver.c: (create_unique_client_name),
12996         (bus_driver_handle_hello):
12997         Don't take a name, just use a numeric id to identify
12998         each client.
12999
13000         * dbus/Makefile.am:
13001         * dbus/dbus-bus.c: (dbus_bus_register_client),
13002         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13003         * dbus/dbus-bus.h:
13004         Add new convenience functions for communicating with the bus.
13005
13006         * dbus/dbus-message.h:
13007
13008         * dbus/dbus-protocol.h:
13009         Fix a typo.
13010
13011 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13012
13013         * dbus/dbus-message.c (dbus_message_append_fields):
13014         Add some more doc comments.
13015
13016 2003-02-01  Havoc Pennington  <hp@pobox.com>
13017
13018         * dbus/dbus-break-loader.c (randomly_modify_length): change
13019         a 4-byte value in the message as if it were a length
13020
13021         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13022         execute bit on saved files
13023
13024 2003-02-01  Havoc Pennington  <hp@pobox.com>
13025
13026         * dbus/dbus-break-loader.c (main): new program to find messages
13027         that break the loader.
13028
13029         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13030         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13031
13032         * dbus/dbus-string.c (_dbus_string_set_byte): new
13033
13034 2003-01-31  Havoc Pennington  <hp@pobox.com>
13035
13036         * dbus/dbus-message.c: refactor the test code to be more general,
13037         in preparation for writing a "randomly permute test cases to
13038         try to break the loader" program.
13039
13040 2003-01-31  Havoc Pennington  <hp@pobox.com>
13041
13042         * doc/dbus-specification.sgml: work on the specification
13043
13044         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13045         the protocol version of the message.
13046
13047         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13048         no longer specifies that.
13049         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13050         1/2/3/4)
13051
13052         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13053         "break" for DBUS_TYPE_NIL, remove @todo
13054
13055 2003-01-31  Havoc Pennington  <hp@pobox.com>
13056
13057         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13058         just set_is_error/get_is_error as this is a commonly-used
13059         function, and write docs.
13060
13061 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13062
13063         * dbus/dbus-address.c: (dbus_address_entry_free):
13064         Free key and value lists.
13065
13066         * dbus/dbus-internals.c: (_dbus_type_to_string):
13067         Add the types we didn't have.
13068
13069         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13070         (_dbus_marshal_validate_arg):
13071         Add NIL types.
13072
13073         * dbus/dbus-message.c: (dbus_message_set_sender):
13074         Remove todo about being able to set sender to NULL.
13075
13076         (dbus_message_set_is_error_reply),
13077         (dbus_message_get_is_error_reply):
13078         * dbus/dbus-message.h:
13079         New functions.
13080
13081         * dbus/dbus-protocol.h:
13082         Add error reply flag.
13083
13084         * test/data/valid-messages/opposite-endian.message:
13085         Add NIL type to test.
13086
13087 2003-01-31  Havoc Pennington  <hp@pobox.com>
13088
13089         * doc/dbus-specification.sgml: fully specify the header.  Add
13090         flags and major protocol version, and change header/body len to
13091         unsigned.
13092
13093         * dbus/dbus-message-builder.c (append_saved_length): append length
13094         as uint32
13095
13096         * dbus/dbus-message.c (dbus_message_create_header): change header
13097         length and body length to unsigned. Add the new fields from the
13098         spec
13099         (_dbus_message_loader_return_buffer): unsigned header/body len
13100
13101 2003-01-30  Havoc Pennington  <hp@pobox.com>
13102
13103         * dbus/dbus-auth.c: rework to use only REJECTED, no
13104         MECHANISMS
13105
13106         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13107         use REJECTED, suggested by Mark McLoughlin
13108
13109 2003-01-30  Havoc Pennington  <hp@pobox.com>
13110
13111         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13112         a better way to report errors here. e.g.  "unix address lacks
13113         path" or something. also "no such file" when the path doesn't
13114         exist, etc.
13115
13116         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13117         leaking list nodes
13118         (dbus_parse_address): add @todo about documenting address format,
13119         and allowing , and ; to be escaped
13120
13121 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13122
13123         * dbus/Makefile.am:
13124         Add dbus-address.[ch]
13125
13126         * dbus/dbus-address.c: (dbus_address_entry_free),
13127         (dbus_address_entries_free), (create_entry),
13128         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13129         (dbus_parse_address), (_dbus_address_test):
13130         * dbus/dbus-address.h:
13131         New files for dealing with address parsing.
13132
13133         * dbus/dbus-connection.c:
13134         Document timeout functions.
13135
13136         * dbus/dbus-message.c:
13137         Document dbus_message_new_from_message.
13138
13139         * dbus/dbus-server-debug.c:
13140         Document.
13141
13142         * dbus/dbus-server.c: (dbus_server_listen):
13143         Parse address and use correct server implementation.
13144
13145         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13146         * dbus/dbus-string.h:
13147         New function with test.
13148
13149         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13150         * dbus/dbus-test.h:
13151         Add address tests.
13152
13153         * dbus/dbus-transport-debug.c:
13154         Document.
13155
13156         * dbus/dbus-transport.c: (_dbus_transport_open):
13157         Parse address and use correct transport implementation.
13158
13159 2003-01-30  Havoc Pennington  <hp@pobox.com>
13160
13161         * dbus/dbus-message.c: use message->byte_order instead of
13162         DBUS_COMPILER_BYTE_ORDER throughout.
13163         (dbus_message_create_header): pad header to align the
13164         start of the body of the message to 8-byte boundary
13165
13166         * dbus/dbus-marshal.h: make all the demarshalers take const
13167         DBusString arguments.
13168
13169         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13170         validate message args here, so we don't have to do slow validation
13171         later, and so we catch bad messages as they are incoming. Also add
13172         better checks on header_len and body_len. Also fill in
13173         message->byte_order
13174
13175         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13176         implemented properly)
13177         (_dbus_string_validate_nul): new function to check all-nul
13178
13179         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13180         get_arg_end_pos and remove all validation
13181         (_dbus_marshal_validate_arg): actually do validation here.
13182
13183 2003-01-29  Havoc Pennington  <hp@pobox.com>
13184
13185         * dbus/dbus-message.c (check_message_handling): fix assertion
13186         failure on set_client_serial
13187
13188 2003-01-28  Havoc Pennington  <hp@pobox.com>
13189
13190         * dbus/dbus-server-debug.c: Add doc section comments
13191
13192         * dbus/dbus-transport-debug.c: add doc section comments
13193
13194 2003-01-28  Havoc Pennington  <hp@redhat.com>
13195
13196         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13197         the reverse order from how I had it
13198         (_dbus_string_base64_encode): reverse encoding order. I was
13199         basically byteswapping everything during encoding.
13200
13201 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13202
13203         * dbus/dbus-connection-internal.h:
13204         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13205         (_dbus_connection_remove_timeout):
13206         Add functions for adding and removing timeouts.
13207
13208         * dbus/dbus-message.c: (dbus_message_new_from_message):
13209         Add new function that takes a message and creates an exact
13210         copy of it, but with the refcount set to 1.
13211         (check_message_handling):
13212         Fix build error.
13213
13214         * dbus/dbus-server-protected.h:
13215         * dbus/dbus-server.c: (_dbus_server_init_base),
13216         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13217         (dbus_server_set_timeout_functions):
13218         (_dbus_server_remove_timeout):
13219         New functions so that a server can add and remove timeouts.
13220
13221         (dbus_server_listen):
13222         Add commented out call to dbus_server_debug_new.
13223
13224         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13225         Actually set the handler, doh.
13226
13227         * dbus/dbus-transport.c: (_dbus_transport_open):
13228         Add commented out call to dbus_transport_debug_client_new.
13229
13230         * dbus/Makefile.am:
13231         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13232
13233 2003-01-28  Havoc Pennington  <hp@pobox.com>
13234
13235         * dbus/dbus-message.c (check_message_handling): function to check
13236         on the loaded message, iterates over it etc.
13237
13238 2003-01-28  Havoc Pennington  <hp@pobox.com>
13239
13240         * test/Makefile.am (dist-hook): fix make distdir
13241
13242         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13243
13244 2003-01-27  Havoc Pennington  <hp@pobox.com>
13245
13246         * dbus/dbus-mempool.c (time_for_size): replace printf with
13247         _dbus_verbose
13248
13249         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13250         empty lines; fix the SAVE_LENGTH stuff to be
13251         START_LENGTH/END_LENGTH so it actually works; couple other
13252         bugfixes
13253
13254         * test/Makefile.am (dist-hook): add dist-hook for .message files
13255
13256         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13257         can be constant or locked.
13258         (_dbus_string_free): allow freeing a const string as
13259         documented/intended
13260
13261         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13262
13263         * dbus/dbus-test-main.c (main): take an argument which is the
13264         directory containing test data
13265
13266         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13267         argument to this and load all the messages in test/data/
13268         checking that they can be loaded or not loaded as appropriate.
13269
13270 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13271
13272         * bus/dispatch.c: (bus_dispatch_message_handler):
13273         Dispatch messages sent to services.
13274
13275         * bus/driver.c: (bus_driver_send_service_deleted),
13276         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13277         (bus_driver_send_service_acquired):
13278         Add helper functions for sending service related messages.
13279
13280         (bus_driver_send_welcome_message):
13281         Send HELLO_REPLY instead of WELCOME.
13282
13283         (bus_driver_handle_list_services):
13284         Send LIST_SERVICES_REPLY instead of SERVICES.
13285
13286         (bus_driver_handle_own_service),
13287         (bus_driver_handle_service_exists):
13288         New message handlers.
13289
13290         (bus_driver_handle_message):
13291         Invoke new message handlers.
13292
13293         (bus_driver_remove_connection):
13294         Don't remove any services here since that's done automatically
13295         by bus_service_remove_owner now.
13296
13297         * bus/driver.h:
13298         New function signatures.
13299
13300         * bus/services.c: (bus_service_add_owner):
13301         Send ServiceAcquired message if we're the only primary owner.
13302
13303         (bus_service_remove_owner):
13304         Send ServiceAcquired/ServiceLost messages.
13305
13306         (bus_service_set_prohibit_replacement),
13307         (bus_service_get_prohibit_replacement):
13308         Functions for setting prohibit replacement.
13309
13310         (bus_service_has_owner):
13311         New function that checks if a connection is in the owner queue of
13312         a certain service.
13313
13314         * bus/services.h:
13315         Add new function signatures.
13316
13317         * dbus/dbus-list.c: (_dbus_list_test):
13318         Add tests for _dbus_list_remove_last and traversing the list backwards.
13319
13320         * dbus/dbus-list.h:
13321         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13322         go any further, so return NULL then.
13323
13324         * dbus/dbus-protocol.h:
13325         Add new messages, service flags and service replies.
13326
13327 2003-01-26  Havoc Pennington  <hp@pobox.com>
13328
13329         * dbus/dbus-message-builder.c: implement, completely untested.
13330
13331         * test/data/*: add data to be used in testing.
13332         ".message" files are our simple loadable text format.
13333         ".message-raw" will be binary dumps of messages.
13334
13335         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13336
13337 2003-01-26  Havoc Pennington  <hp@pobox.com>
13338
13339         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13340
13341         * dbus/dbus-errors.c (dbus_result_to_string): add
13342         file errors
13343
13344         * dbus/dbus-message-builder.c: new file, will contain code to load
13345         up messages from files. Not implemented yet.
13346
13347 2003-01-26  Havoc Pennington  <hp@pobox.com>
13348
13349         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13350         the sender by setting to NULL
13351
13352 2003-01-26  Havoc Pennington  <hp@pobox.com>
13353
13354         The unit tests pass, but otherwise untested.  If it breaks, the
13355         tests should have been better. ;-)
13356
13357         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13358         the connection.
13359
13360         * dbus/dbus-message.c: redo everything so we maintain
13361         message->header as the only copy of the various fields.
13362         This avoids the possibility of out-of-memory in some cases,
13363         for example dbus_message_lock() can't run out of memory anymore,
13364         and avoids extra copying. Figured I may as well go ahead and do
13365         this since it was busted for dbus_message_lock to not return
13366         failure on OOM, and dbus_message_write_header was totally
13367         unchecked for OOM. Also fixed some random other bugs.
13368
13369         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13370         that strings are nul-terminated. Also, end_pos can be equal
13371         to string length just not greater than, I think.
13372         (_dbus_marshal_set_int32): new function
13373         (_dbus_marshal_set_uint32): new function
13374         (_dbus_marshal_set_string): new function
13375
13376         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13377         a warning, init timeout_list to NULL
13378         (dbus_connection_send_message): don't use uninitialized variable
13379         "serial"
13380
13381         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13382
13383 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13384
13385         * bus/driver.c: (bus_driver_handle_hello),
13386         (bus_driver_send_welcome_message):
13387         Plug leaks
13388
13389 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13390
13391         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13392         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13393         (dbus_connection_unref):
13394         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13395         * dbus/dbus-message.c: (dbus_message_unref),
13396         Plug memory leaks.
13397
13398         (dbus_message_get_fields):
13399         Remove debugging printout.
13400
13401         (_dbus_message_loader_return_buffer):
13402         Don't store the header string.
13403
13404         (_dbus_message_test):
13405         Plug leaks.
13406
13407 2003-01-26  Richard Hult  <rhult@codefactory.se>
13408
13409         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13410         the file descriptor list, since it can change under us.
13411
13412 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13413
13414         * glib/dbus-gmain.c: (dbus_connection_prepare),
13415         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13416         (remove_watch), (dbus_connection_hookup_with_g_main):
13417         Rewrite the glib handling to use its own GSource instead of a
13418         GIOChannel so we can catch messages put in the queue while waiting
13419         for a reply.
13420
13421 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13422
13423         * bus/Makefile.am:
13424         * bus/connection.c: (connection_disconnect_handler),
13425         (connection_watch_callback), (bus_connection_setup):
13426         * bus/dispatch.c: (send_one_message),
13427         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13428         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13429         * bus/dispatch.h:
13430         * bus/driver.c: (bus_driver_send_service_deleted),
13431         (bus_driver_send_service_created), (bus_driver_handle_hello),
13432         (bus_driver_send_welcome_message),
13433         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13434         (bus_driver_handle_message):
13435         * bus/driver.h:
13436         Refactor code, put the message dispatching in its own file. Use
13437         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13438         is disconnected.
13439
13440 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13441
13442         * dbus/dbus-internals.h:
13443         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13444
13445         * dbus/dbus-message.c: (dbus_message_get_sender):
13446         * dbus/dbus-message.h:
13447         Implement dbus_message_get_sender.
13448
13449         * dbus/dbus-protocol.h:
13450         Add message and service defines.
13451
13452 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13453
13454         * dbus/dbus-connection.c: (dbus_connection_send_message):
13455         * dbus/dbus-message-internal.h:
13456         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13457         (dbus_message_write_header):
13458         Remove _dbus_messag_unlock and don't set the client serial on a
13459         message if one already exists.
13460
13461 2003-01-24  Havoc Pennington  <hp@pobox.com>
13462
13463         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13464         list_pool
13465
13466         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13467         on OOM
13468
13469 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13470
13471         * dbus/dbus-list.c: (alloc_link), (free_link):
13472         Use a memory pool for the links.
13473
13474 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13475
13476         * bus/connection.c: (bus_connection_foreach):
13477         * bus/connection.h:
13478         Add new bus_connection_foreach function.
13479
13480         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13481         Add function that broadcasts a message to all clients.
13482
13483         (bus_driver_send_service_created), (bus_driver_handle_hello),
13484         (bus_driver_send_welcome_message),
13485         (bus_driver_handle_list_services), (bus_driver_message_handler):
13486         Implement functions that take care of listing services, and notifying
13487         clients when new services are created.
13488
13489         * bus/services.c: (bus_services_list):
13490         * bus/services.h:
13491         Add new function that returns an array of strings with the currently
13492         registered services.
13493
13494         * glib/dbus-glib.h:
13495         * glib/dbus-gmain.c:
13496         Update copyright year.
13497
13498 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13499
13500         * dbus/dbus-connection.c: (dbus_connection_send_message):
13501         Unlock the message in case it was sent earlier.
13502
13503         (dbus_connection_send_message_with_reply_and_block):
13504         Remove the reply message from the list.
13505
13506         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13507         Set array_len and new_pos correctly.
13508
13509         (_dbus_marshal_test):
13510         Remove debug output.
13511
13512         * dbus/dbus-message-internal.h:
13513         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13514         New function that returns the reply serial.
13515
13516         (_dbus_message_unlock):
13517         New function that unlocks a message and resets its header.
13518
13519         (dbus_message_append_string_array),
13520         (dbus_message_get_fields_valist),
13521         (dbus_message_iter_get_field_type),
13522         (dbus_message_iter_get_string_array),
13523         (dbus_message_get_fields),
13524         (dbus_message_append_fields_valist):
13525         Handle string arrays.
13526
13527         (dbus_message_set_sender):
13528         Make this function public since the bus daemon needs it.
13529
13530         (decode_header_data):
13531         Set the reply serial to -1 initially.
13532
13533         * dbus/dbus-message.h:
13534         Add dbus_message_set_sender.
13535
13536 2003-01-24  Havoc Pennington  <hp@pobox.com>
13537
13538         * doc/dbus-specification.sgml: add some stuff
13539
13540 2003-01-22  Havoc Pennington  <hp@pobox.com>
13541
13542         * doc/dbus-specification.sgml: Start to document the protocol.
13543
13544 2003-01-22  Havoc Pennington  <hp@pobox.com>
13545
13546         * dbus/dbus-connection.c
13547         (dbus_connection_send_message_with_reply_and_block): add some @todo
13548
13549         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13550
13551 2003-01-21  Havoc Pennington  <hp@pobox.com>
13552
13553         (patch untested because can't compile)
13554
13555         * bus/driver.c (create_unique_client_name): make this function
13556         never recycle client names. Also, caller should initialize
13557         the DBusString.
13558
13559         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13560
13561 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13562
13563         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13564         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13565         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13566         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13567         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13568         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13569         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13570         * dbus/dbus-marshal.h:
13571         * dbus/dbus-protocol.h:
13572         Add support for marshalling and demarshalling integer, double
13573         and string arrays.
13574
13575 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13576
13577         * bus/Makefile.am:
13578         Add driver.[ch]
13579
13580         * bus/connection.c: (connection_disconnect_handler):
13581         Remove the connection from the bus driver's list.
13582
13583         (connection_watch_callback): Dispatch messages.
13584
13585         (free_connection_data): Free connection name.
13586
13587         (bus_connection_setup): Add connection to the bus driver's list.
13588         (bus_connection_remove_owned_service):
13589         (bus_connection_set_name), (bus_connection_get_name):
13590         Add functions for setting and getting the connection's name.
13591
13592         * bus/connection.h:
13593         Add function headers.
13594
13595         * bus/driver.c: (create_unique_client_name),
13596         (bus_driver_handle_hello_message),
13597         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13598         (bus_driver_add_connection), (bus_driver_remove_connection):
13599         * bus/driver.h:
13600         * bus/main.c:
13601         * bus/services.c: (bus_service_free):
13602         * bus/services.h:
13603         New file that handles communication and registreation with the bus
13604         itself.
13605
13606 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13607
13608         * dbus/dbus-connection.c: (dbus_connection_send_message):
13609         Add a new client_serial parameter.
13610
13611         (dbus_connection_send_message_with_reply):
13612         Remove a @todo since we've implemented the blocking function.
13613
13614         (dbus_connection_send_message_with_reply_and_block):
13615         New function that sends a message and waits for a reply and
13616         then returns the reply.
13617
13618         * dbus/dbus-connection.h:
13619         Add new functions.
13620
13621         * dbus/dbus-errors.c: (dbus_result_to_string):
13622         * dbus/dbus-errors.h:
13623         Add new DBUS_RESULT.
13624
13625         * dbus/dbus-message-internal.h:
13626         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13627         (_dbus_message_set_sender), (dbus_message_write_header),
13628         (dbus_message_new_reply), (decode_header_data),
13629         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13630         * dbus/dbus-message.h:
13631         Add new functions that set the reply serial and sender.
13632         Also marshal and demarshal them correctly and add test.
13633
13634         * dbus/dbus-protocol.h:
13635         Add new DBUS_MESSAGE_TYPE_SENDER.
13636
13637         * glib/dbus-glib.h:
13638         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13639         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13640         (dbus_connection_hookup_with_g_main):
13641         * glib/test-dbus-glib.c: (main):
13642         Rewrite to use GIOChannel and remove the GSource crack.
13643
13644         * test/echo-client.c: (main):
13645         * test/watch.c: (check_messages):
13646         Update for changed APIs
13647
13648 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13649
13650         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13651
13652         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13653         Create a DBusTimeoutList.
13654         (dbus_connection_set_timeout_functions): Add new function to
13655         set timeout callbacks
13656
13657         * dbus/dbus-connection.h: Add public DBusTimeout API.
13658
13659         * dbus/dbus-message.c: (dbus_message_get_service):
13660         * dbus/dbus-message.h:  New function.
13661
13662         * dbus/dbus-server.c: Fix small doc typo.
13663
13664         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13665
13666 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13667
13668         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13669         of the string, just as long as specified.
13670
13671 2003-01-19  Havoc Pennington  <hp@pobox.com>
13672
13673         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13674         new function
13675
13676         * dbus/dbus-server.c (dbus_server_set_max_connections)
13677         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13678         keep track of current number of connections, and add API for
13679         setting a max (but haven't implemented enforcing the max yet)
13680
13681 2003-01-18  Havoc Pennington  <hp@pobox.com>
13682
13683         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13684         reading/writing if read_watch != NULL or write_watch != NULL.
13685
13686         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13687         the message loader code to actually load message->header and
13688         message->body into the newly-created message.
13689
13690         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13691         in OOM case
13692
13693         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13694         (dbus_connection_get_max_message_size)
13695         (dbus_connection_set_max_live_messages_size)
13696         (dbus_connection_get_max_live_messages_size): implement some
13697         resource limitation functions
13698
13699         * dbus/dbus-resources.c: new file implementing some of the
13700         resource limits stuff
13701
13702         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13703         missing docs, add @todo to handle OOM etc.
13704
13705         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13706         docs
13707
13708 2003-01-18  Havoc Pennington  <hp@pobox.com>
13709
13710         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13711         connection if it hasn't been already.
13712
13713         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13714         replace with DisconnectFunction.
13715
13716 2003-01-18  Havoc Pennington  <hp@pobox.com>
13717
13718         Building --disable-verbose-mode --disable-asserts --disable-tests
13719         cuts the library from 112K to 45K or so
13720
13721         * configure.in: check for varargs macro support,
13722         add --enable-verbose-mode, --enable-asserts.
13723
13724         * dbus/dbus-internals.h (_dbus_assert): support
13725         DBUS_DISABLE_ASSERT
13726         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13727
13728 2003-01-18  Havoc Pennington  <hp@pobox.com>
13729
13730         * dbus/dbus-test.c: include config.h so that tests actually run
13731
13732         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13733         so the failure mode when that assumption fails will be plenty
13734         obvious.
13735
13736 2003-01-18  Havoc Pennington  <hp@pobox.com>
13737
13738         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13739
13740         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13741         the distribution
13742
13743         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13744         since we don't want to use those in make check
13745
13746 2003-01-15  Havoc Pennington  <hp@redhat.com>
13747
13748         Release 0.2
13749
13750         * NEWS: update
13751
13752 2003-01-15  Havoc Pennington  <hp@redhat.com>
13753
13754         * test/Makefile.am: fix so that test source code ends up in the
13755         distribution on make distcheck
13756
13757 2003-01-15  Havoc Pennington  <hp@redhat.com>
13758
13759         Release 0.1.
13760
13761         * NEWS: update
13762
13763 2003-01-15  Havoc Pennington  <hp@redhat.com>
13764
13765         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13766         fix build when --disable-tests
13767
13768         * Makefile.am (EXTRA_DIST): put HACKING in here
13769
13770         * HACKING: document procedure for making a tarball release.
13771
13772 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13773
13774         * bus/connection.c: (connection_error_handler),
13775         (bus_connection_setup):
13776         * bus/main.c: (main):
13777         Make sure that the DBusConnectionData struct is NULLed
13778         out to prevent a segfault.
13779
13780         * dbus/dbus-errors.c: (dbus_result_to_string):
13781         * dbus/dbus-errors.h:
13782         * dbus/dbus-message.c: (dbus_message_get_fields),
13783         (dbus_message_get_fields_valist), (_dbus_message_test):
13784         * dbus/dbus-message.h:
13785         Make dbus_message_get_fields return a result code so we can
13786         track invalid fields as well as oom.
13787
13788 2003-01-11  Havoc Pennington  <hp@pobox.com>
13789
13790         * configure.in: change --enable-test/--enable-ansi action-if-given
13791         to enable_foo=$enableval instead of enable_foo=yes
13792
13793 2003-01-08  Havoc Pennington  <hp@pobox.com>
13794
13795         * dbus/dbus-string.c (_dbus_string_align_length): new function
13796
13797         * dbus/dbus-test-main.c: move main() for test app here
13798         * dbus/dbus-test.c
13799         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13800         symbol to run tests, because dbus-test isn't in the main
13801         library
13802
13803         Code review nitpicks.
13804
13805         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13806         for people with narrow emacs ;-). Assert client_serial was filled
13807         in. Assert message->name != NULL.
13808         (dbus_message_append_fields): have "first_field_type" arg separate
13809         from va list, needed for C++ binding that also uses varargs IIRC
13810         and helps with type safety
13811         (dbus_message_new): add @todo about using DBusString to store
13812         service/name internally
13813         (dbus_message_new): don't leak ->service and ->name on OOM later
13814         in the function
13815         (dbus_message_unref): free the service name
13816         (dbus_message_get_fields): same change to varargs
13817         i.e. first_field_type
13818         (_dbus_message_loader_return_buffer): assert that the message data
13819         is aligned (if not it's a bug in our code). Put in verbose griping
13820         about why we set corrupted = TRUE.
13821         (decode_header_data): add FIXME that char* is evil.  Was going to
13822         add FIXME about evil locale-specific string.h strncmp, but just
13823         switched to wacky string-as-uint32 optimization. Move check for
13824         "no room for field name" above get_const_data_len() to avoid
13825         assertion failure in get_const_data_len if we have trailing 2
13826         bytes or the like. Check for service and name fields being
13827         provided twice. Don't leak service/name on error. Require field
13828         names to be aligned to 4 bytes.
13829
13830         * dbus/dbus-marshal.c: move byte swap stuff to header
13831         (_dbus_pack_int32): uscore-prefix
13832         (_dbus_unpack_int32): uscore-prefix
13833         (_dbus_unpack_uint32): export
13834         (_dbus_demarshal_string): add @todo complaining about use of
13835         memcpy()
13836         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13837         handling allowing corrupt data to go unchecked
13838
13839 2003-01-08  Havoc Pennington  <hp@redhat.com>
13840
13841         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13842         to the select() as needed for authentication. (should be using
13843         _dbus_poll() not select, but for another day)
13844
13845         * dbus/dbus.h: include dbus/dbus-protocol.h
13846
13847 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13848
13849         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13850         dbus-connection.h
13851
13852 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13853
13854         * dbus/dbus-internals.c: (_dbus_type_to_string):
13855         New function that returns a string describing a type.
13856
13857         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13858         * dbus/dbus-marshal.h:
13859         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13860         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13861         (dbus_message_iter_get_byte_array):
13862         * dbus/dbus-message.h:
13863         Add new convenience functions for appending and getting message fields.
13864         Also add demarshalling routines for byte arrays.
13865
13866 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13867
13868         * dbus/dbus-connection-internal.h:
13869         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13870         (_dbus_connection_get_next_client_serial),
13871         (dbus_connection_send_message):
13872         * dbus/dbus-internals.h:
13873         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13874         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13875         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13876         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13877         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13878         (_dbus_verbose_bytes), (_dbus_marshal_test):
13879         * dbus/dbus-marshal.h:
13880         * dbus/dbus-message-internal.h:
13881         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13882         (dbus_message_write_header), (_dbus_message_lock),
13883         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13884         (dbus_message_get_name), (dbus_message_append_int32),
13885         (dbus_message_append_uint32), (dbus_message_append_double),
13886         (dbus_message_append_string), (dbus_message_append_byte_array),
13887         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13888         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13889         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13890         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13891         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13892         (decode_header_data), (_dbus_message_loader_return_buffer),
13893         (message_iter_test), (_dbus_message_test):
13894         * dbus/dbus-message.h:
13895         * dbus/dbus-protocol.h:
13896         * dbus/dbus-test.c: (main):
13897         * dbus/dbus-test.h:
13898         * glib/test-dbus-glib.c: (message_handler), (main):
13899         * test/echo-client.c: (main):
13900         * test/watch.c: (check_messages):
13901         Make messages sendable and receivable for real.
13902
13903 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13904
13905         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13906         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13907         * dbus/dbus-message.c: (dbus_message_append_int32),
13908         (dbus_message_append_uint32), (dbus_message_append_double),
13909         (dbus_message_append_string), (dbus_message_append_byte_array):
13910         Handle OOM restoration.
13911
13912 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13913
13914         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13915         (_dbus_demarshal_string), (_dbus_marshal_test):
13916         * dbus/dbus-marshal.h:
13917         * dbus/dbus-message.c: (dbus_message_get_name),
13918         Document these functions.
13919
13920         (dbus_message_append_int32), (dbus_message_append_uint32),
13921         (dbus_message_append_double), (dbus_message_append_string),
13922         (dbus_message_append_byte_array):
13923         * dbus/dbus-message.h:
13924         Add functions for adding message fields of different types.
13925
13926         * dbus/dbus-protocol.h:
13927         Add the different types.
13928
13929 2003-01-05  Havoc Pennington  <hp@pobox.com>
13930
13931         * bus/connection.c: implement routines for handling connections,
13932         first thing is keeping a list of owned services on each connection
13933         and setting up watches etc.
13934
13935         * bus/services.c: implement a mapping from service names to lists
13936         of connections
13937
13938         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13939
13940         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13941         to use static mutexes for global data
13942
13943         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13944         collection of functions to set/get application-specific data
13945         on the DBusConnection.
13946
13947 2003-01-04  Havoc Pennington  <hp@pobox.com>
13948
13949         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13950         (_dbus_poll): new function
13951
13952         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13953         copied from GLib
13954
13955         * bus/loop.c: initial code for the daemon main loop
13956
13957 2003-01-04  Havoc Pennington  <hp@pobox.com>
13958
13959         * test/watch.c (error_handler): make it safe if the error handler
13960         is called multiple times (if we s/error handler/disconnect
13961         handler/ we should just guarantee it's called only once)
13962
13963         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13964         error handler on disconnect (it's quite possible we should
13965         just change the error handler to a "disconnect handler," I'm
13966         not sure we have any other meaningful errors)
13967
13968         * configure.in: check for getpwnam_r
13969
13970         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13971         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13972         mechanism as in SASL spec, using socket credentials
13973
13974         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13975         (_dbus_send_credentials_unix_socket): new function
13976
13977         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13978         dbus_accept()
13979         (_dbus_write): only check errno if <0 returned
13980         (_dbus_write_two): ditto
13981
13982 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13983
13984         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13985         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13986         (_dbus_marshal_test):
13987         * dbus/dbus-marshal.h:
13988         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13989         to _dbus_marshal_utf8_string. Also fix some tests.
13990
13991 2002-12-28  Harri Porten  <porten@kde.org>
13992
13993         * configure.in: added check for C++ compiler and a very cheesy
13994         check for the Qt integration
13995
13996         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13997
13998         * qt/Makefile.am: added
13999
14000         * qt/.cvsignore: added
14001
14002         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14003         latter, added #ifdef QT_THREAD_SUPPORT guard.
14004
14005         * dbus/Makefile.am: added missing headers for make dist
14006
14007 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14008
14009         * dbus/Makefile.am: fixup export-symbols-regex.
14010
14011 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14012
14013         * acinclude.m4: Add this file and put the
14014         PKG_CHECK_MODULE macro in it.
14015
14016 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14017
14018         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14019         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14020         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14021         (_dbus_marshal_test):
14022         Make the demarshalling routines align the pos argument.
14023         Add string marshalling tests and fix the obvious bugs
14024         discovered.
14025
14026 2002-12-26  Havoc Pennington  <hp@pobox.com>
14027
14028         * dbus/dbus-auth.c: fixes fixes fixes
14029
14030         * dbus/dbus-transport-unix.c: wire up support for
14031         encoding/decoding data on the wire
14032
14033         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14034         (_dbus_auth_decode_data): append to target string
14035         instead of nuking it.
14036
14037 2002-12-26  Havoc Pennington  <hp@pobox.com>
14038
14039         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14040         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14041         doh
14042
14043         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14044         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14045         now). Main point is because I wanted unpack_uint32 to implement
14046         _dbus_verbose_bytes
14047         (_dbus_verbose_bytes): new function
14048
14049         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14050
14051         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14052         mechanism to handle a corrupt message stream
14053         (_dbus_message_loader_new): fix preallocation to only prealloc,
14054         not prelengthen
14055
14056         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14057         (_dbus_string_test): enhance tests for copy/move and fix the
14058         functions
14059
14060         * dbus/dbus-transport-unix.c: Hold references in more places to
14061         avoid reentrancy problems
14062
14063         * dbus/dbus-transport.c: ditto
14064
14065         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14066         leak reference count in no-message case
14067
14068         * test/watch.c (do_mainloop): handle adding/removing watches
14069         during iteration over the watches. Also, ref the connection/server
14070         stored on a watch, so we don't try to mangle a destroyed one.
14071
14072         * dbus/dbus-transport-unix.c (do_authentication): perform
14073         authentication
14074
14075         * dbus/dbus-auth.c (get_state): add a state
14076         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14077         (_dbus_auth_get_unused_bytes): append the unused bytes
14078         to the passed in string, rather than prepend
14079
14080         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14081         the auth conversation DBusAuth
14082
14083         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14084         (_dbus_transport_new_for_domain_socket): when creating a
14085         transport, pass in whether it's a client-side or server-side
14086         transport so we know which DBusAuth to create
14087
14088 2002-12-03  Havoc Pennington  <hp@pobox.com>
14089
14090         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14091         _after_ finalizing the derived members
14092         (unix_connection_set): unref watch if we fail to add it
14093
14094         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14095         transport first, so that the connection owned by the
14096         transport will be valid as the transport finalizes.
14097
14098         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14099         if necessary, and remove watches from the connection.
14100
14101         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14102
14103 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14104
14105         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14106         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14107         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14108         (_dbus_marshal_test):
14109         * dbus/dbus-marshal.h:
14110         Add string marshal functions and have the demarshal functions
14111         return the new position.
14112
14113 2002-12-25  Havoc Pennington  <hp@pobox.com>
14114
14115         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14116         it is a simple protocol that just maps directly to SASL.
14117
14118         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14119         initial implementation, not actually used yet.
14120
14121         * dbus/dbus-string.c (_dbus_string_find): new function
14122         (_dbus_string_equal): new function
14123         (_dbus_string_base64_encode): new function
14124         (_dbus_string_base64_decode): new function
14125
14126 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14127
14128         * dbus/Makefile.am:
14129         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14130         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14131         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14132         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14133         * dbus/dbus-marshal.h:
14134         * dbus/dbus-protocol.h:
14135         * dbus/dbus-test.c: (main):
14136         * dbus/dbus-test.h:
14137         Add un-optimized marshalling/demarshalling routines.
14138
14139 2002-12-25  Harri Porten  <porten@kde.org>
14140
14141         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14142
14143 2002-12-24  Zack Rusin  <zack@kde.org>
14144
14145         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14146         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14147         main loop stuff
14148
14149 2002-12-24  Havoc Pennington  <hp@pobox.com>
14150
14151         * glib/dbus-gthread.c: fix include
14152
14153         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14154         I think glib API needs to change, though, as you don't
14155         want to use DBusMessageFunction, you want to use the
14156         DBusMessageHandler object. Probably
14157         dbus_connection_open_with_g_main_loop()
14158         and dbus_connection_setup_g_main_loop() or something like that
14159         (but think of better names...) that just create a connection
14160         that has watch/timeout functions etc. already set up.
14161
14162         * dbus/dbus-connection.c
14163         (dbus_connection_send_message_with_reply): new function just to
14164         show how the message handler helps us deal with replies.
14165
14166         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14167
14168         * dbus/dbus-string.c (_dbus_string_test): free a string that
14169         wasn't
14170
14171         * dbus/dbus-hash.c: use memory pools for the hash entries
14172         (rebuild_table): be more paranoid about overflow, and
14173         shrink table when we can
14174         (_dbus_hash_test): reduce number of sprintfs and write
14175         valid C89. Add tests for case where we grow and then
14176         shrink the hash table.
14177
14178         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14179
14180         * dbus/dbus-connection.c (dbus_connection_register_handler)
14181         (dbus_connection_unregister_handler): new functions
14182
14183         * dbus/dbus-message.c (dbus_message_get_name): new
14184
14185         * dbus/dbus-list.c: fix docs typo
14186
14187         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14188         an object representing a handler for messages.
14189
14190 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14191
14192         * glib/dbus-glib.h:
14193         * glib/dbus-gthread.c: (dbus_gthread_init):
14194         Don't use the gdbus prefix for public functions.
14195
14196 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14197
14198         * Makefile.am:
14199         * configure.in:
14200         Add GLib checks and fixup .pc files
14201
14202         * glib/Makefile.am:
14203         * glib/dbus-glib.h:
14204         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14205         (gdbus_connection_check), (gdbus_connection_dispatch),
14206         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14207         (dbus_connection_gsource_new):
14208         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14209         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14210         * glib/test-dbus-glib.c: (message_handler), (main):
14211         Add GLib support.
14212
14213 2002-12-15  Harri Porten  <porten@kde.org>
14214
14215         * autogen.sh: check for libtoolize before attempting to use it
14216
14217         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14218         struct.
14219
14220         * .cvsignore: ignore more stamp files
14221
14222         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14223
14224         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14225         without make install.
14226
14227 2002-12-15  Havoc Pennington  <hp@pobox.com>
14228
14229         * dbus/dbus-threads.c: add thread stubs that a higher library
14230         layer can fill in. e.g. the GLib wrapper might fill them in with
14231         GThread stuff. We still need to use this thread API to
14232         thread-safe-ize the library.
14233
14234 2002-12-12  Havoc Pennington  <hp@pobox.com>
14235
14236         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14237         below new interfaces and include fewer system headers.
14238
14239         * dbus/dbus-sysdeps.c (_dbus_read): new function
14240         (_dbus_write): new function
14241         (_dbus_write_two): new function
14242         (_dbus_connect_unix_socket): new function
14243         (_dbus_listen_unix_socket): new function
14244
14245         * dbus/dbus-message-internal.h: change interfaces to use
14246         DBusString
14247
14248 2002-12-11  Havoc Pennington  <hp@pobox.com>
14249
14250         * dbus/dbus-types.h: add dbus_unichar
14251
14252         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14253
14254         * dbus/dbus-connection.c (dbus_connection_send_message): return
14255         TRUE on success
14256
14257         * dbus/dbus-transport.c: include dbus-watch.h
14258
14259         * dbus/dbus-connection.c: include dbus-message-internal.h
14260
14261         * HACKING: add file with coding guidelines stuff.
14262
14263         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14264         handling here, for security purposes (as in vsftpd). Not actually
14265         using this class yet.
14266
14267         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14268         system/libc usage here, as in vsftpd, for ease of auditing (and
14269         should also simplify portability). Haven't actually moved all the
14270         system/libc usage into here yet.
14271
14272 2002-11-25  Havoc Pennington  <hp@pobox.com>
14273
14274         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14275         always print the first verbose message.
14276
14277 2002-11-24  Havoc Pennington  <hp@pobox.com>
14278
14279         * test/echo-client.c, test/echo-server.c: cheesy test
14280         clients.
14281
14282         * configure.in (AC_CHECK_FUNCS): check for writev
14283
14284         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14285         function
14286
14287         * dbus/dbus-list.c (_dbus_list_foreach): new function
14288
14289         * dbus/dbus-internals.c (_dbus_verbose): new function
14290
14291         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14292         representing a server that listens for connections.
14293
14294         * dbus/.cvsignore: create
14295
14296         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14297         public API for reporting errors
14298
14299         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14300         public object representing a connection that
14301         sends/receives messages. (Same object used for
14302         both client and server.)
14303
14304         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14305         Basic abstraction for different kinds of stream
14306         that we might read/write messages from.
14307
14308 2002-11-23  Havoc Pennington  <hp@pobox.com>
14309
14310         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14311         _DBUS_INT_MAX
14312
14313         * dbus/dbus-test.c (main): add list test, and include
14314         dbus-test.h as intended
14315
14316         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14317         (_dbus_hash_table_remove_int): return value indicates
14318         whether the entry existed to remove
14319
14320         * dbus/dbus-list.c: add linked list utility class,
14321         with docs and tests
14322
14323         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14324         array sometimes.
14325
14326 2002-11-23  Havoc Pennington  <hp@pobox.com>
14327
14328         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14329         DBUS_END_DECLS to nothing, that should fix this once and for all
14330
14331         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14332
14333         * dbus/dbus-message.c, dbus/dbus-hash.c:
14334         add some missing @brief
14335
14336 2002-11-23  Havoc Pennington  <hp@pobox.com>
14337
14338         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14339         to avoid confusing Doxygen
14340
14341         * dbus/dbus-hash.c: @} not }@
14342
14343         * dbus/dbus-message.c (struct DBusMessage): split out
14344         internals docs
14345
14346 2002-11-23  Havoc Pennington  <hp@pobox.com>
14347
14348         * configure.in: pile on more warning flags if using gcc
14349
14350         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14351         to document static functions
14352
14353         * configure.in: add summary to end of configure so it
14354         looks nice and attractive
14355
14356         * dbus/dbus-hash.c: finish implementation and write unit
14357         tests and docs
14358
14359         * configure.in: add --enable-tests to enable unit tests
14360
14361         * dbus/dbus-test.c: test program to run unit tests
14362         for all files in dbus/*, initially runs a test for
14363         dbus-hash.c
14364
14365         * dbus/dbus-internals.h: file to hold some internal utility stuff
14366
14367 2002-11-22  Havoc Pennington  <hp@redhat.com>
14368
14369         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14370         "ported" away from Tcl
14371
14372         * dbus/dbus-types.h: header for types such as dbus_bool_t
14373
14374 2002-11-22  Havoc Pennington  <hp@redhat.com>
14375
14376         * dbus/dbus.h: fixups for doc warnings
14377
14378         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14379         macros
14380         (QUIET): make it quiet so we can see warnings
14381
14382         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14383
14384 2002-11-22  Havoc Pennington  <hp@redhat.com>
14385
14386         * Makefile.am: include "Doxyfile" target in all-local
14387
14388         * configure.in: generate the Doxyfile
14389
14390         * Doxyfile.in: move Doxyfile here, so we can use
14391         configure to generate a Doxyfile with the right
14392         version number etc.
14393
14394 2002-11-22  Havoc Pennington  <hp@redhat.com>
14395
14396         * dbus/dbus-message.c: move inline docs into .c file
14397
14398         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14399         so all docs are under doc/
14400         (MAN_EXTENSION): generate man pages. Use extension
14401         ".3dbus" which matches ".3qt" on my system,
14402         I guess this is OK, I don't know really.
14403         (FILE_PATTERNS): look for .c files not .h, makes sense
14404         for plain C I think
14405
14406 2002-11-22  Havoc Pennington  <hp@pobox.com>
14407
14408         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14409         because any app can be a server, and any app can be a client,
14410         the bus is a special kind of server.
14411
14412 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14413
14414         * Doxyfile : adding. Still needs Makefile rules to be generated
14415         automatically (just run "doxygen" in the toplevel dir for now to
14416         generate docs)
14417
14418         * dbus/dbus-message.h : Adding sample docs (javadoc since
14419         resembles gtk-doc a little more)
14420
14421         * dbus/dbus.h : Adding sample docs
14422
14423 2002-11-21  Havoc Pennington  <hp@redhat.com>
14424
14425         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14426         so we can allow ourselves to include files directly,
14427         instead of having to use dbus.h
14428
14429         * dbus/dbus.h: fill in
14430
14431         * dbus/dbus-message.h: sketch out a sample header file.
14432         Include griping if you include it directly instead of
14433         via dbus.h
14434
14435         * dbus/dbus-macros.h: new file with macros for extern "C",
14436         TRUE/FALSE, NULL, etc.
14437
14438         * doc/file-boilerplate.c: put include guards in here
14439
14440 2002-11-21  Havoc Pennington  <hp@redhat.com>
14441
14442         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14443
14444         * COPYING: include the GPL as well, and license code
14445         under both AFL and GPL.
14446
14447 2002-11-21  Havoc Pennington  <hp@redhat.com>
14448
14449         * acconfig.h: get rid of this
14450
14451         * autogen.sh (run_configure): add --no-configure option
14452
14453         * configure.in: remove AC_ARG_PROGRAM to make
14454         autoconf complain less. add AC_PREREQ.
14455         add AC_DEFINE third arg.
14456
14457 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14458
14459         * doc/Makefile.am:
14460         Fix references so we can distcheck.
14461
14462 2002-11-21  Havoc Pennington  <hp@redhat.com>
14463
14464         * Initial module creation
14465