b2bd8ddab0c79b8da92a66f41d6dca9d112aeb6c
[platform/upstream/dbus.git] / ChangeLog
1 2006-10-01  Havoc Pennington  <hp@redhat.com>
2
3         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
4         Add a hack to make DBusNewConnectionFunction work right.
5
6         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
7         the hack here. Also, fix the todo about refcount leak.
8         
9         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10         and use the hack here
11         
12         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
13         "shareable" flag; this was completely broken, since it meant 
14         dbus_connection_open() returned a connection of unknown
15         shared-ness. Now, we always hold a ref on anything opened 
16         as shareable.
17
18         Move the call to notify dbus-bus.c into
19         connection_forget_shared_unlocked, so libdbus consistently forgets
20         all its knowledge of a connection at once. This exposed numerous
21         places where things were totally broken if we dropped a ref inside
22         get_dispatch_status_unlocked where
23         connection_forget_shared_unlocked was previously, so move
24         connection_forget_shared_unlocked into
25         _dbus_connection_update_dispatch_status_and_unlock. Also move the
26         exit_on_disconnect here.
27
28         (shared_connections_shutdown): this assumed weak refs to the
29         shared connections; since we have strong refs now, the assertion 
30         was failing and stuff was left in the hash. Fix it to close
31         still-open shared connections.
32         
33         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
34         debug pipe connections
35         
36         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
37         dbus-bus.c if the closed connection is in fact shared
38         (_dbus_connection_close_possibly_shared): rename from 
39         _dbus_connection_close_internal
40         (dbus_connection_close, dbus_connection_open,
41         dbus_connection_open_private): Improve docs to explain the deal
42         with when you should close or unref or both
43
44         * dbus/dbus-bus.c
45         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
46         from _dbus_bus_check_connection_and_unref_unlocked and modify to
47         loop over all connections
48
49         * test/test-utils.c (test_connection_shutdown): don't try to close
50         shared connections.
51
52         * test/name-test/test-threads-init.c (main): fix warnings in here
53
54         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
55         env variable to cause blocking waiting for gdb; drop
56         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
57         unconditionally.
58
59         * configure.in: add -export-dynamic to libtool flags if assertions enabled
60         so _dbus_print_backtrace works.
61
62         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
63         instead of _dbus_verbose to print the backtrace, and diagnose lack 
64         of -rdynamic/-export-dynamic
65         
66 2006-09-30  Havoc Pennington  <hp@redhat.com>
67
68         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
69         (internal_bus_get): fix screwy code formatting. whoever committed
70         that was not paying attention!
71
72 2006-09-30  Havoc Pennington  <hp@redhat.com>
73
74         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
75         reflect addition of interfaces.
76
77         * doc/dbus-specification.xml: describe a new
78         org.freedesktop.DBus.Peer.GetMachineId method
79
80         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
81         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
82         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
83         at end of skip_white
84         (_dbus_string_chop_white): new function
85
86         * bus/connection.c (bus_connections_setup_connection): call
87         dbus_connection_set_route_peer_messages.
88
89         * dbus/dbus-connection.c
90         (_dbus_connection_peer_filter_unlocked_no_update): modify to
91         support a GetMachineId method.
92
93         Also, support a new flag to let the bus pass peer methods through
94         to apps on the bus, which can be set with
95         dbus_connection_set_route_peer_messages.
96
97         Finally, handle and return an error for anything unknown on the
98         Peer interface, which will allow us to extend the Peer interface
99         in the future without fear that we're now intercepting something
100         apps were wanting to see.
101         
102         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
103         dbus/dbus-uuidgen.c
104
105         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
106         binary here, since most of the code is already in libdbus
107
108         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
109         uuid from the system config file
110
111         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
112         (_dbus_read_uuid_file_without_creating) 
113         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
114         uuid-related functions, partly factored out from dbus-server.c
115
116         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
117         DBUS_ERROR_FILE_EXISTS instead of EEXIST
118
119         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
120
121         * tools/dbus-cleanup-sockets.1: explain what the point of this
122         thing is a bit more
123
124         * autogen.sh (run_configure): add --config-cache to default
125         configure args
126
127         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
128         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
129
130         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
131         don't try to save address, fixes crash in make check
132         
133 2006-09-30  Thiago Macieira  <thiago@kde.org>
134
135         * configure.in: add DBUS_BINDIR as a #define to C source code.
136
137         * tools/dbus-launch.c
138         * tools/dbus-launch.h
139         * tools/dbus-launch-x11.c:
140         * tools/dbus-launch.1: Add the --autolaunch option to
141         dbus-launch, which makes it scan for an existing session
142         started with --autolaunch. With that option, it also creates
143         an X11 window and saves the bus address and PID to it.
144
145         * dbus/dbus-sysdeps.h:
146         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
147         a function that runs "dbus-launch --autolaunch" to retrieve
148         the running D-Bus session address (or start one if none was running)
149
150         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
151         address protocol, which tries to get the running session from
152         dbus-launch.
153
154         * dbus/dbus-bus.c:
155         * dbus/dbus-internals.h: Make "autolaunch:" be the default
156         D-Bus session bus address.
157
158         * dbus/dbus-connection.c: Fix horrible typo in error message.
159
160 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
161
162         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
163
164 2006-09-17  Havoc Pennington  <hp@redhat.com>
165
166         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
167         fix so that if unix_user_function is set on windows, we still
168         do the default check that the auth identity matches the bus identity
169
170 2006-09-16  Havoc Pennington  <hp@redhat.com>
171
172         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
173         to _dbus_transport_open_platform_specific,
174         _dbus_transport_open_socket,
175         and _dbus_transport_open_debug_pipe
176
177         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
178
179 2006-09-16  Havoc Pennington  <hp@redhat.com>
180
181         Attempt auditing public API to remove all cases where a Unix
182         function returns weird emulated goo to Windows. This probably 
183         breaks the bus daemon on Windows, to fix it again we may 
184         need to stop processing unix-specific config options on Windows,
185         and may need to add Windows-specific public API or config options.
186         
187         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
188         to reflect added interfaces; should not break soname.
189         
190         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
191         not invoke unix user function on Windows. Kind of a hacky fix, but 
192         we don't want a "unix uid" leaking out on Windows.
193
194         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
195         to get the socket fd on Windows or UNIX
196         (dbus_connection_get_unix_fd): make this always fail on Windows
197
198 2006-09-16  Havoc Pennington  <hp@redhat.com>
199
200         * dbus/dbus-server.c (dbus_server_listen): change how this works
201         to be able to delegate to a set of handlers that can succeed,
202         fail, or choose not to handle. Allows us to have 
203         dbus_server_listen_platform_specific.
204
205         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
206         factor out the tcp socket stuff to be used on windows, leaving
207         unix domain socket only in dbus-socket-unix.c
208
209         * dbus/dbus-transport-socket.c
210         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
211         stuff to be used on windows, leaving unix domain socket only 
212         in dbus-transport-unix.c
213
214         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
215         temporary hack to be sure this fails on windows
216         (dbus_connection_get_unix_process_id): ditto
217
218 2006-09-16  Havoc Pennington  <hp@redhat.com>
219
220         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
221         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
222         _dbus_open_socket so the domain/type/protocol from system headers
223         are not required. This is kind of pointless though unless we move
224         part of _dbus_connect_tcp_socket into sysdeps.c instead of
225         sysdeps-unix.c, which would mean adding a wrapper around
226         bind/listen/etc.
227         Also, add DBusError to the socket-opening functions so they 
228         don't require use of errno.
229
230 2006-09-16  Havoc Pennington  <hp@redhat.com>
231
232         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
233         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
234
235         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
236         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
237         functions specifically for sockets only, and move generic 
238         read/write/open/close into unix-specific code.
239
240 2006-09-14  Havoc Pennington  <hp@redhat.com>
241
242         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
243         complaint about accessing revents when poll returns 0, from Julian Seward.
244
245 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
246
247         * Released 1.0 RC 1 (0.93) 
248
249 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
250
251         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
252         use _dbus_close instead of close
253
254 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
255
256         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
257         credentials.  Fixes "external" authentication under e.g. NetBSD
258         which does not support any other socket credentials mechanism.
259         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
260
261 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
262
263         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
264         dbus_threads_init and be used by the dbus mutex functions to
265         avoid deadlocks.
266
267         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
268
269 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
270
271         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
272         use threadsafe readdir_r instead of readdir
273
274 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
275
276         * dbus-threads.c (dbus_threads_init_default): New method for
277         initializing the internal thread implementation (Patch from
278         Alexander Larsson <alexl at redhat dot com>)
279
280 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
281
282         * remove a bunch of todo items from the 1.0 list
283
284 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
285
286         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
287         key not found
288
289 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
290
291         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
292         complex debugging code
293
294         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
295         between the test suite ifdefs
296         (_dbus_verbose_bytes): return if verbosity is not enabled 
297
298 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
299
300         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
301         remove DBusMark
302
303 2006-09-10  Havoc Pennington  <hp@redhat.com>
304
305        patch mostly by Peter Kümmel, bug #8211
306         
307         * dbus/dbus-sysdeps-unix.c: new file, which splits out
308         unix-specific stuff in dbus-sysdeps.c
309
310         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
311         and move unix-specific stuff to dbus-sysdeps-unix.c
312
313         * configure.in: check HAVE_ERRNO_H
314         
315 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
316
317         * bus/test-main.c (main): Initialize threading during tests
318
319         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
320         Unlock connection on error
321         (generate_local_error_message): static method for generating
322         an error message when we don't have a message to reply to
323         (_dbus_connection_block_pending_call): Send a disconnect error
324         instead of just a timeout (NULL) when the bus gets disconnected
325         while blocking for a reply.
326         
327 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
328
329         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
330         filters (Patch from Kimmo Hämäläinen 
331         <kimmo dot hamalainen at nokia dot com>)
332
333 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
334
335         * dbus/dbus-connection-internal.h: Add prototype for 
336         _dbus_connection_test_get_locks to remove warning
337
338 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
339
340         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
341         close child_err_report_pipe[WRITE_END] on exec (Patch from 
342         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
343
344 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
345
346         * Clean up close calls to use _dbus_close (Patch from 
347         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
348
349 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
350
351         * doc/TODO:
352         - Remove pending call locking todo item
353         - dbus_connection_open now holds hard ref.  Remove todo item
354         - do proper locking on _dbus_bus_check_connection_and_unref
355           and handle DBUS_BUS_STARTER. Remove todo item
356         - Warn on closing of a shared connection.  Remove todo item
357
358         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
359         dbus/dbus-connection.c: Use the dbus_connection_close_internal
360         so we don't get the warning when closing shared connections
361
362         * test/test-service.c, test/test-shell-service.c: Applications
363         don't close shared connections themselves so we unref instead of
364         close
365
366         * test/test-utils.c (test_connection_shutdown): Close the connection
367
368         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
369         _dbus_bus_check_connection_and_unref_unlocked since we only call this
370         method on a locked connection.  
371         Make sure we call _dbus_connection_unref_unlocked instead of 
372         dbus_connection_unref also.
373         Handle DBUS_BUS_STARTER correctly
374
375         * dbus/dbus-connection.c (connection_record_shared_unlocked):
376         Mark as shared and hard ref the connection
377         (connection_forget_shared_unlocked): Remove the hard ref from the 
378         connection
379         (_dbus_connection_close_internal_and_unlock):  New internal function
380         which takes a locked connection and unlocks it after closing it
381         (_dbus_connection_close_internal): New internal function which acts
382         like the origonal dbus_connection_close method by grabbing a connection
383         lock and calling _dbus_connection_close_internal_and_unlock
384         (dbus_connection_close): Public close method, warns when the app
385         trys to close a shared connection
386
387 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
388
389         * bus/driver.c:
390         (bus_driver_generate_introspect_string): New method for populating
391         a DBusString with the introspect data
392         (bus_driver_handle_introspect): Move introspect generation code to 
393         bus_driver_generate_introspect_string
394
395         * bus/main.c:
396         (introspect): New function which prints out the intropect data and
397         exits
398         (main): Add a --introspect switch
399
400 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
401
402         * doc/TODO: Removed dtd publishing item.  
403         It seems the dtd has already been added at
404         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
405
406 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
407
408         * doc/TODO, various source files: Audited todo's and FIXME's and
409         prepended the ones we should be looking at with 1.0.  Those
410         prepended with 1.0? need clerification or might not be needed
411         for 1.0
412
413 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
414
415         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
416         NULL in the public API (Patch from Kimmo Hämäläinen 
417         <kimmo dot hamalainen at nokia dot com>)
418
419 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
420
421         * configure.in: Fix for OS-X compile time endian issues (patch from
422         Benjamin Reed <ranger at befunk dot com>)
423
424 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
425
426         * configure.in: Check for no-common compiler flag (OS-X fix from
427         Benjamin Reed <ranger at befunk dot com>)
428
429 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
430
431         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
432         <fcrozat at mandriva dot com>)
433
434 2006-08-29  Havoc Pennington  <hp@redhat.com>
435
436         * test/test-service.c (path_message_func): fix lack of return value
437
438         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
439         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
440         any more sense than on anything else in this file.
441         (_dbus_get_tmpdir): add const to return value, and keep the
442         results of the various getenv around in a static variable.
443
444 2006-08-29  Havoc Pennington  <hp@redhat.com>
445
446         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
447         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
448
449 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
450
451         * test/Makefile.am: change find to use syntax that works with non
452         gnu versions of find
453
454 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
455
456         * dbus/dbus-transport.c: fix invalid deref when checking if
457         a vtable method exists (Patch from Christian Ehrlicher 
458         <ch dot ehrlicher at gmx dot de>)
459
460 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
461
462         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
463         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
464         to build with builddir != srcdir (Taken from a patch by Bernard Leak
465         <bernard at brenda-arkle dot demon dot co dot uk>)
466
467 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
468
469         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
470         default case
471
472 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
473
474         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
475         it works on any system providing this interface, not only FreeBSD.
476         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
477
478 2006-08-20  Havoc Pennington  <hp@redhat.com>
479
480         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
481         the docs
482
483 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
484
485         * Released 0.92 
486
487 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
488
489         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
490         to reflect the init late change
491
492         * bus/bus.c (bus_context_new): Check user before we fork so we can
493         print out an error message a user will be able to see
494
495 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
496
497         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
498
499         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
500         Add two more global locks for use on windows platforms.  These are
501         unused on non-windows platforms but are not ifdefed out to avoid
502         potential bugs (i.e. the few bytes lost does not warrent the extra
503         maintanence and complexity that having seperate sets of locks would
504         cause)
505
506 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
507
508         * bus/services.c (bus_registry_acquire_service): Return an error
509         when an application tries to register the org.freedesktop.DBus Bus Name
510
511         * bus/services.c (bus_registry_release_service): Return an error
512         when an application tries to release the org.freedesktop.DBus Bus Name
513
514 2006-08-17  Alp Toker  <alp@atoker.com>
515
516         * doc/dbus-specification.xml: Fix some minor typos.
517
518 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
519
520         * configure.in: use $with_init_scripts instead of $operating_system
521         to determine where to store the pid since the init scripts manipulate 
522         the pid file (patch from Marcelo Ricardo Leitner 
523         <marcelo dot leitner at terra dot com dot br>.  
524
525 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
526
527         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
528         static DBusList *uninitialized_condvar_list to support new late 
529         initialization threading model.  In this model threads can be initialized
530         even after the D-Bus API has been used but still needs to be initialized 
531         before the second thread has been started.  Mutexes and condvar addresses
532         are stored in the two static lists and are replaced with actuall locks
533         when threads are initalized.
534         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
535         the location into the static list
536         (_dbus_mutex_free_at_location): New method for removing a mutex location 
537         from the static list and freeing the mutex
538         (_dbus_condvar_new_at_location): New method for creating a conditional 
539         variable and placing the location into the static list
540         (_dbus_condvar_free_at_location): New method for removing a conditional
541         variable location from the static list and freeing the conditional variable 
542         (init_uninitialized_locks): Atomic method which goes through the static 
543         lists of mutex and condvar location and updates them with actuall locks
544         (init_global_locks): changed to init_locks
545         
546         * dbus/dbus-connection.c:
547         (_dbus_connection_test_get_locks): New method for tests to check connections
548         (_dbus_connection_new_for_transport): Use the new at_location mutex and
549         condvar API
550         (dbus_connection_allocate_data_slot): Pass in the global lock address
551         to _dbus_data_slot_allocator_alloc
552
553         * dbus/dbus-dataslot.c:
554         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
555         instead of the mutex itself
556
557         * dbus/dbus-message.c:
558         (dbus_message_allocate_data_slot): Pass in the global lock address
559         to _dbus_data_slot_allocator_alloc
560
561         * dbus/dbus-pending-call.c:
562         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
563         to _dbus_data_slot_allocator_alloc
564
565         * dbus/dbus-server.c:
566         (_dbus_server_init_base): Use the new at_location mutex API
567         (dbus_server_allocate_data_slot): Pass in the global lock address
568         to _dbus_data_slot_allocator_alloc
569
570         * test/name-test/test-threads-init.c: New test case for late thread
571         initialization
572
573 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
574
575         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
576         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
577         causes compile problems when asserts are turned off
578         Keeping _dbus_warn for printing out the message so even if
579         asserts are turned off the user gets the messages that something is 
580         wrong 
581
582 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
583
584         Patches by Kjartan Maraas <kmaraas at gnome dot org>
585
586         * bus/services.c (bus_service_list_queued_owners):
587         Add a pointer cast to fix compiler warning
588
589         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
590         return a NULL instead of FALSE since the return type
591         is not expecting a boolean
592
593         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
594         Remove unused variable
595
596         * dbus/dbus-marshal-recursive-util.c (node_new):
597         return a NULL instead of FALSE since the return type
598         is not expecting a boolean
599
600         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
601         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
602         because we are expecting a pointer not a boolean
603
604         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
605         add void as the parameter so some compilers
606         don't complain
607
608         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
609           _dbus_transport_new_for_tcp_socket):
610         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
611         because we are expecting a pointer not a boolean
612
613         * test/shell-test.c (test_command_line):
614         cast the second argument to _dbus_list_append to avoid compiler
615         warnings
616
617         * test/test-names.c (main): remove unused variable
618
619         * test/test-service.c (check_hello_from_self_reply):
620         Initialize echo_message and echo_reply to NULL
621         
622         * test/test-shell-service.c (handle_echo):
623         Remove unused variable and cast the third parameter passed to
624         dbus_connection_get_object_path_data to avoid compiler warrnings
625
626         * test/name-test/test-names.c (clear_message_queue):
627         Remove unused function
628
629         * test/name-test/test-pending-call-dispatch.c:
630         Fix format string in printf
631
632
633 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
634
635         * dbus/dbus-bus.c:
636         * test/name-test/test-names.c:
637         Remove test method dbus_bus_connection_get_unique_name because 
638         we already have public method dbus_bus_get_unique_name that 
639         does the exact same thing
640
641 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
642
643         * dbus/dbus-signature.c:
644         fix typos in Julio's previous patch which cause make check to fail
645
646 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
647
648         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
649         In any case it was wrong since this is a test checking to see if
650         address parsing is correct.  There was no need to get the true
651         tmp directory.  
652
653 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
654
655         * dbus/dbus-macros.h: Revert the addition of stddef.h
656         as we should not be adding it to library headers 
657
658 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
659
660         * dbus/dbus-signature.c:
661         Fix the unit tests so that they work if assertions are not enabled.
662         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
663
664 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
665
666         * tools/run-with-tmp-session-bus.sh:
667         * test/name-test/run-test.sh:
668         Remove bashisms (patch from Julio M. Merino Vidal
669         <jmmv at NetBSD dot org>)
670
671 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
672
673         * configure.in: add a version (>= 2.6.0) check for libxml2
674
675 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
676
677         * configure.in: make sure the compiler supports -Wfloat-equal
678         
679         * bus/dir-watch-dnotify.c: move functional code after 
680         variable declerations (C99 fix)  (patches from Jens Granseuer
681         <jensgr at gmx dot net>
682
683 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
684
685         * dbus/dbus-macros.h:
686         add #include <stddef.h> so that Sun compilers don't complain about
687         the defining NULL
688
689 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
690
691         * dbus/dbus-sysdeps.c:
692         * dbus/dbus-address.c:
693         * bus/activation.c:
694         * test/shell-test.c:
695         don't hardcode tmp directory (patch from Dave Meikle 
696         <dmk at davemeikle dot co dot uk>)
697
698 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
699
700         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
701         Change an assert to a detailed warning and abort.  
702         When allocator->lock != mutex it indicates that the user has failed
703         to initalize threads before using the D-Bus library.  This warning
704         helps the user identify the issue and fix their app.
705
706 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
707
708         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
709         with cleanups of bugs found from Coverity reports:
710
711         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
712         close the file on error to avoid a leak
713
714         * bus/expirelist.c (bus_expire_list_test):
715         Check for NULL on dbus_new0
716
717         * bus/activation.c (update_directory):
718         remove dead code
719
720         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
721         Fix some leaks
722
723         * bus/bus.c (process_config_every_time):
724         Fixed a leak
725
726         * bus/desktop-file.c (parse_key_value):
727         Fixed leak
728
729         * bus/selinux.c (bus_selinux_id_table_insert):
730         Fixed leak
731
732 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
733
734         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
735         remove dead code
736
737 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
738
739         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
740         #!/bin/bash
741
742 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
743
744         * Doxyfile.in: fix the INPUT line so we can generate docs 
745         when sourcedir != builddir (patch from Cygwin Ports maintainer
746         <yselkowitz at users dot sourceforge dot net>
747
748 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
749
750         * dbus/dbus-sysdeps.h:
751         * dbus/dbus-sysdeps.c: 
752         * dbus/dbus-string.c: 
753         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
754         GLib's function which does the same thing
755
756         * configure.in:
757         * bus/Makefile.am:
758         * bus/dir-watch-default.c:
759         * bus/dir-watch-dnotify.c:
760         * bus/dir-watch-kqueue.c:
761         Add kqueue directory watching for freebsd and split the directory
762         watching code into seperate files per method/arch
763         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
764
765 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
766
767         * configure.in:
768         * tools/Makefile.am:
769         * tools/dbus-launch.c:
770         * bus/Makefile.am:
771         allow --with-dbus-daemondir switch to be used to make the
772         daemon install to a seperate bindir like /usr/libexec
773         (patch from Brian Cameron <brian dot cameron at sun dot com)
774
775 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
776
777         * bus/Makefile.am (install-data-hook): removed the slash after 
778         $(DESTDIR) so we don't get the double slash which does not work
779         in windows (patch from Andras Porjesz 
780         <andras dot porjesz at siemens dot com>)
781
782 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
783
784         * dbus/dbus-sysdeps.h:
785         * dbus/dbus-sysdeps.c: 
786           add _dbus_printf_length (patch from Peter Kümmel 
787           <syntheticpp at gmx dot net>)
788
789 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
790
791         * dbus/dbus-internals.c: unistd.h is not used 
792         (_dbus_verbose_real): only enable verbose printing 
793         if DBUS_VERBOSE environment var is set to '1'
794         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
795
796 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
797
798         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
799         so we still compile on older gcc (patch from Frederic Peters 
800         <fpeters at 0d dot be>
801
802 2006-08-04  Havoc Pennington  <hp@redhat.com>
803
804         * configure.in: add -Wdeclaration-after-statement
805
806         * dbus/dbus-connection.c: change all the pending call stuff to
807         reflect the fact that pending call operations use the connection
808         lock
809
810         * dbus/dbus-pending-call.c: add locking here
811
812         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
813         field const consistent with how message field is done
814
815 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
816
817         * s/D-BUS/D-Bus/g
818
819 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
820
821         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
822         <in7y118 at public.uni-hamburg dot de> - fix invalid
823         read/write reported by valgrind
824
825 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
826
827         * Released 0.91
828
829 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
830
831         * dbus/dbus-connection.c:
832         (_dbus_connection_attach_pending_call_unlocked):
833         (connection_timeout_and_complete_all_pending_calls_unlocked):
834         Make sure we set timeout_added on pending calls to FALSE when
835         we remove the timeout from the connection
836
837 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
838
839         * Removed some extra bindings stuff lingering around (thanks timo)
840         * dbus-pendingcall.c (_dbus_pending_call_new): 
841         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
842         when we tried to take a lock on an already locked connection
843
844 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
845
846         * Released 0.90
847
848 2006-07-17  Havoc Pennington  <hp@redhat.com>
849
850         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
851         ints, reported by Owen Taylor
852
853 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
854
855         * doc/TODO:
856         * dbus/dbus-bus.c:
857         * dbus-errors.c:
858         * dbus/dbus-marshal-validate.c:
859           Removed TODO items which were fixed or are no longer relevent
860
861 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
862
863         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
864         Remove stray files from the stripped bindings
865
866 2006-07-16  Havoc Pennington  <hp@redhat.com>
867
868         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
869         Improve the error message on reply timeout
870
871 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
872
873         * Remove all bindings
874
875 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
876
877         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
878         and set pending_reply out arg to NULL is connection is disconnected
879         (connection_timeout_and_complete_all_pending_calls_unlocked): New
880         static method for cleaning up pending calls on disconnect
881         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
882         calls queued timeouts on disconnect 
883
884          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
885         Remove 
886
887 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
888
889         * bus/activation.[ch] (bus_activation_list_services): new function to 
890         get the list of services that can be activated
891
892         * bus/dispatch.c: test coverage for the new bus method
893         ListActivatableNames
894
895         * bus/driver.c: new bus method ListActivatableNames to get the list of
896         services that can be activated
897
898         * doc/dbus-specification.xml: ListActivatableNames method documentation
899
900 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
901         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
902         source files
903
904 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
905         * dbus/dbus-message-factory.c:
906         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
907
908 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
909         * dbus/dbus-connection-internal.h:
910         * dbus/dbus-connection.c:
911         * file dbus/dbus-pending-call.c:
912         * dbus/dbus-pending-call.h:
913         Make DBusPendingCall an opaque type even to D-Bus internals
914
915 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
916
917         * dbus/dbus-connection.h: remove connection_disconnect and replace with
918         connection_close
919
920         * dbus/dbus-connection.c: include dbus-bus.h
921         (_dbus_connection_read_write_dispatch): make static
922
923 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
924
925         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
926         function
927         (dbus_connection_dispatch): On disconnect unref any shared connections
928
929         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
930         for cleaning up shared connections on disconnect
931         (internal_bus_get): get a hard refrence to shared connections when
932         they are created
933         
934         * doc/TODO: Remove items which are no longer relevent or have been fixed
935         Split 1.0 todo items with a 0.90 freeze todo list
936  
937 2006-06-14  Ross Burton  <ross@openedhand.com>
938
939         * glib/dbus-gobject.c:
940         Free a leaking GArray (surely not!) in dbus_g_method_return.
941
942 2006-06-14  Ross Burton  <ross@openedhand.com>
943
944         * tools/Makefile.am:
945         * tools/dbus-monitor.c:
946         Don't use the GLib bindings in dbus-monitor (patch from Ralf
947         Habacker).
948         
949 2006-06-14  Ross Burton  <ross@openedhand.com>
950
951         * tools/dbus-print-message.c:
952         Also print the object path when outputting signals or method calls.
953
954 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
955
956         * qt/src/Makefile.am: install the qdbus.h header.
957         This allows people to actually use the installed code.
958
959 2006-06-12  Ross Burton  <ross@openedhand.com>
960
961         * glib/dbus-gproxy.c:
962         Don't leak a GArray when firing signals (thank Rob Taylor for review).
963
964 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
965
966         * Released 0.62
967
968 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
969
970         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
971         break pedantic builds. Closes bug 6043 (patch approved by
972         Havoc back in February).
973
974 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
975
976         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
977         that took a QDBusMessage parameter.
978         * qt/src/qdbusbus.h: Add a default flag for RequestName.
979         * qt/tools/dbus.cpp: Don't use automatic call because we might
980         be calling an async method: request a reply.
981
982 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
983
984         * test/qt/*: Update the testcases, including testing the new
985         functionality of sending null QByteArray and QString over the
986         bus. Add new headertest test and restore the old
987         qdbusxmlparser test.
988
989 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
990
991         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
992         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
993
994         * qt/examples/Makefile.am:
995         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
996         form.
997
998         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
999         QByteArray() (nulls) over the bus.
1000         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1001         the one that has the signature suffix stripped.
1002         * qt/src/qdbusreply.h: Make some methods const.
1003
1004 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1005
1006         Patch from Timo Hoenig <thoenig@suse.de>.
1007
1008         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1009         required during build to EXTRA_DIST.
1010         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1011         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1012         * configure.in: Fix "make dist", take care that the Makefile for
1013         qt/dbus is being generated.
1014
1015 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1016
1017         * bus/bus.c: Fix eavesdropping on method calls
1018
1019 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1020
1021         * configure.in:
1022         * dbus/dbus-userdb-util.c:
1023         Add Solaris console owner patch from Artem Kachitchkine
1024
1025 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1026
1027         * qt/Makfile.am:
1028         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1029         reorganisation. Thanks to Timo Hoenig for pointing this out.
1030
1031 2006-06-06  Robert McQueen  <robot101@debian.org>
1032
1033         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1034           call to dbus_g_type_get_struct.
1035
1036 2006-06-06  Robert McQueen  <robot101@debian.org>
1037
1038         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1039           pointers were put into a GPtrArray-based specialised collection, and
1040           then freed along with the array. GValues which you add into
1041           collections or maps which have the NOCOPY flag set are assumed to not
1042           belong to the caller, so rather than the existing pointer-stealing
1043           semantics, they are copied instead. Given that the main consumers of
1044           this abstraction are the bindings themselves, I don't think this is
1045           too bad, but others should watch their choice of take vs set_static.
1046
1047 2006-06-06  Robert McQueen  <robot101@debian.org>
1048
1049         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1050           of g_slist_prepend not being used. Fixed copying of slist-based
1051           specialised collections, then wrote a test case and found that it was
1052           all broken. Went on to fix iterating and appending too. Good thing
1053           nobody uses this code yet.
1054
1055 2006-06-06  Robert McQueen  <robot101@debian.org>
1056
1057         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1058           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1059           are discarded without unsetting, so it makes no difference whether
1060           we take or set_static). Remove cases for G_TYPE_POINTER because
1061           there really is nothing useful we can do with them in our
1062           specialised types - we *need* boxed copy/free functions at the very
1063           least.
1064
1065 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1066
1067         * qt/dbus: Add directory. I had forgotten to add this
1068         yesterday after the move...
1069
1070         * qt/examples/Makefile.am:
1071         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1072
1073         * qt/tools/Makefile.am:
1074         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1075         Added feature to get and set properties.
1076         Added validation of service, object path and interface names.
1077
1078         * qt/tools/dbusidl2cpp.cpp: Two new features:
1079         1) Allow specifying both the header and the source file names,
1080         by separating them with a colon.
1081         2) Don't write an interface output if the -p switch wasn't
1082         given, but the -a was.
1083
1084         * qt/src/*: Fix usage of Iterators and ConstIterators.
1085         Fix shadowing of variables by other variables (-Wshadow).
1086         Fix keyword-cleanliness in headers.
1087         Fix ASCII-cast (QLatin1String, QLatin1Char).
1088         Fix validation of member names.
1089         Add extra checking of introspection data during XML parsing.
1090         Various bug fixes.
1091
1092 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1093
1094         * dbus/Makefile.am:
1095         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1096         qt/dbus/qdbus.h now.
1097
1098 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1099
1100         * configure.in: Make --disable-qt actually do
1101           something. Patch inspired by Zack Rusin.
1102
1103 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1104
1105         * qt/: Update to Subversion r548032.
1106         This includes a big reorganisation of the files inside the
1107         subdir.
1108
1109 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1110
1111         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1112         clear:  
1113         "Failed to connect to socket <host>:<port> <error>" instead of
1114         "Failed to connect to socket <host>: <error>:<port>"
1115
1116         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1117         for a tcp transport. 
1118
1119 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1120
1121         * qt/*: Update the QtDBus bindings up to revision 546310 in
1122         Subversion.
1123         This adds the dbuscpp2xml tool, that parses a C++ header and
1124         outputs a D-BUS Introspection XML.
1125
1126 2006-05-21  Havoc Pennington  <hp@redhat.com>
1127
1128         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1129         is not NULL when it shouldn't be. Also a couple of possible fixes
1130         for #4637 though I don't understand why the bug happens, to be
1131         honest... also the object constructor has an assert name != NULL
1132         and the name is only currently NULL for peer-to-peer proxies that 
1133         I don't think anyone uses? So it should be asserting.
1134         Anyway, for now at least see if we get an earlier assertion failure.
1135
1136         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1137         apparently broken code to be sure the tests fail and someone 
1138         will fix them...
1139
1140 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1141
1142         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1143         and arrays when they had a single element: has_next returns
1144         false, even before you read the element. So, instead, check
1145         the array length.
1146
1147 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1148
1149         * qt/qdbusmessage.cpp:
1150         * qt/qdbustypehelper_p.h:
1151         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1152         the list is a const-reference
1153
1154 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1155
1156         * Adding old doc patch that never got applied
1157         
1158         * dbus/bus.c (dbus_bus_add_match): Add documentation
1159
1160         * doc/dbus-specification.xml: Add documentation for the match rules
1161           and the AddMatch and RemoveMatch methods
1162
1163 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1164
1165         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1166         call (r535506)
1167
1168         * qt/dbusidl2cpp.cpp:
1169         * qt/qdbusabstractadaptor.cpp:
1170         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1171         sibling of the QDBusAbstractAdaptor objects instead of the
1172         parent. (r535848)
1173
1174         * qt/dbusidl2cpp.cpp:
1175         * qt/qdbusabstractinterface.cpp:
1176         * qt/qdbusabstractinterface.h:
1177         * qt/qdbusabstractinterface_p.h:
1178         * qt/qdbusinterface.cpp: Make properties in interfaces
1179         actually work. The code that was generated would not compile,
1180         due to moc calls to functions that did not exist. They now
1181         shall. (r536571)
1182
1183 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1184
1185         * Makefile.am:
1186         * configure.in:
1187         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1188         Thanks to Brad Hards for providing the patch
1189
1190 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1191
1192         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1193         call. (r535506)
1194
1195 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1196
1197         * qt/examples/dbus.cpp: Enhance error messages and use
1198         QDBusInterfacePtr.
1199
1200 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1201
1202         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1203         and disable the copy operators. (r533772, r534746)
1204
1205         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1206
1207         * qt/qdbusabstractinterface.cpp:
1208         * qt/qdbusabstractinterface.h: Change the default call mode to
1209         not use the event loop. Add convenience call() methods that
1210         take a CallMode parameter. (r534042)
1211
1212         * qt/qdbusconnection.h: Change the default call mode to not
1213         use the event loop. (r534042)
1214
1215         * qt/qdbusinterface.cpp:
1216         * qt/qdbusinterface.h: Add a method to tell us if the
1217         interface is valid (since we don't return a null pointer
1218         anymore) (r534099)
1219
1220         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1221         (r534101)
1222
1223         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1224         function in two so taht we get the chance to introspect
1225         without having a QDBusMessage (r534102)
1226
1227         * qt/qdbusbus.h:
1228         * qt/qdbusconnection.cpp:
1229         * qt/qdbusconnection_p.h:
1230         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1231         avoid a round-trip to the server when attempting to introspect
1232         one of our own objects. Also make sure the filter functions
1233         match the empty interface as well. (r534108)
1234         Don't keep the connection names. Instead, trust the unique
1235         connection name (r534111)
1236         Remove event loop usage (r534112)
1237
1238 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1239
1240         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1241         Brad Hards.
1242
1243 2006-04-28  Robert McQueen  <robot101@debian.org>
1244
1245         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1246         any order, making it easier for people who inherit from this
1247         object.
1248
1249 2006-04-28  Robert McQueen  <robot101@debian.org>
1250
1251         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1252         of memory from within pointer arrays and lists. Fixes bug #6300.
1253
1254 2006-04-28  Robert McQueen  <robot101@debian.org>
1255
1256         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1257         generating struct signatures. Fixes bug #6083.
1258
1259 2006-04-28  Robert McQueen  <robot101@debian.org>
1260
1261         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1262         to qdbusconnection_p.moc.
1263
1264 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1265
1266         * README, INSTALL: Doc fixes
1267         Patch from Brad Hards <bradh at frogmouth.net>
1268
1269 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1270
1271         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1272         the dynamic meta object. No need to guess which interface to
1273         call.
1274
1275 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1276
1277         * qt/qdbusconnection_p.h:
1278         * qt/qdbusmetaobject.cpp:
1279         * qt/qdbusmetaobject_p.h:
1280         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1281         for the dynamic meta object. No need to guess which
1282         interface to call.
1283         * qt/qdbusabstractinterface_p.h:
1284         * qt/qdbusconnection.cpp:
1285         * qt/qdbusintegrator.cpp:
1286         * qt/qdbusinterface.cpp:
1287         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1288         Add a QDBusRef that looks and behaves like DCOPRef.
1289
1290 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1291
1292         * dbus/dbus-connection.c: Interfaces are optional in method
1293         calls, so don't give up if the interface parameter is NULL.
1294         Patch reviewed by Havoc Pennington.
1295
1296 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1297
1298         * qt/qdbusreply.h: Add default constructor and operator=
1299           (r532625)
1300         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1301           in public headers (r532952)
1302         * qt/qdbusabstractinterface.cpp:
1303         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1304           make it the default (r532951)
1305
1306 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1307
1308         * dbus/dbus-connection.c: Fix asserts
1309         Patch from Tim Moloney <t.moloney at verizon.net>
1310
1311 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1312
1313         * mono/Connection.cs, mono/Message.cs: Check Target type
1314         Patch from Aaron Bockover (abockover at novell.com)
1315
1316 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1317
1318         * INSTALL: fine-tune the requirements for the Qt4 binding.
1319
1320 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1321
1322         * tools/dbus-print-message.c: Added support for printing of all 
1323           remaining data types. Fixed logic for indentation of compound
1324           data types.
1325         
1326 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1327
1328         * INSTALL: fill out content of file providing DBus specific
1329           build installations, followed by generic Auto* INSTALL file
1330           content
1331         
1332 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1333
1334         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1335           Patch by Stefan Eilers. (r529537)
1336
1337 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1338
1339         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1340           contents (r528208)
1341
1342 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1343
1344         * qt/Makefile.am: fix the dependency for
1345           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1346           not in qdbusconnection.cpp.
1347           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1348           spotting this.
1349
1350 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1351
1352         * qt/examples/listnames.cpp:
1353         * qt/examples/Makefile.am: Three ways to list the names on the
1354           bus.
1355
1356 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1357
1358         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1359           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1360
1361 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1362
1363         Merge from Subversion:
1364         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1365           something that exists (r526315)
1366         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1367           slots/signals (r526316)
1368         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1369           also return an unknown-method error if the parameters don't
1370           match for org.freedesktop.DBus.Properties. (r526842)
1371         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1372         * qt/qdbusintegrator.cpp: Restore the proper order of
1373           delivery: don't make method returns be delivered on priority
1374           (r528150)
1375
1376 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1377
1378         * configure.in qt/Makefile.am: add qt/examples
1379         * qt/examples: Add QtDBus example programs:
1380           - hello: Hello, World
1381           - ping: Simple method-calling program
1382           - pong: Simple object-exporting program (not using adaptors)
1383           - complexping: Interactive method-calling program 
1384                 (also gets and sets properties).
1385           - complexpong: Sample program exporting methods, signals and
1386                 properties, using adaptors.
1387           - dbus: Simple implementation of a generic method-calling
1388                 program, similar to 'dbus-send', but with semantics
1389                 similar to 'dcop'.
1390           - chat: Simplistic chat program, implemented using signals
1391                 and the system bus. Looks like IRC.
1392
1393 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1394
1395         * configure.in: Detect QtGui (necessary for one of the
1396           example programs). Note: this increases the minimum required
1397           version of Qt to 4.1.3.
1398
1399 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1400
1401         * test/qt/*: Sync with KDE Subversion revision 523647.
1402         Update the testcases to the new API. Remove testcases for
1403         classes that are no longer public or have been removed.
1404
1405 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1406
1407         * qt/*: 
1408         * dbus/qdbus.h: Sync with KDE Subversion revision
1409         523647. Hopefully, this will be the last of the
1410         source-incompatible changes. Documentation has been improved;
1411         support for QList<basic-types> has been added; QDBusObject is
1412         gone; QDBus(Abstract)Interface is now a QObject with
1413         auto-generated meta-object; QDBusIntrospection is marked
1414         private, since QMetaObject can be used now; lots of bugfixes.
1415
1416 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1417
1418         Patch from Milosz Derezynski <internalerror at gmail.com>
1419         
1420         * configure.in:
1421         Output the service directory in the configure summary
1422
1423         * dbus-1.pc.in:
1424         Add session_bus_services_dir
1425
1426 2006-03-10  Ross Burton  <ross@openedhand.com>
1427
1428         * tools/dbus-print-message.c:
1429         Add support for object paths and signatures.
1430
1431 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1432
1433         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1434         config reload.
1435         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1436         information caches
1437         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1438         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1439         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1440         * dbus/dbus-userdb.h: Add function to flush all user/group information
1441         caches.
1442
1443 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1444
1445         * qt/dbusidl2cpp.cpp:
1446         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1447         for dcopidl2cpp, found in the KDE installations (or the more
1448         modern kalyptus): generate Qt4 C++ code for the input XML
1449         introspection. Currently no IDL parsing.
1450
1451 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1452
1453         * test/qt/*: Update the self-tests.
1454
1455 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1456
1457         * qt/*: 
1458         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1459         represents the first feature-complete version of the Qt4
1460         bindings since I took ove maintainership.
1461
1462 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1463
1464         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1465         dir. This is C++, so we can't use the DBus ones.
1466
1467 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1468
1469         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1470         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1471
1472 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1473
1474         * dbus/dbus-connection.c: 
1475         (_dbus_connection_block_pending_call):
1476         Check to see if our data has already been read off the connection
1477         by another blocking pending call before we block in poll.
1478         (check_for_reply_and_update_dispatch_unlocked):
1479         Code taken from _dbus_connection_block_pending_call - checks for
1480         an already read reply and updates the dispatch if there is one.
1481
1482         * test/name-test/test-pending-call-dispatch.c:
1483         New test for making sure we don't get stuck polling a 
1484         dbus connection which has no data on the socket when
1485         blocking out of order on two or more pending calls.
1486
1487 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1488
1489         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1490         make/automake don't detect that we're talking about the same
1491         .lo file if I specify the full path to the source files.
1492
1493 2006-02-26  Havoc Pennington  <hp@redhat.com>
1494
1495         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1496
1497         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1498         session bus variable is unset, suggest "man dbus-launch" and "man
1499         dbus-daemon" to figure out how to fix the problem
1500
1501 2006-02-25  Havoc Pennington  <hp@redhat.com>
1502
1503         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1504         should make this thing use the new glib options parser
1505
1506 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1507
1508         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1509         .lo files taking moc sources.
1510
1511 2006-02-25  Havoc Pennington  <hp@redhat.com>
1512
1513         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1514         and install it as a public header
1515
1516 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1517
1518         * Released 0.61
1519
1520 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1521         
1522         * proxies.py: Fix the callchain
1523
1524 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1525         
1526         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1527
1528         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1529         dbus/dbus-sysdeps.c
1530
1531         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1532         call _dbus_group_info_free_allocated which causes infinite loop,
1533         correctly call _dbus_group_info_free
1534
1535 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1536
1537         * qt/qdbusinterface_p.h:
1538         * qt/qdbusinterface.cpp: Use the standard
1539         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1540         calls instead of creating one for us.
1541
1542         * qt/qdbusconnection_p.h:
1543         * qt/qdbusintegrator.cpp: Remove debugging code.
1544
1545         * qt/qdbusintegrator.cpp:
1546         * qt/qdbusmessage.cpp:
1547         * qt/qdbusmessage_p.h:
1548         * qt/qdbusmessage.h: Change the behaviour of automatic
1549         reply-sending: now a reply is always sent, unless the caller
1550         didn't request one or if the user slot has already sent one.
1551
1552 2006-02-16  Robert McQueen  <robot101@debian.org>
1553
1554         * configure.in: Patch from Debian packages by Sjoerd Simons
1555         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1556         arguments so it's possible to build both bindings in the
1557         same tree.
1558
1559         * qt/Makefile.am: Fix truncated value so that make dist works.
1560
1561 2006-02-16  Robert McQueen  <robot101@debian.org>
1562
1563         * acinclude.m4, configure.in: Patch from Brad Hards
1564         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1565         improving quoting, re-ordering a few checks, and a few other
1566         aesthetic tidy-ups.
1567
1568 2006-02-16  Robert McQueen  <robot101@debian.org>
1569
1570         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1571         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1572         assertion that the next element to read from the iter is fixed in
1573         size. This is not the case when you are at the end of the iter,
1574         because the next element type is INVALID.
1575
1576         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1577         a bogus assert which means that you may not initialise a 0-length
1578         string unless you provide a non-NULL pointer. This prevented
1579         you from marshalling messages containing zero-length arrays in
1580         some cases.
1581
1582         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1583         from Rob to correct bogus asserts when trying to demarshal an
1584         array and get_fixed_array got you 0 elements. Append nothing to
1585         the GArray in this case.
1586
1587         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1588         an empty array via the glib bindings. Without all of the above
1589         patches, this new test fails.
1590
1591 2006-02-16  Robert McQueen  <robot101@debian.org>
1592
1593         * glib/dbus-gmain.c: Make the previous commit compile.
1594
1595         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1596         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1597         specify sender_keyword="foo", path_keyword="bar" when adding
1598         a signal listener, so that you can bind to signals generically
1599         but still do something useful in your callback.
1600
1601         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1602         chars so that they're not cast to chars and made negative. Thanks
1603         to Jakub Stachowski for reporting this and testing the fix.
1604
1605 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1606
1607         * dbus/dbus-glib.h:
1608         * glib/dbus-gmain.h:
1609         (dbus_g_connection_open): new method for openning
1610         a connection to an arbitrary address in the glib bindings
1611
1612         * ChangeLog: checkin last entry which doesn't seem to be commited
1613
1614 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1615
1616         * tools/dbus-launch.c: Fixed sh syntax output
1617
1618 2006-02-13  Robert McQueen  <robot101@debian.org>
1619
1620         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1621         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1622         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1623         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1624         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1625         missing piece of the glib bindings jigsaw puzzle. This modifies
1626         the existing specialised types to have N type parameters (rather
1627         than the current 1 or 2 for arrays and dictionaries respectively).
1628         You can then use this to get a glib type to represent any arbitrary
1629         D-Bus struct type using dbus_g_type_get_struct. The only
1630         implementation of these types is with GValueArrays as before,
1631         but it's now possible to store these in arrays, emit them in
1632         signals, etc.
1633
1634 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1635
1636         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1637         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1638         <thiago.macieira at trolltech.com>
1639
1640 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1641
1642         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1643         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1644
1645 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1646
1647         * bus/connection.c (bus_connections_expect_reply): Make
1648         pending reply limit not common to all connections (Bug #5416)
1649         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1650
1651 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1652
1653         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1654
1655 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1656
1657         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1658         patch from Doug Goldstein <cardoe at gentoo.org>
1659
1660 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1661
1662         * mono/Arguments.cs: Fix a magic number in the mono bindings
1663         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1664
1665 2006-01-27  Robert McQueen  <robot101@debian.org>
1666
1667         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1668         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1669         when generating the client-side methods, instead of overloading
1670         CSymbol which broke everything horribly. My apologies.
1671
1672 2006-01-27  Robert McQueen  <robot101@debian.org>
1673
1674         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1675         by me and Rob Taylor to add a simple_free function to D-Bus map
1676         and collection types, which allows those types which can be freed
1677         with a GDestroyNotify (such as GHashTables and GArrays, but not
1678         GPtrArrays) to be stored as the values in hashtables.
1679
1680         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1681         Patch by Rob Taylor to add nested dicts to the glib tests to check
1682         the above code works, and appears not to leak when called repeatedly.
1683
1684 2006-01-27  Robert McQueen  <robot101@debian.org>
1685
1686         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1687         to free a D-Bus allocated string with dbus_free () instead of
1688         g_free ().
1689
1690 2006-01-27  Iain Holmes  <iain@openedhand.com>
1691
1692         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1693         method from being called multiple times.
1694
1695 2006-01-19  Robert McQueen  <robot101@debian.org>
1696
1697         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1698         <rob.taylor@collabora.co.uk> to add support for generating bindings
1699         to arrays that are represented as GPtrArrays rather than GArrays (ie
1700         size-variable things, such as strings, objects, structs, etc).
1701
1702 2006-01-05  Robert McQueen  <robot101@debian.org>
1703
1704         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1705         <ricardo.kekki@movial.fi> to make it possible to inherit from
1706         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1707         a private part, and moving the setting of the DBusGProxyManager into a
1708         connection property, allowing proper GObject construction.
1709
1710 2006-01-05  Robert McQueen  <robot101@debian.org>
1711
1712         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1713         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1714         annotations when generating glib client bindings.
1715
1716 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1717
1718         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1719
1720         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1721
1722 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1723
1724         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1725
1726 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1727
1728         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1729
1730 2005-12-19  Ross Burton  <ross@openedhand.com>
1731
1732         * doc/dbus-tutorial.xml:
1733         Document the Glib client-side bindings, and list all possible annotations.
1734
1735 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1736
1737         * dbus/bus.c (dbus_bus_release_name): Add documentation
1738
1739 2005-12-06  Robert McQueen  <robot101@debian.org>
1740
1741         * python/service.py: s/sucessful/successful/ so we're allocating to
1742         and reading from the same variable. Oops.
1743
1744 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1745
1746         * Released 0.60
1747
1748 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1749
1750         * test/qt/Makefile.am: build from srcdir
1751
1752         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1753         Note - this code is wrong and needs to be fixed by the Qt binding
1754         developers.  The flags should be treated as bitfields and not enums.
1755
1756         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1757
1758 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1759
1760         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1761           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1762           in production code
1763
1764 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1765
1766         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1767         method for getting messages off the bus in the absence of a
1768         mainloop.  This method is much like 
1769         dbus_connection_read_write_dispatch except it does not dispatch
1770         the messages to a registered filter function.  Instead it
1771         allows a developer to process messages by directly popping
1772         them off the bus.
1773
1774 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1775
1776         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1777         the parser to continue instead of returning error
1778         (bus_desktop_file_load): Do not free parser data when
1779         parse_section_start or parse_key_value fails because it was 
1780         already freed by parser_free (patch from Carlos Garcia Campos  
1781         <carlosgc at gnome.org>)
1782
1783 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1784
1785         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1786         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1787         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1788         test/test-segfault.c, test/test-utils.c,
1789         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1790         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1791         Various cleanup of dead code and compiler warnings (patch from
1792         Kjartan Maraas <kmaraas at gnome.org>) 
1793
1794 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1795
1796         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1797         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1798
1799 2005-11-27  Robert McQueen  <robot101@debian.org>
1800
1801         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1802         part of the preceding one. Oops. Merge patch by Johan Hedberg
1803         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1804         on big-endian platforms.
1805
1806         * test/python/test-client.py: Add some 16-bit integers to the test
1807         values.
1808
1809 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1810
1811         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1812         method return message for property getters
1813
1814 2005-11-27  Robert McQueen  <robot101@debian.org>
1815
1816         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1817         with type v of an instance of dbus.Variant(foo, type='x') caused
1818         it to be boxed twice before sending over the bus.
1819
1820         * python/dbus_bindings.pyx, python/service.py,
1821         test/python/test-client.py: Update the constants for the new
1822         request_name flags, and update comments/test cases now that queueing
1823         is the default action.
1824
1825 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1826
1827         * configure.in:
1828         - Change version to 0.60 for impending release
1829         - upped the sonames because of ABI and API breakage
1830
1831 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1832
1833         * configure.in: Add test/name-test/Makefile to the generated
1834         Makefile list
1835
1836         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1837         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1838         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1839         not to queue an ower if it can't be the primary owner
1840
1841         * bus/bus.h: Add new internal BusOwner struct
1842
1843         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1844         to bus_registry_ensure and don't set the prohibit_replacement flag
1845         since they are now set per BusOwner and not per name.
1846         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1847         that returns the list of connections in a name's connection queue
1848         
1849         * bus/services.c (struct BusService): remove prohibit_replacement field
1850         (struct BusOwner): new struct for keeping track of queued connections
1851         and their associated flags for the queue
1852         (struct BusRegistry): add a BusOwner memory pool
1853         (bus_registry_new): initialize the BusOwner memory pool
1854         (bus_registry_unref): free the BusOwner memory pool
1855         (_bus_service_find_owner_link): new internal method for
1856         searching the queue for a specific connection
1857         (bus_owner_set_flags): new method for adding setting the flags on a
1858         bus owner
1859         (bus_owner_new): new method that creates a BusOwner object from the
1860         pool and sets its flags
1861         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1862         (bus_registry_ensure): Add the flags parameter
1863         (bus_registry_acquire_service): Switch from using raw connections to
1864         using the BusOwner struct
1865         Add new state machine for dealing with the new set of flags
1866         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1867         cancel_ownership, free_ownership_cancel_data, 
1868         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1869         restore_ownership, free_ownership_restore_data, 
1870         add_restore_ownership_to_transaction): Switch to using BusOwner 
1871         instead of raw connections
1872         (bus_service_add_owner): Add flags parameter
1873         Switch to using BusOwner instead of raw connections
1874         Add state machine for dealing with the new set of flags
1875         (bus_service_swap_owner): Swaps the first and second owners in the
1876         queue.  Used to make sure proper signals are sent when a service looses 
1877         or gains primary ownership.  We never insert an owner at the top of the
1878         queue.  Instead we insert it in the second position and then swap.
1879         (bus_service_remove_owner): Remove the owner from the queue sending
1880         out the NameLost and NameOwnerChanged signals if the we were the 
1881         primary owner
1882         (bus_service_get_primary_owners_connection): New method that extracts
1883         the connection from the primary owner
1884         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1885         connection
1886         (bus_service_get_allow_replacement): Changed from the old 
1887         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1888         primary owner and returns if it can be replaced or not
1889         (bus_service_set_prohibit_replacement): removed
1890         (bus_service_has_owner): returns TRUE if and owner with
1891         the specified connection exists in the queue
1892         
1893         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1894         method that only compiles if tests are enabled.  Allows us to get the 
1895         unique name of a connection so we can check it against the queue when
1896         doing regression tests
1897
1898         * bus/activation.c (bus_activation_send_pending_auto_activate),
1899         bus/dispatch.c (bus_dispatch),  
1900         bus/driver.c (bus_driver_handle_get_service_owner, 
1901         bus_driver_handle_get_connection_unix_user, 
1902         bus_driver_handle_get_connection_unix_process_id,
1903         bus_driver_handle_get_connection_selinux_security_context),
1904         bus/signals.c (connection_is_primary_owner): 
1905         use bus_service_get_primary_owners_connection instead of
1906         bus_service_get_primary_owner
1907
1908         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1909         _dbus_listen_unix_socket): Calculate the length of the socket
1910         path and use that instead of using a fixed length which was
1911         causing socket names to contain many trailing Nul bytes.
1912
1913         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1914         (dbus_g_method_get_sender): New method for extracting the sender 
1915         from a DBusGMethodInvocation
1916         (dbus_g_method_return_get_reply): changed name to 
1917         dbus_g_method_get_reply
1918         (dbus_g_method_return_send_reply): changed name to
1919         dbus_g_method_send reply
1920
1921         * doc/dbus-specification.xml: New docs that describe how the new
1922         queueing system works and talks about the changes to the how
1923         we specify socket names
1924
1925         * glib/examples/example-service.c, 
1926         glib/examples/example-signal-emitter.c,
1927         glib/examples/statemachine/statemachine-server.c:
1928         Changed the RequestName flags to the new system
1929
1930         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1931         regression test suite for testing various states of the new
1932         queueing system
1933         
1934 2005-11-15  Robert McQueen  <robot101@debian.org>
1935
1936         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1937         Taylor to add two methods, dbus_g_method_return_get_reply and
1938         dbus_g_method_return_send_reply, to allow you to get the reply
1939         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1940         and send it. The GLib bindings can't marshal a return value of
1941         something like a(s) if the array is empty - ultimately they should be
1942         made to heed the signature of the out arguments as the Python bindings
1943         now can, but this is a workable interim solution which might have
1944         other applications.
1945
1946 2005-11-15  Robert McQueen  <robot101@debian.org>
1947
1948         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1949         method to org.freedesktop.DBus to release a bus name or give up
1950         waiting in the queue for it.
1951
1952         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1953         dbus_bus_release_name method to send the ReleaseName method calls.
1954         Add constants for the return values to dbus/dbus-shared.h.
1955
1956         * doc/dbus-specification.xml: Document the new ReleaseName method
1957         in the specification.
1958
1959         * python/dbus_bindings.pyx: Add a low-level python binding for the
1960         release name method.
1961
1962         * python/exceptions.py, python/service.py: Make freeing BusName
1963         objects release the name. Add a NameExistsException, and fix a
1964         bug with creating UnknownMethodException.
1965
1966         * test/python/test-client.py: Add tests for freeing BusName
1967         objects causing names to be released.
1968
1969 2005-11-14  Robert McQueen  <robot101@debian.org>
1970
1971         * python/service.py: Include the traceback in the error reply when we
1972         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1973
1974 2005-11-14  David Zeuthen  <davidz@redhat.com>
1975
1976         Patch from Timo Hoenig <thoenig@suse.de>.
1977
1978         * bus/bus.c: I've recently investigated why the automatic reload
1979         of configuration files does not work as expected.
1980
1981         Currently, reloading configuration files does only work when
1982         running dbus-daemon with --nodaemon.  If we are running as daemon
1983         we're hitting a dnotify bug once we fork the process.
1984
1985         We're initializing the dnotify fds before calling fork().  Once
1986         the child process forked it does still have the fds (and they
1987         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1988         getting SIGIO as changes are made to the configuration files.
1989
1990         The attached patch moves the initialization of the dnotify fds to
1991         process_config_postinit().  This is safe for all current code
1992         paths and solves the dnotify disfunction.  If we're running
1993         dbus-daemon as daemon the fds for dnotify are now being
1994         initialized after fork() for the child process.
1995
1996         * configure.in: The current configure.in check for dnotify probes
1997         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1998         match for 'xlinux', too. Additionally I have adapted the configure
1999         option's style to match with the others.
2000
2001 2005-11-14  Robert McQueen  <robot101@debian.org>
2002
2003         * python/decorators.py, python/service.py: Add a new argument to the
2004         dbus.service.method decorator called sender_keyword, which if set,
2005         specifies the name of an argument which will be provided the bus
2006         name of the method caller.
2007
2008         * test/python/test-client.py, test/python/test-service.py: Add a
2009         method and test to check the sender_keyword functionality.
2010
2011 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2012
2013         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2014         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2015         Simons <sjoerd at luon.net>)
2016
2017         * AUTHORS: Add Robert McQueen for his work on the Python
2018         Bindings and other parts of D-Bus
2019
2020 2005-11-07  Robert McQueen  <robot101@debian.org>
2021
2022         * python/decorators.py: Change emit_signal function to use the
2023         signature annotation of the signal when marhsalling the arguments from
2024         the service. Fix a bug where the code checking signature length
2025         against argument length referenced the wrong variable.
2026
2027         * python/introspect_parser.py: Avoid adding the type signature of
2028         signal arguments to any methods which occur after them in the
2029         introspection data (!) by making the parser a little more careful
2030         about its current state.
2031
2032         * python/service.py: Remove debug prints from last commit (again :D).
2033
2034         * test/python/test-client.py, test/python/test-service.py: Add test
2035         signals with signature decorators to test the strict marshalling code
2036         gives errors at the right time. Could do with checking the signals
2037         actually get emitted too, given that the test does nothing with
2038         signals at the moment...
2039
2040 2005-11-07  Robert McQueen  <robot101@debian.org>
2041
2042         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2043         instances to stop madness of creating new instances representing
2044         the same bus connection all the time, rendering any tracking of
2045         match rules and bus names quite meaningless. Caught a bug where
2046         the private argument to SessionBus() and friends was being passed
2047         in as use_default_mainloop by mistake. Still some problems with
2048         multiple dbus_binding.Connection instances representing the same
2049         low-level connection (eg when you use both SessionBus() and
2050         StarterBus() in same process), but it's a lot better now than it
2051         was.
2052
2053         * python/dbus_bindings.pyx: Add constants with the return values
2054         for bus_request_name().
2055
2056         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2057         and retrieve the same instances for the same name, so deletion can be
2058         done with refcounting. Also now throws some kind of error if you
2059         don't actually get the name you requested, unlike previously...
2060
2061         * test/python/test-client.py: Add tests for instance caching of buses
2062         and bus name objects.
2063
2064 2005-11-04  Robert McQueen  <robot101@debian.org>
2065
2066         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2067         marshalling of boolean values. Add some booleans to the values in
2068         the test client.
2069
2070         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2071         argument to the dbus.service.method decorator, which allows you to
2072         name arguments to take two callback functions for replying with
2073         return values or an exception.
2074
2075         * test/python/test-client.py, test/python/test-service.py: Add test
2076         case using asynchronous method reply functions, both return values and
2077         errors, and from within both the function itself and from a mainloop
2078         callback.
2079
2080         * python/decorators.py, python/service.py: Perform checking that the
2081         number of method/signal arguments matches the number of types in the
2082         signature at class loading time, not when you first introspect the
2083         class.
2084
2085         * python/service.py: Remove debug print left by the last commit.
2086
2087 2005-11-03  Robert McQueen  <robot101@debian.org>
2088
2089         * python/service.py: Heavy refactoring of method invocation, with
2090         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2091         in favour of a new _message_cb that uses seperate functions for
2092         looking up the method to call, marshalling the return values, and
2093         sending exceptions as errors, and is easier to follow as a
2094         consequence.  Fixes some corner cases about returning things that
2095         don't match your declared out_signature, allows exceptions to define
2096         _dbus_error_name and have it be sent over the bus as the error name,
2097         and paves the way for cool stuff like heeding the message no reply
2098         flag, asynchronous method implementations, informing the method of the
2099         sender, and including backtraces in the error messages.
2100
2101         * test/python/test-client.py: Catch and print exceptions thrown in the
2102         async callback tests, rather than passing them to the low-level
2103         bindings to be ignored in a noisy and frustrating manner.
2104
2105 2005-11-03  Robert McQueen  <robot101@debian.org>
2106
2107         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2108         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2109         tweak others to be consistent.
2110
2111         * test/python/test-client.py: Tweak output of testInheritance.
2112
2113 2005-10-29  Robert McQueen  <robot101@debian.org>
2114
2115         * python/service.py: Major changes to allow multiple inheritance
2116         from classes that define D-Bus interfaces:
2117         
2118          1. Create a new Interface class which is the parent class of
2119             Object, and make the ObjectType metaclass into InterfaceType.
2120         
2121          2. Patch written with Rob Taylor to replace use of method_vtable
2122             with code that walks the class's __MRO__ (method resolution order)
2123             to behave like Python does when invoking methods and allow
2124             overriding as you'd expect. Code is quite tricky because
2125             we have to find two methods, the one to invoke which has the
2126             right name and isn't decorated with the /wrong/ interface,
2127             and the one to pick up the signatures from which is decorated
2128             with the right interface.
2129         
2130             The same caveats apply as to normal multiple inheritance -
2131             this has undefined behaviour if you try and inherit from two
2132             classes that define a method with the same name but are
2133             decorated with different interfaces. You should decorate
2134             your overriding method with the interface you want.
2135         
2136          3. Replace grungy introspection XML generation code in the metaclass
2137             with dictionaries that cope correctly with multiple inheritance
2138             and the overriding of methods. This also uses the signature
2139             decorations to provide correct introspection data, including
2140             the debut appearance of the types of your return values. :D
2141
2142         * test/python/test-client.py, test/python/test-service.py: Add a test
2143         case to try invoking an method that overrides one inherited from a
2144         D-Bus interface class.
2145
2146 2005-10-29  Robert McQueen  <robot101@debian.org>
2147
2148         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2149         Add checking for the end of struct character when marshalling a
2150         struct in MessageIter.append_strict.
2151
2152         * python/examples/example-service.py,
2153         python/examples/gconf-proxy-service.py,
2154         python/examples/gconf-proxy-service2.py: Update to use gobject
2155         mainloop directly rather than appearing to depend on gtk.
2156
2157         * python/test/test-client.py, python/test/test-server.py: Remove
2158         obsolete and broken test scripts for old bindings. We have up to date
2159         and working tests in test/python/.
2160
2161 2005-10-29  Robert McQueen  <robot101@debian.org>
2162
2163         * python/decorators.py: Add optional arguments to the method and
2164         signal decorators to allow you to specify the signature of arguments
2165         and return values. Preserve the doc strings of signal functions in the
2166         decorated version, for pydoc and friends.
2167
2168         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2169         parse_signature_block function with an iterable dbus.Signature()
2170         type. Fix a bug in MessageIter.append_strict where you could append
2171         anything by claiming it was a string.
2172
2173         * python/service.py: Use the out_signature decoration on methods to
2174         marshal return values, meaning you no longer require dbus.Array()
2175         or dbus.Dictionary() to indicate the type when returning empty
2176         arrays or dictionaries. Fix a bug where exceptions which are defined
2177         in __main__ are not turned into error replies.
2178
2179         * test/python/test-client.py, test/python/test-service.py: Add test
2180         for correct marshalling of return values according to out_signature.
2181         Fix a bug in the async call test where the error_handler is missing a
2182         self argument.
2183
2184 2005-10-29  Robert McQueen  <robot101@debian.org>
2185
2186         * glib/Makefile.am, glib/examples/Makefile.am,
2187         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2188         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2189
2190         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2191
2192         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2193         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2194         the command line.
2195
2196 2005-10-27  Ross Burton  <ross@openedhand.com>
2197
2198         * dbus/dbus-marshal-header.c:
2199         Remove dead code.
2200
2201         * glib/dbus-gobject.c:
2202         Stop compiler warning.
2203
2204 2005-10-25  Ross Burton  <ross@openedhand.com>
2205
2206         * dbus/dbus-auth.c:
2207         * dbus/dbus-server-unix.c:
2208         * dbus/dbus-transport-unix.c:
2209         * glib/dbus-gmain.c:
2210         * glib/dbus-gobject.c:
2211         Add some const keywords.
2212
2213 2005-10-25  Ross Burton  <ross@openedhand.com>
2214
2215         * doc/dbus-specification.xml:
2216         Document the NoReply annotation.
2217
2218         * glib/dbus-binding-tool-glib.h:
2219         * glib/dbus-binding-tool-glib.c:
2220         Respect the NoReply annotation.
2221
2222 2005-10-24  Robert McQueen <robot101@debian.org>
2223
2224         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2225         derive from unicode instead of str, and encode/decode UTF-8 when
2226         marshalling/unmarshalling bus messages
2227
2228         * python/introspect_parser.py: encode introspection data as UTF-8
2229         before passing the buffer into libxml2
2230
2231         * test/python/test-client.py: add unicode test strings
2232
2233         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2234         ignore generated python test files
2235
2236 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2237
2238         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2239         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2240         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2241
2242         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2243         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2244         when constructing struct signatures
2245
2246         * python/_dbus.py (Bus): handle private connections using the
2247         private keyword in the constructor. defaults to private=False
2248         (Bus::close): new method to close a connection to the bus
2249
2250         * python/dbus_bindings.pyx (Connection::close): renamed method
2251         was previously called disconnect
2252         (bus_get): now supports getting a private connection
2253
2254         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2255         keyword is set to True.  if it is, execute the method without waiting
2256         for a reply
2257         (ProxyObject::_introspect_execute_queue): new method for executing
2258         all the pending methods that were waiting for the introspect to
2259         finish.  this is called when introspect either succeeds or fails
2260         (ProxyObject::_introspect_error_handler): call queued methods
2261
2262 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2263
2264         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2265         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2266
2267         * python/service.py (Object::_message_cb): handle exceptions correctly
2268         by sending them over the wire to the calling app.  This makes sure
2269         the client returns immediately instead of waiting the 15 seconds to
2270         timeout.
2271
2272         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2273         Add a test to benchmark how long it takes to introspect a service and 
2274         call a method which returns a large element (pretty fast)
2275
2276         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2277         method which pushes a lot of data
2278
2279 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2280
2281         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2282         reclaim memory outside of the loop and use del istead of just setting
2283         the key to None
2284
2285 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2286
2287         * python/service.py (ObjectType::_reflect_on_signal): Always close
2288         signal tag even when there are no arguments
2289
2290 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2291
2292         * configure.in: Set mono, mono-docs and Qt3 to default
2293         to no instead of auto when building.  These bindings do not
2294         have full time maintainers and will not be supported for the
2295         1.0 release.
2296
2297 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2298
2299         patches from Michael Krivoruchko <misha at sun.com>: 
2300         
2301         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2302         _dbus_connection_message_sent, 
2303         _dbus_connection_send_preallocated_unlocked_no_update, 
2304         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2305         is NULL when calling _dbus_verbose
2306
2307         * configure.in: check for functions getpeerucred and getpeereid
2308
2309         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2310         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2311         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2312         Patch was only tested on Solaris 10 x86 so it might be issues
2313         with other platforms (i.e. BSDs and MacOSX)
2314         
2315
2316 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2317
2318         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2319         instead of marshal basic so we can handle recursive types in a variant
2320
2321         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2322         in variants
2323
2324         * test/glib/test-service-glib.c, test-service-glib.xml
2325         (my_object_echo_variant [EchoVariant], 
2326         my_object_process_variant_of_array_of_ints123
2327         [ProcessVariantOfArrayOfInts123]): 
2328         Add two test methods
2329
2330         * python/introspect_parser.py: New module for parsing introspect
2331         data.
2332
2333         * python/dbus_bindings.pyx:
2334         (various places): when throwing errors fix to use errormsg instead 
2335         of message local variable because Pyrex can get confused with other 
2336         message variables (initial patch by Robert McQueen 
2337         <robert.mcqueen at collabora.co.uk>)
2338         (MessageIter::parse_signature_block): new method for getting the next
2339         block in a signiture.
2340         (MessageIter::append_strict): new method for appending values strictly
2341         using the passed in signature instead of guessing at the type
2342         (MessageItter:: append_dict, append_struct, append_array): use 
2343         signatures to marshal children if the signature is available
2344         
2345         * python/exceptions.py (IntrospectionParserException): new exception
2346
2347         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2348         introspected signatures if available, else we fall back to the
2349         old way of doing things.
2350         (ProxyObject::_introspect_reply_handler ): parse introspection data
2351         
2352         * python/service.py (ObjectType::_reflect_on_method): Properly
2353         terminate <method> if there are no args in the reflection data
2354
2355         * test/python/test-client.py: add tests for talking with the GLib
2356         test server.  This gives us better coverage for introspection since
2357         python to python will always generate arguments as variants.  It also
2358         allows us to test the robustness of the GLib bindings and interlanguage
2359         communications.
2360
2361         
2362 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2363
2364         * bus/driver.c (bus_driver_handle_introspect): Add signals
2365         to the introspect data. (patch from Daniel P. Berrange 
2366         <dan at berrange.com>)
2367
2368         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2369         
2370         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2371         _dbus_connection_run_builtin_filters): Changed these to
2372         be unlock_no_update functions and call 
2373         _dbus_connection_send_unlocked_no_update instead of
2374         dbus_connection_send to avoid locking errors.
2375         
2376         * doc/TODO: Removed the make Ping test TODO
2377         
2378 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2379
2380         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2381         We now copy the message from a DBusError and then free 
2382         the error object befor throwing the error
2383
2384         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2385         DBusBindingOutputMode enum which was causing a warning.
2386         #include <time.h> so using time_t is explicitly defined
2387
2388 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2389
2390         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2391         - dbus/dbus-bus.c
2392         (internal_bus_get): new method that take over the heavy lifting
2393         of dbus_bus_get and adds the ability to get a private connection
2394         to the bus
2395         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2396         interface as in previous versions
2397         (dbus_bus_get_private): new method that is a wrapper to 
2398         internal_bus_get to get a private connection to the bus
2399
2400         - dbus/dbus-bus.h
2401         (dbus_bus_get_private): add as a public libdbus interface
2402
2403         - dbus-1.pc.in: output system_bus_default_address and 
2404         sysconfdir variables so apps can use them when compiling
2405
2406 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2407         * dbus/qt: New Qt bindings
2408
2409 2005-09-12  Waldo Bastian  <bastian@kde.org>
2410
2411         * dbus/dbus-marshal-validate.c,
2412         doc/dbus-specification.xml, test/Makefile.am,
2413         test/test-names.c: allow hyphens in bus names.
2414
2415 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2416
2417         * test/data/auth/fallback.auth-script: we don't
2418         retry the EXTERNAL method when we know its going
2419         to fail anymore.
2420
2421 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2422
2423         * dbus/dbus-connection-internal.h: rename
2424         (add|remove|toggle)_(watch|timeout) to unlocked()
2425         
2426         * dbus/dbus-connection.c: ditto.
2427         
2428         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2429         Update some callers for the renaming.
2430
2431 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2432
2433         * dbus/dbus-auth.c: (record_mechanisms): don't
2434         retry the first auth mechanism because we know
2435         we're just going to get rejected again.
2436         
2437         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2438         Fix thinko ... and what a nasty little bugger to
2439         track down you were ...
2440
2441         * dbus/dbus-connection.c:
2442         (_dbus_connection_add_watch),
2443         (_dbus_connection_remove_watch): add note about
2444         these needing the connection to be locked.
2445         (_dbus_connection_get_dispatch_status_unlocked):
2446         set status to DATA_REMAINS when we queue the
2447         disconnected message.
2448         
2449         * bus/dispatch.c:
2450         (bus_dispatch): fix warning.
2451         (check_existent_service_no_auto_start):
2452         Expect ChildSignaled error too.
2453         (check_existent_hello_from_self): fix another
2454         couple of warnings.
2455         
2456 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2457
2458         Patches from James Willcox <snorp@snorp.net>
2459
2460         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2461
2462         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2463         support array "out" parameters.
2464
2465         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2466         for 16-bit int support.
2467
2468 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2469
2470         * Released 0.50
2471
2472         * Patch from Steve Grubb:
2473         - bus/activation.c (bus_activation_service_reload_test): clean up
2474         some indentation
2475         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2476         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2477         buffer overflows in the test suite.  This is non critical because
2478         it can not be exploited and this code is only run when doing a 
2479         make check.
2480
2481         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2482         - configure.in: Don't check and link against kdecore, only qt headers
2483         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2484         - gcj/org/freedesktop/dbus/Makefile.am:
2485         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2486         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2487         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2488         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2489         - tools/Makefile.am: Add platform extentions to binaries 
2490         (i.e. .exe on windows)
2491
2492         * configure.in: 
2493         - Make it so if no suitable version of python is found we only 
2494         disable building python instead of exiting the configure script
2495         - Require version 2.4 of glib for glib bindings
2496         - Up version to 0.50
2497
2498         * python/__init__.py: Sync version with libdbus to (0,50,0)
2499         
2500 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2501
2502         * dbus/dbus-object-tree.c (find_subtree_recurse):
2503         a couple of optimizations (bug #710):
2504         - do a binary search in the tree
2505         - insert a new child at the right place directly, no need for
2506           qsort anymore
2507         - do the "double alloc" thing when allocating children
2508
2509 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2510
2511         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2512
2513         * python/dbus_bindings.pyx: Memory management foo
2514         (global): remove hacky _user_data_references global list
2515         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2516         tuples. Unref user_data
2517         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2518         (Connection::__del__): Remove and replace with __dealloc__ method
2519         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2520         to keep tuple from being deallocated instead of the global var hack
2521         (Connection::register_object_path): Stuff user_data into a tuple.
2522         Use Py_INCREF to keep tuple from being deallocated instead of the 
2523         global var hack
2524         (Connection::register_fallback): Stuff user_data into a tuple.
2525         Use Py_INCREF to keep tuple from being deallocated instead of the 
2526         global var hack
2527         (GIL_safe_pending_call_notification): Don't unref the message
2528         because it gets unreffed when going out of scope.  Py_XDECREF
2529         the user_data
2530         (PendingCall::__del__): Remove and replace with __dealloc__ method
2531         (PendingCall::set_notify): ref the pending call because we will
2532         need it to stick around for when the notify callback gets called
2533         (Message::__del__): Remove and replace with __dealloc__ method
2534
2535         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2536         gthreads_init to match up with the dbus call
2537
2538         * python/glib.py (init_threads): Changed to threads_init to match
2539         up with gobject.threads_init().  init_threads is kept for backwards
2540         compat but will most likely be deprecated in the future
2541
2542         * test/python/test-client.py: 
2543         - revamp to use Python's unittest functionality
2544         - add async call tests
2545         - setup threads in glib and dbus so we make sure locks are working
2546         
2547 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2548
2549         * python/dbus_bindings.pyx 
2550         (_pending_call_notification, cunregister_function_handler, 
2551         cmessage_function_handler): All callback functions have been rearranged 
2552         to workaround a bug in Pyrex when working with the GIL which is Python's 
2553         global lock when dealing with threads.  They have been split into
2554         a wrapper function (which assumes the name of the old function) and
2555         a _GIL_safe_<function name> function which contains the functionality
2556         of the old function.  This ensures that Pyrex does not write code
2557         the lock is released.
2558         
2559
2560 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2561
2562         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2563         GIL global lock when calling back into Python
2564
2565 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2566
2567         * Release 0.36.2
2568
2569         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2570
2571         * bus/policy.c (bus_policy_allow_user): change default "user is
2572         allowed" to be "user has same uid as the bus itself"; any
2573         allow/deny rules will override.
2574
2575         * bus/session.conf.in: don't allow all users, since now by default
2576         the user that ran the bus can connect.
2577
2578 2005-08-26  Colin Walters  <walters@verbum.org>
2579
2580         * tools/dbus-print-message.c (print_message): Flush stdout
2581         after printing a message, so that redirecting to a file, then
2582         hitting Ctrl-C works.
2583
2584 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2585
2586         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2587         (EmptyMessage): new class that subclasses Message.  This is a workaround
2588         to a Pyrex bug that fails to call __del__ when the Message object goes out
2589         of scope.  For some reason subclassing Message fixes this bug
2590         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2591         - s/Message(_create=0)/EmptyMessage everywhere else
2592         
2593         * test/python/test-{server|client}.py: add the python/.libs directory
2594         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2595         get picked up from the system
2596
2597 2005-08-25  Colin Walters  <walters@verbum.org>
2598
2599         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2600         to Ryan Lortie for the suggestion.
2601
2602 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2603
2604         * test/python: Add python regression test
2605
2606         * configure.in: Add test/python/Makefile
2607
2608         * test/Makefile.am: Add the python directory to SUBDIRS
2609
2610 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2611
2612         * Release 0.36.1
2613
2614         * python/_dbus.py: 
2615         (Interface::connect_to_signal): propigate keywords for match on args
2616         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2617
2618         * python/proxies.py (ProxyObject::connect_to_signal):
2619         propigate keywords for match on args
2620
2621         * Makefile.am: point everything to pyexecdir since python borks
2622         on multilib
2623
2624 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2625
2626         * Release 0.36
2627
2628 2005-08-23  Colin Walters  <walters@verbum.org>
2629
2630         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2631
2632 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2633
2634         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2635         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2636         of defining DBusConnection ourselves.
2637
2638 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2639
2640         * python/dbus.pth: New path file to fix up problems when installing
2641         c libraries to lib64 and python files to lib.
2642
2643         * python/Makefile.am: install dbus.pth in the correct spot
2644
2645 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2646         * ChangeLog: clean up my last entry a bit
2647
2648         * doc/introspect.xsl: New stylesheet for converting introspection data
2649         into browser renderable xhtml. Contributed by Lennart Poettering.
2650
2651         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2652         Poettering.
2653
2654         * doc/dbus-tutorial.xml: 
2655         - Add Colin Walter to the Authors section for authoring the GLib
2656         section
2657         - Add descriptions of the new signature and type functionality
2658         in the Python complex type mapping section
2659         - Add a sidenote on the new args matching functionality in 
2660         the Python bindings
2661         - Fixed up some of the examples to use the gobject.MainLoop
2662         instead of gtk.main
2663         
2664         * python/_dbus.py:
2665         (Bus::_create_args_dict): New. Converts a hash of arg matches
2666         to a more useable format
2667         (Bus::add_signal_receiver): add a **keywords parameter for catching
2668         arg match parameters
2669         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2670         arg match parameters
2671         
2672         * python/matchrules.py:
2673         (MatchTree::exec_matches): Check for arg matches
2674         (SignalMatchRule::add_args_match): New method
2675         (SignalMatchRule::execute): Added args_list parameter as an optimization
2676         so we don't have to marshal the args more than once
2677         (SignalMatchRule::match_args_from_list): New method that checks to see
2678         if the rule's arg matches match an argument list.  Only arguments
2679         set in the rule are checked.
2680         (SignalMatchRule::match_args_from_rule): New method that checks to see
2681         if the rule's arg matches match another rule's.  All args have to match
2682         in order for this method to return true.  If either rule has more args
2683         then it is not a match.
2684         (SignalMatchRule::is_match): Add args match
2685         (SignalMatchRule::repr): Add args to the final output if they exist
2686
2687 2005-08-17  Ross Burton  <ross@burtonini.com>
2688
2689         * glib/dbus-gproxy.c:
2690         (dbus_g_proxy_call_no_reply): unref the message once sent.
2691         (dbus_g_proxy_call): protect against NULL proxy.
2692
2693 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2694
2695         * python/__init__.py: Version updated (0, 43, 0)
2696         
2697         * python/dbus_bindings.pyx: 
2698         - Fixed type objects to have self passed into __init__
2699         - Added the Variant type
2700         - Add the ability to specify types or signatures for Array, Variant 
2701         and Dictionary
2702         (Connection::send_with_reply_handlers): return a PendingCall object
2703         (_pending_call_notification): handle the case when an error is returned 
2704         without an error message in the body
2705         (MessageIter::get_boolean): return True or False instead of an integer
2706         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2707         and add checks for objects with embeded signatures or types (Array, 
2708         Variant and Dictionary)
2709         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2710         (MessageIter::append_dict): handle embeded types or signatures
2711         (MessageIter::append_array): handle embeded types or signatures
2712         (MessageIter::append_variant): new method
2713         
2714         * python/proxies.py:
2715         (DeferedMethod): New. Dummy executable object used when queuing calls 
2716         blocking on introspection data
2717         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2718         or shorter timeouts for method calls
2719         (ProxyObject): Add first pass at an introspection state machine
2720         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2721         introspection. 
2722         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2723         the usual mechanisms for sending messages.  This is to avoid a deadlock
2724         where the Intospect call would be queued waiting for the Introspect 
2725         call to finish ;-)
2726         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2727         when introspection returns with no error
2728         (ProxyObject::_introspect_error_handler): New.  This method is called 
2729         when introspection encounters an error
2730         (ProxyObject::__getattr__): Code to handle different introspection 
2731         states.  Queue async calls or block blocking calls if we are 
2732         introspecting.  Pass through as normal if we are not or are done with 
2733         introspecting.
2734         
2735         * python/service.py: Import signal and method from decorators.py
2736
2737         * python/types.py: Add Variant type
2738
2739 2005-08-16  Colin Walters  <walters@verbum.org>
2740
2741         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2742         DBusError message is NULL.
2743
2744 2005-08-09  Havoc Pennington  <hp@redhat.com>
2745
2746         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2747         malloc'd copy of the name parameter
2748
2749 2005-08-09  Havoc Pennington  <hp@redhat.com>
2750
2751         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2752         warning if the reply serial is set to 0
2753
2754 2005-08-04  Colin Walters  <walters@verbum.org>
2755
2756         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2757         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2758         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2759         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2760         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2761         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2762         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2763         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2764         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2765         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2766         
2767         Prefix name with _ to ensure they're not exported.  All callers
2768         updated.
2769
2770         * glib/dbus-gvalue.c (typecode_to_gtype)
2771         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2772         (signature_iter_to_g_type_dict)
2773         (signature_iter_to_g_type_array)
2774         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2775         (dbus_gtypes_from_arg_signature):
2776         Move to dbus-gsignature.c.
2777
2778         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2779         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2780         (dbus_binding_tool_output_glib_client): Ditto.
2781
2782         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2783         and dbus-gsignature.h
2784
2785         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2786         unused variable.
2787
2788 2005-08-03  Colin Walters  <walters@verbum.org>
2789
2790         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2791         catch any incompatible changes accidentally made.
2792
2793 2005-08-03  Havoc Pennington  <hp@redhat.com>
2794
2795         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2796         typo, from Julien Puydt
2797
2798         * bus/connection.c (bus_connection_disconnected): we were always
2799         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2800
2801 2005-08-01  Colin Walters  <walters@verbum.org>
2802
2803         Patch from Joe Markus Clarke:   
2804         
2805         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2806         use-after-free.
2807
2808 2005-08-01  Colin Walters  <walters@verbum.org>
2809         
2810         Patch from Joe Markus Clarke:   
2811         
2812         * tools/dbus-send.c (main): 
2813         
2814         Don't use C99 style initializers (bug #3933).
2815         
2816 2005-08-01  Colin Walters  <walters@verbum.org>
2817
2818         Patch from Joe Markus Clarke:   
2819
2820         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2821         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2822         * glib/dbus-gobject.c (write_interface):
2823
2824         Don't use C99 style initializers (bug #3933).
2825
2826 2005-07-31  Havoc Pennington  <hp@redhat.com>
2827
2828         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2829         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2830
2831 2005-07-30  Havoc Pennington  <hp@redhat.com>
2832
2833         * fix a bunch of Doxygen warnings and mistakes
2834
2835 2005-07-30  Havoc Pennington  <hp@redhat.com>
2836
2837         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2838         DBUS_BUILD_TESTS since it's now used in production code
2839
2840 2005-07-29  Havoc Pennington  <hp@redhat.com>
2841
2842         * test/glib/test-profile.c (write_junk): initialize the junk
2843         buffer so valgrind doesn't have a breakdown
2844
2845 2005-07-29  Havoc Pennington  <hp@redhat.com>
2846
2847         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2848         (match_rule_matches): remove unused arg
2849         (test_matching): add tests for match_rule_matches()
2850
2851         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2852         do arg0='foo' arg5='bar' in the match rules
2853         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2854
2855         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2856
2857 2005-07-29  Ross Burton  <ross@openedhand.com>
2858
2859         * dbus/dbus-connection.c:
2860         Don't create a DBusCondVar which is never used.
2861
2862 2005-07-27  Ross Burton  <ross@openedhand.com>
2863
2864         * dbus/dbus-message.c:
2865         Reduce the size of the maximum cached message to 10K.
2866
2867 2005-07-25  Ross Burton  <ross@openedhand.com>
2868
2869         * glib/dbus-gproxy.c:
2870         Remove matches when all proxies are unregistered.
2871
2872 2005-07-24  Colin Walters  <walters@verbum.org>
2873
2874         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2875         typedata; recursive arrays won't have it.
2876
2877         * test/glib/test-dbus-glib.c:
2878         * test/glib/test-service-glib.c:
2879         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2880         
2881 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2882
2883         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2884         proxies.py, service.py: Cleanup of code after running it through the
2885         pyflakes code checker mostly dealing with undefined names.  
2886         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2887
2888 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2889
2890         * NEWS: Update to 0.35.2
2891
2892 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2893
2894         * python/_dbus.py: Remove import of the dbus.services
2895         module as it no longer exists (patch from Dimitur Kirov)
2896
2897         * python/service.py (Object::__init__): Fixed typo
2898         s/name/bus_name (patch from Dimitur Kirov)
2899
2900         * python/examples/example-signal-emitter.py: import dbus.glib
2901         to get the main loop and use glib mainloop instead of gtk so
2902         X doesn't have to be running.
2903
2904         * python/examples/example-signal-recipient.py: import dbus.glib
2905         to get the main loop and use glib mainloop instead of gtk so
2906         X doesn't have to be running. Import the decorators module
2907         directly.
2908
2909         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2910         didn't pick up on but are needed to build
2911
2912         * configure.in: upped version to 0.35.2
2913
2914         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2915         added Colin Walters' SELinux API rename patch from head 
2916         s/unix sercurity context/selinux security context/
2917
2918 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2919
2920         * python/Makefile.am: dbus_binding.pxd.in should be included 
2921         in EXTRA_DIST not dbus_binding.pxd
2922         fix up $(srcdir) hopefully for the last time
2923
2924         * NEWS: Update to 0.35.1
2925
2926 2005-07-16  Colin Walters  <walters@verbum.org>
2927
2928         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2929         from bus_driver_handle_get_connection_unix_security_context.  Update for
2930         error usage.
2931         (message_handlers): Update for renames.
2932
2933         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2934         _dbus_string_init failure correctly.
2935         (bus_selinux_append_context): Convert SID to context.  Append it
2936         as a byte array.
2937         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2938         hasn't been called.
2939
2940         * bus/selinux.h: Update prototype.
2941
2942         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2943         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2944
2945 2005-07-15  Colin Walters  <walters@verbum.org>
2946
2947         * doc/TODO: Add note about convenience wrappers.
2948
2949 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2950
2951         * NEWS: Update to 0.35
2952
2953 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2954
2955         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2956         so distcheck doesn't fail
2957
2958         * glib/examples/Makefile.am: Add example-service.xml and 
2959         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2960
2961         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2962         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2963
2964         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2965         compiler looks in the right places during distcheck
2966
2967 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2968
2969         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2970         to fail
2971
2972 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2973
2974         * python/examples/example-service.py,
2975         python/examples/example-signal-emitter.py: Fixed up examples
2976         for API changes
2977
2978 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2979
2980         * python/__init__.py: Upped to version (0,42,0) because of
2981         the API change
2982
2983 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2984
2985         * ChangeLog: fix date in last entry
2986
2987         * configure.in, bus/system.conf.in: add the ability to configure 
2988         the system bus user at compiletime with the --with-dbus-user flag
2989         (patch from Kristof Vansant)
2990
2991 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2992
2993         * bus/dispatch.c, test/test-service.c: Add testcase
2994         for sending messages to oneself (TODO item).
2995
2996         * python/service.py (class Object): Swap ordering of bus_name 
2997         and object_path parameters to better support inheritance.
2998
2999         * doc/dbus-tutorial.xml: change Python docs to reflect change
3000         in parameter ordering and fix the inheritance section.
3001
3002         * doc/TODO: remove sending message to oneself TODO item
3003
3004 2005-07-15  Ross Burton  <ross@openedhand.com>
3005
3006         * glib/dbus-gproxy.c:
3007         Fix a leak when calling methods via the proxy.
3008
3009 2005-07-15  Colin Walters  <walters@verbum.org>
3010
3011         * bus/selinux.c (bus_selinux_append_context): Wrap in
3012         HAVE_SELINUX.
3013
3014 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3015
3016         * python/_dbus.py (Bus::remove_signal_receiver):
3017         don't add a callback to the match if none has been passed in
3018         
3019         * python/matchrules.py (SignalMatchTree::remove): if the rule
3020         being matched does not have a callback treat it as a wildcard
3021         fix matching logic
3022
3023         * doc/dbus-tutorial.xml: Add Python tutorial
3024
3025 2005-07-14  Colin Walters  <walters@verbum.org>
3026
3027         * bus/driver.c
3028         (bus_driver_handle_get_connection_unix_security_context): New function.
3029         (message_handlers): Add.
3030
3031         * bus/selinux.c (bus_selinux_append_context): New function; appends
3032         security context to message.
3033
3034         * bus/selinux.h: Prototype.
3035
3036         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3037
3038 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3039
3040         * bus/activation.c: clean up all tabs to be 8 spaces 
3041         (bus_activation_activate_service): make sure we clean up
3042         if activation fails
3043
3044         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3045         (check_shell_fail_service_auto_start): New function
3046         tests to make sure we get fail properly when trying to auto start a service
3047         with a faulty command line
3048         (check_shell_service_success_auto_start): New function tests to make sure
3049         auto started services get the arguments on the command line
3050
3051         * test/test-shell-service.c: Added service for testing auto-starting with 
3052         command line arguments
3053
3054         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3055         test/data/valid-service-files/debug-shell-echo-success.service.in:
3056         Added service files for testing auto-starting with command line arguments
3057
3058         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3059
3060 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3061
3062         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3063         
3064         * dbus/Makefile.am: added new files to build.
3065
3066         * bus/activation.c (bus_activation_activate_service): support
3067         activation commands with parameters.
3068
3069         * test/shell-test.c: added test program for the shell parsing
3070         code.
3071
3072 2005-07-13  David Zeuthen  <davidz@redhat.com>
3073
3074         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3075         64 bit signed and unsigned parameters
3076
3077 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3078
3079         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3080
3081         * python/service.py (class Name): renamed BusName to make it clearer
3082         what the object is for (a name on the bus)
3083
3084         * python/examples/example-service.py,
3085         python/examples/example-signal-emitter.py: change the Name object to
3086         BusName
3087
3088 2005-07-12  Colin Walters  <walters@verbum.org>
3089
3090         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3091
3092         * tools/dbus-launch.c: Include sys/select.h.
3093
3094 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3095         * python/dbus_bindings.pyx.in: removed
3096
3097         * python/dbus_bindings.pyx: Added.
3098         - Fixed some memleaks (patch from 
3099         Sean Meiners <sean.meiners@linspireinc.com>)
3100         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3101         own pxd file (Pyrex definition)
3102         - Broke out glib dependancies into its own pyx module
3103         
3104         * python/dbus_bindings.pdx: Added.
3105         - Defines C class Connection for exporting to other modules
3106
3107         * python/dbus_glib_bindings.pyx: Added.
3108         - New module to handle lowlevel dbus-glib mainloop integration
3109
3110         * python/glib.py: Added.
3111         - Registers the glib mainloop when you import this module
3112
3113         * python/services.py: Removed (renamed to service.py)
3114         
3115         * python/service.py: Added.
3116         - (class Server): renamed Name
3117
3118         * python/__init__.py: Bump ro version (0,41,0)
3119         -don't import the decorators or service module
3120         by default.  These now reside in the dbus.service namespace
3121
3122         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3123         setup function on creation 
3124
3125         * python/examples/example-service.py,
3126         python/examples/example-signal-emitter.py: update examples
3127
3128         * python/examples/gconf-proxy-service.py,
3129         python/examples/gconf-proxy-service2.py: TODO fix these up
3130
3131         * doc/TODO: Addition
3132         - Added a Python Bindings 1.0 section
3133         - added "Add match on args or match on details to match rules"
3134
3135
3136 2005-07-12  Colin Walters  <walters@verbum.org>
3137
3138         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3139         (statemachine-glue.h): 
3140         * glib/examples/Makefile.am (example-service-glue.h) 
3141         (example-signal-emitter-glue.h): 
3142         * glib/Makefile.am (dbus-glib-error-switch.h): 
3143         Add libtool --mode=execute so we use the built library instead
3144         of any installed one.
3145
3146 2005-07-11  Colin Walters  <walters@verbum.org>
3147
3148         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3149         (dbus_g_value_types_init): Remove assertion.
3150         (dbus_g_value_get_g_type, dbus_g_value_open)
3151         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3152         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3153         functions related to DBusGValue.  Now we marshal/demarshal
3154         structures as GValueArray.
3155         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3156         structures.
3157         (signature_iter_to_g_type_array): Don't call
3158         signature_iter_to_g_type_struct.
3159         (signature_iter_to_g_type_struct): Delete.
3160         (dbus_gvalue_to_signature): Delete.
3161         (dbus_gvalue_to_signature): New function with same name as other
3162         one; we can convert structures to signatures.
3163         (demarshal_valuearray): New function.
3164         (get_type_demarshaller): Use it.
3165         (demarshal_recurse): Delete.
3166         (marshal_proxy): New function.
3167         (marshal_map): Warn if we can't determine signature from type.
3168         (marshal_collection_ptrarray): Ditto.
3169         (marshal_collection_array): Ditto.
3170         (get_type_marshaller): Use marshal_valuearray.
3171         (marshal_recurse): Delete.
3172         (_dbus_gvalue_test): Add some tests.
3173
3174         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3175         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3176         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3177         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3178         (dbus_g_value_free): Remove prototypes.
3179
3180         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3181         G_TYPE_VALUE_ARRAY.
3182
3183         * glib/examples/example-service.c:
3184         * glib/examples/example-client.c: Implement GetTuple.
3185
3186         * test/glib/test-dbus-glib.c:
3187         * test/glib/test-service-glib.c:
3188         * test/glib/test-service-glib.xml: Add structure tests.
3189
3190 2005-07-10  Colin Walters  <walters@verbum.org>
3191
3192         * doc/TODO: Knock off some GLib items with this patch.
3193
3194         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3195         (_dbus_gvalue_signals_error): New functions.
3196
3197         * glib/dbus-gvalue-utils.h: Prototype them.
3198
3199         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3200         and change to not output const/retval flags for input args.  All
3201         callers updated.
3202         (invoke_object_method): Refactor to handle return values.  Add
3203         some more comments in various places.  Remove debug g_print.
3204
3205         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3206
3207         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3208         Handle G_TYPE_NONE.
3209         (compute_gsignature): New function; refactored from code from
3210         compute_marshaller and compute_marshaller_name.  Enhance to
3211         handle return values and async ops more cleanly.  Update for
3212         async ops returning NONE instead of BOOLEAN.
3213         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3214         and output appropriate string.
3215         (generate_glue): Handle return value annotation.  Also don't dump
3216         constness flag for input arguments.
3217
3218         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3219         files shared between installed library and utilities.
3220         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3221         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3222         binding tool can access gtype utility functions.
3223
3224         * test/glib/test-service-glib.c: 
3225         * test/glib/test-service-glib.xml: 
3226         * test/glib/test-dbus-glib.c: Add some tests for return values.
3227
3228 2005-07-09  Colin Walters  <walters@verbum.org>
3229
3230         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3231         argument if available, not method.
3232
3233         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3234         (invoke_object_method): First, remove some redundant
3235         GValues (object_value, error_value) in favor of working on
3236         array directly.  Second, rework constness to be less buggy.
3237         Now we iterate directly over the argument metadata instead
3238         of parallel iterating over output signature and metadata.
3239
3240         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3241
3242         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3243         annotation on input args.
3244         
3245 2005-07-09  Colin Walters  <walters@verbum.org>
3246
3247         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3248         Define.
3249
3250         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3251         annotation.
3252
3253         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3254         (method_dir_signature_from_object_info): Handle arg_iterate change.
3255         (write_interface): Ditto.
3256         (lookup_object_info): Don't barf if format_version is > 0.
3257         (invoke_object_method): Handle arg constness.
3258
3259         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3260         (arg_info_new): Create.
3261         (arg_info_unref): Destroy.
3262         (arg_info_get_annotations, arg_info_get_annotation) 
3263         (arg_info_add_annotation): New functions.
3264
3265         * glib/dbus-gidl.h: Prototype them.
3266
3267         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3268         args, disallow them in properties.
3269         (parse_annotation): Handle arg annotations.
3270
3271         * test/glib/test-service-glib.xml: 
3272         * test/glib/test-service-glib.c: Update to make some methods
3273         const.
3274
3275 2005-07-08  Colin Walters  <walters@verbum.org>
3276
3277         * test/glib/test-service-glib.xml: 
3278         * test/glib/test-service-glib.c:
3279         * test/glib/test-dbus-glib.c: Test a{sv}.
3280
3281         * glib/examples/statemachine/statemachine.c:
3282         * glib/examples/statemachine/statemachine-server.c:
3283         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3284         add progress bar, etc.
3285
3286         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3287         needed anymore due to generic array/map marshalling.
3288         (dbus_g_value_types_init): Don't register basic arrays or the
3289         string/string hash.
3290         (dbus_gtype_from_signature_iter): Don't try to recurse into
3291         variants.
3292         (dbus_gtype_to_signature): Check collection/map before type
3293         metadata.
3294         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3295         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3296         generic map creation/append functions instead of hash table
3297         specifically.
3298         (get_type_demarshaller): Handle maps.
3299         (demarshal_collection): Dispatch on collection type to either
3300         demarshal_collection_ptrarray or demarshal_collection_array.
3301         (get_type_marshaller): Handle maps.
3302         (marshal_collection): Dispatch collection type to either
3303         marshal_collection_ptrarray or marshal_collection_array.
3304         (_dbus_gvalue_test): New test.
3305
3306         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3307         (hash_free_from_gtype): Use it to free GValues.
3308         (hashtable_append): New function.
3309         (ptrarray_append): Fix prototype.
3310         (slist_append): Ditto.
3311         (_dbus_gvalue_utils_test): Extend tests.
3312
3313         * glib/dbus-gtype-specialized.c
3314         (dbus_g_type_specialized_init_append): Renamed from
3315         dbus_g_type_specialized_collection_init_append.  Remove const from
3316         value, since we steal it.
3317         (dbus_g_type_specialized_map_append): New function.
3318
3319         * glib/dbus-gtype-specialized.h: Update prototypes.
3320         Add DBusGTypeSpecializedMapAppendFunc.
3321
3322         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3323         _dbus_gvalue_test.
3324         
3325         * glib/dbus-gtest.h: Prototype it.
3326
3327 2005-07-08  Ross Burton  <ross@openedhand.com>
3328
3329         * dbus/dbus-glib.h:
3330         Add DBysGAsyncData for the async bindings.
3331
3332         * glib/dbus-binding-tool-glib.c:
3333         Re-enable the async bindings.
3334
3335         * test/glib/test-dbus-glib.c:
3336         Add a test for the generated async bindings.
3337
3338 2005-07-08  Colin Walters  <walters@verbum.org>
3339
3340         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3341         connection concept.
3342         
3343 2005-07-08  Colin Walters  <walters@verbum.org>
3344         
3345         * tools/Makefile.am: Kill of print-introspect in favor of using
3346         dbus-send --print-reply=literal.
3347
3348         * test/glib/test-service-glib.xml: 
3349         * test/glib/test-service-glib.c (my_object_get_objs): New test
3350         for "ao".
3351
3352         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3353         (main): Test GetObjs.
3354
3355         * glib/examples/statemachine/Makefile.am:
3356         * glib/examples/statemachine/sm-marshal.list:
3357         * glib/examples/statemachine/statemachine-client.c:
3358         * glib/examples/statemachine/statemachine-server.c:
3359         * glib/examples/statemachine/statemachine-server.xml:
3360         * glib/examples/statemachine/statemachine.c:
3361         * glib/examples/statemachine/statemachine.h:
3362         * glib/examples/statemachine/statemachine.xml:
3363
3364         New example.
3365
3366         * glib/examples/example-service.c (main): Move invocation
3367         of dbus_g_object_type_install_info earlier, to emphasize it
3368         should only be done once.
3369
3370         * glib/examples/example-signal-emitter.c (main): Ditto.
3371
3372         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3373
3374         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3375         (dbus_gvalue_marshal): Update prototypes.
3376
3377         * glib/dbus-gvalue.c: Update all marshalling functions to take
3378         const GValue instead of GValue.
3379         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3380         types.
3381         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3382         change.
3383         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3384         Return a newly-allocated string.
3385         (demarshal_proxy, demarshal_object_path, demarshal_object)
3386         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3387         we get the wrong types from message.
3388         (get_type_demarshaller): New function, extracted from
3389         dbus_gvalue_demarshal.
3390         (demarshal_collection): New function, demarshals generic
3391         collection.
3392         (dbus_gvalue_demarshal): Just invoke result of
3393         get_type_demarshaller.  Throw error if we don't have one.
3394         (marshal_garray_basic): Abort on OOM.
3395         (get_type_marshaller): New function, extracted from
3396         dbus_gvalue_marshal.
3397         (collection_marshal_iterator, marshal_collection): New functions;
3398         implements generic marshalling for an iteratable specialized
3399         collection.
3400         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3401
3402         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3403         G_TYPE_STRING.
3404         (ptrarray_value_from_gvalue): Ditto.
3405         (ptrarray_append, ptrarray_free): New functions.
3406         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3407         (slist_append, slist_end_append, slist_free): New functions.
3408         (dbus_g_type_specialized_builtins_init): Add append fuctions
3409         for GPtrArray and GSList.  Register GSList.
3410         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3411
3412         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3413         New.
3414         (dbus_g_type_specialized_collection_init_append)
3415         (dbus_g_type_specialized_collection_append)
3416         (dbus_g_type_specialized_collection_end_append): Prototype.
3417         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3418         end_append_func.
3419
3420         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3421         (dbus_g_type_specialized_collection_append) 
3422         (dbus_g_type_specialized_collection_end_append): New functions.
3423         (dbus_g_type_map_value_iterate): Take const GValue.
3424         (dbus_g_type_collection_value_iterate): Ditto.
3425
3426         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3427         _dbus_gvalue_utils_test.
3428         
3429         * glib/dbus-gtest.h: Prototype it.
3430
3431         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3432         using uninitialized owner_list.
3433         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3434         public API.
3435         (dbus_g_proxy_end_call_internal): Update to use error set
3436         from dbus_gvalue_demarshal instead of setting it here.
3437         (dbus_g_proxy_begin_call): Move return_if_fail here.
3438
3439         * glib/dbus-gobject.c (write_interface): Update for
3440         dbus_gtype_to_signature returning new string.
3441
3442         * configure.in: Add glib/examples/statemachine.
3443
3444 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3445
3446         * configure.in: Add a configure option, --with-console-auth-dir
3447         
3448         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3449         new setting.  Patch from Kay Sievers.
3450
3451 2005-07-06  Colin Walters  <walters@verbum.org>
3452
3453         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3454         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3455         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3456         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3457         Delete in favor of dbus_g_proxy_begin_call and
3458         dbus_g_proxy_cancel_call.
3459         (DBusGProxyCall, DBusGProxyCallNotify): New.
3460         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3461         data, and destroy function.  This replaces
3462         dbus_g_pending_call_set_notify.
3463         (dbus_g_proxy_cancel_call): Prototype.
3464         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3465
3466         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3467         pending_calls map.
3468         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3469         internal proxy for calls to the bus. Remove
3470         pending_nameowner_calls, now the internal proxy keeps track.
3471         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3472         pending_nameowner_calls.
3473         (got_name_owner_cb): Update prototype, and use
3474         dbus_g_proxy_end_call.
3475         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3476         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3477         favor of using internal proxy.
3478         (dbus_g_proxy_manager_unregister): Update to use
3479         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3480         (dbus_g_proxy_init): Initialize pending calls map.
3481         (dbus_g_proxy_constructor): New.
3482         (dbus_g_proxy_class_init): Add get/set property functions,
3483         constructor, and add NAME, PATH, and INTERFACE properties.
3484         (cancel_pending_call): New function.
3485         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3486         cancel them.
3487         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3488         (GPendingNotifyClosure): New structure.
3489         (d_pending_call_notify, d_pending_call_free): Moved here from
3490         dbus-glib.c.
3491         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3492         ordering.
3493         (manager_begin_bus_call): New internal function for talking to
3494         internal bus proxy.
3495         (dbus_g_proxy_new): Construct object using GObjet properties.
3496         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3497         Create closure of same, and insert call into map of pending calls.
3498         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3499         call.  Look up pending call in current set.  Remove it when we've
3500         completed.
3501         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3502         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3503         and destroy function directly.
3504         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3505         (dbus_g_proxy_call): Invoke with NULL callback.
3506         (dbus_g_proxy_cancel_call): New function, replaces
3507         dbus_g_pending_call_cancel.
3508
3509         * glib/dbus-gparser.c (validate_signature): Fix call to
3510         dbus_set_g_error.
3511
3512         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3513         New quark for attaching metadata to GType.
3514         (info_hash): Delete.
3515         (lookup_object_info): Look up using quark.
3516         (dbus_g_object_type_install_info): Check that a type is classed,
3517         not that it's an object.  Also just install type data using quark
3518         instead of using global hash.
3519
3520         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3521         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3522         (GPendingNotifyClosure): Delete.
3523         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3524         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3525
3526         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3527         client method generation until we can fix it...
3528         
3529         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3530         (load_from_service_thread_func): Ditto.
3531
3532         * tools/dbus-names-model.c (struct NamesModel): Hold
3533         DBusGProxyCall.
3534         (have_names_notify): Update prototype, use
3535         dbus_g_proxy_cancel_call.
3536         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3537
3538         * tools/dbus-monitor.c (filter_func): Update for print_message
3539         API change.
3540
3541         * test/glib/test-dbus-glib.c: Add more tests for async
3542         invocations.  Update many begin_call/end_call pairs to just use
3543         dbus_g_proxy_call.
3544
3545         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3546         allows us to dump print-introspect.c.
3547
3548         * tools/dbus-print-message.h (print_message): Add literal argument
3549         to print_message which is intended to allow printing arguments without
3550         metadata like "string=".
3551
3552         * tools/dbus-print-message.c (print_iter): Add literal argument.
3553         (print_message): Allow printing string messages literally.
3554
3555 2005-07-05  Colin Walters  <walters@verbum.org>
3556
3557         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3558         Remove value refcount leak, original patch from Jorn Baayen
3559         <jorn@openedhand.com>.  Also remove useless extra value in favor
3560         of prepending to value array directly.
3561
3562 2005-07-02  Colin Walters  <walters@verbum.org>
3563
3564         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3565
3566 2005-07-01  Colin Walters  <walters@verbum.org>
3567
3568         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3569         
3570         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3571         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3572         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3573         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3574
3575 2005-06-30  Colin Walters  <walters@verbum.org>
3576
3577         * test/glib/test-dbus-glib.c:
3578         * test/glib/test-service-glib.c:
3579         * test/glib/test-service-glib.xml: Update tests for new error
3580         setting bits, also add async tests (patch from Ross Burton).
3581
3582         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3583         DBUS_GLIB_THREADS_LIBS.
3584
3585         * glib/dbus-gproxy.c (get_name_owner)
3586         (dbus_g_pending_call_end_valist): Ditto.
3587
3588         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3589         domain (GQuark) to DBusGErrorInfo.  
3590         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3591         quark in error_metadata.  Take message interface as default
3592         error message interface.
3593         (gerror_to_dbus_error_message): Pass message interface.
3594         (dbus_set_g_error): Resurrected.
3595         (dbus_g_error_info_free): New function.
3596         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3597         of _peek to actually create the object class if it hasn't been
3598         created yet.
3599         (dbus_g_error_domain_register): New function.
3600
3601         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3602
3603         * glib/dbus-gparser.c (validate_signature): Ditto.
3604
3605         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3606         (dbus_g_error_domain_register): Prototype.
3607
3608         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3609         Update tests.
3610
3611 2005-06-29  Colin Walters  <walters@verbum.org>
3612
3613         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3614         DBUS_TYPE_G_OBJECT_PATH.
3615
3616         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3617         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3618         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3619         (dbus_g_object_path_get_g_type): New function.
3620         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3621         to DBUS_TYPE_G_OBJECT_PATH by default.
3622         (demarshal_proxy): Remove unused name variable.
3623         (demarshal_object_path, marshal_object_path): New functions.
3624         (demarshal_proxy_array, marshal_proxy_array): Delete.
3625         
3626         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3627         DBUS_TYPE_G_OBJECT_PATH to char *.
3628         (dbus_g_type_get_lookup_function): Map builtin
3629         DBUS_TYPE_G_OBJECT_PATH.
3630
3631         * test/glib/test-dbus-glib.c
3632         * test/glib/test-service-glib.c (my_object_objpath): 
3633         Adapt tests to new object path marshalling.
3634
3635 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3636
3637         * configure.in: force check for Python >= 2.4
3638
3639 2005-06-29  Colin Walters  <walters@verbum.org>
3640         
3641         Patch from Ross Burton <ross@openedhand.com>
3642         
3643         * glib/dbus-gobject.c (invoke_object_method): Unset object
3644         value in all cases, not only in async case.
3645
3646 2005-06-29  Colin Walters  <walters@verbum.org>
3647
3648         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3649         name_call for keeping track of any outgoing GetNameOwner call.
3650         Also add for_owner and associated.
3651         (struct _DBusGProxyManager): Add owner_names, which is hash table
3652         that maps a base name to a list of names it owns (that we're
3653         interested in).  Add pending_nameowner_calls which is a list of
3654         all outstanding GetNameOwner; avoids us having to iterate over
3655         every proxy.  Add unassociated_proxies which keeps track of name
3656         proxies with no associated name owner.
3657         (dbus_g_proxy_manager_unref): Destroy owner_names.
3658         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3659         name refcounts.
3660         (find_name_in_info, name_owner_foreach)
3661         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3662         (dbus_g_proxy_manager_monitor_name_owner)
3663         (dbus_g_proxy_manager_unmonitor_name_owner)
3664         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3665         New functions; they manipulate the owner_names mapping.
3666         (got_name_owner_cb): New function.
3667         (get_name_owner): New function, extracted from
3668         dbus_g_proxy_new_for_name_owner.
3669         (dbus_g_proxy_manager_register): For now we need to keep track of
3670         all NameOwnerChanged.  Also if the proxy is for a name, if we
3671         don't already know the name owner, queue a new GetNameOwner
3672         request and add it to our list of unassociated proxies.  Otherwise
3673         inc the refcount.
3674         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3675         cancel any pending GetNameOwner call, etc.
3676         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3677         the owner_names mapping to look up the current names for the
3678         signal source, and dispatch to any proxies for that name.
3679         (dbus_g_proxy_new): Initialize new members.
3680         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3681         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3682         (dbus_g_pending_call_end_valist): New function, extracted from
3683         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3684         but want to use the GLib infrastructure.  Also note how many
3685         arguments in reply were over.
3686         (dbus_g_pending_call_end): New function, just call
3687         dbus_g_pending_call_end_valist.
3688         (dbus_g_proxy_end_call_internal): Just call
3689         dbus_g_pending_call_end_valist.
3690
3691         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3692         of builtin marshaller for STRING_STRING_STRING.
3693
3694         * test/glib/test-dbus-glib.c: 
3695         * test/glib/test-service-glib.c:
3696         * test/glib/test-service-glib.xml:
3697         Extend tests to cover name proxies, destruction of owner proxies,
3698         etc.
3699         
3700         * glib/examples/example-signal-recipient.c
3701         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3702         
3703         * tools/dbus-send.c (main): Print D-BUS error name in addition
3704         to message.
3705
3706 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3707
3708         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3709         cmessage_function_handler): Patch from 
3710         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3711         by using the Py_GILState_Ensure/Release to synchronize with the
3712         python runtime.
3713         
3714 2005-06-28  Ray Strode  <rstrode@redhat.com>
3715
3716         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3717         babysitter helper process on last unref, bug #2813.
3718
3719 2005-06-27  Colin Walters  <walters@verbum.org>
3720
3721         * test/glib/test-dbus-glib.c: 
3722         * test/glib/test-service-glib.c:
3723         * test/glib/test-service-glib.xml:
3724         Test hash table signal emitting.
3725
3726         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3727         types to their fundamental basis types, since this is what
3728         marshallers operate on.  Also add an entry for VOID__BOXED.
3729         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3730
3731 2005-06-26  Havoc Pennington  <hp@redhat.com>
3732
3733         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3734         from Don Park
3735
3736 2005-06-26  Colin Walters  <walters@verbum.org>
3737
3738         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3739         (dbus_g_error_set): New public function from its ashes; used by
3740         both service-side method implementation and GLib bindings
3741         internals.
3742         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3743         (_dbus_glib_test): Add some tests.
3744
3745         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3746
3747         * test/glib/test-service-glib.c (my_object_throw_error): Use
3748         dbus_g_error_set.
3749
3750         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3751         errors thrown by dbus_g_error_set.
3752
3753         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3754
3755         * glib/dbus-gparser.c (validate_signature): Ditto.
3756
3757         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3758         (dbus_g_proxy_end_call_internal): Ditto.
3759
3760         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3761         converts DBUS_ERROR_x to DBUS_GERROR_x.
3762         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3763
3764         * doc/TODO: Remove error TODO.
3765
3766         * doc/dbus-tutorial.xml: Update with documentation about error
3767         handling.
3768
3769         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3770         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3771         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3772
3773 2005-06-22  Colin Walters  <walters@verbum.org>
3774         
3775         Patch from Ross Burton <ross@openedhand.com>
3776
3777         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3778
3779 2005-06-20  Colin Walters  <walters@verbum.org>
3780
3781         * configure.in: Add glib/examples.
3782
3783         * glib/Makefile.am: Add examples/
3784
3785         * glib/examples/.cvsignore
3786         * glib/examples/Makefile.am
3787         * glib/examples/example-client.c
3788         * glib/examples/example-service.c
3789         * glib/examples/example-service.xml
3790         * glib/examples/example-signal-emitter.c
3791         * glib/examples/example-signal-emitter.xml
3792         * glib/examples/example-signal-recipient.c:
3793         New files; GLib binding examples, ported from
3794         python/examples.
3795
3796 2005-06-20  Colin Walters  <walters@verbum.org>
3797
3798         * dbus/dbus-glib.h: 
3799         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3800         dbus_g_proxy_call.
3801
3802         * glib/dbus-binding-tool-glib.c: 
3803         * doc/dbus-tutorial.xml: 
3804         * test/glib/test-dbus-glib.c: Update for rename.
3805         
3806 2005-06-20  Colin Walters  <walters@verbum.org>
3807
3808         Patch suggested by Ross Burton <ross@openedhand.com>
3809
3810         * glib/dbus-gobject.c (export_signals): Free signal name.
3811         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3812         memory leak.  Add a bit of documentation.
3813         (dbus_g_method_return_error): Free context, and note we do
3814         so.
3815
3816 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3817
3818         * dbus/dbus-glib.h:
3819         * glib/dbus-gobject.c:
3820         * glib/dbus-gproxy.c:
3821         * glib/dbus-gvalue.c: Predeclare structs as 
3822         typedef struct _Something Something instead of 
3823         typedef struct Something Something, so we can 
3824         redeclare the prototypes. Other GNOME libraries 
3825         do this already.
3826
3827 2005-06-17  Colin Walters  <walters@verbum.org>
3828
3829         * tools/dbus-names-model.c (have_names_notify): Fix call
3830         to dbus_g_proxy_end_call.
3831         
3832 2005-06-17  Colin Walters  <walters@verbum.org>
3833
3834         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3835         spew warnings if we get malformed remote signals.
3836
3837         * glib/dbus-gobject.c (propsig_iterate): New function.
3838         (lookup_object_info): New function, extracted from
3839         lookup_object_and_method.
3840         (introspect_properties, introspect_signals): Delete; these
3841         are merged into write_interface.
3842         (write_interface): Write out signals and properties here;
3843         dump the org.gtk.object stuff and use the interface given
3844         in the introspection data blob.  Also fix up property XML.
3845         (lookup_values): New function.
3846         (introspect_interfaces): Gather a mapping from interface to a
3847         list of its methods, signals, and properties, then write out
3848         each interface.
3849         (lookup_object_and_method): Use lookup_object_info.
3850         (struct DBusGSignalClosure): Add interface.
3851         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3852         we can just use the constant data.
3853         (dbus_g_signal_closure_finalize): Don't free signal name.
3854         (signal_emitter_marshaller): Use interface from signal closure.
3855         (export_signals): Only export signals mentioned in introspection
3856         blob.
3857         (dbus_g_connection_register_g_object): Warn if we have no
3858         introspection data for an object.
3859         (funcsig_equal): Remove unused variable.
3860         (dbus_g_object_register_marshaller): Take varargs instead of
3861         list.
3862         (dbus_g_object_register_marshaller_array): New function,
3863         extracted from old dbus_g_object_register_marshaller.
3864
3865         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3866         signals and property data.
3867         (write_quoted_string): New function, extracted from generate_glue.
3868         (generate_glue): Write signals and properties to introspection
3869         blob.
3870
3871         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3872         exported_signals and exported_properties.
3873         (dbus_g_object_register_marshaller): Update prototype.
3874         (dbus_g_object_register_marshaller_array): Prototype.
3875         
3876         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3877
3878         * test/glib/test-service-glib.c: Add new test signals and method
3879         to emit them.
3880
3881         * test/glib/test-service-glib.xml: Add some test signals.
3882
3883         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3884         and my-object-marshal.h
3885         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3886         my-object-marshal.c.
3887         (my-object-marshal.c, my-object-marshal.h): Implement.
3888
3889         * test/glib/.cvsignore: Update.
3890
3891         * doc/TODO: Remove two GLib TODO items fixed by this
3892         patch.
3893
3894 2005-06-16  Colin Walters  <walters@verbum.org>
3895
3896         * doc/TODO: Update for GLib bindings.
3897         
3898 2005-06-16  Colin Walters  <walters@verbum.org>
3899
3900         * glib/dbus-binding-tool-glib.c:
3901         * glib/dbus-gobject.c:
3902         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3903         from Ross Burton, for his GLib bindings work.
3904
3905 2005-06-16  Colin Walters  <walters@verbum.org>
3906
3907         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3908         to iterate instead of walking to G_TYPE_INVALID.
3909
3910         Patch based on a patch from Ryan Gammon.
3911
3912 2005-06-16  Colin Walters  <walters@verbum.org>
3913
3914         * bus/bus.c (bus_context_new): Set parser to NULL
3915         after we unref it (Patch from Chris Boscolo, #2174).
3916         
3917 2005-06-16  Colin Walters  <walters@verbum.org>
3918
3919         * python/dbus_bindings.pyx.in: Import size_t,
3920         __int64_t, __uint64_t, and __signed.
3921
3922         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3923         Define cmsg struct, output it.
3924         (_dbus_read_credentials_unix_socket):
3925         Use cmsg struct.
3926         
3927         Patch from Joe Markus Clarke for FreeBSD support.
3928         
3929 2005-06-16  Colin Walters  <walters@verbum.org>
3930
3931         * tools/dbus-send.c (append_array): Use strtok.
3932         (append_dict): New function.
3933         (type_from_name): New function, extracted from main.
3934         (main): Handle sending dicts.
3935
3936         * tools/dbus-print-message.c (print_iter): Print dict
3937         entries.
3938         
3939 2005-06-16  Colin Walters  <walters@verbum.org>
3940
3941         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3942         values as the empty string (#2948).
3943         
3944 2005-06-16  Colin Walters  <walters@verbum.org>
3945
3946         * dbus/Makefile.am:
3947         * mono/doc/Makefile.am:
3948         * test/glib/Makefile.am:
3949
3950         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3951
3952 2005-06-16  Colin Walters  <walters@verbum.org>
3953
3954         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3955         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3956
3957         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3958         Increment pointer after swapping fixed array.  Add assertion
3959         for array length.
3960                 
3961 2005-06-15  Colin Walters  <walters@verbum.org>
3962
3963         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3964         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3965         
3966 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3967
3968         * NEWS: Update to 0.34
3969
3970 2005-06-15  David Zeuthen  <davidz@redhat.com>
3971
3972         * configure.in (LT_CURRENT): Revert back to 1 as the library
3973         hasn't changed and we've certainly not committed to protocol
3974         stability yet.  All this does is to break ABI. See commit note
3975         from hp@redhat.com 2005-05-05 for details.
3976         
3977 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3978
3979         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3980         (_dbus_connection_run_builtin_filters): New method
3981         (dbus_connection_dispatch): Run the builtin filters which in turn
3982         runs the peer filter which handles Ping messages.
3983
3984         * doc/TODO: 
3985          - Ping isn't handled: This patch fixes it
3986          
3987          - Add a test case for the Ping message: added TODO item
3988
3989 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3990
3991         * dbus/dbus-message.c:
3992         (dbus_message_has_path): New method
3993         (dbus_message_has_interface): New method
3994         (dbus_message_has_member): New method
3995
3996         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3997         New method
3998
3999         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4000         the keyring directory is private to the user
4001
4002         * doc/TODO:
4003          - The convenience functions in dbus-bus.h should perhaps have
4004          the signatures that they would have if they were autogenerated
4005          stubs. e.g. the acquire service function. We should also evaluate
4006          which of these functions to include, in light of the fact that
4007          GLib/Qt native stubs will probably also exist.: Punted
4008
4009          - add dbus_message_has_path(), maybe has_member/interface:
4010          fixed in this patch
4011
4012          - in dbus-keyring.c, enforce that the keyring dir is not
4013          world readable/writable: Fixed in this patch
4014
4015 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4016
4017         * dbus/dbus-marshal-validate.h: Added a new validation
4018         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4019         out of memory errors when validating signitures
4020
4021         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4022         in places where we previously used DBUS_VALID and a FALSE return 
4023         value to indicate OOM
4024         
4025         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4026         Use a stack to track the number of elements inside containers.  The 
4027         stack values are then used to validate that dict entries have only two
4028         elements within them.
4029         (validate_body_helper): check the reason for failure when validating
4030         varients
4031         
4032         * dbus/dbus-message.c (load_message): use 
4033         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4034         DBUS_VALID and a FALSE return value to indicate OOM
4035
4036         * doc/TODO: remove "- validate dict entry number of fields" as this
4037         patch fixes it
4038
4039 2005-06-14  David Zeuthen  <davidz@redhat.com>
4040
4041         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4042         watches (if applicable) and add new watches
4043
4044         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4045         (main): Setup SIGIO signal handler if using D_NOTIFY
4046
4047         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4048
4049         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4050         (merge_included): Also merge conf_dirs list
4051         (bus_config_parser_unref): Clear conf_dirs list
4052         (include_dir): Add directory to conf_dirs list
4053         (bus_config_parser_get_conf_dirs): New function
4054
4055         * bus/dir-watch.[ch]: New files
4056
4057         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4058
4059         * configure.in: Add checks for D_NOTIFY on Linux
4060
4061 2005-06-14  Colin Walters  <walters@verbum.org>
4062
4063         * glib/dbus-binding-tool-glib.c:
4064         * glib/dbus-gobject.c:
4065         * glib/dbus-gvalue.c: Fix indentation and brace style.
4066         
4067 2005-06-14  Ross Burton <ross@openedhand.com>.
4068
4069         * glib/dbus-glib.h: Make DBusGMethodInvocation
4070         a private structure.  Rearrange prototypes a bit.
4071         
4072         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4073         documentation for first_arg_type.
4074         
4075         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4076         here, add documentation.  Move dbus_g_method_return
4077         and dbus_g_method_return_error into public API
4078         section.
4079
4080 2005-06-14  Colin Walters  <walters@verbum.org>
4081
4082         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4083         Add missing return statements, noticed by Ross Burton.
4084         
4085 2005-06-13  Ross Burton <ross@openedhand.com>.
4086
4087         * glib/dbus-gobject.c: Handle errors on message
4088         demarshalling by sending error message back.
4089         * glib/dbus-gvalue.c: Initialize return variables.
4090
4091 2005-06-13  Colin Walters  <walters@verbum.org>
4092
4093         * glib/Makefile.am: Fix thinko in last patch.
4094
4095 2005-06-13  Colin Walters  <walters@verbum.org>
4096
4097         * glib/Makefile.am: Move dbus-gtype-specialized.c
4098         and dbus-gtype-specialized.h into a _HEADERS variable,
4099         install them.
4100
4101 2005-06-12  Colin Walters  <walters@verbum.org>
4102
4103         Async signals and various bugfixes and testing by
4104         Ross Burton <ross@openedhand.com>.
4105
4106         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4107         (dbus_gvalue_genmarshal_name_from_type)
4108         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4109         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4110         (dbus_g_value_types_init, dbus_gtype_from_signature)
4111         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4112         (dbus_gtypes_from_arg_signature): New function prototypes.
4113         (dbus_gvalue_demarshal): Take context and error arguments.
4114         (dbus_gvalue_demarshal_variant): New function.
4115         (dbus_gvalue_demarshal_message): New function.
4116         (dbus_gvalue_store): Delete.
4117
4118         * glib/dbus-gvalue.c:
4119
4120         File has been almost entirely rewritten; now we special-case
4121         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4122         hash tables correctly, etc.  Full support for recursive values
4123         is not yet complete.
4124
4125         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4126         argument of signal to G_TYPE_POINTER since we now pass a
4127         structure.
4128         (lookup_g_marshaller): Delete in favor of
4129         _dbus_gobject_lookup_marshaller.
4130         (marshal_dbus_message_to_g_marshaller): Use
4131         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4132         to handle remote signal callbacks.
4133         (dbus_g_proxy_new_from_proxy): New function; creates a new
4134         DBusGProxy by copying an existing one.
4135         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4136         (dbus_g_proxy_get_path): New functions.
4137         (dbus_g_proxy_marshal_args_to_message): New function;
4138         factored out of existing code.
4139         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4140         from a varargs array.
4141         (dbus_g_proxy_begin_call_internal): New function.
4142         (dbus_g_proxy_end_call_internal): New function.
4143         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4144         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4145         after collecting args into value array.
4146         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4147         invoke dbus_g_proxy_end_call_internal.
4148         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4149         end_call_internal.
4150         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4151         types.
4152         (array_free_all): New function.
4153         (dbus_g_proxy_add_signal): Take GTypes.
4154
4155         * glib/dbus-gobject.h:
4156         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4157         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4158         Prototype.
4159
4160         * glib/dbus-gobject.c: Add a global marshal_table hash which
4161         stores mappings from type signatures to marshallers.  Change lots
4162         of invocations of dbus_gtype_to_dbus_type to
4163         dbus_gtype_to_signature.
4164         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4165         (introspect_signals): Fix test for query.return_type.
4166         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4167         (invoke_object_method): Many changes.  Handle asynchronous
4168         invocations.  Convert arguments with
4169         dbus_gvalue_demarshal_message.  Handle errors.  Use
4170         DBusSignatureIter instead of strlen on args. Handle all arguments
4171         generically.  Special-case variants.
4172         (dbus_g_method_return, dbus_g_method_return_error): New function.
4173         (DBusGSignalClosure): New structure, closes over signal
4174         information.
4175         (dbus_g_signal_closure_new): New function.
4176         (dbus_g_signal_closure_finalize): New function.
4177         (signal_emitter_marshaller): New function; is special marshaller
4178         which emits signals on bus.
4179         (export_signals): New function; introspects object signals and
4180         connects to them.
4181         (dbus_g_object_type_install_info): Take GType instead of
4182         GObjectClass.
4183         (dbus_g_connection_register_g_object): Invoke export_signals.
4184         (dbus_g_connection_lookup_g_object): New function.
4185         (DBusGFuncSignature) New structure; used for mapping type
4186         signatures to marshallers.
4187         (funcsig_hash): New function; hashes DBusGFuncSignature.
4188         (funcsig_equal): New function; compares DBusGFuncSignature.
4189         (_dbus_gobject_lookup_marshaller): New function.
4190         (dbus_g_object_register_marshaller): New function; used to
4191         register a marshaller at runtime for a particular signature.
4192
4193         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4194
4195         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4196         which notes a server method implementation should be
4197         asynchronous.
4198
4199         * glib/dbus-binding-tool-glib.c
4200         (dbus_binding_tool_output_glib_server): Call
4201         dbus_g_value_types_init.
4202         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4203         variants specially.
4204         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4205         of a lookup function.
4206         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4207         (write_untyped_out_args): New method; write output arguments.
4208         (write_formal_declarations_for_direction): Function for
4209         writing prototypes.
4210         (write_formal_parameters_for_direction): Function for
4211         writing implementations.
4212         (write_typed_args_for_direction): Function for writing
4213         arguments prefixed with GTypes.
4214         (write_async_method_client): Write out async version
4215         of method.
4216
4217         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4218         (dbus_g_type_get_marshal_name): Move mapping from GType
4219         to marshal name into here.
4220         (dbus_g_type_get_c_name): Move into here.
4221         (compute_marshaller): Convert signature to type with
4222         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4223         (compute_marshaller_name): Ditto.
4224         (compute_marshaller): Handle async signal annotations.
4225         (gather_marshallers): Return if we don't have a known
4226         prefix.
4227         (generate_glue): Collect introspection blob here, and
4228         write all of the blob at the end.  This allows an object
4229         with multiple interfaces to work.
4230         Mark async methods in introspection blob.
4231
4232         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4233         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4234         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4235
4236         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4237         avoids people accidentally using DBUS_TYPE_* which should
4238         not be necessary anymore.
4239         Do include dbus-gtype-specialized.h, which are utilities
4240         for GLib container types.
4241         Add various #defines for types such as
4242         DBUS_TYPE_G_BOOLEAN_ARRAY.
4243         (DBusGValueIterator, DBusGValue): Define, not fully used
4244         yet.
4245         (dbus_g_value_get_g_type): Type for recursive value.
4246         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4247         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4248         (dbus_g_value_free): Prototypes.
4249         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4250         (dbus_g_proxy_set_interface): Prototype.
4251         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4252         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4253         types.
4254         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4255         Accessors.
4256         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4257         doing async invocations.
4258         (dbus_g_method_return, dbus_g_method_return_error):
4259         Prototypes.
4260         * doc/dbus-tutorial.xml: Update GLib section.
4261         
4262         * tools/dbus-viewer.c (load_child_nodes): Update
4263         for new invocation type of dbus_g_proxy_end_call.
4264         (load_from_service_thread_func): Ditto.
4265
4266         * tools/print-introspect.c (main): Ditto.
4267
4268         * tools/dbus-names-model.c (have_names_notify)
4269         (names_model_reload, names_model_set_connection)
4270         Use GTypes.
4271
4272         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4273         needed since Python bindings use GLib bindings.
4274
4275         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4276         Add --prefix argument.
4277
4278         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4279         unneeded --ignore-unsupported arg.
4280         
4281         * test/glib/test-service-glib.c: 
4282         * test/glib/test-service-glib.xml:
4283         * test/glib/test-dbus-glib.c: Add many more tests.
4284
4285 2005-06-06  David Zeuthen  <davidz@redhat.com>
4286
4287         * doc/TODO: Add item about need to remove deprecated functions.
4288
4289         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4290
4291         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4292         to repair the ABI which was broken with the last commit.
4293
4294 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4295
4296         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4297         (dbus_connection_disconnect): renamed to dbus_connection_close 
4298         for API symmetry with dbus_connection_open
4299         (_dbus_connection_open_internal): 
4300         s/dbus_connection_disconnect/dbus_connection_close
4301
4302         * dbus/dbus-bus.c (dbus_bus_get):
4303         s/dbus_connection_disconnect/dbus_connection_close
4304
4305         * bus/connection.c (bus_connections_unref, 
4306         bus_connections_setup_connection, bus_connections_expire_incomplete):
4307         s/dbus_connection_disconnect/dbus_connection_close
4308
4309         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4310         kill_client_connection_unchecked, check_hello_connection):
4311         s/dbus_connection_disconnect/dbus_connection_close
4312
4313         * bus/bus.c (new_connection_callback):
4314         s/dbus_connection_disconnect/dbus_connection_close
4315
4316         * tools/dbus-send.c (main):
4317         s/dbus_connection_disconnect/dbus_connection_close
4318
4319         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4320         s/dbus_connection_disconnect/dbus_connection_close
4321         
4322         * test/test-service.c (path_message_func, filter_func):
4323         s/dbus_connection_disconnect/dbus_connection_close
4324         
4325         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4326         
4327 2005-05-25  Colin Walters  <walters@verbum.org>
4328
4329         * dbus/dbus-protocol.h: Move various bus service #defines such
4330           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4331           dbus/dbus-shared.h.
4332         * dbus/dbus-shared.h: Various defines moved here.
4333         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4334
4335 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4336
4337         * python/__init__.py: Python bindings deserve a minor version
4338         update.  Upped to (0, 40, 2)
4339
4340 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4341
4342         * python/decorators.py: add explicitly_pass_message decorator
4343         for passing in the dbus message as keyword for edge case signal
4344         handling
4345
4346         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4347         to conform with what dbus expects for match rules
4348         (SignalMatchRule.execute): add the dbus message as a keyword
4349         if the signal handler has requested it
4350
4351         * python/examples/example/signal-recipient.py: added some more
4352         examples on how to hook up to signals
4353
4354 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4355
4356         * python/decorators.py: import dbus_bindings
4357
4358         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4359         SignalMatchNode): new classes that implement wildcard signal
4360         callback matching using a tree lookup. Heavily modified from a
4361         patch sent by Celso Pinto (fd.o bug #3241)
4362
4363         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4364         use new match classes to handle signals.
4365
4366 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4367         
4368         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4369
4370 2005-05-18  Havoc Pennington  <hp@redhat.com>
4371
4372         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4373         gettext. Not really worth requiring yet perhaps, but any
4374         production quality 1.0 would require it so we should go ahead and
4375         get things set up. We do have a couple token calls to
4376         bindtextdomain in the code already.
4377
4378 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4379
4380         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4381         when using recursive g_main_loops
4382
4383         * python/_dbus.py (class Bus): add the ProxyObjectClass
4384         alias for ProxyObject to make it easier for the Twisted 
4385         networking framework to integrate dbus.
4386
4387         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4388         alias for ProxyMethod to make it easier for the Twisted 
4389         networking framework to integrate dbus. 
4390
4391 2005-05-11  Ross Burton  <ross@openedhand.com>
4392
4393         * glib/dbus-glib-tool.c: Add --prefix argument.
4394         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4395         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4396         Add prefix argument.
4397         (generate_glue): Pass prefix argument down.
4398         (dbus_binding_tool_output_glib_server): Pass prefix to
4399         glib-genmarshal.
4400         
4401 2005-05-11  Colin Walters  <walters@verbum.org>
4402
4403         * tools/dbus-send.c (append_array): New function.
4404         (append_arg): Broken out from main.
4405         (main): Add cheesy hack to send arrays and variants.
4406         (usage): Update.
4407         * tools/dbus-print-message.c (print_iter): Broken out
4408         from main.
4409
4410 2005-05-11  Colin Walters  <walters@verbum.org>
4411
4412         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4413         New function, returns signature string for signature iter.
4414         * dbus/dbus-signature.h: Prototype it.
4415         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4416         New function, returns signature string for message iter.
4417         (dbus_message_iter_get_array_len): New function, returns
4418         length of array.
4419         (dbus_message_iter_get_fixed_array): Fix assertion; this
4420         function should be used when the iter is pointing to the
4421         contents of an array
4422         * dbus/dbus-message.h: Prototypes.
4423         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4424         New function; returns length of an array.
4425         * dbus/dbus-marshal-recursive.h: Prototype it.
4426         
4427 2005-05-11  Colin Walters  <walters@verbum.org>
4428
4429         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4430         compilation error.
4431         
4432 2005-05-08  Havoc Pennington  <hp@redhat.com>
4433
4434         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4435         daemon's pid, not the parent's pid, to the file descriptor.
4436         Reported by Taj Morton.
4437
4438 2005-05-05  Havoc Pennington  <hp@redhat.com>
4439
4440         * configure.in (LT_*): add notes on how the libtool versioning
4441         works to save thinking. Increment soname to indicate protocol
4442         breakage (though really the library interface hasn't changed I
4443         guess)
4444
4445         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4446         verify the GUID received from server matches what we were
4447         expecting, if we had an expectation
4448
4449         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4450         (_dbus_auth_get_guid_from_server): new function
4451         (send_begin): parse the OK args
4452
4453         * doc/dbus-specification.xml: add GUID to the auth protocol
4454
4455 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4456
4457         * Fix my name in previous changelog ;)
4458
4459         * python/proxies.py (ProxyObject.__getattr__): add further patch
4460         from Anthony Baxter to throw an AttributeError when python 
4461         __special__ functions are called instead of marshling them over 
4462         the bus (Bug#1685 comment 3).
4463
4464 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4465
4466         * python/Makefile.am: changed to use pyexecdir for the binding
4467         shared libraries (Bug#2494)
4468
4469         * python/exceptions.py: bring exceptions over from the bindings
4470         so they can be used in applications (Bug#2036)
4471         Make all exceptions derive from DBusException
4472
4473         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4474         of classes so that print obj doesn't throw an exception (Bug #1685)
4475
4476 2005-05-03  Ross Burton  <ross@openedhand.com>
4477
4478         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4479         Return if we get an error during registration.  Set up a
4480         weak reference on object to unregister if object is destroyed.
4481         (unregister_gobject): New function.
4482         
4483 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4484
4485         * python/dbus_bindings.pyx.in: 
4486         - added new type classes for hinting to the marashaler what type 
4487         to send over the wire
4488         - added int16 and uint16 marshalers
4489         - Fixed a bug in the type constants that caused int32 to go out
4490         as uint16 over the wire
4491         * python/dbus.py: split up into different files and renamed _dbus.py
4492         * python/__init__.py, python/_util.py, python/decorators.py, 
4493         python/exceptions.py, python/proxies.py, python/services.py,
4494         python/types.py: new files split off from dbus.py
4495         * python/Makefile.am: Add new files, remove dbus.py and 
4496         install all python files to <python module dir>/dbus
4497         * python/examples/*: Added #!/usr/bin/env python to the top of
4498         every example.  Patch provided by Tatavarty Kalyan
4499
4500 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4501
4502         * NEWS: Update to 0.33
4503
4504 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4505
4506         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4507         method for doing async calls
4508         (_pending_call_notification): New C function for handling pendning call
4509         callbacks
4510         (set_notify): New method for setting pending call notification
4511         
4512         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4513         Async capabilities added to remote method calls
4514         (Sender): class removed
4515         (RemoteService): class removed
4516         (ObjectTree): class removed for now
4517         (RemoteObject): Renamed to ProxyObject
4518         (RemoteMethod): Renamed to ProxyMethod
4519         (method): Decorator added for decorating python methods as dbus methods
4520         (signal): Decorator added for decorating python methods as signal emitters
4521         (ObjectType): Metaclass added for generating introspection data and the
4522         method callback vtable
4523         (Interface): Wrapper class added to wrap objects in a dbus interface
4524         (Object): Uses ObjectType as its metaclass and exports Introspect
4525         of the org.freedesktop.DBus.Introspectable interface
4526         (ValidationException, UnknownMethodException): new exceptions
4527
4528         * python/examples/*: Modified to fit with the new bindings
4529
4530 2005-04-23  Havoc Pennington  <hp@redhat.com>
4531
4532         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4533         reported by Tony Houghton
4534
4535         * test/test-service.c (main): test
4536         dbus_connection_get_object_path_data()
4537
4538         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4539         the exact_match
4540         (_dbus_object_tree_get_user_data_unlocked): new function used by
4541         dbus_connection_get_object_path_data()
4542         (do_register): add assertion test for get_user_data_unlocked
4543         (object_tree_test_iteration): more tests
4544
4545         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4546         new function from Dan Reed to let you get the user data from 
4547         dbus_connection_register_object_path()
4548
4549 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4550
4551         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4552         in numerous places that did not account for the NULL terminator
4553         (signature_from_seed): changed the manual string copy loop to 
4554         just use strcpy instead
4555         make check should now pass
4556
4557 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4558
4559         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4560         so that it allows messages that are not signals to pass in 
4561         NULL as the interface.
4562
4563 2005-04-18  David Zeuthen  <davidz@redhat.com>
4564
4565         * glib/dbus-gmain.c (io_handler_destroy_source): 
4566         (timeout_handler_destroy_source, connection_setup_free): 
4567         Also unref the source to avoid memory leaks.
4568
4569 2005-04-13  David Zeuthen  <davidz@redhat.com>
4570
4571         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4572         more reasonable, yet still totally arbitrary, value :-). 
4573
4574 2005-04-13  David Zeuthen  <davidz@redhat.com>
4575
4576         * doc/TODO: Added an "important for 1.0" item about selinux
4577         allow/deny messages
4578
4579 2005-04-13  David Zeuthen  <davidz@redhat.com>
4580
4581         * bus/selinux.c: Add c-file-style to top of file
4582         (log_audit_callback): Don't free the data here anymore
4583         (bus_selinux_check): Don't take spid and tpid since appending
4584         that to auxdata may OOM.
4585         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4586         to the caller if we are OOM by taking an error object.
4587         (bus_selinux_allows_send): -do-
4588
4589         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4590         and bus_selinux_allows_send
4591
4592         * bus/bus.c (bus_context_check_security_policy): Pass error and
4593         pass on OOM thrown by bus_selinux_allows_send()
4594
4595         * bus/services.c (bus_registry_acquire_service): Pass error and
4596         pass on OOM thrown by bus_selinux_allows_acquire_service()
4597
4598 2005-04-13  Havoc Pennington  <hp@redhat.com>
4599
4600         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4601         message at a time to avoid monopolizing the main loop, bug 
4602         #2953 from Benjamin Otte
4603
4604 2005-04-09  Havoc Pennington  <hp@redhat.com>
4605
4606         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4607         possible overlap, fix from Daniel Reed
4608         (fixup_alignment): fix signedness warnings
4609         (_dbus_string_append_unichar): ditto
4610
4611 2005-04-09  Havoc Pennington  <hp@redhat.com>
4612
4613         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4614
4615         * glib/dbus-glib-tool.c (main): fix warning
4616
4617         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4618
4619         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4620         add a new function that can be used in simple applications that
4621         don't have a main loop and are willing to block
4622
4623 2005-04-05  David Zeuthen  <davidz@redhat.com>
4624
4625         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4626
4627         * glib/dbus-gmain.c:
4628         (io_handler_destroy_source): Remove from list of IO handlers
4629         of the ConnectionSetup object
4630         (timeout_handler_destroy_source): -do- for timeout handlers
4631         (io_handler_source_finalized): Don't remove from list since
4632         we now do that in io_handler_destroy_source(). Renamed from
4633         io_handler_source_destroyed
4634         (timeout_handler_source_destroyed): -do- for timeout handlers
4635         (connection_setup_free): It is now safe to iterate over all
4636         IO and timeout handlers as the _destroy_source removes them
4637         from the list synchronously
4638
4639 2005-03-30  Havoc Pennington  <hp@redhat.com>
4640
4641         * configure.in: change check to gtk 2.4
4642
4643         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4644         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4645         to 2.4
4646
4647 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4648
4649         * News: Update 0.32
4650
4651         * HACKING: Fixed realease instructions.  configure.in should be updated to
4652           the next release by the person who made the last release.
4653
4654 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4655
4656         * python/lvalue_cast_post_process.py - removed.  Patch has been
4657           submitted to Pyrex maintainers that fixes gcc4.0 errors
4658
4659         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4660
4661 2005-03-24  Daniel Reed  <n@ml.org>
4662
4663         * tools/Makefile.am: Make print-introspect and
4664         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4665
4666 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4667
4668         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4669
4670         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4671           had in Red Hat packages for a while but for some reason never 
4672           got merged upstream
4673           (_dbus_is_a_number): New checks if a string
4674           can be converted to a number and does the conversion if it can
4675           (_dbus_user_database_lookup): Add check to see if the given username
4676           is a udi.  This allows udi's to be used instead of usernames in the
4677           config file.
4678           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4679           is a gdi.  This allows gdi's to be used instead of groupnames in the
4680           config file.
4681
4682 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4683
4684         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4685           code so that it compiles with gcc4.0
4686
4687         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4688           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4689           results back to dbus_binding.c
4690
4691 2005-03-20  Colin Walters  <walters@verbum.org>
4692
4693         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4694
4695         * configure.in: Require GTK+ 2.6.
4696         
4697 2005-03-20  Colin Walters  <walters@verbum.org>
4698
4699         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4700
4701 2005-03-17  Tom Parker  <palfrey@tevp.net>
4702
4703         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4704         print DBUS_UID_UNSET; instead print passed username.  Also
4705         be sure to actually use gid looked up in cache.
4706         
4707         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4708         for DBUS_GID_UNSET and groupname.
4709
4710 2005-03-17  Colin Walters  <walters@verbum.org>
4711
4712         * bus/print-introspect.c: Move to tools/.
4713         * bus/run-with-tmp-session-bus.sh: Ditto.
4714         
4715         * glib/Makefile.am (dbus-glib-bindings.h): Move
4716         generation to tools/Makefile.am.
4717
4718         * test/glib/run-test.sh: Update to handle move
4719         of run-with-tmp-session-bus.sh.
4720
4721         * test/glib/test-service-glib.c: Update to handle
4722         move of dbus-glib-bindings.h.
4723
4724         * tools/print-introspect.c: Moved here
4725         from bus/, and ported to GLib bindings.
4726
4727         * tools/run-with-tmp-session-bus.sh: Moved here
4728         from bus/.
4729
4730         * tools/Makefile.am: Generate dbus-glib-bindings.h
4731         and dbus-bus-introspect.xml here.
4732
4733         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4734         Update.
4735
4736 2005-03-17  Colin Walters  <walters@verbum.org>
4737
4738         * bus/driver.c (write_args_for_direction): Use
4739         _dbus_string_get_const_data to retrieve string;
4740         _dbus_string_get_const_data_len doesn't actually return
4741         a NULL-terminated substring.
4742
4743         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4744         (main): Change to use org_freedesktop_DBus_request_name
4745         instead of using g_proxy_begin_call/end_call.
4746
4747 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4748
4749         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4750         generating the finalizer.  Fixes from Ben Maurer.
4751
4752 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4753
4754         * mono/BusDriver.cs: Update method names: ListServices
4755         becomes ListNames; GetOwner becomes GetNameOwner.
4756
4757         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4758         onto the eval stack when removing the delegate.
4759
4760 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4761
4762         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4763         LT_CURRENT.  Set it to the autoconf variable.
4764                                                                                 
4765         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4766         classes that disconnects the signal handler delegate from the
4767         service object.  Fixes a big leak of proxy objects on the
4768         client side of things.  Patch from Ben Maurer
4769         <bmaurer@ximian.com>
4770
4771 2005-03-12  Colin Walters  <walters@verbum.org>
4772
4773         * bus/driver.c (write_args_for_direction): New function,
4774         parses a type signature into arguments and outputs to
4775         XML.
4776         (bus_driver_handle_introspect): Use it instead of
4777         hardcoding XML for certain signatures.
4778         
4779         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4780         dependency on dbus-daemon.
4781
4782         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4783         argument, pass it to dbus_binding_tool_output_glib_client.
4784
4785         * glib/dbus-binding-tool-glib.c
4786         (generate_client_glue): Protect against multiple inclusion.
4787         (dbus_binding_tool_output_glib_client): Add
4788         G_BEGIN_DECLS/G_END_DECLS.
4789
4790         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4791         Change to just take iface prefix directly.
4792         (write_formal_parameters): Clarify error message.
4793         (check_supported_parameters): New function; checks to see type
4794         signatures of method parameters are supported.
4795         (generate_client_glue): Handle ignore_unsupported flag.
4796         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4797         parameter.
4798
4799         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4800         --ignore-unsupported by default until glib bindings
4801         support arrays.
4802
4803 2005-03-11  Colin Walters  <walters@verbum.org>
4804
4805         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4806         install it.
4807
4808         * bus/print-introspect.c: New file; prints introspection
4809         data for a given name and object path.
4810
4811         * bus/run-with-tmp-session-bus.sh: New file, refactored
4812         from test/glib/run-test.sh.  Creates a temporary session
4813         bus and runs another program.
4814
4815         * test/glib/run-test.sh: Refactor to invoke
4816         run-with-tmp-session-bus.sh.
4817
4818         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4819         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4820         macros instead of hardcoding.
4821
4822         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4823
4824 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4825
4826         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4827         this unref; it doesn't match up evenly in some codepaths.
4828         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4829         this evenly matches with the ref near the top of this function.
4830
4831 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4832
4833         * dbus/dbus-object-tree.c
4834         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4835         and we try to unregister a path that's not registered, still go
4836         through the process of unlocking and don't just return.
4837
4838 2005-03-09  Colin Walters  <walters@verbum.org>
4839
4840         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4841         to this are generated for client-side wrappers.  Invokes a
4842         D-BUS method and returns reply values.  
4843
4844         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4845         function; writes signature string for argument direction.
4846         (write_args_for_direction): Change to pass input values directly
4847         instead of via address, and fix indentation.
4848         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4849         make generated wrappers inlineable.
4850
4851         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4852         note about using dbus_type_is_fixed.
4853
4854         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4855         dbus/dbus-signature.c as dbus_type_is_fixed.
4856
4857         All callers updated.
4858
4859         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4860         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4861
4862         * dbus/dbus-signature.h: Prototype.
4863
4864         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4865         error printf code.
4866
4867         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4868         appropriate instead of just freeing it.
4869         (main): Free returned strings using g_free.
4870
4871         * test/glib/Makefile.am (test-service-glib-glue.h)
4872         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4873
4874         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4875         simply maps a simple D-BUS type to GType.
4876         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4877         GType.
4878         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4879         initialize the value with it.
4880         (dbus_gvalue_binding_type_from_type): Unused, delete.
4881         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4882         various types instead of unmarshalling to value data directly.
4883         Remove can_convert boolean.
4884         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4885         returning directly instead of using can_convert boolean.
4886         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4887         Stores a GValue in a pointer to a value of its corresponding C
4888         type.
4889
4890         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4891         add dbus_gvalue_store.
4892
4893 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4894
4895         Fix a bunch of lifecycle and memory management problems
4896         in the mono bindings.
4897
4898         * mono/Arguments.cs (Arguments): Implement IDisposable
4899
4900         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4901         strictly a static class.
4902
4903         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4904         delegates into this file.
4905         (Connection): Implement IDisposable.
4906         (Dispose): Disconnect the connection and set the raw connection
4907         pointer to IntPtr.Zero.
4908         (~Connection): Call Dispose().
4909         (RegisterObjectPath): Added.  Manages the registration of object
4910         paths so we can cleanly disconnect them at dispose/finalize time.
4911         (UnregisterObjectPath): Ditto.
4912         (set_RawConnection): Unregister all of the object paths when
4913         changing the underlying DBusConnection.  Add them back onto the
4914         new connection, if any.
4915
4916         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4917         more unmanaged resources anymore, so it's not necessary.  Move all
4918         the DBusObjectPathVTable stuff out of here.
4919         (Handler): Save references to our delegates so that they don't get
4920         finalized.  Call Connection.RegisterObjectPath() instead of
4921         dbus_connection_register_object_path() directly.
4922         (Message_Called): Dispose the message after we're finished with
4923         it.
4924
4925         * mono/Message.cs (Message): Implement IDisposable.
4926         (Dispose): Dispose the Arguments, and set the RawMessage to
4927         IntPtr.Zero.
4928         (SendWithReplyAndBlock): We own the ref to the reply that comes
4929         back from dbus_connection_send_with_reply_and_block() so add a
4930         comment about that and unref it after we've constructed a managed
4931         MethodReturn class around it.  Fixes a big, big leak.
4932
4933         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4934         method.
4935         (BuildSignalHandler): After we've sent the Signal message, dispose
4936         of it.
4937         (BuildMethod): Dispose of the method call and reply messages after
4938         we've sent the message and extracted the data we want from the
4939         reply.
4940
4941         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4942         anymore.
4943         (Service_FilterCalled): Dispose of the message after we're
4944         finished with it.
4945
4946 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4947
4948         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4949         After we attach our pending call to the connection, unref
4950         it.  Fixes a leak.
4951  
4952         * mono/Connection.cs (set_RawConnection): Disconnect our
4953         filter and match callbacks from the old connection and
4954         reconnect them to the new connection, if any.
4955
4956         * mono/DBusType/Array.cs: "Code" is a static member, so
4957         don't use "this" to refer to it.  Fix for stricter checking
4958         in Mono 1.1.4.
4959  
4960         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4961         object path that we pass into unmanaged code.
4962  
4963         * mono/DBusType/String.cs (Append): Don't leak the string
4964         that we pass into unmanged code.
4965
4966 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4967         * NEWS: Update for 0.31
4968
4969         * configure.in: Release 0.31
4970         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4971
4972         * qt/Makefile.am: fixed build
4973
4974         * dbus/Makefile.am: soname bump for libdbus
4975
4976         * glib/Makefile.am: soname bump for libdbus-glib
4977
4978 2005-03-05  Havoc Pennington  <hp@redhat.com>
4979
4980         * dbus/dbus-sysdeps.c:
4981         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4982         value
4983         (_dbus_generate_random_bytes_buffer): fix return value
4984
4985         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4986         checks actually work, from Tom Parker <fdo@tevp.net>
4987
4988 2005-03-01  Colin Walters  <walters@verbum.org>
4989
4990         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4991         functions copied from dbus-glib-tool.c.
4992         (main): Convert lots of error code to use them.
4993         Also add some testing for introspection bits.
4994
4995 2005-03-01  Colin Walters  <walters@verbum.org>
4996         
4997         * doc/TODO: Remove introspection signature TODO.
4998
4999 2005-02-27  Colin Walters  <walters@verbum.org>
5000
5001         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5002         Change return value to const char * instead of int so we can do
5003         full signatures.
5004         (struct PropertyInfo, struct ArgInfo): Store char *.
5005         (property_info_new, arg_info_new): Update parameters, strdup.
5006         (property_info_unref, arg_info_unref): Free.
5007
5008         * glib/dbus-gidl.h: Update prototypes.
5009
5010         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5011         (validate_signature): New function, just validates signature and
5012         sets GError.
5013         (parse_property, parse_arg): Invoke validate_signature.  Store
5014         signature instead of just type code.
5015
5016         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5017         function to return a primary type for a signature, dropping
5018         information about types in container types.
5019         (dbus_gvalue_genmarshal_name_from_type)
5020         (dbus_gvalue_binding_type_from_type)
5021         (dbus_gvalue_ctype_from_type): Update to take full signature
5022          instead of type code.
5023         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5024
5025         * glib/dbus-gvalue.h: Update prototypes for above.
5026
5027         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5028         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5029         (introspect_properties, introspect_signals, write_interface):
5030         Update to handle signatures, and remove usage of
5031         _dbus_gutils_type_to_string.
5032         (handle_introspect): Print out type codes instead of e.g. "string"
5033         in hardcoded introspection XML; also use x_AS_STRING constants
5034         instead of hardcoding in string.
5035
5036         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5037         to string.  Remove usage of _dbus_gutils_type_to_string.
5038
5039         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5040
5041         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5042         deletion.
5043         
5044         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5045         (compute_marshaller_name, generate_glue): Handle signature change
5046         to string.
5047         (write_formal_parameters, write_args_for_direction): Ditto, and
5048         remove FIXME.
5049
5050         * tools/dbus-tree-view.c (type_to_string): Delete.
5051         (info_set_func_text): Update to print full signatures.
5052
5053         * test/glib/test-service-glib.xml: Change types to new
5054         introspection format.
5055
5056 2005-02-26  Havoc Pennington  <hp@redhat.com>
5057
5058         * doc/TODO: remove the "guid" item
5059
5060         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5061         (with_bus_thread_func): use open_private
5062
5063         * dbus/dbus-connection.c (dbus_connection_open_private): new
5064         function that works like the old dbus_connection_open()
5065         (dbus_connection_open): now returns an existing connection if
5066         possible
5067
5068         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5069         through the GUID to the transport
5070
5071         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5072         GUID in hex-encoded form.
5073
5074         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5075         pass GUID argument in to the transport
5076
5077         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5078         guid argument
5079
5080         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5081
5082         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5083
5084 2005-02-25  Havoc Pennington  <hp@redhat.com>
5085
5086         * doc/dbus-specification.xml: document the GUID thing
5087
5088         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5089         globally unique ID for the server, and put a "guid=hexencoded"
5090         field in the address
5091
5092         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5093
5094         * dbus/dbus-message.c: ditto
5095
5096         * dbus/dbus-dataslot.c: ditto
5097
5098         * dbus/dbus-list.c: ditto
5099
5100         * dbus/dbus-internals.h: wait, just include
5101         dbus-threads-internal.h here
5102         
5103         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5104         use in main library
5105
5106         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5107
5108 2005-02-24  Colin Walters  <walters@verbum.org>
5109
5110         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5111
5112 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5113
5114         * glib/Makefile.am: added dbus-gobject.h to sources list
5115         so distcheck doesn't fail
5116         
5117 2005-02-24  Havoc Pennington  <hp@redhat.com>
5118
5119         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5120         you must disconnect before unref, since locking and other things
5121         are screwed up otherwise. Fix assorted other locking stuff.
5122
5123         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5124         fix compilation
5125
5126         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5127         into a private header and don't export from the library
5128
5129         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5130
5131 2005-02-24  Colin Walters  <walters@verbum.org>
5132         
5133         * dbus/dbus-signature.c: New file; implements various functions
5134         related to type signatures.  Includes an interator for parsing,
5135         validation functions.
5136         (dbus_type_is_basic): Moved here from
5137         dbus-marshal-basic.c:_dbus_type_is_basic.
5138         (dbus_type_is_container): Moved here from
5139         dbus-marshal-basic.c:_dbus_type_is_container.
5140
5141         All callers of _dbus_type_is_container and _dbus_type_is_basic
5142         updated, and include dbus-signature.h.
5143
5144         * dbus/dbus-signature.h: New file; prototypes for the above.
5145
5146         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5147         dbus-signature.h.
5148
5149         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5150         function factored out of _dbus_first_type_in_signature.
5151         (_dbus_first_type_in_signature_c_str): New function; returns first
5152         type code for a type signature character.
5153
5154         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5155         handle function moves.
5156
5157         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5158
5159         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5160         function; skips to next complete type in type signature.
5161         Implemented using previous skip_one_complete_type.  Now
5162         skip_one_complete_type just delegates to
5163         _dbus_type_signature_next.
5164
5165         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5166         to dbus-signature.c
5167         (_dbus_type_is_container): Ditto.
5168
5169         * doc/dbus-specification.xml: Update introspection sample to
5170         use real type signatures.
5171
5172         * dbus/dbus-test.h: Prototype signature test.
5173
5174         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5175         signature tests.
5176
5177         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5178
5179 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5180
5181         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5182         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5183
5184 2005-02-21  Colin Walters  <walters@verbum.org>
5185
5186         * dbus/dbus-test-main.c (main): Take optional specific test
5187         argument.
5188
5189         * dbus/dbus-test.c (run_test): New function, runs a test function
5190         with no data directory.
5191         (run_data_test): Like above, but takes data directory.
5192         (dbus_internal_do_not_use_run_tests): Take
5193         specific test argument.  Replace lots of cut n' paste code
5194         with run_test and run_data_test.
5195
5196         * dbus/dbus-test.h: Update prototype for
5197         dbus_internal_do_not_use_run_tests.
5198
5199 2005-02-20  Havoc Pennington  <hp@redhat.com>
5200
5201         Fix bugs reported by Daniel P. Berrange
5202         
5203         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5204         (protected_change_watch): new function
5205         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5206         (_dbus_server_add_watch): change to work like the
5207         dbus-connection.c equivalents; like those, probably kind of
5208         busted, but should at least mostly work for now
5209         (dbus_server_disconnect): drop the lock if we were already
5210         disconnected, patch from Daniel P. Berrange
5211
5212         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5213         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5214         same stuff
5215
5216         * doc/TODO: todo about unscrewing this mess
5217
5218 2005-02-19  Colin Walters  <walters@verbum.org>
5219
5220         * glib/dbus-binding-tool-glib.c
5221         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5222
5223         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5224         as errno.h and sys/stat.h.
5225         (lose): New function, prints error with
5226         newline and exits.
5227         (lose_gerror): Similar, but takes GError for message.
5228         (main): Add --output argument to specify output file to write to,
5229         instead of always printing to stdout.  In this mode, determine
5230         timestamps on source files to see whether any are newer than the
5231         target file.  If not, exit.  Also convert a number of error
5232         messages to use lose (since it's shorter), and switch to using
5233         g_io_channel_shutdown.
5234
5235 2005-02-19  Havoc Pennington  <hp@redhat.com>
5236
5237         * glib/dbus-gobject.c
5238         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5239
5240         * glib/dbus-glib.c: fix doxygen warnings
5241
5242         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5243         is found on an <arg>
5244
5245 2005-02-17  Colin Walters  <walters@verbum.org>
5246
5247         * glib/dbus-gobject.h: Don't export
5248         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5249         
5250         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5251         (invoke_object_method): Handle it.
5252
5253         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5254         Handle rename.
5255         
5256 2005-02-17  Colin Walters  <walters@verbum.org>
5257
5258         * bus/.cvsignore, doc/.cvsignore
5259         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5260         Update.
5261
5262 2005-02-17  Colin Walters  <walters@verbum.org>
5263         
5264         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5265         Rename to DBUS_SERVICE_DBUS.
5266         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5267         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5268         Change the value from "org.freedesktop.Local"
5269         to "org.freedesktop.DBus.Local".
5270         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5271         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5272         DBUS_INTERFACE_INTROSPECTABLE.
5273         Change the value from "org.freedesktop.Introspectable"
5274         to "org.freedesktop.DBus.Introspectable".
5275         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5276         DBUS_INTERFACE_PROPERTIES.
5277         Change the value from "org.freedesktop.Properties"
5278         to "org.freedesktop.DBus.Properties".
5279         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5280         DBUS_INTERFACE_PEER.
5281         Change the value from "org.freedesktop.Peer"
5282         to "org.freedesktop.DBus.Peer".
5283         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5284         DBUS_INTERFACE_LOCAL.
5285         Change the value from "org.freedesktop.Local"
5286         to "org.freedesktop.DBus.Local".
5287
5288         All other users of those constants have been changed.
5289
5290         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5291
5292         * glib/dbus-gobject.c (handle_introspect): Use constants.
5293
5294         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5295
5296 2005-02-17  Colin Walters  <walters@verbum.org>
5297
5298         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5299         (parse_node, parse_interface, parse_method, parse_signal)
5300         (parse_property, parse_annotation): Lose if we're currently in an
5301         annotation.
5302         (parse_annotation): New function.
5303         (parser_start_element, parser_end_element): Handle annotation.
5304         (parse_method, parse_interface): Remove support for c_name attribute,
5305         switch to annotations.
5306
5307         * glib/dbus-gidl.h (interface_info_get_binding_names)
5308         (method_info_get_binding_names)
5309         (interface_info_get_binding_name, method_info_get_binding_name)
5310         (interface_info_set_binding_name, method_info_set_binding_name):
5311         Remove.
5312         (interface_info_get_annotations, method_info_get_annotations)
5313         (interface_info_get_annotation, method_info_get_annotation)
5314         (interface_info_add_annotation, method_info_add_annotation):
5315         Prototype.
5316
5317         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5318         for "bindings".
5319         (struct MethodInfo): Ditto.
5320         Straightfoward conversion of binding methods into annotation methods
5321         as prototyped.
5322
5323         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5324
5325         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5326
5327         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5328         Use new annotation API.
5329
5330         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5331         annotation element.
5332         
5333         * doc/dbus-specification.xml: Discuss introspection annotations,
5334         include list of well-known annotations.
5335
5336         * test/glib/test-service-glib.xml: Make validate against new DTD.
5337
5338 2005-02-17  Colin Walters  <walters@verbum.org>
5339
5340         This patch is based on initial work from
5341         Paul Kuliniewicz <kuliniew@purdue.edu>.
5342
5343         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5344         initialization of GValue from dbus type to here.
5345         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5346         for the "glib-genmarshal" program from a DBus type.
5347         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5348         into the C name for it we use in the glib bindings.
5349         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5350         glib C type (not GValue).
5351         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5352
5353         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5354         from dbus-gobject.c.
5355
5356         * glib/dbus-gutils.h: Prototype it.
5357
5358         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5359         (marshal_dbus_message_to_g_marshaller): Use new shared function
5360         dbus_glib_marshal_dbus_message_to_gvalue_array.
5361
5362         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5363         Will be changed once we have annotations.
5364
5365         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5366         GStaticRWLock.  Callers updated.
5367         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5368         (string_table_next): New function for iterating over zero-terminated
5369         string value array.
5370         (string_table_lookup): New function; retrieves specific entry in
5371         array.
5372         (get_method_data): New function; look up method data in object data chunk.
5373         (object_error_domain_prefix_from_object_info)
5374         (object_error_code_from_object_info): New functions, but not implemented yet.
5375         (method_interface_from_object_info): New function; retrieve interface name.
5376         (method_name_from_object_info): New function; retrieve method name.
5377         (method_arg_info_from_object_info): New function; retrieve argument data.
5378         (arg_iterate): New function; iterates over serialized argument data.
5379         (method_dir_signature_from_object_info): New function; returns a
5380         GString holding type signature for arguments for just one
5381         direction (input or output).
5382         (method_input_signature_from_object_info)
5383         (method_output_signature_from_object_info): New functions.
5384         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5385         converts dbus message arguments into a GValue array.  Used for both
5386         signal handling and method invocation.
5387         (struct DBusGlibWriteIterfaceData): New utility structure.
5388         (write_interface): New function; generate introspection XML for
5389         an interface.
5390         (introspect_interfaces): New function; gathers all interface->methods,
5391         generates introspection XML for them.
5392         (handle_introspect): Invoke introspect_interfaces.
5393         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5394         (lookup_object_and_method): New function; examines an incoming message
5395         and attempts to match it up (via interface, method name, and argument
5396         signature) with a known object and method.
5397         (gerror_domaincode_to_dbus_error_name): New function; converts a
5398         GError domain and code into a DBus error name.  Needs GError data
5399         added to object introspection to work well.
5400         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5401         GError.
5402         (invoke_object_method): New function to invoke an object method
5403         looked up via lookup_object_and_method.  Parses the incoming
5404         message, turns it into a GValue array, then invokes the marshaller
5405         specified in the DBusGMethodInfo.  Creates a new message with
5406         either return values or error message as appropriate.
5407         (gobject_message_function): Invoke lookup_object_and_method and
5408         invoke_object_method.
5409
5410         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5411         (enum DBusBindingOutputMode): New enum for binding output modes.
5412         (pretty_print): Print binding names.
5413         (dbus_binding_tool_error_quark): GError bits.
5414         (version): Fix typo.
5415         (main): Create GIOChannel for output.  Parse new --mode argument,
5416         possible values are "pretty-print", "glib-server", "glib-client".
5417         Use mode to invoke appropriate function.
5418         
5419         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5420
5421         * glib/dbus-glib-tool.h: New header, just includes GError bits
5422         for now.
5423
5424         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5425         maps binding style to name.
5426         (struct MethodInfo): Ditto.
5427         (get_hash_keys, get_hash_key): Utility function, returns keys for
5428         a GHashTable.
5429         (interface_info_new, method_info_new): Initialize bindings.
5430         (interface_info_unref, method_info_unref): Destroy bindings.
5431         (method_info_get_binding_names, method_info_get_binding_name)
5432         (interface_info_get_binding_names, interface_info_get_binding_name):
5433         Functions for retrieving binding names.
5434         (method_info_set_binding_name, interface_info_set_binding_name):
5435         Functions for setting binding names.
5436
5437         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5438         for glib binding generation.
5439
5440         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5441         and client-side glib glue generation.
5442
5443         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5444         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5445         dbus-glib-tool.h.
5446
5447         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5448         of using GClosureMarshal directly.
5449         (struct DBusGObjectInfo): Add n_infos member.
5450
5451         * test/glib/test-service-glib.xml: New file; contains introspection data
5452         for MyTestObject used in test-service-glib.c.
5453
5454         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5455         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5456         (my_object_uppercase, my_object_many_args): New test methods.
5457         (main): Use dbus_g_object_class_install_info to include generated object
5458         info.
5459
5460         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5461         as well as client-side bindings.
5462
5463         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5464         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5465         using both the dbus_gproxy stuff directly as well as the generated bindings.
5466
5467 2005-02-15  Havoc Pennington  <hp@redhat.com>
5468
5469         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5470         complete a pending call, don't run filters first.
5471
5472         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5473         dbus_pending_call_steal_reply
5474
5475         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5476         _dbus_connection_block_pending_call
5477         (dbus_pending_call_get_reply): change to steal_reply and return a
5478         ref
5479
5480         * dbus/dbus-connection.c
5481         (dbus_connection_send_with_reply_and_block): port to work in terms
5482         of DBusPendingCall
5483         (_dbus_connection_block_pending_call): replace block_for_reply
5484         with this
5485
5486 2005-02-14  Havoc Pennington  <hp@redhat.com>
5487
5488         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5489         properly handle looking up group information by name; fix 
5490         from j@bootlab.org
5491
5492 2005-02-13  Havoc Pennington  <hp@redhat.com>
5493
5494         * dbus/dbus-connection.c (dbus_connection_return_message) 
5495         (dbus_connection_borrow_message): hold dispatch lock while message
5496         is outstanding
5497         (_dbus_connection_block_for_reply): hold dispatch lock while we
5498         block for the reply, so nobody steals our reply
5499         (dbus_connection_pop_message): hold the dispatch lock while we
5500         pluck the message
5501
5502 2005-02-13  Havoc Pennington  <hp@redhat.com>
5503
5504         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5505         (_dbus_connection_release_dispatch)
5506         (_dbus_connection_acquire_io_path)
5507         (_dbus_connection_release_io_path): make the mutex and condvar
5508         control access to the "acquired" flag. Drop the connection lock
5509         while waiting on the condvar. Hopefully these are baby steps in
5510         roughly the right direction.
5511
5512 2005-02-13  Havoc Pennington  <hp@redhat.com>
5513
5514         * dbus/dbus-connection.c: use separate mutexes for the condition
5515         variables; this is some kind of baseline for sanity, but the
5516         condition variables still aren't used correctly afaict
5517
5518 2005-02-13  Havoc Pennington  <hp@redhat.com>
5519
5520         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5521         fix a double-unlock
5522
5523         * dbus/dbus-connection.c
5524         (_dbus_connection_detach_pending_call_unlocked): add this
5525
5526         Initial semi-correct pass through to fix thread locking; there are
5527         still some issues with the condition variable paths I'm pretty
5528         sure
5529         
5530         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5531         lock/unlock calls
5532
5533         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5534         rename to add _unlocked
5535         (struct DBusConnection): move "dispatch_acquired" and
5536         "io_path_acquired" to use only one bit each.
5537         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5538         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5539         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5540         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5541         (_dbus_connection_remove_timeout) 
5542         (_dbus_connection_toggle_timeout): drop lock when calling out to
5543         user functions; done in a hacky/bad way.
5544         (_dbus_connection_send_and_unlock): add a missing unlock
5545         (_dbus_connection_block_for_reply): add a missing unlock
5546
5547         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5548         drop lock in a hacky probably unsafe way to call out to user
5549         function
5550
5551 2005-02-12  Havoc Pennington  <hp@redhat.com>
5552
5553         * tools/dbus-tree-view.c (info_set_func_text): display more
5554         details on args
5555
5556         * bus/driver.c (bus_driver_handle_list_services): list the bus
5557         driver
5558
5559         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5560
5561         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5562         (method_info_get_n_args): new function
5563
5564 2005-02-12  Havoc Pennington  <hp@redhat.com>
5565
5566         * bus/driver.c (bus_driver_handle_introspect): add introspection
5567         for bus driver
5568
5569 2005-02-12  Havoc Pennington  <hp@redhat.com>
5570
5571         * bus/driver.c: put the signature of each bus driver method in the
5572         table of handlers and check it on incoming calls; this isn't
5573         really useful, but going to add introspect support in a minute.
5574
5575 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5576
5577         * mono/Connection.cs: The unpredictability of finalizers in mono
5578         prevents us from deterministically disconnecting the filters from
5579         the Service class's finalizer, so move tracking of filters and
5580         matches here.  Add API for that.
5581
5582         * mono/Service.cs: Remove the code, add code which calls the
5583         methods now on the Connection class.
5584
5585 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5586
5587         * python/dbus.py (class Sender): added to support dbus signals better
5588         (Bus::add_signal_receiver): added expand_args parameter which defaults
5589         to True.  When expand args is True the signal handler will pass the 
5590         message arguments as parameters to the signal handler.  If False
5591         revert to previous behavior where the signal handler must get the
5592         argument list from the message.  This is to help port applications
5593         like HAL that have a tendancy to send variable length argument lists.
5594         self._match_rule_to_receivers is now a dict of dicts.
5595         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5596         removing it from a list
5597         (Bus::_signal_func): change signal handlers so that interface,
5598         signal_name, service, path and message are packed into a Sender
5599         object and that is passed to the handler.  If expand_args is True
5600         extract the args list from the message and append it to the parameter
5601         list
5602         
5603         * python/dbus_bindings.pyx.in (class Signature): added to support 
5604         signiature types
5605         (MessageIter::__init__): changed iteration limit to match D-BUS
5606         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5607         STRUCT and VARIENT type support
5608         (MessageIter::python_value_to_dbus_sig): made recursive to support
5609         recursive types
5610         (MessageIter::append*): added Signature, dict, tuple 
5611         support
5612
5613         * python/examples/example-client.py: added examples of getting tuples
5614         and dicts
5615
5616         * python/examples/example-service.py: added examples of sending tuples
5617         and dicts
5618
5619         * python/examples/example-signal-recipient.py: Fixed to handle new
5620         signal callback format
5621
5622 2005-02-10  Havoc Pennington  <hp@redhat.com>
5623
5624         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5625         (call dbus_g_proxy_add_signal)
5626
5627         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5628         escape the hostname
5629         (_dbus_server_new_for_domain_socket): escape the path
5630
5631         * dbus/dbus-address.c (dbus_address_escape_value): new
5632         (dbus_address_unescape_value): new
5633         (dbus_parse_address): unescape values
5634
5635         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5636
5637         * doc/dbus-specification.xml: explain how to escape values in
5638         addresses
5639
5640 2005-02-10  Havoc Pennington  <hp@redhat.com>
5641
5642         * dbus/dbus-message-factory.c (generate_special): modify test to
5643         avoid using a non-basic dict key
5644
5645         * dbus/dbus-marshal-validate-util.c: add test for the below
5646
5647         * doc/dbus-specification.xml: require that dict keys are a basic
5648         type
5649
5650         * dbus/dbus-marshal-validate.c
5651         (_dbus_validate_signature_with_reason): require that dict key is a
5652         basic type
5653
5654 2005-02-10  Havoc Pennington  <hp@redhat.com>
5655
5656         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5657         change to be _and_unlock instead of _unlocked
5658
5659         * dbus/dbus-connection.c
5660         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5661         have no_update so we can find this bug quickly in future
5662
5663 2005-02-10  Havoc Pennington  <hp@redhat.com>
5664
5665         * dbus/dbus-message-util.c (verify_test_message): tests for string
5666         array
5667
5668         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5669         support for arrays of string/signature/path
5670
5671 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5672
5673         * dbus/dbus-connection.c
5674         (_dbus_connection_queue_received_message_link,
5675         _dbus_connection_message_sent): Add the path to
5676         the verbose output.
5677         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5678         _dbus_connection_send_preallocated_unlocked(), updated the
5679         dispatch status, and unlocks.  Fixes a bug where certain
5680         situations (like a broken pipe) could cause a Disconnect message
5681         to not be sent, tricking the bus into thinking a service was still
5682         there when the process had quit.
5683         (_dbus_connection_send_preallocated): Call
5684         _dbus_connection_send_preallocated_and_unlock().
5685         (_dbus_connection_send_and_unlock): Added.  Calls
5686         _dbus_connection_send_preallocated_and_unlock().
5687         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5688         (dbus_connection_send_with_reply): Update the dispatch status and
5689         unlock.
5690
5691         * mono/Service.cs (~Service): Added.  Removes the filter so that
5692         we don't get unmanaged code calling back into a GCed delegate.
5693         (RemoveFilter); Added.
5694
5695 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5696
5697         * dbus/dbus-message.c (dbus_message_iter_open_container):
5698         - Removed check for iterator type being an array because
5699         get_arg_type does not work with writer iterators
5700         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5701
5702 2005-02-07  Havoc Pennington  <hp@redhat.com>
5703
5704         * doc/dbus-specification.xml: some more language cleanups; add
5705         stuff about how to deal with invalid protocol and extension
5706         points; add _ to allowed chars in auth commands; add EXTENSION_
5707         auth command prefix
5708
5709 2005-02-06  Havoc Pennington  <hp@redhat.com>
5710
5711         * s/expected/required/ in a couple places for clarity
5712
5713 2005-02-07  Colin Walters  <walters@verbum.org>
5714
5715         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5716         sender or proposed_recipient.
5717
5718 2005-02-06  Havoc Pennington  <hp@redhat.com>
5719
5720         * dbus/dbus-message-factory.c (generate_special): more tests
5721
5722         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5723         array length that exceeds the maximum
5724
5725 2005-02-05  Havoc Pennington  <hp@redhat.com>
5726
5727         * dbus/dbus-message-factory.c (generate_special): more test cases,
5728         increasing coverage
5729
5730         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5731         reason why a signature was invalid
5732
5733         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5734         skip the length of the string before we look at it in validation
5735
5736         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5737         equal_substring
5738
5739         * dbus/dbus-message.c (_dbus_message_loader_new): default
5740         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5741
5742 2005-02-05  Havoc Pennington  <hp@redhat.com>
5743
5744         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5745         if the signature of a variant was empty
5746         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5747         struct with no element type)
5748
5749         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5750         mangled messages to break things
5751
5752 2005-02-04  Havoc Pennington  <hp@redhat.com>
5753
5754         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5755         g_quark_try_string() so it actually can return 0
5756         (dbus_g_proxy_connect_signal): ditto
5757
5758 2005-02-04  Havoc Pennington  <hp@redhat.com>
5759
5760         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5761         bogus warning
5762         (tristring_from_message): assert cleanly on null path/interface
5763         (should not be possible though I decided later)
5764         (dbus_g_proxy_dispose): move proxy manager unregistration here
5765         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5766         g_return_if_fail() checks
5767
5768 2005-02-04  Havoc Pennington  <hp@redhat.com>
5769
5770         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5771
5772         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5773         (with some minor changes)
5774
5775         * doc/dbus-specification.xml: add deprecated attribute to
5776         introspection format
5777
5778 2005-01-31  Havoc Pennington  <hp@redhat.com>
5779
5780         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5781         think it's sort of right
5782
5783 2005-01-30  Havoc Pennington  <hp@redhat.com>
5784
5785         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5786
5787 2005-01-30  Havoc Pennington  <hp@redhat.com>
5788
5789         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5790
5791         * autogen.sh: change to autotools 1.9
5792
5793         * glib/dbus-gproxy.c: completely change how signals work
5794         (dbus_g_proxy_add_signal): new function to specify signature of a
5795         signal
5796         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5797         and g_warning if the incoming message has the wrong signature.
5798
5799 2005-01-30  Havoc Pennington  <hp@redhat.com>
5800
5801         * tools/dbus-names-model.c (have_names_notify): fix this
5802
5803         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5804         up the string array handling a bit 
5805
5806 2005-01-30  Havoc Pennington  <hp@redhat.com>
5807
5808         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5809         (dbus_g_pending_call_cancel): new function
5810
5811         * dbus/dbus-glib.h: move GType decls for connection/message here;
5812         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5813         here, just kind of rationalizing how we handle all that
5814
5815         * tools/dbus-names-model.c: new file for a tree model listing the
5816         services on a bus
5817
5818         * tools/dbus-tree-view.c (model_new): use proper typing on the
5819         model rows
5820
5821 2005-01-30  Havoc Pennington  <hp@redhat.com>
5822
5823         * glib/dbus-gmain.c: add a custom GSource back that just checks
5824         whether the message queue has anything in it; otherwise, there are 
5825         cases where we won't see messages in the queue since there was no 
5826         IO visible to the glib main loop
5827
5828         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5829         increase default message timeout to 25 seconds
5830
5831 2005-01-30  Havoc Pennington  <hp@redhat.com>
5832
5833         * test/glib/test-profile.c (no_bus_stop_server): remove the
5834         warning about the g_warning that I just fixed
5835
5836         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5837         custom source, seems to be a lot easier to understand and work
5838         better.
5839
5840 2005-01-30  Havoc Pennington  <hp@redhat.com>
5841
5842         I think this main loop thing is conceptually broken, but here are 
5843         some band aids. I'll maybe rewrite it in a minute.
5844         
5845         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5846         custom GSource, so don't pass it in; confusing
5847         (gsource_server_finalize, gsource_connection_finalize): add
5848         finalize handlers that remove all the watches.  
5849
5850 2005-01-30  Havoc Pennington  <hp@redhat.com>
5851
5852         * glib/dbus-gobject.c (introspect_properties): fix the XML
5853         generated
5854
5855         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5856         which effectively detects the use of freed messages
5857
5858         * glib/dbus-gobject.c (handle_introspect): modify and return the
5859         reply message instead of the incoming message
5860
5861         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5862         gee, maybe it should SEND THE XML instead of just making a string
5863         and freeing it again ;-)
5864
5865         * tools/dbus-print-message.c (print_message): improve printing of
5866         messages
5867
5868         * configure.in: add debug-glib.service to the output
5869
5870 2005-01-30  Havoc Pennington  <hp@redhat.com>
5871
5872         dbus-viewer introspected and displayed the bus driver
5873         
5874         * dbus/dbus-object-tree.c 
5875         (object_tree_test_iteration): add tests for a handler registered on "/"
5876
5877         * dbus/dbus-object-tree.c
5878         (_dbus_decompose_path): fix to handle path "/" properly
5879         (run_decompose_tests): add tests for path decomposition
5880         
5881         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5882         properly
5883
5884         * glib/dbus-gobject.c (handle_introspect): fix quotes
5885
5886         * test/glib/run-test.sh: support launching the bus, then running
5887         dbus-viewer
5888
5889         * test/glib/test-service-glib.c (main): put in a trivial gobject
5890         subclass and register it on the connection
5891
5892         * bus/driver.c (bus_driver_handle_introspect): implement
5893         introspection of the bus driver service
5894
5895         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5896         identifiers, doctype decl
5897
5898         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5899         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5900         returning the service unchanged.
5901         (bus_driver_handle_message): remove old check for reply_serial in
5902         method calls, now the message type deals with that
5903         (bus_driver_handle_message): handle NULL interface
5904
5905         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5906
5907         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5908         -1 for len
5909
5910         * tools/dbus-viewer.c: add support for introspecting a service on
5911         a bus
5912
5913         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5914         (dbus_g_pending_call_unref): add
5915
5916 2005-01-29  Havoc Pennington  <hp@redhat.com>
5917
5918         * tools/dbus-tree-view.c: add support for displaying properties.
5919         (run dbus-viewer with an introspect xml file as arg, then resize
5920         the window so the tree elements show up, not sure what that is)
5921
5922         * glib/dbus-gobject.c (handle_introspect): return
5923         org.freedesktop.Properties and org.freedesktop.Introspectable
5924         interfaces when we are introspected.
5925
5926         * doc/dbus-specification.xml: allow empty interface name when 
5927         Get/Set a property
5928
5929 2005-01-29  Havoc Pennington  <hp@redhat.com>
5930
5931         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5932         though it uses glib, it could be extended for any binding in
5933         principle
5934
5935         * glib/dbus-gobject.c (gobject_message_function): change to the
5936         new way properties work
5937
5938         * dbus/dbus-protocol.h: add the new interfaces
5939
5940         * doc/dbus-specification.xml: document the introspection format,
5941         Introspectable interface, and add an org.freedesktop.Properties
5942         interface.
5943
5944         * glib/dbus-gparser.c: add support for a <property> element
5945
5946         * glib/dbus-gidl.c: add PropertyInfo
5947
5948         * glib/dbus-gobject.c (handle_introspect): put the outermost
5949         <node> outside the signal and property descriptions.
5950         (introspect_properties): export properties as <property> rather
5951         than as method calls
5952
5953 2005-01-28  Havoc Pennington  <hp@redhat.com>
5954
5955         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5956         related to authentication protocol
5957
5958 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5959
5960         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5961                 - BUS_ACTIVATION -> BUS_STARTER
5962                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5963                 - class MessageIter (__init__): Added recursion checking 
5964                 so we throw a nice error instead of just disconnecting from the
5965                 bus.
5966                 (get): Added arg_type parameter for recursion.
5967                 Removed the nil type
5968                 Added signiture type placeholder (not implemented)
5969                 Added struct type placeholder (not implemented)
5970                 Added varient type placeholder (not implemented)
5971                 Commented out dict type for now     
5972                 (get_element_type): renamed from get_array_type
5973                 (get_*): changed to use the dbus_message_iter_get_basic API
5974                 (get_*_array): removed in favor of recursive get_array method
5975                 (get_array): new recursive method which calls get to marshal
5976                 the elements of the array
5977                 (value_to_dbus_sig): New method returns the corrasponding
5978                 dbus signiture to a python value
5979                 (append): Comment out dict handling for now
5980                 Handle lists with the new recursive API
5981                 Comment out None handling for now
5982                 (append_nil): removed
5983                 (append_*): changed to use dbus_message_iter_append_basic API
5984                 (append_*_array): removed in favor of recursive append_array 
5985                 method
5986                 (__str__): Make it easier to print out recursive iterators
5987                 for debugging
5988                 - class Message (__str__): moved type inspection to the
5989                 MessageIter class' __str__ method
5990                 (get_iter): Added an append parameter wich defaults to False
5991                 If True use the new API's to create an append iterator
5992
5993         * python/dbus.py: Update to use new bindings API
5994                 - TYPE_ACTIVATION -> TYPE_STARTER
5995                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5996                 - class ActivationBus -> class StarterBus
5997                 - class RemoteObject (__call__): get an append iterator
5998                 - (_dispatch_dbus_method_call): get an append iterator
5999                 - class Object (emit_signal): get an append iterator
6000
6001         * python/examples/: Fixed up the examples to work with the new API
6002                 
6003 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6004
6005         * configure.in: Bump version up to 0.30.
6006
6007         * HACKING: Add a release item to bump the version number up after 
6008         a release.
6009
6010 2005-01-28  Havoc Pennington  <hp@redhat.com>
6011
6012         * doc/dbus-specification.xml: update to describe 16-bit types and
6013         dict entries
6014
6015         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6016         assertion
6017
6018         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6019         type
6020
6021         * dbus/dbus-marshal-recursive.c: implement
6022
6023 2005-01-27  Havoc Pennington  <hp@redhat.com>
6024
6025         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6026
6027         * configure.in: find the right type for 16 and 32 bit ints as well
6028         as 64
6029
6030         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6031         the 16-bit types so people don't have to stuff them in 32-bit or
6032         byte arrays.
6033
6034 2005-01-27  Havoc Pennington  <hp@redhat.com>
6035
6036         * dbus/dbus-message.c: byteswap the message if you init an
6037         iterator to read/write from it
6038         
6039         * dbus/dbus-marshal-byteswap.c: new file implementing 
6040         _dbus_marshal_byteswap()
6041
6042         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6043
6044 2005-01-26  Havoc Pennington  <hp@redhat.com>
6045         
6046         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6047         build, apparently - nobody noticed?)
6048         
6049 2005-01-26  Havoc Pennington  <hp@redhat.com>
6050
6051         * dbus/dbus-marshal-recursive.h: remove todo comment
6052
6053 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6054
6055         * Land the mono binding changes to conform to the new APIs.
6056
6057         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6058         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6059
6060         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6061         type code as a string.
6062         (InitAppending): Rename dbus_message_append_iter_init() to
6063         dbus_message_iter_init_append().
6064
6065         * mono/BusDriver.cs: Rename ServiceEventHandler to
6066         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6067         Rename ServiceOwnerChanged to NameOwnerChanged.
6068
6069         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6070         underlying C call.
6071
6072         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6073
6074         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6075         dbus_bus_acquire_service() to dbus_bus_request_name().
6076
6077         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6078         of Type.UnderlyingSystemType to get the correct element type for
6079         the array.
6080         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6081         dbus_message_get_{element|arg}_type() instead of
6082         dbus_message_iter_init_array_iterator().
6083         (Append): Replace dbus_message_iter_append_array() with
6084         dbus_message_iter_open_container() and
6085         dbus_message_iter_close_container().
6086
6087         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6088         types have been removed.
6089         
6090         * mono/DBusType/*.cs: Replace calls of
6091         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6092         but specify the type in the DllImport extern declaration.  Ditto
6093         for dbus_message_iter_append_[type]() ->
6094         dbus_message_iter_append_basic().
6095
6096         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6097         NameOwnerChangedHandler.
6098
6099 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6100
6101         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6102                 - get_base_service -> get_unique_name
6103                 - bus_get_base_service -> bus_get_unique_name
6104                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6105                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6106                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6107                 - bus_activate_service -> bus_start_service_by_name
6108                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6109                 - bus_acquire_service -> bus_request_name
6110                 - dbus_bus_acquire_service -> dbus_bus_request_name
6111                 - bus_service_exists -> bus_name_has_owner
6112                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6113
6114         * python/dbus.py: Rename of methods
6115                 - activate_service -> start_service_by_name
6116                 - bus_acquire_service -> bus_request_name
6117                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6118                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6119
6120         
6121 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6122
6123         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6124         signature for the method that can't be found.
6125
6126         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6127         the message has any arguments, we need to call
6128         _dbus_type_reader_get_current_type(), not
6129         _dbus_type_reader_has_next().
6130
6131 2005-01-24  Havoc Pennington  <hp@redhat.com>
6132
6133         * dbus/dbus-message-factory.c: more testing of message validation
6134
6135         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6136         header
6137
6138 2005-01-23  Havoc Pennington  <hp@redhat.com>
6139
6140         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6141         get this all working, not many tests in the framework yet though
6142
6143 2005-01-22  Havoc Pennington  <hp@redhat.com>
6144
6145         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6146         tutorial, based on work from David Wheeler.
6147
6148 2005-01-21  Havoc Pennington  <hp@redhat.com>
6149
6150         * dbus/dbus-bus.c: add more return_if_fail checks
6151
6152         * dbus/dbus-message.c (load_message): have the "no validation"
6153         mode (have to edit the code to toggle the mode for now though)
6154
6155         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6156         skips all validation; I want to use this at least for benchmark
6157         baseline, I'm not sure if it should be a publicly-available switch.
6158
6159 2005-01-21  Havoc Pennington  <hp@redhat.com>
6160
6161         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6162         toplevel doxygen group as the low-level API stuff
6163
6164         * dbus/dbus.h: note that libdbus is the low-level API
6165
6166 2005-01-20  Havoc Pennington  <hp@redhat.com>
6167
6168         * update-dbus-docs.sh: script to update docs on the web site, only
6169         works for me though. neener.
6170
6171 2005-01-20  Havoc Pennington  <hp@redhat.com>
6172
6173         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6174         code can reveal bugs in it
6175
6176 2005-01-20  Havoc Pennington  <hp@redhat.com>
6177
6178         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6179         select() version, patches from Tor Lillqvist
6180
6181 2005-01-20  Havoc Pennington  <hp@redhat.com>
6182
6183         * doc/dbus-tutorial.xml: replace > with &gt;
6184
6185         * bus/services.c (bus_registry_acquire_service): validate the name
6186         and return a better error if it's no good.
6187
6188         * doc/dbus-specification.xml: note NO_AUTO_START change
6189
6190         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6191         from AUTO_START, we're toggling the default
6192
6193         * bus/dispatch.c: adapt the tests to change of auto-start default
6194
6195 2005-01-18  Havoc Pennington  <hp@redhat.com>
6196
6197         * rename dbus-daemon-1 to dbus-daemon throughout
6198
6199 2005-01-18  Havoc Pennington  <hp@redhat.com>
6200
6201         * Throughout, grand renaming to strip out the use of "service",
6202         just say "name" instead (or "bus name" when ambiguous).  Did not
6203         change the internal code of the message bus itself, only the
6204         programmer-facing API and messages.
6205         
6206         * doc/dbus-specification.xml: further update the message bus section
6207         
6208         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6209         in error case
6210
6211 2005-01-17  Havoc Pennington  <hp@redhat.com>
6212
6213         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6214         ever
6215
6216         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6217         "invalid name character" not only non-ASCII
6218
6219         * doc/dbus-specification.xml: further update spec, message bus 
6220         parts are still out-of-date but the marshaling etc. stuff is now
6221         accurate-ish
6222
6223 2005-01-17  Havoc Pennington  <hp@redhat.com>
6224
6225         * doc/dbus-specification.xml: partially update spec
6226
6227 2005-01-17  Havoc Pennington  <hp@redhat.com>
6228
6229         * Throughout, align variant bodies according to the contained
6230         type, rather than always to 8. Should save a fair bit of space in
6231         message headers.
6232         
6233         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6234         fix handling of case where p == end
6235
6236         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6237
6238 2005-01-17  Havoc Pennington  <hp@redhat.com>
6239
6240         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6241
6242         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6243         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6244         are marshaling/unmarshaling a boolean.
6245
6246 2005-01-16  Havoc Pennington  <hp@redhat.com>
6247
6248         This is about it on what can be disabled/deleted from libdbus
6249         easily, back below 150K anyhow. Deeper cuts are more work than 
6250         just turning the code off as I've done here.
6251         
6252         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6253         signed int convenience funcs
6254
6255         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6256         verbose mode
6257
6258         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6259         things out of libdbus
6260
6261         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6262         
6263         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6264         tests-enabled-only, though it should probably be deleted)
6265
6266         * dbus/dbus-message-util.c: same stuff
6267
6268         * dbus/dbus-auth-util.c: same stuff
6269
6270 2005-01-16  Havoc Pennington  <hp@redhat.com>
6271
6272         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6273
6274         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6275         way for stripping down dbus-userdb.c stuff included in libdbus.
6276         Rename _dbus_parse_uid for consistency.
6277
6278 2005-01-16  Havoc Pennington  <hp@redhat.com>
6279
6280         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6281         name the assertion failed in
6282
6283         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6284         (_dbus_return_val_if_fail): assert that the name of the function
6285         containing the check doesn't start with '_', since we only want to 
6286         use checks on public functions
6287         
6288         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6289         checks to assertions
6290
6291         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6292         change checks to asserts for private function
6293
6294         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6295         to asserts for private function
6296
6297         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6298         broken assertion that was breaking make check
6299         (_dbus_type_reader_array_is_empty): remove this rather than fix
6300         it, was only used in assertions
6301
6302 2005-01-16  Havoc Pennington  <hp@redhat.com>
6303
6304         * test/unused-code-gc.py: hacky script to find code that's used
6305         only by the bus (not libdbus) or used only by tests or not used at
6306         all. It has some false alarms, but looks like we can clean up a
6307         lot of size from libdbus.
6308
6309         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6310         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6311         
6312 2005-01-16  Havoc Pennington  <hp@redhat.com>
6313
6314         * Add and fix docs according to Doxygen warnings throughout
6315         source.
6316         
6317         * dbus/dbus-marshal-recursive.c
6318         (_dbus_type_reader_array_is_empty): change this to just call
6319         array_reader_get_array_len() and make it static
6320
6321         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6322         from get_array_type
6323         (dbus_message_iter_init_append): rename from append_iter_init
6324
6325         * dbus/dbus-marshal-recursive.c
6326         (_dbus_type_reader_get_element_type): rename from
6327         _dbus_type_reader_get_array_type
6328
6329 2005-01-15  Havoc Pennington  <hp@redhat.com>
6330
6331         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6332
6333         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6334         when DBUS_DISABLE_ASSERT
6335         (_dbus_marshal_set_basic): be sure we align for the string length
6336
6337         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6338         this look faster
6339
6340         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6341         inline macro version
6342         (_dbus_string_set_byte): provide inline macro version
6343
6344 2005-01-15  Havoc Pennington  <hp@redhat.com>
6345
6346         * Land the new message args API and type system.
6347
6348         This patch is huge, but the public API change is not 
6349         really large. The set of D-BUS types has changed somewhat, 
6350         and the arg "getters" are more geared toward language bindings;
6351         they don't make a copy, etc.
6352
6353         There are also some known issues. See these emails for details
6354         on this huge patch:
6355         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6356         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6357         
6358         * dbus/dbus-marshal-*: all the new stuff
6359
6360         * dbus/dbus-message.c: basically rewritten
6361
6362         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6363         freed blocks to be all non-nul bytes so using freed memory is less
6364         likely to work right
6365
6366         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6367         DBUS_FAIL_MALLOC=N environment variable, so you can do
6368         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6369         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6370         thorough.
6371
6372         * qt/message.cpp: port to the new message args API
6373         (operator<<): use str.utf8() rather than str.unicode()
6374         (pretty sure this is right from the Qt docs?)
6375
6376         * glib/dbus-gvalue.c: port to the new message args API
6377
6378         * bus/dispatch.c, bus/driver.c: port to the new message args API
6379
6380         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6381         "locked" flag to TRUE and align_offset to 0; I guess we never
6382         looked at these anyhow, but seems cleaner.
6383
6384         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6385         move allocation padding macro to this header; use it to implement
6386         (_DBUS_STRING_STATIC): ability to declare a static string.
6387
6388         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6389         change to return TRUE if the interface is not set.
6390
6391         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6392         to dbus-marshal-validate.[hc]
6393
6394         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6395         dbus-internals.c
6396
6397         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6398         to dbus-marshal-*.[hc]
6399
6400         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6401         function here from dbus-marshal.c
6402
6403 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6404
6405         * NEWS: Update for 0.23.
6406
6407         * configure.in: Release 0.23.
6408
6409 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6410
6411         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6412         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6413         behind.
6414
6415         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6416         uninstall"
6417
6418         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6419         is an enum, get the enum's underlying type.  Another mono
6420         1.1.3 fix.
6421
6422 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6423
6424         Patch from Sjoerd Simons <sjoerd@luon.net>
6425
6426         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6427         DESTDIR.  It breaks stuff.
6428
6429 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6430
6431         Patch from Tambet Ingo <tambet@ximian.com>
6432
6433         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6434         calling type.GetElementType().  The code previously depended on
6435         broken Mono behavior, which was fixed in Mono 1.1.3.
6436
6437         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6438         Activator.CreateInstance() so that the class's constructor is
6439         called with the right parameters.
6440
6441 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6442
6443         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6444
6445         * dbus/dbus-connection.c
6446         (_dbus_connection_queue_received_message_link): Call
6447         _dbus_connection_remove_timeout() instead of the _locked()
6448         variant, since it's always called from
6449         _dbus_connection_handle_watch(), which handles the locking.
6450         Removed the _locked() variant since it's no longer used.
6451
6452 2005-01-03  Havoc Pennington  <hp@redhat.com>
6453
6454         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6455         return
6456         
6457 2004-12-26  Havoc Pennington  <hp@redhat.com>
6458
6459         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6460
6461 2005-01-03  Havoc Pennington  <hp@redhat.com>
6462
6463         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6464         floating point
6465
6466         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6467
6468 2005-01-02  Havoc Pennington  <hp@redhat.com>
6469
6470         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6471
6472 2005-01-01  Havoc Pennington  <hp@redhat.com>
6473
6474         * configure.in: add -Wfloat-equal
6475
6476 2005-01-01  Havoc Pennington  <hp@redhat.com>
6477
6478         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6479         for a variety of reasons '==' doesn't do this.
6480
6481 2004-12-31  Havoc Pennington  <hp@redhat.com>
6482
6483         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6484         I keep wishing I had
6485
6486 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6487
6488         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6489
6490 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6491
6492         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6493         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6494         dbus-protocol.h.  Because they are defines and not enums they are not
6495         autogenerated.
6496
6497 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6498
6499         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6500         dbus_bus_activate_service
6501
6502         * python/dbus.py (Bus.activate_service): activate a service on the
6503         bus.
6504
6505 2004-12-24  Havoc Pennington  <hp@redhat.com>
6506
6507         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6508         file format has also changed and I haven't adapted to that yet
6509         
6510         * Makefile.am: load .gcno files from latest gcc
6511
6512 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6513         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6514
6515         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6516         lowlevel binding
6517
6518         * python/dbus.py (get_unix_user): Added binding to 
6519         call dbus_bindings.bus_get_unix_user
6520
6521         * python/extract.py: Modified the proto_pat regex to
6522         handle unsigned long
6523
6524 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6525
6526         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6527         better POSIX compliance.
6528
6529 2004-12-19  Havoc Pennington  <hp@redhat.com>
6530
6531         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6532         (_dbus_string_insert_8_aligned): new functions
6533
6534         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6535
6536 2004-12-18  Havoc Pennington  <hp@redhat.com>
6537
6538         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6539         macro
6540
6541         * dbus/dbus-message.c: fix a comment, and add a still-unused
6542         not-implemented function
6543
6544         * dbus/dbus-marshal.h: fix comment
6545
6546         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6547
6548 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6549
6550         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6551         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6552         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6553         Type.UnderlyingSystemType to get the actual system type
6554         underneath.  This code previously depended on the broken Mono
6555         behavior, which was fixed in 1.1.3.
6556
6557 2004-11-27  Havoc Pennington  <hp@redhat.com>
6558
6559         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6560         are disabled
6561         (_dbus_string_get_const_data): inline when asserts are disabled
6562
6563         * dbus/dbus-message.c: record the _dbus_current_generation of
6564         creation so we can complain if dbus_shutdown() is used improperly.
6565         Do this only if checks are enabled.
6566
6567         * dbus/dbus-connection.c: ditto
6568         
6569 2004-11-26  Havoc Pennington  <hp@redhat.com>
6570
6571         * test/glib/test-profile.c: add with_bus mode to profile echoes
6572         that go through the bus.
6573
6574         * test/glib/run-test.sh: add ability to run test-profile
6575
6576         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6577         config file reload.
6578
6579 2004-11-26  Havoc Pennington  <hp@redhat.com>
6580
6581         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6582         thing was implemented
6583
6584 2004-11-26  Havoc Pennington  <hp@redhat.com>
6585
6586         * test/glib/test-profile.c: tweak a bit, add support for some
6587         made-up minimal malloc overhead with plain sockets, since in 
6588         real life some sort of buffers are unavoidable thus we could 
6589         count them in the theoretical best case
6590
6591 2004-11-26  Havoc Pennington  <hp@redhat.com>
6592
6593         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6594         where I was trying to cache one too many messages
6595
6596 2004-11-26  Havoc Pennington  <hp@redhat.com>
6597
6598         * dbus/dbus-message.c: reimplement message cache as an array which 
6599         makes the cache about twice as fast and saves maybe 1.5% overall
6600
6601 2004-11-26  Havoc Pennington  <hp@redhat.com>
6602
6603         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6604         message cache lock here
6605
6606 2004-11-26  Havoc Pennington  <hp@redhat.com>
6607
6608         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6609         the "char byte_order" next to each other to save 4 bytes
6610         (dbus_message_new_empty_header): reduce preallocation, since the
6611         message cache should achieve a similar effect
6612         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6613         message cache that keeps a few DBusMessage around in a pool,
6614         another 8% speedup or so.
6615
6616         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6617
6618 2004-11-25  Havoc Pennington  <hp@redhat.com>
6619
6620         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6621         to write, without reading or blocking, try it before the poll()
6622         and skip the poll() if nothing remains to write. This is about a
6623         3% speedup in the echo client/server
6624
6625 2004-11-25  Havoc Pennington  <hp@redhat.com>
6626
6627         The primary change here is to always write() once before adding
6628         the write watch, which gives us about a 10% performance increase.
6629         
6630         * dbus/dbus-transport-unix.c: a number of modifications to cope
6631         with removing messages_pending
6632         (check_write_watch): properly handle
6633         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6634         messages_pending stuff
6635         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6636         AUTHENTICATED cases
6637         (unix_handle_watch): after writing, see if the write watch can be
6638         removed
6639         (unix_do_iteration): assert that write_watch/read_watch are
6640         non-NULL rather than testing that they aren't, since they 
6641         aren't allowed to be NULL. check_write_watch() at the end so 
6642         we add the watch if we did not finish writing (e.g. got EAGAIN)
6643
6644         * dbus/dbus-transport-protected.h: remove messages_pending call,
6645         since it resulted in too much inefficient watch adding/removing; 
6646         instead we now require that the transport user does an iteration 
6647         after queueing outgoing messages, and after trying the first
6648         write() we add a write watch if we got EAGAIN or exceeded our 
6649         max bytes to write per iteration setting
6650
6651         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6652         function
6653
6654         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6655         freed and then accessed, valgrind flagged this bug, fix it
6656
6657         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6658         as the last valid field plus 1, where really it is equal to the
6659         last valid field. Corrects some message corruption issues.
6660
6661         * dbus/dbus-mainloop.c: verbosity changes
6662
6663         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6664         instead of aborting in one of the test codepaths
6665
6666         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6667         caused not printing the pid ever again if a verbose was missing
6668         the newline at the end
6669         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6670
6671         * dbus/dbus-connection.c: verbosity changes; 
6672         (dbus_connection_has_messages_to_send): new function
6673         (_dbus_connection_message_sent): no longer call transport->messages_pending
6674         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6675         try to write() immediately, so we can avoid the write watch. This
6676         is the core purpose of this patchset
6677         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6678         dump the outgoing message queue, so nobody will get confused
6679         trying to send them or thinking stuff is pending to be sent
6680
6681         * bus/test.c: verbosity changes
6682
6683         * bus/driver.c: verbosity/assertion changes
6684
6685         * bus/dispatch.c: a bunch of little tweaks to get it working again
6686         because this patchset changes when/where you need to block.
6687
6688 2004-11-23  Havoc Pennington  <hp@redhat.com>
6689
6690         * test/glib/test-profile.c: modify to accept a plain_sockets
6691         argument in which case it will bench plain sockets instead of
6692         libdbus, for comparison purposes.
6693
6694 2004-11-22  Havoc Pennington  <hp@redhat.com>
6695
6696         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6697         threads for more time, so sysprof can get a grip on it.
6698
6699         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6700         pointless variable
6701
6702 2004-11-13  Havoc Pennington  <hp@redhat.com>
6703
6704         * test/glib/test-profile.c: fix this thing up a bit
6705
6706         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6707         preallocation sizes by a fair bit; not sure if this will be an
6708         overall performance win or not, but it does reduce reallocs.
6709
6710         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6711         the test hack that forced constant realloc if asserts are
6712         disabled, so we can profile sanely. Sprinkle in some
6713         _DBUS_UNLIKELY() which are probably pointless, but before I
6714         noticed the real performance problem I put them in.
6715         (_dbus_string_validate_utf8): micro-optimize this thing a little
6716         bit, though callgrind says it didn't help; then special-case
6717         ascii, which did help a lot; then be sure we detect nul bytes as
6718         invalid, which is a bugfix.
6719         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6720         superstition; use memset to nul the padding instead of a manual
6721         loop.
6722         (_dbus_string_get_length): inline this as a
6723         macro; it showed up in the profile because it's used for loop
6724         tests and so forth
6725
6726 2004-11-10  Colin Walters  <walters@verbum.org>
6727
6728         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6729         for extra paranoia.
6730
6731 2004-11-09  Colin Walters  <walters@verbum.org>
6732
6733         * dbus/dbus-string.c (_dbus_string_get_length): New
6734         function, writes DBusString to C buffer.
6735
6736         * dbus/dbus-string.h: Prototype it.
6737
6738         * dbus/dbus-message.c (dbus_message_type_to_string): New
6739         function, converts message type into C string.
6740
6741         * dbus/dbus-message.h: Prototype it.
6742
6743         * bus/selinux.c (bus_selinux_check): Take source pid,
6744         target pid, and audit data.  Pass audit data to
6745         avc_has_perm.
6746         (log_audit_callback): New function, appends extra
6747         audit information.
6748         (bus_selinux_allows_acquire_service): Also take
6749         service name, add it to audit data.
6750         (bus_selinux_allows_send): Also take message
6751         type, interface, method member, error name,
6752         and destination, and add them to audit data.
6753         (log_cb): Initialize func_audit.
6754         
6755         * bus/selinux.h (bus_selinux_allows_acquire_service)
6756         (bus_selinux_allows_send): Update prototypes 
6757
6758         * bus/services.c (bus_registry_acquire_service): Pass
6759         service name to bus_selinux_allows_acquire_service.
6760
6761         * bus/bus.c (bus_context_check_security_policy): Pass
6762         additional audit data.  Move assignment of dest
6763         to its own line.
6764
6765 2004-11-07  Colin Walters  <walters@verbum.org>
6766
6767         * dbus/dbus-transport-unix.c (do_authentication): Always
6768         initialize auth_completed.
6769         
6770 2004-11-07  Colin Walters  <walters@verbum.org>
6771
6772         * bus/bus.c (load_config): Break into three
6773         separate functions: process_config_first_time_only,
6774         process_config_every_time, and process_config_postinit.
6775         (process_config_every_time): Move call of
6776         bus_registry_set_service_context_table into
6777         process_config_postinit.
6778         (process_config_postinit): New function, does
6779         any processing that needs to happen late
6780         in initialization (and also on reload).
6781         (bus_context_new): Instead of calling load_config,
6782         open config parser here and call process_config_first_time_only
6783         and process_config_every_time directly.  Later, after
6784         we have forked but before changing UID,
6785         invoke bus_selinux_full_init, and then call
6786         process_config_postinit.
6787         (bus_context_reload_config): As in bus_context_new,
6788         load parse file inside here, and call process_config_every_time
6789         and process_config_postinit.
6790
6791         * bus/services.h, bus/services.c
6792         (bus_registry_set_service_context_table): Rename
6793         from bus_registry_set_sid_table.  Take string hash from config
6794         parser, and convert them here into SIDs.
6795
6796         * bus/config-parser.c (struct BusConfigParser): Have
6797         config parser only store a mapping of service->context
6798         string.
6799         (merge_service_context_hash): New function.
6800         (merge_included): Merge context string hashes instead
6801         of using bus_selinux_id_table_union.
6802         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6803         simply create a new string hash.
6804         (bus_config_parser_unref): Unref it.
6805         (start_selinux_child): Simply insert strings into hash,
6806         don't call bus_selinux_id_table_copy_over.
6807
6808         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6809         (bus_selinux_id_table_copy_over): Delete.
6810
6811 2004-11-03  Colin Walters  <walters@verbum.org>
6812
6813         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6814         variables.
6815         
6816 2004-11-03  Colin Walters  <walters@verbum.org>
6817
6818         * bus/test-main.c (test_pre_hook): Fix test logic,
6819         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6820
6821 2004-11-02  Colin Walters  <walters@redhat.com>
6822
6823         * bus/selinux.c (bus_selinux_init): Split into two functions,
6824         bus_selinux_pre_init and bus_selinux_post_init.
6825         (bus_selinux_pre_init): Just determine whether SELinux is
6826         enabled.
6827         (bus_selinux_post_init): Do everything else.
6828
6829         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6830         config file, and bus_selinux_post_init after.  This ensures that
6831         we don't lose the policyreload notification thread that
6832         bus_selinux_init created before forking previously.
6833         
6834         * bus/test-main.c (test_pre_hook): Update for split.
6835
6836 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6837
6838         Patch from Johan Fischer <linux@fischaz.com>
6839         
6840         * mono/doc/Makefile.am (install-data-local): Added directory
6841         install for DESTDIR
6842
6843 2004-10-29  Colin Walters  <walters@redhat.com>
6844
6845         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6846         parameter for fd to write pid to.       
6847
6848         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6849         
6850         * bus/bus.c (bus_context_new): Pass print_pid_fd
6851         to _dbus_become_daemon (bug #1720)
6852
6853 2004-10-29  Colin Walters  <walters@redhat.com>
6854
6855         Patch from Ed Catmur <ed@catmur.co.uk>
6856
6857         * mono/doc/Makefile.am (install-data-local): Handle
6858         DESTDIR.
6859
6860 2004-10-29  Colin Walters  <walters@redhat.com>
6861
6862         * bus/.cvsignore, qt/.cvsignore: Update.
6863
6864 2004-10-29  Colin Walters  <walters@redhat.com>
6865
6866         Patch from Kristof Vansant <de_lupus@pandora.be>
6867
6868         * configure.in: Detect Slackware.
6869         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6870         * bus/rc.messagebus.in: New file.
6871
6872 2004-10-29  Colin Walters  <walters@redhat.com>
6873
6874         * tools/dbus-monitor.c (filter_func): Return
6875         DBUS_HANDLER_RESULT_HANDLED in filter function
6876         for now.  See:
6877         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6878
6879 2004-10-29  Colin Walters  <walters@redhat.com>
6880
6881         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6882
6883         * bus/services.c (bus_registry_acquire_service): 
6884         Correctly retrieve service name from DBusString
6885         for printing.
6886
6887 2004-10-29  Colin Walters  <walters@redhat.com>
6888
6889         * dbus/dbus-glib.h: Update documentation to not
6890         refer to internal APIs.
6891
6892 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6893
6894         * mono/Arguments.cs (GetDBusTypeConstructor):
6895         type.UnderlyingSystemType will return "System.Byte" if you do it
6896         on "byte[]", which is not what we want.  So check the type.IsArray
6897         property and use System.Array instead.
6898
6899 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6900
6901         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6902         the DBusUserInfo structure since this is passed into the function.
6903         This would cause a double free when the function that allocated
6904         the structure would try to free it when an error occured.
6905
6906         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6907         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6908         for service activation to avoid 32bit/64bit parallel install issues
6909
6910 2004-10-21  Colin Walters  <walters@verbum.org>
6911
6912         * AUTHORS: Fix my email address, the @gnu.org one
6913         has been bouncing for some time.  Also add J5.
6914         
6915 2004-10-21  Colin Walters  <walters@verbum.org>
6916
6917         * dbus/dbus-transport-unix.c (do_authentication): Return
6918         authentication status to callers.
6919         (unix_handle_watch): If we completed authentication this round,
6920         don't do another read.  Instead wait until the next iteration,
6921         after we've read any pending data in the auth buffer.
6922         (unix_do_iteration): Ditto.
6923         (unix_handle_watch): Updated for new do_authentication prototype.
6924
6925 2004-10-18  Colin Walters  <walters@verbum.org>
6926
6927         * bus/selinux.c (bus_selinux_enabled): Handle
6928         --disable-selinux case.
6929         
6930 2004-10-18  Colin Walters  <walters@verbum.org>
6931
6932         * bus/selinux.h: Add bus_selinux_enabled.
6933         
6934         * bus/selinux.c (bus_selinux_enabled): Implement it.
6935         
6936         * bus/config-parser.c (struct include): Add
6937         if_selinux_enabled member.
6938         (start_busconfig_child): Parse if_selinux_enabled
6939         attribute for include.
6940         (bus_config_parser_content): Handle it.
6941
6942         * bus/session.conf.in, bus/system.conf.in: Add
6943         inclusion of context mapping to default config files;
6944         conditional on SELinux being enabled.
6945         
6946         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6947         
6948         * test/data/invalid-config-files/badselinux-1.conf, 
6949         test/data/invalid-config-files/badselinux-2.conf:
6950         Test files for bad syntax.
6951         
6952 2004-10-17  Colin Walters  <walters@verbum.org>
6953
6954         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6955         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6956         format specifier mismatches.
6957
6958 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6959
6960         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6961         format string.
6962
6963         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6964         pointer (bug #1540, Leonardo Boiko).
6965
6966 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6967
6968         * mono/BusDriver.cs: Changed BusDriver struct to remove
6969         the ServiceCreated and ServiceDeleted events and replace them
6970         with the new ServiceOwnerChanged event.
6971
6972         * mono/example/BusListener.cs: Added a new example program,
6973         which listens for and reports any ServiceOwnerChanged events
6974         on the bus driver.
6975
6976         * mono/example/Makefile.am (DESTDIR): Build changes for the
6977         new BusListener.cs example.
6978
6979 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6980
6981         * bus/signals.c (bus_match_rule_parse): validate the components of
6982         match rules (bug #1439).
6983
6984         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6985
6986 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6987
6988         * doc/dbus-specification.xml: document ServiceOwnerChanged
6989         signal.
6990         
6991         * bus/driver.c, bus/driver.h, bus/services.c: Use
6992         ServiceOwnerChanged signal instead of ServiceCreated and
6993         ServiceDeleted.
6994         
6995         * bus/dispatch.c: update testcase for the new signal.
6996
6997 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6998
6999         Patch from Nat Friedman <nat@novell.com>
7000
7001         * mono/Makefile.am: A number of small build fixes to allow "make
7002         distcheck" to succeed.
7003
7004         * mono/example/Makefile.am: "make distcheck" fixes.
7005
7006         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7007         key in @srcdir@.
7008
7009         * test/Makefile.am: "make distcheck" fixes.
7010
7011 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7012
7013         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7014
7015         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7016
7017         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7018         messages after the first one (bug #1389).
7019         
7020         * bus/dispatch.c (check_double_hello_message): add a test case for
7021         the double hello message bug.
7022         (check_existent_service_activation): fix check of spawning error.
7023         
7024 2004-09-16  David Zeuthen  <david@fubar.dk>
7025
7026         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7027
7028 2004-09-12  David Zeuthen  <david@fubar.dk>
7029
7030         Patch from Kay Sievers <kay.sievers@vrfy.org>
7031
7032         * bus/bus.c (bus_context_new):
7033         * bus/bus.h:
7034         * bus/main.c (usage)
7035         (main):
7036         Add commandline option --nofork to override configuration file
7037         setting.
7038
7039 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7040
7041         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7042         compilers don't like it (bug #974).
7043
7044 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7045
7046         * qt/connection.*: Applied patch by Jérôme Lodewyck
7047         <lodewyck@clipper.ens.fr> to integrate an existing
7048         connection into the Qt eventloop
7049
7050 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7051
7052         * mono/BusDriver.cs: Added.  This is a class for interacting with
7053         the org.freedesktop.DBus service.
7054
7055         * mono/Message.cs: Added a mechanism to expose the message that is
7056         currently being dispatched via the static Message.Current
7057         property.  Added Message.Sender and Message.Destination
7058         properties.
7059
7060         * mono/Handler.cs: Expose the dispatched message via
7061         Message.Current when handling method calls.
7062
7063         * mono/Service.cs: Expose the dispatched message via
7064         Message.Current when handling signal emissions.
7065         
7066         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7067         Connection.BaseService property.
7068
7069 2004-08-28  Havoc Pennington  <hp@redhat.com>
7070
7071         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7072
7073         More fixes from Steve Grubb
7074         
7075         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7076         (_dbus_listen_tcp_socket): fix fd leak
7077
7078         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7079         EINTR to a bit lower in the code
7080
7081 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7082
7083         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7084         TRUE if we are inquiring about the existence of the built-in
7085         org.freedesktop.DBus service.
7086
7087 2004-08-25  John Palmieri  <johnp@redhat.com>
7088         * bus/config-parser.c:
7089         (struct PolicyType): Add POLICY_CONSOLE
7090         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7091         (start_busconfig_child): Sets up console element when
7092         <policy at_console=""> is encountered in a policy file
7093         (append_rule_from_element): Convert console elements to console
7094         rules.
7095
7096         * bus/policy.c: 
7097         (bus_policy_create_client_policy): Add console rules to the client
7098         policy based on if the client is at the console
7099         (bus_policy_append_console_rule): New function for adding a
7100         console rule to a policy
7101         (bus_policy_merge): Handle console rule merging
7102
7103         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7104         where we check for console user files
7105         
7106         * dbus/dbus-sysdeps.c:
7107         (_dbus_file_exists): New function which checks if the given
7108         file exists
7109         (_dbus_user_at_console): New function which does the system
7110         specific process of checking if the user is at the console
7111
7112         * dbus/dbus-userdb.c:
7113         (_dbus_is_console_user): New function converts a UID to user name
7114         and then calls the system specific _dbus_user_at_console to 
7115         see if the user is at the console and therefor a console user
7116
7117 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7118
7119         * bus/config-parser.c (set_limit):
7120         * bus/dbus-daemon-1.1.in:
7121         * test/data/valid-config-files/many-rules.conf: set the
7122         max_match_rules_per_connection limt from the config file. 
7123
7124         * doc/busconfig.dtd: update the DTD.
7125
7126         * bus/driver.c: remove some unused variables.
7127
7128 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7129
7130         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7131         it's been replaced by dbus_g_bus_get
7132
7133 2004-08-23  Colin Walters  <walters@redhat.com>
7134
7135         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7136
7137         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7138
7139         * bus/selinux.c: Create a thread for policy reload notification.
7140         (bus_selinux_get_policy_root): Implement.
7141
7142         * bus/config-parser.c (start_busconfig_child)
7143         (bus_config_parser_content): Support SELinux-root relative
7144         inclusion.
7145
7146         * configure.in <HAVE_SELINUX>: Add -lpthread.
7147         
7148         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7149         (test_post_hook): Move memory checking into here.
7150         (test_pre_hook, test_post_hook): Move SELinux checks in
7151         here, but conditional on a DBUS_TEST_SELINUX environment
7152         variable.  Unfortunately we can't run the SELinux checks
7153         as a normal user, since they won't have any permissions
7154         for /selinux.  So this will have to be tested manually
7155         for now, until we have virtualization for most of
7156         libselinux.
7157         
7158 2004-08-23  Havoc Pennington  <hp@redhat.com>
7159
7160         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7161         drop supplementary groups, suggested by Steve Grubb
7162
7163 2004-08-20  Colin Walters  <walters@redhat.com>
7164
7165         * bus/config-parser.c (start_busconfig_child): Remove some unused
7166         variables.
7167         
7168         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7169         warning.
7170
7171 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7172
7173         * configure.in: If --enable-mono is passed in, if we can't find
7174         mono error out.
7175
7176         * mono/Makefile.am: Use /gacutil to install assemblies into the
7177         GAC and not /root.
7178
7179 2004-08-12  Havoc Pennington  <hp@redhat.com>
7180
7181         * NEWS: update for 0.22
7182
7183         * configure.in: release 0.22
7184
7185 2004-08-11  Colin Walters  <walters@redhat.com>
7186
7187         * tools/dbus-send.c (main, usage): Add --reply-timeout
7188         argument.
7189
7190 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7191
7192         * bus/bus.c (process_config_first_time_only): get rid of an unused
7193         DBusError that was causing a memoy leak (bug #989).
7194
7195         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7196         fix compilation on Solaris/Forte C (bug #974)
7197
7198         * bus/main.c (main): plug two minuscule memleaks.
7199
7200 2004-08-10  Havoc Pennington  <hp@redhat.com>
7201
7202         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7203
7204 2004-08-09  Havoc Pennington  <hp@redhat.com>
7205
7206         * COPYING: switch to Academic Free License version 2.1 instead of
7207         2.0, to resolve complaints about patent termination clause.
7208
7209 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7210
7211         * README: added documentation for the --enable-python 
7212         configure switch.
7213
7214 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7215
7216         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7217         _unref in the SELinux support.
7218
7219         * doc/busconfig.dtd: update DTD for SELinux support.
7220
7221         * bus/config-loader-libxml.c: fix error handler and parser
7222         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7223
7224         * configure.in: remove the warning about libxml2.
7225
7226         * dbus/dbus-bus.c: silence doxygen warning.
7227
7228 2004-07-31  Colin Walters  <walters@redhat.com>
7229
7230         * configure.in: Move #error in SELinux check to its own line.
7231
7232 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7233
7234         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7235         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7236         dbus_error_set.
7237
7238         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7239         broken by the change in the _SET_OOM macros.
7240
7241 2004-07-31  Colin Walters  <walters@redhat.com>
7242
7243         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7244         BUS_SET_OOM.
7245
7246 2004-07-31  Colin Walters  <walters@redhat.com>
7247
7248         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7249         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7250         AC_MSG_CHECKING.
7251
7252 2004-07-24  Havoc Pennington  <hp@redhat.com>
7253
7254         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7255
7256         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7257         functionality
7258
7259         * configure.in: add --enable-selinux
7260         
7261         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7262
7263         * bus/main.c (main): initialize and shut down selinux
7264
7265         * bus/connection.c: store SELinux ID on each connection, to avoid 
7266         repeated getting of the string context and converting it into 
7267         an ID
7268
7269         * bus/bus.c (bus_context_get_policy): new accessor, though it
7270         isn't used
7271         (bus_context_check_security_policy): check whether the security
7272         context of sender connection can send to the security context of
7273         recipient connection
7274
7275         * bus/config-parser.c: add parsing for <selinux> and <associate>
7276         
7277         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7278         implement dbus_connection_get_unix_fd()
7279
7280         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7281         function, used by the selinux stuff
7282         
7283 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7284
7285         * bus/config-loader-libxml.c: complete the implementation of
7286         libxml backend for config file loader. Doesn't work with full OOM
7287         test yet. 
7288         
7289         * configure.in: change error when selecting libxml into a warning.
7290         
7291         * test/data/invalid-config-files: add two non-well-formed XML
7292         files. 
7293         
7294         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7295         
7296         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7297         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7298         be necessary to read all the buffer. (bug #894)
7299
7300         * bus/activation.c (bus_activation_activate_service): fix a
7301         potential assertion failure (bug #896). Small optimization in the
7302         case of auto-activation messages.
7303
7304         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7305         add test case for byte-through-vararg bug (#901). patch by Kimmo
7306         Hämäläinen. 
7307
7308 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7309
7310         * python/dbus.py:
7311         * python/dbus_bindings.pyx.in:
7312         Add dbus.init_gthreads (), allow emit_signal to pass
7313         arguments to the signal.
7314         
7315 2004-07-24  Havoc Pennington  <hp@redhat.com>
7316
7317         * AUTHORS: add some people, not really comprehensively, let me
7318         know if I missed you
7319
7320 2004-07-24  Havoc Pennington  <hp@redhat.com>
7321
7322         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7323         Owen
7324
7325         * test/Makefile.am (DIST_SUBDIRS): here also
7326
7327 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7328
7329         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7330         breaking build on Solaris, reported by Farhad Saberi on the ML.
7331
7332         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7333         va_arg invocation to account for integer promotion in the case of
7334         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7335
7336         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7337         _dbus_list_get_first_link, not _dbus_list_get_first.
7338
7339         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7340
7341         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7342         handler functions so that the asserts in _dbus_object_subtree_unref
7343         do not fail.
7344
7345         * dbus/dbus-transport-unix.c (do_reading):
7346         _dbus_transport_queue_messages return value is of type
7347         dbus_bool_t, not DBusDispatchStatus.
7348         
7349 2004-07-19  David Zeuthen  <david@fubar.dk>
7350
7351         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7352
7353         * bus/dispatch.c:
7354         (check_get_connection_unix_user): Debug says GetProperty; but the
7355         method is called GetConnectionUnixUser
7356         (check_get_connection_unix_process_id): New function
7357         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7358         also call check_get_connection_unix_process_id()
7359         
7360         * bus/driver.c:
7361         (bus_driver_handle_get_connection_unix_process_id): New function,
7362         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7363         interface
7364         
7365         * dbus/dbus-auth.c:
7366         (handle_server_data_external_mech): Set pid from the credentials
7367         obtained from the socket
7368         
7369         * dbus/dbus-connection.c:
7370         (dbus_connection_get_unix_process_id): New function
7371         
7372         * dbus/dbus-connection.h: 
7373         Add prototype for dbus_connection_get_unix_process_id
7374         
7375         * dbus/dbus-transport.c:
7376         (_dbus_transport_get_unix_process_id): New function
7377         
7378         * dbus/dbus-transport.h:
7379         Add prototype for _dbus_transport_get_unix_process_id
7380         
7381 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7382
7383         * dbus/dbus-message.c: Message counter fix, patch by Christian
7384         Hammond <chipx86@gnupdate.org>
7385
7386 2004-07-18  Seth Nickell  <seth@gnome.org>
7387
7388         * python/dbus.py:
7389         * python/dbus_bindings.pyx.in:
7390         * python/tests/test-client.py:
7391
7392         Add dbus.ByteArray and dbus_bindings.ByteArray
7393         types so that byte streams can be passed back.
7394
7395         Give jdahlin the heaps of credit that are so
7396         rightfully his.
7397         
7398 2004-07-12  Seth Nickell  <seth@gnome.org>
7399
7400         * python/dbus.py:
7401
7402         Add message argument to the default object_method_handler
7403         function.
7404         
7405         * python/dbus_bindings.pyx.in:
7406
7407         Automatically return NIL when passed an empty list
7408         (we can't pass back a list since lists are typed
7409         and we don't have any idea what type the the client
7410         intended the list to be... :-( )
7411         
7412 2004-07-10  Seth Nickell  <seth@gnome.org>
7413
7414         * python/examples/Makefile.am:
7415
7416         Fix distcheck breakage caused by new examples.
7417
7418 2004-07-10  Seth Nickell  <seth@gnome.org>
7419
7420         * python/dbus.py:
7421
7422         Add "message" argument to service-side dbus.Object
7423         methods. This will break existing services written
7424         using the python bindings, but will allow extraction
7425         of all the message information (e.g. who its from).
7426
7427         Add improved "object oriented" signal handling/emission.
7428         
7429         * python/examples/example-service.py:
7430
7431         Nix this example.
7432         
7433         * python/examples/example-signal-emitter.py:
7434         * python/examples/example-signal-recipient.py:
7435
7436         Two new examples that show how to emit and receive
7437         signals using the new APIs.
7438         
7439         * python/examples/example-signals.py:
7440         * python/examples/gconf-proxy-service.py:
7441         * python/examples/gconf-proxy-service2.py:
7442
7443         Add "message" argument to service methods.
7444
7445 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7446
7447         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7448         * dbus/bus.c (dbus_bus_get_unix_user)
7449         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7450         method of org.freedesktop.DBus interface.
7451
7452         * bus/dispatch.c: test case
7453
7454 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7455
7456         * python/Makefile.am: switched include directory from glib/ to dbus/
7457         since dbus-glib.h moved
7458  
7459 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7460
7461         * configure.in: prevent building the gcj stuff and libxml loader
7462         since they are broken.
7463
7464 2004-06-20  Havoc Pennington  <hp@redhat.com>
7465
7466         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7467         codes from the dbus error names
7468         
7469         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7470         as dbus/dbus-glib.h and that breakage is now visible due to 
7471         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7472         
7473         * glib/dbus-glib.h: s/gproxy/g_proxy/
7474
7475         * dbus/dbus-shared.h: new header to hold stuff shared with
7476         binding APIs
7477         
7478         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7479         than dbus-errors.h
7480
7481         * glib/dbus-glib.h (dbus_set_g_error): move to
7482         dbus-glib-lowlevel.h
7483
7484         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7485         of stuff to enable this
7486
7487         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7488
7489         * a bunch of other changes with the same basic "separate glib 
7490         bindings from dbus.h" theme
7491         
7492 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7493
7494         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7495
7496         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7497
7498 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7499
7500         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7501         the reply value of the ServiceExists message.
7502
7503 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7504
7505         * python/dbus_bindings.pyx.in: No longer need to parse path
7506         elements and pass them as arrays of strings.  The C API now
7507         accepts plain path strings.
7508         (_build_parsed_path): removed 
7509
7510 2004-06-07  Havoc Pennington  <hp@redhat.com>
7511
7512         * doc/TODO: remove auto-activation item since it's done; sort
7513         items by importance/milestone
7514
7515 2004-06-07  Havoc Pennington  <hp@redhat.com>
7516
7517         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7518         random signature when using REQUIRED_FIELDS (this hack won't work
7519         in the long term)
7520
7521         * dbus/dbus-message.c: change the signature to be a header field,
7522         instead of message->signature special-case string. Incremental
7523         step forward. Then we can fix up code to send the signature in the
7524         message, then fix up code to validate said signature, then fix up
7525         code to not put the typecodes inline, etc.
7526         (load_one_message): don't make up the signature after the fact
7527         (decode_header_data): require signature field for the known
7528         message types
7529
7530         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7531
7532         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7533
7534 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7535
7536         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7537
7538         * mono/Handler.cs: Updated to follow new path argument for
7539         (un-)registering objects.
7540
7541         * mono/example/Makefile.am:
7542         * mono/Makefile.am:
7543         * configure.in: Bumped required version for mono and use new -pkg
7544         syntax for deps
7545
7546 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7547
7548         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7549         registration functions take the path argument as char* instead of
7550         char**.
7551
7552         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7553         split off the path decompostion part of
7554         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7555         warnings. 
7556
7557         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7558         
7559 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7560  
7561         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7562         machine approach.  A state is implemented as a function that
7563         handles incoming events as specified for that state.
7564         
7565         * doc/dbus-specification.xml: Update auth protocol state machine
7566         specification to match implementation.  Remove some leftover
7567         base64 examples.
7568
7569 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7570
7571         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7572         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7573         quiet doxygen.
7574
7575         * Doxyfile.in: remove deprecated options.
7576
7577         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7578         glib/test-thread.h, glib/test-thread-client.c,
7579         glib/test-thread-server.c, glib/test-profile.c,
7580         glib/test-dbus-glib.c: remove these unused files.
7581
7582 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7583
7584         * dbus/dbus-object-tree.c
7585         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7586         non-fallback handlers (bug #684).
7587         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7588         (find_subtree_recurse): report wether the returned subtree is an
7589         exact match or a "fallback" match higher up in the tree.
7590         (object_tree_test_iteration): update test case.
7591
7592 2004-06-01  Seth Nickell  <seth@gnome.org>
7593
7594         * python/dbus_bindings.pyx.in:
7595         * python/tests/test-client.py:
7596
7597         Round off basic type support. Add dicts (yay!), and 
7598         remaining array types.
7599
7600         Make MessageIter more general so it works for dicts too.
7601
7602         Mark all loop variables as C integers.
7603         
7604 2004-05-31  Havoc Pennington  <hp@redhat.com>
7605
7606         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7607         "in" before "out"
7608
7609         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7610
7611         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7612         option that runs the tests, and start filling in some code
7613         including for starters just dumping the interfaces to stdout
7614
7615         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7616
7617         * test/data/valid-introspection-files/lots-of-types.xml: test of
7618         an example introspection file
7619
7620         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7621         "node" (I think...)
7622
7623 2004-05-31  Seth Nickell  <seth@gnome.org>
7624
7625         * python/dbus_bindings.pyx.in:
7626         * python/tests/test-client.py:
7627
7628         Test Suite: 1
7629         Python Bindings: 0
7630
7631         Fix string array memory trashing bug... oops...
7632
7633 2004-05-30  Seth Nickell  <seth@gnome.org>
7634
7635         * python/dbus.py:
7636
7637         Add a nicer-but-less-flexible alternate API for handling 
7638         calls to virtual objects in dbus.ObjectTree.
7639
7640         Screw up the argument order to the dbus.Object constructor
7641         for consistency with dbus.ObjectTree (and to make dbus_methods
7642         optional for future extension)
7643         
7644         * python/examples/Makefile.am:
7645         * python/examples/gconf-proxy-service.py:
7646         * python/examples/gconf-proxy-service2.py:
7647
7648         Alternate implementation of gconf-proxy-service using the
7649         nicer dbus.ObjectTree API.
7650         
7651         * python/examples/example-service.py:
7652         * python/tests/test-server.py
7653
7654         Reverse the argument order to deal with dbus.Object constructor
7655         changes.
7656         
7657 2004-05-30  Seth Nickell  <seth@gnome.org>
7658
7659         * python/examples/example-client.py:
7660         * python/examples/example-service.py:
7661
7662         Take it back. Lists seem to work but they're broken
7663         in the test suite. Make the base examples use
7664         lists (works fine).
7665
7666 2004-05-30  Seth Nickell  <seth@gnome.org>
7667
7668         * python/dbus_bindings.pyx.in:
7669         * python/tests/test-client.py:
7670
7671         Add some more tests and fix errors that crop up.
7672         Unfortunately, currently it seems like marshalling
7673         and unmarshalling of lists is completely broken :-(
7674
7675 2004-05-30  Seth Nickell  <seth@gnome.org>
7676
7677         * python/dbus_bindings.pyx.in:
7678
7679         Add support for ObjectPath type.
7680
7681         * python/dbus.py:
7682
7683         Refactor message handling code to a common function.
7684         
7685         * python/tests/test-client.py:
7686         * python/tests/test-server.py:
7687
7688         Add tests that check to make sure values of all types
7689         can be echoed from a service w/o mangling.
7690         
7691 2004-05-29  Seth Nickell  <seth@gnome.org>
7692
7693         * python/dbus.py:
7694
7695         Add ObjectTree class which allows implementation
7696         of trees of "virtual" objects. Basically the python
7697         wrapper for "register_fallback".
7698         
7699         * python/examples/Makefile.am
7700         * python/examples/gconf-proxy-client.py:
7701         * python/examples/gconf-proxy-service.py:
7702
7703         Implement a simple GConf proxy service that supports
7704         get/set on string and int GConf keys using the ObjectTree.
7705         
7706 2004-05-29  Seth Nickell  <seth@gnome.org>
7707
7708         * python/dbus.py:
7709         * python/examples/example-client.py:
7710         * python/examples/example-service.py:
7711         * python/examples/list-system-services.py:
7712
7713         Add SessionBus, SystemBus and ActivationBus classes
7714         so you don't need to know the special little BUS_TYPE
7715         flag.
7716         
7717 2004-05-29  Havoc Pennington  <hp@redhat.com>
7718
7719         * bus/config-parser.c (process_test_valid_subdir): temporarily
7720         stop testing config parser OOM handling, since expat has issues
7721         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7722
7723         * bus/dbus-daemon-1.1.in: change requested_reply to
7724         send_requested_reply/receive_requested_reply so we can send the
7725         replies, not just receive them.
7726
7727         * bus/config-parser.c: parse the new
7728         send_requested_reply/receive_requested_reply
7729
7730         * bus/policy.c (bus_client_policy_check_can_send): add
7731         requested_reply argument and use it
7732
7733         * bus/bus.c (bus_context_check_security_policy): pass through
7734         requested_reply status to message send check
7735
7736         * bus/system.conf.in: adapt to requested_reply change
7737         
7738 2004-05-28  Havoc Pennington  <hp@redhat.com>
7739
7740         * test/glib/test-service-glib.c (main): remove unused variable
7741
7742         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7743
7744         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7745         from the enum, no longer in use.
7746
7747         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7748         works right.
7749
7750         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7751         whether error_name passed in is a valid error name.
7752
7753 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7754
7755         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7756         OBJECT_PATH and OBJECT_PATH_ARRAY
7757
7758 2004-05-28  Seth Nickell  <seth@gnome.org>
7759
7760         * python/examples/Makefile.am:
7761
7762         Forget to add Makefile.am. Do not pass go.
7763
7764 2004-05-28  Michael Meeks  <michael@ximian.com>
7765
7766         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7767         fix no int64 case.
7768
7769         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7770
7771         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7772         (_dbus_message_iter_get_basic_type_array): impl.
7773         drastically simplify ~all relevant _get methods to use these.
7774         (_dbus_message_iter_append_basic_array),
7775         (dbus_message_iter_append_basic): impl
7776         drastically simplify ~all relevant _append methods to use these.
7777
7778         * dbus/dbus-message-builder.c (parse_basic_type) 
7779         (parse_basic_array, lookup_basic_type): impl.
7780         (_dbus_message_data_load): prune scads of duplicate /
7781         cut & paste coding.
7782
7783         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7784         (_dbus_demarshal_basic_type): implement,
7785         (demarshal_and_validate_len/arg): beef up debug.
7786         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7787
7788 2004-05-27  Seth Nickell  <seth@gnome.org>
7789
7790         * configure.in:
7791         * python/Makefile.am:
7792
7793         Include the example python apps in the tarball.
7794         
7795         * python/examples/list-system-services.py
7796
7797         Add a python new example that fetches the list of services
7798         from the system bus.
7799         
7800 2004-05-27  Seth Nickell  <seth@gnome.org>
7801
7802         * python/dbus.py:
7803         * python/dbus_bindings.pyx.in:
7804
7805         Fix failure to notify that a signal was not handled,
7806         resulted in hung functions.
7807         
7808 2004-05-25  Colin Walters  <walters@redhat.com>
7809
7810         * tools/dbus-monitor.c (main): Monitor all types of messages.
7811
7812 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7813
7814         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7815         which unregisters the object path and disposes the handler.
7816
7817 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7818  
7819         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7820          
7821         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7822         operands to && so we call dbus_message_iter_next () for the last
7823         argument also.
7824
7825 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7826
7827         * dbus/dbus-object-tree.c
7828         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7829         children even if the requested path isn't registered.
7830         (object_tree_test_iteration): test object_tree_list_registered.
7831
7832         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7833         it to 0.
7834         
7835 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7836
7837         * doc/TODO: Remove resolved items.
7838
7839         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7840         field.
7841         
7842         * bus/connection.c (bus_connections_expect_reply): Enforce the
7843         per-connection limit on pending replies.
7844         
7845         Patch from Jon Trowbridge <trow@ximian.com>:
7846  
7847         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7848         up a watch that triggers a config reload when one end of the pipe
7849         becomes readable.
7850         (signal_handler): Instead of doing the config reload in our SIGHUP
7851         handler, just write to the reload pipe and let the associated
7852         watch handle the reload when control returns to the main loop.
7853  
7854         * bus/driver.c (bus_driver_handle_reload_config): Added.
7855         Implements a ReloadConfig method for requesting a configuration
7856         file reload via the bus driver.
7857  
7858 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7859
7860         * HACKING: Updated release instructions concerning the wiki page.
7861
7862 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7863
7864         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7865         filter against auth->allowed_mechs; we only add allowed mechs in
7866         record_mechanisms().
7867  
7868         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7869         ALLOWED_MECHS to auth-script format so we can set the list of
7870         allowed mechanisms.
7871  
7872         * data/auth/client-out-of-mechanisms.auth-script: New test to
7873         check client disconnects when it is out of mechanisms to try.
7874  
7875         * dbus/dbus-auth.c (process_command): Remove check for lines
7876         longer that 1 MB; we only buffer up maximum 16 kB.
7877  
7878         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7879         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7880         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7881         assume there might be unused bytes.
7882  
7883         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7884         client-out-of-mechs, it is handled in process_reject(). Move check
7885         for max failures to send_rejected(), as it's a server-only thing.
7886
7887         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7888         send_auth(), send_data(), send_rejected(), send_error(),
7889         send_ok(), send_begin() and send_cancel().
7890
7891 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7892
7893         Remove base64 encoding, replace with hex encoding. Original patch
7894         from trow@ximian.com, added error handling.
7895
7896         * dbus/dbus-string.c (_dbus_string_base64_encode)
7897         (_dbus_string_base64_decode): Remove.
7898         (_dbus_string_hex_decode): Add end_return argument so we can
7899         distinguish between OOM and invalid hex encoding.
7900         (_dbus_string_test): Remove base64 tests and add test case for
7901         invalid hex.
7902
7903         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7904         Replace base64 with hex.
7905
7906         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7907         for invalid hex encoded data in auth protocol.
7908
7909 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7910
7911         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7912         leak.
7913
7914 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7915
7916         * mono/dbus-sharp.dll.config.in: Added for GAC
7917         * mono/dbus-sharp.snk: Added for GAC
7918         * mono/Assembly.cs.in: Added for GAC
7919         * mono/Makefile.am: Changes for GAC installation        
7920         * configure.in: Added refs for dbus-sharp.dll.config.in and
7921         Assembly.cs.in. More fixes for mono testing
7922         * mono/example/Makefile.am: Changed var to CSC
7923         * Makefile.am: Changed flag name to DBUS_USE_CSC
7924
7925 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7926
7927         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7928         * mono/doc/*: Added documentation framework
7929         * configure.in: Added monodoc check
7930         * README: Added description of mono configure flags
7931
7932 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7933
7934         * doc/dbus-specification.xml: Added a "Required" column to the 
7935         header fields table and changed the "zero or more" verbage in
7936         the above paragraph to read "The header must contain the required 
7937         named header fields and zero or more of the optional named header 
7938         fields".
7939         * test/data/invalid-messages/*.message: Added the required PATH 
7940         named header field to the tests so that they don't fail on 
7941         'Missing path field'
7942
7943 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7944
7945         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7946         the stack by implicitly defining variable and parameter types and
7947         removing the hack of defining C pointers as python objects and later
7948         casting them.
7949
7950 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7951
7952         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7953
7954 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7955
7956         * mono/DBusType/Dict.cs: Handle empty dicts
7957         * mono/DBusType/Array.cs: Handle empty arrays
7958         * mono/Arguments.cs: Handle empty arguments
7959
7960 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7961
7962         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7963         field
7964
7965 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7966
7967         * test/data/valid-messages/standard-*.message: Update message
7968         test scripts to new header field names.
7969
7970 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7971
7972         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7973         overflow to times_we_did_each_thing array which would chop off the
7974         first character of the failure_dir string. Increased the size of
7975         the array to 7 to reflect the number of random mutation functions
7976         we have.
7977
7978 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7979
7980         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7981         unix_server->watch here, it is unreffed in disconnect.
7982         (_dbus_server_new_for_tcp_socket): convert NULL host to
7983         "localhost" here so we don't append NULL to address.
7984         
7985         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7986         various addresses, including tcp with no explicit host.
7987
7988 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7989
7990         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7991         fix incorrect setting of .name_offset in the HeaderField (it was
7992         off by two bytes, positioned right after the name and typecode)
7993
7994         * bus/bus.c (bus_context_new, bus_context_unref): test before
7995         calling dbus_server_free_data_slot and _dbus_user_database_unref
7996         in case of an error.
7997
7998         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7999         by libdbus-gtool.
8000
8001 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8002
8003         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8004         _dbus_poll() instead of select().
8005
8006 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8007
8008         * bus/main.c (signal_handler): Reload the configuration files
8009         on SIGHUP.
8010         (main): Set up our SIGHUP handler.
8011
8012         * bus/bus.c (struct BusContext): Store the config file, user and
8013         fork flag in the BusContext.
8014         (process_config_first_time_only): Added.  Contains the code
8015         (previously in bus_context_new) for setting up the BusContext from
8016         the BusConfigParser that should only be run the first time the
8017         config files are read.
8018         (process_config_every_time): Added.  Contains the code (previously
8019         in bus_context_new) for setting up the BusContext from the
8020         BusConfigParser that should be run every time the config files are
8021         read.
8022         (load_config): Added.  Builds a BusConfigParser from the config
8023         files and passes the resulting structure off to
8024         process_config_first_time_only (assuming this is the first time)
8025         and process_config_every_time.
8026         (bus_context_new): All of the config-related code has been moved
8027         to process_config_first_time_only and process_config_every_time.
8028         Now this function just does the non-config-related initializations
8029         and calls load_config.
8030         (bus_context_reload_config): Added.
8031
8032 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8033
8034         * bus/driver.c (bus_driver_handle_get_service_owner):
8035         implement a GetServiceOwner method.
8036         * doc/dbus-specification.xml: document it.
8037         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8038         
8039         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8040         implement, using the bus GetServiceOwner method.
8041
8042         * test/glib/test-dbus-glib.c:
8043         use dbus_gproxy_new_for_service_owner so that we can receive the
8044         signal. 
8045
8046 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8047
8048         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8049         dbus/dbus-message.c, dbus/dbus-protocol.h
8050         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8051
8052         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8053         dbus/dbus-message.c, dbus/dbus-protocol.h
8054         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8055
8056         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8057         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8058         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8059
8060         * doc/dbus-specification.xml (Header Fields Table):
8061         s/SERVICE/DESTINATION
8062         s/SENDER_SERVICE/SENDER
8063
8064
8065 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8066
8067         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8068         a few seconds.
8069
8070 2004-04-13  Michael Meeks  <michael@ximian.com>
8071
8072         * glib/dbus-gobject.c (handle_introspect): split out
8073         (introspect_properties): this.
8074         (handle_introspect): implement this.
8075
8076         * test/glib/Makefile.am: use the absolute path so the bus
8077         daemon's chdir ("/") doesn't kill us dead.
8078
8079         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8080
8081 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8082
8083         * bus/config-parser.c (struct BusConfigParser): Added
8084         included_files field.
8085         (seen_include): Added.  Checks whether or not a file has already
8086         been included by any parent BusConfigParser.
8087         (bus_config_parser_new): Copy the parent's included_files.
8088         (include_file): Track which files have been included, and fail on
8089         circular inclusions.
8090         (process_test_valid_subdir): Changed printf to report if we are
8091         testing valid or invalid conf files.
8092         (all_are_equiv): Changed printf to be a bit clearer about
8093         what we are actually doing.
8094         (bus_config_parser_test): Test invalid configuration files.
8095
8096 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8097
8098         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8099         argument.  If non-null, the newly-constructed BusConfigParser will
8100         be initialized with the parent's BusLimits instead of the default
8101         values.
8102         (include_file): When including a config file, pass in
8103         the current parser as the parent and then copy the BusLimits
8104         from the included BusConfigParser pack to the current parser.
8105         (process_test_valid_subdir): Renamed from process_test_subdir.
8106         (process_test_equiv_subdir): Added.  Walks through a directory,
8107         descending into each subdirectory and loading the config files
8108         it finds there.  If any subdirectory contains two config files
8109         that don't produce identical BusConfigParser structs, fail.
8110         For now, the BusConfigParser's BusPolicies are not compared.
8111         (bus_config_parser_test): Call both process_test_valid_subdir and
8112         process_test_equiv_subdir.
8113
8114         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8115         argument and pass it along to the call to bus_config_parser_new.
8116         Also made a few small changes to allow this code to compile.
8117
8118         * bus/config-loader-expat.c (bus_config_load): Take a parent
8119         argument and pass it along to the call to bus_config_parser_new.
8120
8121         * bus/bus.c (bus_context_new): Load the config file
8122         with a NULL parent argument.
8123
8124 2004-03-29  Michael Meeks  <michael@ximian.com>
8125
8126         * glib/dbus-gobject.c (introspect_properties): split
8127         out, fix mangled 'while' flow control.
8128         (introspect_signals): implement.
8129         (handle_introspect): update.
8130
8131 2004-03-29  Michael Meeks  <michael@ximian.com>
8132
8133         * glib/dbus-gobject.c (set_object_property): split out / 
8134         re-work, use the property type, and not the message type(!)
8135         (get_object_property): ditto.
8136
8137         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8138         (dbus_gvalue_marshal): make this code re-usable, needed
8139         for signals too, also on both proxy and server side.
8140         Re-write for more efficiency / readability.
8141
8142 2004-03-29  Michael Meeks  <michael@ximian.com>
8143
8144         * dbus/dbus-message.c
8145         (dbus_message_new_error_printf): impl.
8146
8147         * dbus/dbus-connection.c
8148         (dbus_connection_unregister_object_path): fix warning.
8149
8150         * configure.in: fix no-mono-installed situation.
8151
8152 2004-03-27  Havoc Pennington  <hp@redhat.com>
8153
8154         Patch from Timo Teräs:
8155         
8156         * tools/dbus-send.c (main): if --print-reply, assume type is
8157         method call; support boolean type args
8158         
8159         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8160         bunch of memleak and logic bugs
8161         
8162 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8163
8164         * mono/Arguments.cs:
8165         * mono/Introspector.cs:
8166         * mono/Handler.cs:
8167         * mono/InterfaceProxy.cs:
8168         * mono/Message.cs
8169         * mono/ProxyBuilder.cs:
8170         * mono/Service.cs:
8171         Added InterfaceProxy class to avoid building proxies for every
8172         object.
8173
8174         * dbus-message.h:
8175         * dbus-message.c (dbus_message_append_args_valist)
8176         (dbus_message_iter_get_object_path)
8177         (dbus_message_iter_get_object_path_array)
8178         (dbus_message_iter_append_object_path)
8179         (dbus_message_iter_append_object_path_array):
8180         Added object_path iter functions to handle OBJECT_PATH arguments
8181         
8182 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8183
8184         First checkin of mono bindings.
8185         * configure.in:
8186         * Makefile.am:
8187         Build stuff for the bindings
8188         * dbus-sharp.pc.in: Added for pkgconfig
8189         
8190 2004-03-21  Havoc Pennington  <hp@redhat.com>
8191
8192         * test/test-service.c (main): remove debug spew
8193
8194 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8195
8196         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8197         arrays
8198
8199         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8200         (dbus_message_iter_init_array_iterator)
8201         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8202         indicate whether the iterator is empty
8203
8204         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8205         warnings
8206
8207 2004-03-19  Havoc Pennington  <hp@redhat.com>
8208
8209         * NEWS: 0.21 updates
8210
8211         * configure.in: 0.21
8212
8213         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8214         
8215         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8216         you don't need pyrex to make dist
8217
8218         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8219         sources; run moc
8220         
8221 2004-03-18  Richard Hult  <richard@imendio.com>
8222
8223         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8224         (dbus_message_set_auto_activation): Add doxygen docs.
8225
8226 2004-03-16  Richard Hult  <richard@imendio.com>
8227
8228         * bus/activation.c: (bus_activation_service_created),
8229         (bus_activation_send_pending_auto_activation_messages),
8230         (bus_activation_activate_service):
8231         * bus/activation.h:
8232         * bus/dispatch.c: (bus_dispatch),
8233         (check_nonexistent_service_auto_activation),
8234         (check_service_auto_activated),
8235         (check_segfault_service_auto_activation),
8236         (check_existent_service_auto_activation), (bus_dispatch_test):
8237         * bus/driver.c: (bus_driver_handle_activate_service):
8238         * bus/services.c: (bus_registry_acquire_service):
8239         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8240         (dbus_message_get_auto_activation):
8241         * dbus/dbus-message.h:
8242         * dbus/dbus-protocol.h: Implement auto-activation.
8243         
8244         * doc/dbus-specification.xml: Add auto-activation to the spec.
8245
8246 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8247
8248         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8249         fix a bug with CUSTOM types.
8250
8251         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8252         a unit test for this bug (used to fail).
8253
8254 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8255
8256         * bus/activation.c:
8257         (babysitter_watch_callback): notify all pending activations waiting for
8258           the same exec that the activation failed.
8259         (bus_activation_activate_service): shortcut the activation if we 
8260           already waiting for the same executable to start up.
8261
8262 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8263
8264         * bus/activation.c: 
8265         - Added service file reloading. 
8266           Each service files directory is kept in an hash table in 
8267           BusActivation and each BusActivationEntry knows what .service-file it
8268           was read from. So when you try to activate a service the bus will 
8269           check if it's been updated, removed or if new .service-files has 
8270           been installed.
8271         - Test code at the bottom for the service file reloading.
8272         * bus/test-main.c: (main):
8273         * bus/test.h:
8274         - added service reloading test.
8275         * dbus/dbus-sysdeps.c: 
8276         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8277
8278 2004-03-08  Michael Meeks  <michael@ximian.com>
8279
8280         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8281         bail immediately if disconnected, to avoid busy loop.
8282
8283         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8284         cleanup cut/paste/inefficiency.
8285
8286 2004-03-01  David Zeuthen  <david@fubar.dk>
8287
8288         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8289         bug where args were used twice. This bug resulted in a segfault
8290         on a Debian/PPC system when starting the messagebus daemon. Include
8291         dbus-sysdeps.h for DBUS_VA_COPY
8292
8293         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8294
8295         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8296         appropriate va_copy implementation. From GLib
8297         
8298 2004-02-24  Joe Shaw  <joe@ximian.com>
8299
8300         * bus/services.c (bus_registry_acquire_service): We need to pass
8301         in the service name to dbus_set_error() to prevent a crash.
8302
8303 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8304
8305         * AUTHORS: Reveal my True identity.
8306
8307 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8308
8309         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8310         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8311
8312 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8313
8314         * doc/TODO: Added not about better error check of configuration files.
8315
8316 2003-12-02  Richard Hult  <richard@imendio.com>
8317
8318         * Update AFL version to 2.0 throughout the source files to reflect
8319         the update that was done a while ago.
8320
8321 2003-12-02  Richard Hult  <richard@imendio.com>
8322
8323         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8324         wrote_dict_key to FALSE on the iter that the dict is appended to,
8325         just like when appending other types. Fixes a bug where a dict
8326         couldn't be put inside a dict.
8327         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8328         (message_iter_test, _dbus_message_test): Add test case for dict
8329         inside dict.
8330
8331 2003-12-01  David Zeuthen  <david@fubar.dk>
8332
8333         * python/dbus.py: Add the actual message when calling the reciever
8334         of a signal such that parameters can be inspected. Add the method
8335         remove_signal_receiver
8336         
8337 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8338
8339         * bus/*.[ch]:
8340         * dbus/*.[ch]:
8341         * glib/*.[ch]: Made ref functions return the pointer
8342
8343 2003-11-25  Zack Rusin  <zack@kde.org>
8344
8345         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8346
8347         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8348         wrappers,
8349
8350         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8351         the Integrator and to better fit with the server,
8352
8353 2003-11-24  Zack Rusin  <zack@kde.org>
8354
8355         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8356         the integrator handles it now
8357
8358         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8359         since QTimer wasn't really meant to be used the way DBusTimeout is
8360
8361 2003-11-24  Zack Rusin  <zack@kde.org>
8362
8363         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8364         Integrator class which integrates D-BUS with the Qt event loop,
8365
8366         * qt/connection.h, qt/connection.cpp: Move all the code which
8367         was dealing with D-BUS integration to the Integrator class,
8368         and start using Integrator,
8369
8370 2003-11-23  Zack Rusin  <zack@kde.org>
8371
8372         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8373         wrapper
8374
8375         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8376         switching namespaces to DBusQt, reworking the class,
8377
8378         * Makefile.cvs: switching dependencies so that it matches KDE 
8379         schematics,
8380         
8381         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8382         the library
8383
8384 2003-11-19  Havoc Pennington  <hp@redhat.com>
8385
8386         * NEWS: update
8387
8388         * configure.in: bump version to 0.20
8389
8390         * configure.in (have_qt): add yet another place to look for qt
8391         (someone hand trolltech a .pc file...)
8392
8393 2003-11-01  Havoc Pennington  <hp@redhat.com>
8394
8395         * doc/dbus-specification.xml: add state machine docs on the auth
8396         protocol; just a first draft, I'm sure it's wrong.      
8397
8398 2003-10-28  David Zeuthen  <david@fubar.dk>
8399
8400         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8401         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8402         
8403 2003-10-28  Havoc Pennington  <hp@redhat.com>
8404
8405         * dbus/dbus-message.c (get_next_field): delete unused function
8406
8407 2003-10-28  Havoc Pennington  <hp@redhat.com>
8408
8409         * bus/expirelist.c (do_expiration_with_current_time): detect
8410         failure of the expire_func due to OOM
8411
8412         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8413
8414         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8415         NoReply error that's now created by the bus when the service exits
8416
8417 2003-10-28  Havoc Pennington  <hp@redhat.com>
8418
8419         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8420         tests for set_path, set_interface, set_member, etc.
8421
8422         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8423
8424         * dbus/dbus-message.c (set_string_field): always just delete and
8425         re-append the field; accept NULL for deletion
8426         (re_align_fields_recurse): reimplement
8427         
8428 2003-10-26  Havoc Pennington  <hp@redhat.com>
8429
8430         * dbus/dbus-connection.c: fix docs to properly describe the
8431         disconnected message
8432         (_dbus_connection_notify_disconnected): remove this function; 
8433         we can't synchronously add the disconnected message, we have to 
8434         do it after we've queued any remaining real messages
8435         (_dbus_connection_get_dispatch_status_unlocked): queue the
8436         disconnect message only if the transport has finished queueing all
8437         its real messages and is disconnected.
8438         (dbus_connection_disconnect): update the dispatch status here
8439
8440 2003-10-22  Havoc Pennington  <hp@redhat.com>
8441
8442         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8443
8444         * bus/connection.c (bus_transaction_send_from_driver): set the
8445         destination to the connection's base service
8446
8447 2003-10-20  Havoc Pennington  <hp@redhat.com>
8448
8449         hmm, make check is currently not passing.
8450         
8451         * doc/dbus-specification.xml: add requirement that custom type
8452         names follow the same rules as interface names.
8453
8454         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8455         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8456         'map'
8457
8458         * doc/dbus-specification.xml: update type codes to match
8459         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8460         CUSTOM. Add type OBJECT_PATH to the spec.
8461
8462 2003-10-17  Havoc Pennington  <hp@redhat.com>
8463
8464         * bus/driver.c (create_unique_client_name): use "." as separator
8465         in base service names instead of '-'
8466
8467         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8468         byte at the end of the string
8469
8470         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8471         optimization macros since string validation seems to be a slow
8472         point.
8473         
8474         * doc/dbus-specification.xml: restrict valid
8475         service/interface/member/error names. Add test suite code for the
8476         name validation.
8477
8478         * dbus/dbus-string.c: limit service/interface/member/error names 
8479         to [0-9][A-Z][a-z]_
8480
8481         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8482         format arg to verbose spew
8483
8484         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8485         memory, return instead of g_error
8486
8487         * test/test-service.c (path_message_func): support emitting a
8488         signal on request
8489
8490         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8491         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8492         assuming the activation bus was the session bus so that services
8493         started manually will still register.
8494         (init_connections_unlocked): fix so that in OOM situation we get
8495         the same semantics when retrying the function
8496         
8497         * test/test-service.c (main): change to use path registration, to
8498         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8499         than DBUS_BUS_SESSION
8500
8501 2003-10-16  Havoc Pennington  <hp@redhat.com>
8502
8503         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8504
8505         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8506         coverage of the tests
8507         (coverage-report.txt): don't move the .da and .bbg files around
8508
8509 2003-10-16  Havoc Pennington  <hp@redhat.com>
8510
8511         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8512         to put there
8513
8514 2003-10-16  Havoc Pennington  <hp@redhat.com>
8515
8516         * bus/connection.c (bus_pending_reply_expired): either cancel or
8517         execute, not both
8518         (bus_connections_check_reply): use unlink, not remove_link, as we
8519         don't want to free the link; fixes double free mess
8520
8521         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8522         where no reply was received
8523
8524         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8525         fix a refcount leak
8526
8527         * bus/signals.c (match_rule_matches): add special cases for the
8528         bus driver, so you can match on sender/destination for it.
8529
8530         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8531         DBUS_PRINT_BACKTRACE is set
8532
8533         * dbus/dbus-internals.c: add pid to assertion failure messages
8534
8535         * dbus/dbus-connection.c: add message type code to the debug spew
8536
8537         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8538         sender=foo not service=foo
8539
8540         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8541         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8542         DBUS_ACTIVATION_ADDRESS instead
8543
8544         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8545         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8546
8547         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8548         context struct
8549
8550         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8551         (dbus_message_iter_get_object_path_array): new function (half
8552         finished, disabled for the moment)
8553         
8554         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8555         DBUS_MESSAGE_TYPE_ERROR
8556
8557         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8558         avoid redirecting stderr to /dev/null
8559         (babysit): close stdin if not doing the "exit_with_session" thing
8560
8561         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8562         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8563         stdout/stdin, so things don't get confused
8564         
8565         * bus/system.conf.in: fix to allow replies, I modified .conf
8566         instead of .conf.in again.
8567
8568 2003-10-14  David Zeuthen  <david@fubar.dk>
8569
8570         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8571         argtype to arg_type when raising unknown arg type exception.
8572         Changed type list to reflect the changes in dbus-protocol.h so 
8573         the bindings actually work.
8574
8575 2003-10-14  Havoc Pennington  <hp@redhat.com>
8576
8577         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8578         to have a bug keeping it from outputting the .da files sometimes
8579         (string_get_string): don't append garbage nul bytes to the string.
8580
8581 2003-10-15  Seth Nickell  <seth@gnome.org>
8582
8583         * python/Makefile.am:
8584
8585         Include dbus_h_wrapper.h in the dist tarball.
8586
8587 2003-10-14  Havoc Pennington  <hp@redhat.com>
8588
8589         * bus/bus.c (bus_context_check_security_policy): revamp this to
8590         work more sanely with new policy-based requested reply setup
8591
8592         * bus/connection.c (bus_transaction_send_from_driver): set bus
8593         driver messages as no reply
8594
8595         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8596         requested_reply attribute on allow/deny rules
8597
8598         * bus/system.conf: add <allow requested_reply="true"/>
8599
8600         * bus/driver.c (bus_driver_handle_message): fix check for replies
8601         sent to the bus driver, which was backward. How did this ever work
8602         at all though? I think I'm missing something.
8603
8604         * dbus/dbus-message.c (decode_header_data): require error and
8605         method return messages to have a reply serial field to be valid
8606         (_dbus_message_loader_queue_messages): break up this function;
8607         validate that reply serial and plain serial are nonzero; 
8608         clean up the OOM/error handling.
8609         (get_uint_field): don't return -1 from this
8610         (dbus_message_create_header): fix signed/unsigned bug
8611
8612         * bus/connection.c (bus_connections_expect_reply): save serial of
8613         the incoming message, not reply serial
8614
8615 2003-10-14  Havoc Pennington  <hp@redhat.com>
8616
8617         * bus/connection.c: implement pending reply tracking using
8618         BusExpireList
8619
8620         * bus/bus.c (bus_context_check_security_policy): verify that a
8621         reply is pending in order to allow a reply to be sent. Deny 
8622         messages of unknown type.
8623
8624         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8625
8626         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8627         (bus_context_get_reply_timeout): new
8628
8629 2003-10-13  Seth Nickell  <seth@gnome.org>
8630
8631         * python/Makefile.am:
8632
8633         Pass "make distcheck": remove a couple files from DIST_FILES
8634         that weren't included in the final version.
8635
8636 2003-10-12  Havoc Pennington  <hp@pobox.com>
8637
8638         Added test code that 1) starts an actual bus daemon and 2) uses
8639         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8640         more testing possible, but this is the basic framework.
8641         
8642         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8643         empty proxy lists from the proxy list hash
8644
8645         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8646         couple of return_if_fail checks
8647
8648         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8649         to allocate, so everything is cleared to NULL as it should be.
8650
8651         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8652         source as data to dbus_connection_set_timeout_functions() as the 
8653         timeout functions expected
8654
8655         * test/glib/run-test.sh: add a little script to start up a message
8656         bus and run tests using it
8657
8658         * tools/dbus-launch.1: updates
8659
8660         * tools/dbus-launch.c (main): add --config-file option
8661
8662         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8663         that could never be reached.
8664
8665         * dbus/dbus-message.c (dbus_message_new_method_return) 
8666         (dbus_message_new_error, dbus_message_new_signal): set the
8667         no-reply-expected flag on all these. Redundant, but may
8668         as well be consistent.
8669
8670 2003-10-11  Havoc Pennington  <hp@pobox.com>
8671
8672         * test/decode-gcov.c (function_solve_graph): make broken block
8673         graph a nonfatal error since it seems to be broken. Need to debug
8674         this.
8675
8676         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8677         can't just check type > INVALID < LAST anymore
8678
8679         * dbus/dbus-message.c (dbus_message_get_signature): new function
8680         (dbus_message_has_signature): new function
8681         (struct DBusMessage): add signature field (right now it isn't sent
8682         over the wire, just generated on the fly)
8683         (dbus_message_copy): copy the signature, and init strings to
8684         proper length to avoid some reallocs
8685         (dbus_message_iter_init_array_iterator): return void, since it
8686         can't fail
8687         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8688         (_dbus_message_loader_queue_messages): add silly temporary hack to
8689         fill in message->signature on load
8690
8691         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8692         characters, so they are relatively human-readable.
8693
8694 2003-10-11  Havoc Pennington  <hp@pobox.com>
8695
8696         * dbus/dbus-message.c (_dbus_message_test): add more test
8697         coverage, but #if 0 for now since they uncover a bug 
8698         not fixed yet; I think in re_align_field_recurse()
8699         (re_align_field_recurse): add FIXME about broken assertion
8700
8701         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8702
8703         * bus/connection.c: share a couple code bits with expirelist.c
8704
8705         * bus/expirelist.h, bus/expirelist.c: implement a generic
8706         expire-items-after-N-seconds facility, was going to share between
8707         expiring connections and replies, decided not to use for expiring
8708         connections for now.
8709
8710         * COPYING: include AFL 2.0 (still need to change all the file headers)
8711
8712 2003-10-09  Havoc Pennington  <hp@redhat.com>
8713
8714         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8715         gcc 3.3. Not that we do anything about it yet.
8716
8717         * bus/signals.c (bus_match_rule_parse): impose max length on the
8718         match rule text
8719
8720         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8721
8722 2003-10-09  Havoc Pennington  <hp@redhat.com>
8723
8724         Make matching rules theoretically work (add parser).
8725         
8726         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8727         the case where destination is explicitly specified as bus driver
8728         and someone else is eavesdropping.
8729         
8730         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8731         definition of eavesdropping and assertion
8732
8733         * tools/dbus-send.c (main): use dbus_message_type_from_string
8734
8735         * bus/signals.c (bus_match_rule_parse): implement
8736
8737         * dbus/dbus-message.c (dbus_message_type_from_string): new
8738
8739         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8740
8741 2003-10-02  Havoc Pennington  <hp@pobox.com>
8742
8743         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8744         dbus_gproxy_oneway_call
8745
8746         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8747         (dbus_server_setup_with_g_main): fix to allow calling them more
8748         than once on the same args
8749         (dbus_bus_get_with_g_main): new function
8750
8751 2003-10-02  Havoc Pennington  <hp@redhat.com>
8752
8753         * doc/dbus-tutorial.xml: write some stuff
8754
8755 2003-09-29  Havoc Pennington  <hp@pobox.com>
8756
8757         * configure.in: split checks for Doxygen from XML docs, check for
8758         xmlto
8759
8760         * doc/Makefile.am: XML-ify all the docs, and add a blank
8761         dbus-tutorial.xml
8762
8763 2003-09-29  Havoc Pennington  <hp@pobox.com>
8764
8765         * Merge dbus-object-names branch. To see the entire patch 
8766         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8767         it's huuuuge though.
8768         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8769         
8770 2003-09-28  Havoc Pennington  <hp@pobox.com>
8771
8772         * HACKING: update to reflect new server
8773
8774 2003-09-26  Seth Nickell  <seth@gnome.org>
8775
8776         * python/dbus.py:
8777         * python/examples/example-signals.py:
8778
8779         Start implementing some notions of signals. The API
8780         is really terrible, but they sort of work (with the
8781         exception of being able to filter by service, and to
8782         transmit signals *as* a particular service). Need to
8783         figure out how to make messages come from the service
8784         we registered :-(
8785         
8786         * python/dbus_bindings.pyx.in:
8787
8788         Removed duplicate message_handler callbacks.
8789         
8790 2003-09-25  Havoc Pennington  <hp@redhat.com>
8791
8792         * bus/session.conf.in: fix my mess
8793
8794 2003-09-25  Havoc Pennington  <hp@pobox.com>
8795
8796         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8797
8798 2003-09-25  Seth Nickell  <seth@gnome.org>
8799
8800         * python/examples/example-service.py:
8801
8802         Johan notices complete wrong code in example-service, but
8803         completely wrong in a way that works exactly the same (!).
8804         Johan is confused, how could this possibly work? Example
8805         code fails to serve purpose of making things clear.
8806         Seth fixes.
8807
8808 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8809
8810         * doc/dbus-specification.sgml: don't require header fields
8811         to be 4-byte aligned and specify that fields should be
8812         distinguished from padding by the fact that zero is not
8813         a valid field name.
8814         
8815         * doc/TODO: remove re-alignment item and add item to doc
8816         the OBJECT_PATH type.
8817         
8818         * dbus/dbus-message.c:
8819         (HeaderField): rename the original member to value_offset
8820         and introduce a name_offset member to keep track of where
8821         the field actually begins.
8822         (adjust_field_offsets): remove.
8823         (append_int_field), (append_uint_field),
8824         (append_string_field): don't align the start of the header
8825         field to a 4-byte boundary.
8826         (get_next_field): impl finding the next marhsalled field
8827         after a given field.
8828         (re_align_field_recurse): impl re-aligning a number of
8829         already marshalled fields.
8830         (delete_field): impl deleting a field of any type and
8831         re-aligning any following fields.
8832         (delete_int_or_uint_field), (delete_string_field): remove.
8833         (set_int_field), (set_uint_field): no need to re-check
8834         that we have the correct type for the field.
8835         (set_string_field): ditto and impl re-aligning any
8836         following fields.
8837         (decode_header_data): update to take into account that
8838         the fields aren't 4-byte aligned any more and the new
8839         way to distinguish padding from header fields. Also,
8840         don't exit when there is too much header padding.
8841         (process_test_subdir): print the directory.
8842         (_dbus_message_test): add test to make sure a following
8843         field is re-aligned correctly after field deletion.
8844         
8845         * dbus/dbus-string.[ch]:
8846         (_dbus_string_insert_bytes): rename from insert_byte and
8847         allow the insert of multiple bytes.
8848         (_dbus_string_test): test inserting multiple bytes.
8849
8850         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8851         warning note to docs about having to re-align any
8852         marshalled values following the string.
8853         
8854         * dbus/dbus-message-builder.c:
8855         (append_string_field), (_dbus_message_data_load):
8856         don't align the header field.
8857         
8858         * dbus/dbus-auth.c: (process_test_subdir): print the
8859         directory.
8860         
8861         * test/break-loader.c: (randomly_add_one_byte): upd. for
8862         insert_byte change.
8863         
8864         * test/data/invalid-messages/bad-header-field-alignment.message:
8865         new test case.
8866         
8867         * test/data/valid-messages/unknown-header-field.message: shove
8868         a dict in the unknown field.
8869
8870 2003-09-25  Seth Nickell  <seth@gnome.org>
8871
8872         * python/dbus.py:
8873         * python/dbus_bindings.pyx.in:
8874
8875         Handle return values.
8876         
8877         * python/examples/example-client.py:
8878         * python/examples/example-service.py:
8879
8880         Pass back return values from the service to the client.
8881         
8882 2003-09-24  Seth Nickell  <seth@gnome.org>
8883
8884         * python/dbus.py:
8885
8886         Connect Object methods (when you are sharing an object) up... pass
8887         in a list of methods to be shared. Sharing all the methods just
8888         worked out too weird. You can now create nice Services over the
8889         DBus in Python. :-)
8890         
8891         * python/dbus_bindings.pyx.in:
8892
8893         Keep references to user_data tuples passed into C functions so 
8894         Python doesn't garbage collect on us.
8895
8896         Implement MethodReturn and Error subclasses of Message for creating
8897         DBusMessage's of those types.
8898         
8899         * python/examples/example-client.py:
8900         * python/examples/example-service.py:
8901
8902         Simple example code showing both how create DBus services and objects,
8903         and how to use them.
8904
8905 2003-09-23  Havoc Pennington  <hp@pobox.com>
8906
8907         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8908
8909 2003-09-23  Havoc Pennington  <hp@redhat.com>
8910
8911         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8912         (dbus_gproxy_disconnect_signal): implement
8913         (dbus_gproxy_manager_remove_signal_match): implement
8914         (dbus_gproxy_manager_add_signal_match): implement
8915         (dbus_gproxy_oneway_call): implement
8916
8917 2003-09-23  Havoc Pennington  <hp@pobox.com>
8918
8919         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8920         subclass. This means dropping the transparent thread safety of the
8921         proxy; you now need a separate proxy per-thread, or your own
8922         locking on the proxy. Probably right anyway.
8923         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8924
8925 2003-09-22  Havoc Pennington  <hp@redhat.com>
8926
8927         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8928
8929 2003-09-21  Seth Nickell  <seth@gnome.org>
8930
8931         First checkin of the Python bindings.
8932         
8933         * python/.cvsignore:
8934         * python/Makefile.am:
8935         * python/dbus_bindings.pyx.in:
8936         * python/dbus_h_wrapper.h:
8937
8938         Pieces for Pyrex to operate on, building a dbus_bindings.so
8939         python module for low-level access to the DBus APIs.
8940         
8941         * python/dbus.py:
8942
8943         High-level Python module for accessing DBus objects.
8944
8945         * configure.in:
8946         * Makefile.am:
8947
8948         Build stuff for the python bindings.
8949
8950         * acinclude.m4:
8951
8952         Extra macro needed for finding the Python C header files.
8953
8954 2003-09-21  Havoc Pennington  <hp@pobox.com>
8955
8956         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8957         implementing the proxy manager, didn't get very far.
8958
8959         * dbus/dbus-bus.c (dbus_bus_add_match): new
8960         (dbus_bus_remove_match): new
8961
8962         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8963         path_name argument; adjust the other not-yet-implemented 
8964         gproxy constructors to be what I think they should be.
8965
8966 2003-09-21  Havoc Pennington  <hp@pobox.com>
8967
8968         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8969         by default for message bus connections.
8970
8971         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8972         exit_on_disconnect flag is set and we process the disconnected
8973         signal.
8974         (dbus_connection_set_exit_on_disconnect): new function
8975
8976 2003-09-21  Havoc Pennington  <hp@pobox.com>
8977
8978         Get matching rules mostly working in the bus; only actually
8979         parsing the rule text remains. However, the client side of
8980         "signal connections" hasn't been started, this patch is only the
8981         bus side.
8982         
8983         * dbus/dispatch.c: fix for the matching rules changes
8984         
8985         * bus/driver.c (bus_driver_handle_remove_match)
8986         (bus_driver_handle_add_match): send an ack reply from these
8987         method calls
8988
8989         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8990         arguments, reported by Seth Nickell
8991
8992         * bus/config-parser.c (append_rule_from_element): support
8993         eavesdrop=true|false attribute on policies so match rules 
8994         can be prevented from snooping on the system bus.
8995
8996         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8997         and "destination" in attribute names; fix some docs bugs; 
8998         add eavesdrop=true|false attribute
8999
9000         * bus/driver.c (bus_driver_handle_add_match)
9001         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9002         messages
9003
9004         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9005         rid of broadcast service concept, signals are just always broadcast
9006
9007         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9008         mostly implement matching rules stuff (currently only exposed as signal
9009         connections)
9010
9011 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9012
9013         * doc/dbus-specification.sgml: Change the header field name
9014         to be an enum and update the rest of the spec to reference
9015         the fields using the conventinal name.
9016
9017         * dbus/dbus-protocol.h: update to reflect the spec.
9018
9019         * doc/TODO: add item to remove the 4 byte alignment requirement.
9020         
9021         * dbus/dbus-message.c: Remove the code to generalise the
9022         header/body length and serial number header fields as named
9023         header fields so we can reference field names using the 
9024         protocol values.
9025         (append_int_field), (append_uint_field), (append_string_field):
9026         Append the field name as a byte rather than four chars.
9027         (delete_int_or_uint_field), (delete_string_field): reflect the
9028         fact that the field name and typecode now occupy 4 bytes instead
9029         of 8.
9030         (decode_string_field), (decode_header_data): update to reflect
9031         protocol changes and move the field specific encoding from
9032         decode_string_field() back into decode_header_data().
9033         
9034         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9035         Add utility to aid debugging.
9036         
9037         * dbus/dbus-message-builder.c:
9038         (append_string_field), (_dbus_message_data_load): Update to
9039         reflect protocol changes; Change the FIELD_NAME directive
9040         to HEADER_FIELD and allow it to take the field's conventional
9041         name rather than the actual value.
9042         
9043         * test/data/*/*.message: Update to use HEADER_FIELD instead
9044         of FIELD_NAME; Always align the header on an 8 byte boundary
9045         *before* updating the header length.
9046
9047 2003-09-15  Havoc Pennington  <hp@pobox.com>
9048
9049         * dbus/dbus-pending-call.c: add the get/set object data
9050         boilerplate as for DBusConnection, etc. Use generic object data
9051         for the notify callback.
9052
9053         * glib/dbus-gparser.c (parse_node): parse child nodes
9054
9055         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9056         
9057         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9058         contain functions shared between the convenience lib and the
9059         installed lib
9060
9061         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9062         -export-symbols-regex to the GLib library
9063
9064         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9065         fix the locking in here, and add a default handler for
9066         Introspect() that just returns sub-nodes.
9067
9068 2003-09-14  Havoc Pennington  <hp@pobox.com>
9069
9070         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9071         rather than gfoo consistent
9072
9073         * glib/dbus-gproxy.h: delete for now, move contents to
9074         dbus-glib.h, because the include files don't work right since we
9075         aren't in the dbus/ subdir.
9076         
9077         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9078         (dbus_gproxy_end_call): finish
9079         (dbus_gproxy_begin_call): finish
9080
9081         * glib/dbus-gmain.c (dbus_set_g_error): new
9082
9083         * glib/dbus-gobject.c (handle_introspect): include information
9084         about child nodes in the introspection
9085
9086         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9087         function to help in implementation of introspection
9088
9089         * dbus/dbus-object-tree.c
9090         (_dbus_object_tree_list_registered_and_unlock): new function
9091
9092 2003-09-12  Havoc Pennington  <hp@pobox.com>
9093
9094         * glib/dbus-gidl.h: add common base class for all the foo_info
9095         types
9096
9097         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9098         similar to kdcop
9099
9100         * test/Makefile.am: try test srcdir -ef . in addition to test
9101         srcdir = ., one of them should work (yeah lame)
9102         
9103         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9104         library
9105         
9106         * glib/dbus-gparser.h: make description_load routines return
9107         NodeInfo* not Parser*
9108
9109         * Makefile.am (SUBDIRS): build test dir after all library dirs
9110
9111         * configure.in: add GTK+ detection
9112
9113 2003-09-07  Havoc Pennington  <hp@pobox.com>
9114
9115         * Make Doxygen contented.
9116
9117 2003-09-07  Havoc Pennington  <hp@pobox.com>
9118
9119         * doc/dbus-specification.sgml: more updates
9120
9121 2003-09-06  Havoc Pennington  <hp@pobox.com>
9122
9123         * doc/dbus-specification.sgml: partial updates
9124
9125         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9126         zillionth time; hopefully I edited the right file this time.
9127
9128         * bus/config-parser.c (append_rule_from_element): support
9129         send_type, send_path, receive_type, receive_path
9130
9131         * bus/policy.c: add message type and path to the list of things
9132         that can be "firewalled"
9133
9134 2003-09-06  Havoc Pennington  <hp@pobox.com>
9135
9136         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9137         (dbus_connection_register_object_path): make this not handle
9138         messages to paths below the given path
9139
9140 2003-09-03  Havoc Pennington  <hp@pobox.com>
9141
9142         * test/glib/Makefile.am: add this with random glib-linked test
9143         programs
9144
9145         * glib/Makefile.am: remove the random test programs from here,
9146         leave only the unit tests
9147
9148         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9149         uscore/javacaps conversion, and fix     
9150         (get_object_property, set_object_property): change to .NET
9151         convention for mapping props to methods, set_FooBar/get_FooBar, 
9152         since one language has such a convention we may as well copy it. 
9153         Plus real methods in either getFooBar or get_foo_bar style won't 
9154         collide with this convention.
9155
9156 2003-09-01  Havoc Pennington  <hp@pobox.com>
9157
9158         * glib/dbus-gparser.c: implement
9159
9160         * glib/dbus-gobject.c: start implementing skeletons support
9161
9162         * configure.in: when disabling checks/assert, also define
9163         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9164
9165 2003-09-01  Havoc Pennington  <hp@pobox.com>
9166
9167         * glib/Makefile.am: rearrange a bunch of files and get "make
9168         check" framework set up
9169
9170 2003-08-31  Havoc Pennington  <hp@pobox.com>
9171
9172         * fix build with --disable-tests
9173
9174 2003-08-30  Havoc Pennington  <hp@pobox.com>
9175
9176         * dbus/dbus-connection.c: purge DBusMessageHandler
9177
9178         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9179         use callbacks everywhere
9180
9181 2003-08-30  Havoc Pennington  <hp@pobox.com>
9182
9183         * test/data/valid-config-files/system.d/test.conf: change to 
9184         root for the user so warnings don't get printed
9185
9186         * dbus/dbus-message.c: add dbus_message_get_path,
9187         dbus_message_set_path
9188         
9189         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9190         dispatching to a path
9191
9192         * dbus/dbus-string.c (_dbus_string_validate_path): add
9193
9194         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9195         (_dbus_marshal_object_path): implement
9196
9197         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9198         to contain the path to the target object
9199         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9200         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9201
9202 2003-08-30  Havoc Pennington  <hp@pobox.com>
9203
9204         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9205
9206 2003-08-29  Havoc Pennington  <hp@pobox.com>
9207
9208         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9209         registered
9210         (struct DBusObjectSubtree): shrink this
9211         a lot, since we may have a lot of them
9212         (_dbus_object_tree_free_all_unlocked): implement
9213         (_dbus_object_tree_dispatch_and_unlock): implement
9214
9215 2003-08-29  Havoc Pennington  <hp@pobox.com>
9216
9217         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9218
9219 2003-08-28  Havoc Pennington  <hp@pobox.com>
9220
9221         purge DBusObjectID
9222         
9223         * dbus/dbus-connection.c: port to no ObjectID, create a
9224         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9225
9226         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9227         everything except UnregisterFunction and MessageFunction
9228         
9229         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9230         add DBUS_TYPE_OBJECT_PATH
9231         
9232         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9233         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9234         path-based object IDs
9235
9236 2003-08-25  Havoc Pennington  <hp@pobox.com>
9237
9238         Just noticed that dbus_message_test is hosed, I wonder when I
9239         broke that. I thought make check was passing earlier...
9240         
9241         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9242         container tree, will replace most of dbus-object-registry
9243
9244         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9245         screwup
9246
9247 2003-08-19  Havoc Pennington  <hp@pobox.com>
9248
9249         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9250         (dbus_message_is_error): fix this function
9251
9252         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9253         match
9254
9255         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9256         reflect clarified man page
9257         (bus_client_policy_check_can_send): ditto
9258         
9259         * bus/session.conf.in: fixup
9260
9261         * bus/system.conf.in: fixup
9262
9263 2003-08-18  Havoc Pennington  <hp@redhat.com>
9264
9265         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9266
9267         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9268         dumb bug created earlier (wrong order of args to
9269         decode_header_data())
9270         
9271         * tools/dbus-send.c: port
9272
9273         * tools/dbus-print-message.c (print_message): port
9274
9275         * test/data/*messages: port all messages over
9276         
9277         * dbus/dbus-message-builder.c: support including 
9278         message type
9279         
9280         * bus/driver.c: port over
9281         
9282         * bus/dispatch.c: port over to new stuff
9283
9284         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9285         rename disconnect signal to "Disconnected"
9286
9287 2003-08-17  Havoc Pennington  <hp@pobox.com>
9288
9289         This doesn't compile yet, but syncing up so I can hack on it from
9290         work. What are branches for if not broken code? ;-)
9291         
9292         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9293         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9294         DBUS_HEADER_FIELD_ERROR_NAME
9295         
9296         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9297         for the interface+member pairs
9298         (string_hash): change to use g_str_hash algorithm
9299         (find_direct_function, find_string_function): refactor these to
9300         share most code.
9301         
9302         * dbus/dbus-message.c: port all of this over to support 
9303         interface/member fields instead of name field
9304
9305         * dbus/dbus-object-registry.c: port over
9306         
9307         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9308         from _dbus_string_validate_name
9309
9310         * bus/dbus-daemon-1.1: change file format for the 
9311         <deny>/<allow> stuff to match new message naming scheme
9312
9313         * bus/policy.c: port over
9314
9315         * bus/config-parser.c: parse new format
9316         
9317 2003-08-16  Havoc Pennington  <hp@pobox.com>
9318
9319         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9320         broken assertion
9321
9322         * glib/dbus-gproxy.c: some hacking
9323
9324 2003-08-15  Havoc Pennington  <hp@redhat.com>
9325
9326         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9327
9328         * dbus/dbus-connection.c
9329         (dbus_connection_send_with_reply_and_block): factor out internals;
9330         change to convert any error replies to DBusError instead of 
9331         returning them as a message
9332
9333 2003-08-15  Havoc Pennington  <hp@pobox.com>
9334
9335         * dbus/dbus-connection.c, 
9336         dbus/dbus-pending-call.c: Finish the pending call stuff
9337
9338 2003-08-14  Havoc Pennington  <hp@redhat.com>
9339
9340         * dbus/dbus-pending-call.c: start on new object that will replace
9341         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9342         replies
9343
9344         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9345         with remote interfaces
9346
9347         * dbus/dbus-gidl.c: do the boring boilerplate in here
9348         
9349 2003-08-12  Havoc Pennington  <hp@pobox.com>
9350
9351         * bus/dispatch.c (bus_dispatch): make this return proper 
9352         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9353
9354         * dbus/dbus-errors.c (dbus_set_error): use
9355         _dbus_string_append_printf_valist
9356
9357         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9358         (_dbus_string_append_printf): new
9359
9360         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9361         UNKNOWN_METHOD
9362
9363         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9364         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9365         message is unhandled.
9366
9367 2003-08-11  Havoc Pennington  <hp@pobox.com>
9368
9369         * bus/test.c (client_disconnect_handler): change to return
9370         HANDLED (would have been REMOVE_MESSAGE)
9371
9372         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9373         HANDLED/NOT_YET_HANDLED instead of
9374         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9375         should be used.
9376
9377 2003-08-10  Havoc Pennington  <hp@pobox.com>
9378
9379         * tools/dbus-send.c (main): add --type argument, for now
9380         supporting only method_call and signal types.
9381
9382         * tools/dbus-print-message.c: print message type
9383
9384         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9385         init connection->objects
9386
9387         * doc/dbus-specification.sgml: fix sgml
9388
9389         * bus/*.c: port over to object-instance API changes
9390
9391         * test/test-service.c: ditto
9392         
9393         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9394         name, we will have to fix up the rest of the code to also handle
9395         this
9396         (dbus_message_new): generic message-creation call
9397         (set_string_field): allow appending name field
9398
9399 2003-08-06  Havoc Pennington  <hp@pobox.com>
9400
9401         * dbus/dbus-object-registry.c: implement signal connection 
9402         and dispatch
9403
9404         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9405
9406         * dbus/dbus-internals.c (_dbus_memdup): new function
9407
9408 2003-08-02  Havoc Pennington  <hp@pobox.com>
9409
9410         * dbus/dbus-message.c (dbus_message_get_no_reply)
9411         (dbus_message_set_no_reply): add these and remove
9412         set_is_error/get_is_error
9413
9414         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9415         remove the ERROR flag, since there's now an ERROR type
9416
9417 2003-08-01  Havoc Pennington  <hp@pobox.com>
9418
9419         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9420         implement
9421
9422         * dbus/dbus-message.c (dbus_message_get_type): new function
9423
9424         * doc/dbus-specification.sgml: add "type" byte to messages
9425
9426 2003-08-01  Havoc Pennington  <hp@pobox.com>
9427
9428         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9429         a message type enum to distinguish kinds of message
9430         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9431         that need not be replied to
9432
9433 2003-08-01  Havoc Pennington  <hp@pobox.com>
9434
9435         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9436         (unpack_8_octets): fix no-64-bit-int bug
9437
9438         * dbus/dbus-object-registry.c (validate_id): validate the 
9439         connection ID bits, not just the instance ID.
9440
9441         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9442         the connection-global 33 bits of the object ID
9443
9444         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9445         object ID in the new way
9446
9447         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9448         define server/client/instance bits.
9449
9450 2003-07-30  Havoc Pennington  <hp@pobox.com>
9451
9452         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9453         build
9454
9455 2003-07-13  Havoc Pennington  <hp@pobox.com>
9456
9457         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9458         fields to DBusObjectVTable and DBusObjectInfo
9459
9460 2003-07-12  Havoc Pennington  <hp@pobox.com>
9461
9462         * dbus/dbus-object-registry.c: implement unit test,
9463         fix bugs discovered in process
9464
9465         * dbus/dbus-connection.c: remove handler_table and
9466         register_handler(), add DBusObjectRegistry usage
9467
9468         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9469         (dbus_object_id_set_null): new functions
9470
9471 2003-07-08  Havoc Pennington  <hp@pobox.com>
9472
9473         * dbus/dbus-object.c: implement some of this
9474
9475         * dbus/dbus-object-registry.c
9476         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9477         param
9478         (_dbus_object_registry_new): handle OOM
9479
9480 2003-07-08  Havoc Pennington  <hp@pobox.com>
9481
9482         * dbus/dbus-object.h: sketch out an API for registering objects
9483         with a connection, that allows us to use as little as 24 bytes
9484         per object and lets application code represent an object in 
9485         any conceivable way.
9486
9487         * dbus/dbus-object-registry.c: implement the hard bits of the
9488         DBusConnection aspect of object API. Not yet wired up.
9489         
9490 2003-07-06  Havoc Pennington  <hp@pobox.com>
9491
9492         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9493         (_dbus_marshal_object_id): new
9494         (_dbus_demarshal_object_id): new
9495         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9496         consolidate identical switch cases. Don't conditionalize handling
9497         of DBUS_TYPE_UINT64, need to handle the type always.
9498         (_dbus_marshal_validate_arg): consolidate identical cases, and
9499         handle DBUS_TYPE_OBJECT_ID
9500
9501         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9502
9503         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9504
9505 2003-09-28  Havoc Pennington  <hp@pobox.com>
9506
9507         * real 0.13 release
9508
9509 2003-09-28  Havoc Pennington  <hp@pobox.com>
9510
9511         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9512         to work with Debian db2html
9513
9514 2003-09-28  Havoc Pennington  <hp@pobox.com>
9515
9516         * configure.in: 0.13
9517
9518         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9519         stylesheet-images for benefit of Debian
9520         
9521         Change back to using filesystem-linked sockets for the system
9522         bus, so only root can create the default system bus address.
9523         
9524         * bus/system.conf.in: change to use
9525         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9526
9527         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9528         from here.
9529
9530         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9531         here, and AC_DEFINE DBUS_SYSTEM_PATH
9532
9533 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9534
9535         * doc/TODO:
9536         * doc/busconfig.dtd:
9537         Add busconfig DTD.
9538         
9539 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9540
9541         * doc/dbus-specification.sgml:
9542         Add activation reply values.
9543         
9544 2003-08-05  Havoc Pennington  <hp@redhat.com>
9545
9546         * configure.in: 0.12
9547
9548 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9549
9550         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9551         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9552         (add_watch), (remove_watch), (create_source):
9553         Refcount fds, fixes some reentrancy issues.
9554         
9555 2003-07-30  Havoc Pennington  <hp@redhat.com>
9556
9557         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9558         bus address to be abstract if we have abstract sockets
9559
9560         * NEWS: update
9561
9562 2003-07-28  Havoc Pennington  <hp@redhat.com>
9563
9564         * bus/messagebus.in: fix to avoid processname/servicename 
9565         confusion, from Michael Kearey
9566         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9567         
9568 2003-07-23  Havoc Pennington  <hp@pobox.com>
9569
9570         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9571         fix from Andy Hanton to remove broken "+1"
9572
9573 2003-07-16  Havoc Pennington  <hp@pobox.com>
9574
9575         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9576         babysitter process, as suggested by Thomas Leonard, so 
9577         an "eval `dbus-launch --exit-with-session`" will actually 
9578         return
9579
9580 2003-07-16  Havoc Pennington  <hp@pobox.com>
9581
9582         * configure.in: print out EXPANDED_* variables in the summary at
9583         the end; clean up the code that computes EXPANDED_ variables and
9584         get the ones using exec_prefix right. Should make things work
9585         when you build without --prefix
9586
9587 2003-06-29  Havoc Pennington  <hp@pobox.com>
9588
9589         * mono/Test.cs (class Test): fire up a main loop and run it
9590
9591         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9592         done once, the app has to do it
9593
9594 2003-06-26  Havoc Pennington  <hp@pobox.com>
9595
9596         * mono/Connection.cs: set up connection with the glib main loop
9597
9598 2003-07-01  Havoc Pennington  <hp@redhat.com>
9599
9600         * doc/dbus-specification.sgml: clarify the format of a type code,
9601         change suggested by Jim Blandy
9602
9603 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9604
9605         * doc/Makefile.am:
9606         * tools/Makefile.am: Don't assume srcdir == builddir.
9607
9608         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9609         the allocated block.
9610         (_dbus_memory_test): New function.
9611         * dbus/dbus-test.h: Add _dbus_memory_test ().
9612         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9613
9614         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9615         of %c%c%c%c.
9616         (dbus_message_new): Remove obsolete @todo.
9617
9618         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9619         (_dbus_marshal_set_uint64): Fix comment.
9620
9621         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9622         hardcode FIELD_REPLY_SERIAL.
9623
9624         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9625         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9626
9627         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9628         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9629
9630 2003-06-24  Havoc Pennington  <hp@pobox.com>
9631
9632         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9633
9634 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9635
9636         * configure.in:
9637         * gcj/.cvsignore:
9638         * gcj/Hello.java:
9639         * gcj/Makefile.am:
9640         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9641         * gcj/org/.cvsignore:
9642         * gcj/org/Makefile.am:
9643         * gcj/org/freedesktop/.cvsignore:
9644         * gcj/org/freedesktop/Makefile.am:
9645         * gcj/org/freedesktop/dbus/.cvsignore:
9646         * gcj/org/freedesktop/dbus/Makefile.am:
9647         * gcj/org/freedesktop/dbus/Message.java: (Message),
9648         (Message.Message):
9649         * gcj/org/freedesktop/dbus/natMessage.cc:
9650         Fix the build system.
9651
9652 2003-06-22  Havoc Pennington  <hp@pobox.com>
9653
9654         * mono/Connection.cs: add more bindings
9655
9656         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9657         more than once.
9658
9659 2003-06-22  Havoc Pennington  <hp@pobox.com>
9660
9661         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9662         Start wrapping more stuff.
9663
9664 2003-06-22  Havoc Pennington  <hp@pobox.com>
9665
9666         * mono/Message.cs: implement Message.Wrap() that ensures we only
9667         have a single C# wrapper per DBusMessage, assuming it works which
9668         it probably doesn't.
9669
9670         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9671         (dbus_message_free_data_slot): new
9672         (dbus_message_set_data): new
9673         (dbus_message_get_data): new
9674
9675 2003-06-22  Havoc Pennington  <hp@pobox.com>
9676
9677         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9678         (_dbus_data_slot_allocator_alloc): rework these to keep a
9679         reference count on each slot and automatically manage a global
9680         slot ID variable passed in by address
9681
9682         * bus/bus.c: convert to new dataslot API
9683
9684         * dbus/dbus-bus.c: convert to new dataslot API
9685
9686         * dbus/dbus-connection.c: convert to new dataslot API
9687
9688         * dbus/dbus-server.c: convert to new dataslot API
9689
9690         * glib/dbus-gmain.c: ditto
9691
9692         * bus/test.c: ditto
9693
9694         * bus/connection.c: ditto
9695
9696 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9697
9698         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9699         after the gcj checks so that the correct configuration tags
9700         will be added to libtool.
9701
9702         * dbus-glib-1.pc.in: No need to specify any includes since
9703         dbus-1.pc.in has those.
9704
9705 2003-06-22  Havoc Pennington  <hp@pobox.com>
9706
9707         * mono/*, gcj/*, configure.in, Makefile.am:
9708         Check in makefiles and subdirs for mono and gcj bindings.
9709         Neither binding actually exists, just trying to get through
9710         all the build and other boring bits.
9711
9712 2003-06-21  Philip Blundell  <philb@gnu.org>
9713
9714         * tools/dbus-monitor.1: Updated.
9715
9716         * tools/dbus-send.1: Likewise.
9717
9718 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9719
9720         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9721         for hangup and error after checking read so we won't discard
9722         pending data if both hangup and read are set.
9723
9724 2003-06-19  Philip Blundell  <philb@gnu.org>
9725
9726         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9727
9728         * tools/dbus-send.c: Accept both --system and --session.
9729
9730         * tools/dbus-monitor.c: Same here.
9731
9732 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9733
9734         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9735         from C++ (Patch by Miloslav Trmac).
9736
9737 2003-06-15  Joe Shaw  <joe@assbarn.com>
9738
9739         * configure.in: Check for socklen_t.
9740
9741         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9742
9743         * test/test-segfault.c: Add #include <sys/time.h>
9744
9745         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9746         dbus-launch needs it.
9747
9748 2003-06-09  Havoc Pennington  <hp@redhat.com>
9749
9750         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9751         SUN_LEN, it breaks abstract socket usage
9752
9753         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9754         starts of lines.
9755
9756 2003-06-04  Havoc Pennington  <hp@pobox.com>
9757
9758         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9759         using unix:abstract=/foo, and when listening in a tmpdir
9760         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9761
9762         * dbus/dbus-transport.c (_dbus_transport_open): support
9763         unix:abstract=/foo
9764
9765         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9766         support abstract sockets
9767
9768         * dbus/dbus-transport-unix.c
9769         (_dbus_transport_new_for_domain_socket): support abstract sockets
9770
9771         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9772         toggle as an argument, implement abstract namespace support
9773         (_dbus_listen_unix_socket): ditto
9774
9775         * configure.in: add --enable-abstract-sockets and implement
9776         a configure check for autodetection of the right value.
9777
9778 2003-06-01  Havoc Pennington  <hp@pobox.com>
9779
9780         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9781         in /tmp (though on Linux this will end up being useless,
9782         when we add abstract namespace support)
9783
9784         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9785         subst'ing it
9786
9787 2003-05-28  Colin Walters  <walters@verbum.org>
9788
9789         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9790
9791 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9792
9793         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9794
9795 2003-05-17  Colin Walters  <walters@gnu.org>
9796
9797         * tools/dbus-send.c: Don't exit with an error code if --help was
9798         passed.  Default to using the session bus instead of the system
9799         one.
9800
9801         * tools/dbus-launch.c: Ditto.
9802
9803         * tools/dbus-monitor.c: Ditto.
9804
9805         * tools/dbus-send.1: Update with new arguments.
9806
9807         * tools/dbus-launch.c: Emit code to export variables.  New
9808         arguments -s and -c to specify shell syntax, and a bit of code to
9809         autodetect syntax.  Also, allow specifying a program to run.
9810
9811         * tools/dbus-launch.1: Update with new arguments.
9812
9813         * tools/dbus-send.1: Ditto.
9814
9815         * tools/dbus-monitor.1: Ditto.
9816
9817 2003-05-17  Havoc Pennington  <hp@pobox.com>
9818
9819         * bus/config-parser.c (merge_included): merge in policies from
9820         child configuration file.
9821
9822         * bus/policy.c (bus_policy_merge): function to merge two policies
9823         together
9824
9825 2003-05-16  Havoc Pennington  <hp@redhat.com>
9826
9827         * dbus/dbus-connection.c: disable verbose lock spew
9828
9829         * tools/dbus-send.c: add --print-reply command line option
9830
9831         * tools/dbus-print-message.h (print_message): new util function
9832         shared by dbus-send and dbus-monitor
9833
9834         * tools/dbus-monitor.c (handler_func): exit on disconnect
9835
9836         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9837         disconnected, don't try to use the read_watch
9838
9839         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9840         so we can find this bug more easily
9841
9842 2003-05-16  Havoc Pennington  <hp@redhat.com>
9843
9844         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9845         NULL as DBusHashTable is annoyingly likely to do.
9846
9847 2003-05-16  Colin Walters  <walters@verbum.org>
9848
9849         * tools/dbus-monitor.c: Add --session argument and usage()
9850         function.
9851
9852         * tools/dbus-monitor.1: Update with new --session arg.
9853
9854         * bus/Makefile.am (install-data-hook): Create
9855         $(libdir)/dbus-1.0/services so that the session bus is happy.
9856
9857 2003-05-15  Havoc Pennington  <hp@redhat.com>
9858
9859         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9860         on non-x86. ifdef's are evil.
9861
9862 2003-05-15  Havoc Pennington  <hp@redhat.com>
9863
9864         * configure.in: 0.11
9865
9866         * NEWS: update
9867
9868         * bus/Makefile.am (initddir): apparently we are supposed to put
9869         init scripts in /etc/rc.d/init.d not /etc/init.d
9870
9871         * bus/Makefile.am: remove the "you must --enable-tests to make
9872         check" as it broke distcheck
9873
9874         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9875
9876 2003-05-13  James Willcox  <jwillcox@gnome.org>
9877
9878         * configure.in:
9879         * bus/activation.c: (bus_activation_service_created),
9880         (bus_activation_activate_service):
9881         * bus/driver.c: (bus_driver_send_service_deleted),
9882         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9883         (bus_driver_send_service_acquired),
9884         (bus_driver_send_welcome_message),
9885         (bus_driver_handle_list_services):
9886         * bus/session.conf.in:
9887         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9888         (dbus_bus_service_exists), (dbus_bus_activate_service):
9889         * dbus/dbus-bus.h:
9890
9891         Add some convenience API which lets you activate a service, and did a
9892         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9893         and dbus_message_get_args()
9894
9895 2003-05-11  Havoc Pennington  <hp@pobox.com>
9896
9897         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9898         calling _dbus_marshal_validate_arg() for every byte in a byte
9899         array, etc.
9900
9901         * dbus/dbus-message-handler.c: use atomic reference counting to
9902         reduce number of locks slightly; the global lock in here sucks
9903
9904         * dbus/dbus-connection.c
9905         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9906         update_dispatch_status that can be called with lock held; then use
9907         in a couple places to reduce locking/unlocking
9908         (dbus_connection_send): hold the lock over the whole function
9909         instead of acquiring it twice.
9910
9911         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9912
9913         * bus/connection.c (bus_connections_setup_connection): fix access
9914         to already-freed memory.
9915
9916         * dbus/dbus-connection.c: keep a little cache of linked list
9917         nodes, to avoid using the global linked list alloc lock in the
9918         normal send-message case. Instead we just use the connection lock
9919         that we already have to take.
9920
9921         * dbus/dbus-list.c (_dbus_list_find_last): new function
9922
9923         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9924         change to use a struct for the atomic type; fix docs,
9925         they return value before increment, not after increment.
9926
9927         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9928         (_dbus_string_append_8_aligned): new functions to try to
9929         microoptimize this operation.
9930         (reallocate_for_length): break this out of set_length(), to
9931         improve profile info, and also so we can consider inlining the
9932         set_length() part.
9933
9934         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9935         strings with some preallocation, cuts down on our calls to realloc
9936         a fair bit. Though if we can get the "move entire string to empty
9937         string" optimization below to kick in here, it would be better.
9938
9939         * dbus/dbus-string.c (_dbus_string_move): just call
9940         _dbus_string_move_len
9941         (_dbus_string_move_len): add a special case for moving
9942         an entire string into an empty string; we can just
9943         swap the string data instead of doing any reallocs.
9944         (_dbus_string_init_preallocated): new function
9945
9946 2003-05-11  Havoc Pennington  <hp@pobox.com>
9947
9948         Write a "test-profile" that does echo client-server with threads;
9949         profile reveals lock contention, memcpy/realloc of buffers, and
9950         UTF-8 validation as hot spots. 20% of lock contention eliminated
9951         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9952         contention is global mempool locks for GList and DBusList.
9953
9954         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9955         x86 implementation
9956
9957         * dbus/dbus-connection.c (struct DBusConnection): use
9958         dbus_atomic_t for the reference count
9959
9960         * dbus/dbus-message.c (struct DBusMessage): declare
9961         dbus_atomic_t values as volatile
9962
9963         * configure.in: code to detect ability to use atomic integer
9964         operations in assembly, from GLib patch
9965
9966         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9967         time, tired of it being wrong in threads and forked processes
9968
9969         * glib/test-profile.c: a little program to bounce messages back
9970         and forth between threads and eat CPU
9971
9972         * dbus/dbus-connection.c: add debug spew macros for debugging
9973         thread locks; include config.h at top; fix deadlock in
9974         dbus_connection_flush()
9975
9976 2003-05-08  Havoc Pennington  <hp@pobox.com>
9977
9978         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9979         data from getting written, and there wasn't a good reason to
9980         use _exit really.
9981
9982         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9983         dbus_verbose lines in test coverage
9984         (main): add list of functions sorted by # of untested blocks
9985         to the coverage report
9986
9987         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9988
9989         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9990
9991         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9992         extend test coverage
9993
9994         * test/data/auth/cancel.auth-script: test canceling an
9995         authentication
9996
9997         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9998         aren't used. in CVS history if we end up needing them.
9999
10000 2003-05-04  Havoc Pennington  <hp@pobox.com>
10001
10002         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10003         unit test
10004
10005         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10006         function, which assumed length was in # of strings, not bytes
10007
10008         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10009         missing coverage
10010
10011         * dbus/dbus-connection.c
10012         (_dbus_connection_queue_received_message): disable function for
10013         now, we are only using it in test mode
10014
10015         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10016         remove a mistaken FIXME
10017
10018 2003-05-04  Havoc Pennington  <hp@pobox.com>
10019
10020         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10021         unlock mutex on successful return, patch from Anders Gustafsson
10022
10023 2003-05-04  Havoc Pennington  <hp@pobox.com>
10024
10025         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10026         Anders Gustafsson
10027
10028 2003-05-04  Havoc Pennington  <hp@pobox.com>
10029
10030         * tools/dbus-launch.c: implement
10031
10032         * bus/main.c (main), bus/bus.c (bus_context_new):
10033         implement --print-pid and --fork
10034
10035 2003-05-03  Havoc Pennington  <hp@redhat.com>
10036
10037         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10038         the address had no value, and add to test suite. Fix and
10039         regression test from Miloslav Trmac
10040
10041 2003-05-03  Havoc Pennington  <hp@pobox.com>
10042
10043         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10044         watch is invalid when handled
10045
10046         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10047         dbus-launch utility to launch the bus from a shell script.  Didn't
10048         actually implement dbus-launch yet, it's just a placeholder still.
10049
10050 2003-05-03  Havoc Pennington  <hp@pobox.com>
10051
10052         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10053         daemon; also documents daemon config file, so replaces
10054         doc/config-file.txt. Corrected some stuff from config-file.txt in
10055         the process of moving it.
10056
10057 2003-05-03  Havoc Pennington  <hp@pobox.com>
10058
10059         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10060         add some man pages
10061
10062 2003-05-03  Colin Walters  <walters@verbum.org>
10063
10064         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10065         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10066
10067         * Makefile.am: Update to use new .pc versioning scheme.
10068
10069 2003-05-02  Havoc Pennington  <hp@redhat.com>
10070
10071         * bus/system.conf.in: allow send/receive to/from message bus
10072         service
10073
10074 2003-04-30  Havoc Pennington  <hp@redhat.com>
10075
10076         * configure.in: print a note when building with unit tests and
10077         without assertions
10078
10079 2003-04-30  Havoc Pennington  <hp@redhat.com>
10080
10081         * Makefile.am: add a check-local that complains if you didn't
10082         configure with --enable-tests
10083
10084 2003-04-29  Havoc Pennington  <hp@redhat.com>
10085
10086         * glib/dbus-gmain.c: docs cleanups
10087
10088         * dbus/dbus-types.h: add docs on int64 types
10089
10090         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10091         public API docs section
10092
10093 2003-04-29  Havoc Pennington  <hp@redhat.com>
10094
10095         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10096         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10097         parallel install API version, not with the D-BUS package version.
10098
10099         * HACKING: move some of README over here
10100
10101         * README: updates, and document API/ABI policy
10102
10103         * configure.in: reindentation
10104
10105 2003-04-29  Havoc Pennington  <hp@redhat.com>
10106
10107         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10108         to use this library" to be sure people have the right
10109         expectations.
10110
10111 2003-04-28  Havoc Pennington  <hp@redhat.com>
10112
10113         * configure.in: add --enable-docs which by default is auto yes if
10114         doxygen and db2html found, no otherwise; but can be forced on/off
10115
10116         * doc/Makefile.am: conditionalize whether to build docs on
10117         --enable-docs
10118
10119 2003-04-28  Havoc Pennington  <hp@redhat.com>
10120
10121         * configure.in: 0.10
10122
10123         * NEWS: update
10124
10125         * bus/system.conf.in: add <includedir>system.d</includedir>
10126
10127         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10128         username was provided but not uid
10129
10130         * bus/config-parser.c (struct BusConfigParser): keep track of
10131         whether the parser is toplevel or was included; change some
10132         of the error handling if it's included.
10133
10134 2003-04-27  Havoc Pennington  <hp@pobox.com>
10135
10136         Unbreak my code...
10137
10138         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10139         report correct status if we finish processing authentication
10140         inside this function.
10141
10142         * bus/activation.c (try_send_activation_failure): use
10143         bus_transaction_send_error_reply
10144
10145         * bus/connection.c (bus_connection_get_groups): return an error
10146         explaining the problem
10147
10148         * bus/bus.c (bus_context_check_security_policy): implement
10149         restriction here that inactive connections can only send the
10150         hello message. Also, allow bus driver to send anything to
10151         any recipient.
10152
10153         * bus/connection.c (bus_connection_complete): create the
10154         BusClientPolicy here instead of on-demand.
10155         (bus_connection_get_policy): don't return an error
10156
10157         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10158         sender field in message being replied to
10159
10160         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10161         causing it to return FALSE always
10162
10163         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10164         we checked sender rather than destination
10165
10166 2003-04-25  Havoc Pennington  <hp@redhat.com>
10167
10168         test suite is slightly hosed at the moment, will fix soon
10169
10170         * bus/connection.c (bus_connections_expire_incomplete): fix to
10171         properly disable the timeout when required
10172         (bus_connection_set_name): check whether we can remove incomplete
10173         connections timeout after we complete each connection.
10174
10175         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10176         probably still broken.
10177
10178         * bus/services.c (bus_registry_acquire_service): implement max
10179         number of services owned, and honor allow/deny rules on which
10180         services a connection can own.
10181
10182         * bus/connection.c (bus_connection_get_policy): report errors here
10183
10184         * bus/activation.c: implement limit on number of pending
10185         activations
10186
10187 2003-04-25  Havoc Pennington  <hp@redhat.com>
10188
10189         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10190         where we used >= 0 instead of != DBUS_UID_UNSET.
10191
10192 2003-04-25  Havoc Pennington  <hp@redhat.com>
10193
10194         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10195         were toggled without add/remove, fix from Anders Gustafsson
10196
10197 2003-04-24  Havoc Pennington  <hp@redhat.com>
10198
10199         * test/data/valid-config-files/basic.conf: add <limit> tags to
10200         this test
10201
10202         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10203         <limit> tag in configuration file.
10204
10205 2003-04-24  Havoc Pennington  <hp@redhat.com>
10206
10207         * bus/dispatch.c: somehow missed some name_is
10208
10209         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10210         (_dbus_timeout_set_interval): new
10211
10212         * bus/connection.c (bus_connections_setup_connection): record time
10213         when each connection is first set up, and expire them after the
10214         auth timeout passes.
10215
10216 2003-04-24  Havoc Pennington  <hp@redhat.com>
10217
10218         * dbus/dbus-message.c (dbus_message_name_is): rename
10219         (dbus_message_service_is): rename
10220         (dbus_message_sender_is): rename
10221         (dbus_message_get_service): rename
10222
10223 2003-04-24  Havoc Pennington  <hp@redhat.com>
10224
10225         * configure.in: add --enable-checks
10226
10227         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10228
10229         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10230         to use thread locks.
10231         (_dbus_connection_handler_destroyed_locked): move some private
10232         functions into proper docs group
10233
10234         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10235         _dbus_return_val_if_fail
10236
10237         Throughout: use dbus_return_if_fail
10238
10239 2003-04-23  James Willcox  <jwillcox@gnome.org>
10240
10241         * glib/dbus-glib.h:
10242         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10243         (dbus_connection_setup_with_g_main),
10244         (dbus_server_setup_with_g_main):
10245         * glib/test-dbus-glib.c: (main):
10246         * glib/test-thread-client.c: (main):
10247         * glib/test-thread-server.c: (new_connection_callback), (main):
10248         * tools/dbus-monitor.c: (main):
10249
10250         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10251         and dbus_server_setup_with_g_main().
10252
10253 2003-04-20  Havoc Pennington  <hp@pobox.com>
10254
10255         * doc/dbus-specification.sgml: document the restrictions on
10256         message and service names
10257
10258 2003-04-22  Havoc Pennington  <hp@redhat.com>
10259
10260         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10261         support, and do some code cleanups to share more code and
10262         speed up array marshal/demarshal.
10263
10264         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10265
10266         * configure.in: generate dbus-arch-deps.h
10267
10268         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10269         64-bit typecodes
10270
10271 2003-04-22  Havoc Pennington  <hp@redhat.com>
10272
10273         * test/data/valid-messages/opposite-endian.message: fix test
10274         to use proper type for rply field
10275
10276         * test/data/invalid-messages: add tests for below validation
10277
10278         * dbus/dbus-message.c (decode_header_data): validate field types,
10279         and validate that named fields are valid names
10280         (decode_name_field): consider messages in the
10281         org.freedesktop.Local. namespace to be invalid.
10282
10283         * dbus/dbus-string.c (_dbus_string_validate_name): new
10284
10285 2003-04-19  Havoc Pennington  <hp@pobox.com>
10286
10287         * bus/driver.c (bus_driver_handle_hello): check limits and
10288         return an error if they are exceeded.
10289
10290         * bus/connection.c: maintain separate lists of active and inactive
10291         connections, and a count of each. Maintain count of completed
10292         connections per user. Implement code to check connection limits.
10293
10294         * dbus/dbus-list.c (_dbus_list_unlink): export
10295
10296         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10297         number of bytes in the message queue for a connection
10298
10299 2003-04-18  Havoc Pennington  <hp@pobox.com>
10300
10301         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10302
10303         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10304         memleaks
10305
10306         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10307         on realloc be sure to update the pointer in the keyring
10308
10309         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10310         offset to avoid writing to unallocated memory
10311
10312         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10313         try the next mechanism, so we properly handle OOM
10314
10315         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10316         on OOM.
10317         (_dbus_keyring_new): fix OOM bug
10318         (_dbus_keyring_new_homedir): always set error; impose a maximum
10319         number of keys we'll load from the file, mostly to speed up the
10320         test suite and make its OOM checks more useful, but also for
10321         general sanity.
10322
10323         * dbus/dbus-auth.c (process_error_server): reject authentication
10324         if we get an error from the client
10325         (process_cancel): on cancel, send REJECTED, per the spec
10326         (process_error_client): send CANCEL if we get an error from the
10327         server.
10328
10329 2003-04-18  Havoc Pennington  <hp@pobox.com>
10330
10331         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10332         debug spew
10333
10334         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10335         handling problem
10336
10337         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10338         about DBUS_TEST_HOMEDIR once
10339
10340         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10341         the environment
10342
10343         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10344         config file so we test the right thing
10345
10346         Throughout: assorted docs improvements
10347
10348 2003-04-18  Havoc Pennington  <hp@pobox.com>
10349
10350         * glib/dbus-gmain.c: adapt to watch changes
10351
10352         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10353
10354         * dbus/dbus-server.h: remove dbus_server_handle_watch
10355
10356         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10357
10358         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10359         like DBusTimeout, so we don't need dbus_connection_handle_watch
10360         etc.
10361
10362 2003-04-17  Havoc Pennington  <hp@redhat.com>
10363
10364         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10365         database usage so it all goes via the DBusUserDatabase cache.
10366
10367 2003-04-17  Havoc Pennington  <hp@redhat.com>
10368
10369         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10370         there was an OOM watch we skipped, we always return TRUE so we
10371         iterate again to have a look at it again. Fixes test suite hang.
10372         Code rearrangement also lets us lose some memset and only iterate
10373         over callbacks once.
10374
10375         * bus/driver.c (bus_driver_handle_message): sense of test for
10376         reply was backward
10377
10378 2003-04-16  Havoc Pennington  <hp@pobox.com>
10379
10380         * doc/dbus-specification.sgml: make spec say serials are unsigned
10381
10382         * dbus/dbus-message.h: change message serials to unsigned
10383
10384         * dbus/dbus-connection.c: adapt to message serials being unsigned
10385
10386 2003-04-15  Havoc Pennington  <hp@pobox.com>
10387
10388         * bus/bus.c: create and keep around a shared DBusUserDatabase
10389         object.
10390
10391         * bus/connection.c (bus_connection_get_groups): don't cache
10392         groups for user in the connection object, since user database
10393         object now does that.
10394
10395 2003-04-16  Havoc Pennington  <hp@redhat.com>
10396
10397         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10398         list of size counters
10399         (_dbus_message_loader_putback_message_link): put back a popped link
10400
10401         * dbus/dbus-connection.c
10402         (dbus_connection_set_max_live_messages_size): rename
10403         max_received_size
10404         (dbus_connection_get_outgoing_size): get size of outgoing
10405         queue
10406         (_dbus_connection_set_connection_counter): remove this cruft
10407
10408 2003-04-14  Havoc Pennington  <hp@redhat.com>
10409
10410         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10411         caching, but at some point we might want to be able to use a
10412         different database.
10413
10414         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10415         SHA1 conf file to test the sha1 auth mechanism, since the regular
10416         test always uses EXTERNAL when available.
10417
10418         * configure.in,
10419         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10420         add conf file that requires use of sha1 auth
10421
10422 2003-04-13  Havoc Pennington  <hp@pobox.com>
10423
10424         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10425         from Philip Blundell to send messages and monitor them.
10426
10427 2003-04-13  Havoc Pennington  <hp@pobox.com>
10428
10429         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10430         callbacks
10431
10432         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10433         users
10434
10435         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10436         fix to only recover unused bytes if we're already authenticated
10437         (_dbus_transport_get_is_authenticated): fix to still mark us
10438         authenticated if there are unused bytes.
10439
10440         * bus/dispatch.c: implement security policy checking
10441
10442         * bus/connection.c (bus_transaction_send_from_driver): new
10443
10444         * bus/bus.c (bus_context_check_security_policy): new
10445
10446         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10447         now we just set the DBusError and it gets converted to an error
10448         reply.
10449
10450         * bus/connection.c (allow_user_function): enable code using actual
10451         data from the config file
10452
10453         * bus/policy.c (list_allows_user): handle wildcard rules for
10454         user/group connection perms
10455
10456 2003-04-13  Havoc Pennington  <hp@pobox.com>
10457
10458         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10459
10460         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10461
10462         * bus/policy.c (bus_policy_append_mandatory_rule)
10463         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10464         (bus_policy_append_group_rule): new functions
10465
10466 2003-04-12  Havoc Pennington  <hp@pobox.com>
10467
10468         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10469
10470         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10471         the pid/gid/uid, just for paranoia.
10472
10473         * test/break-loader.c (randomly_do_n_things): find a byte
10474         containing a type code, and randomly change it to a different
10475         type code.
10476
10477 2003-04-12  Havoc Pennington  <hp@pobox.com>
10478
10479         * bus/policy.h: change BusPolicy to be the thing from the config
10480         file, and rename old BusPolicy to BusClientPolicy
10481
10482         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10483         match change in how policy works
10484
10485         * dbus/dbus-internals.h: mark assert_not_reached as
10486         __attribute((noreturn))__
10487
10488 2003-04-11  Havoc Pennington  <hp@redhat.com>
10489
10490         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10491         the broadcast service. Use boolean return for ServiceExists.
10492
10493 2003-04-11  Havoc Pennington  <hp@redhat.com>
10494
10495         * configure.in: add another directory to look for qt in.
10496
10497 2003-04-11  Havoc Pennington  <hp@redhat.com>
10498
10499         * AUTHORS: add Colin Walters
10500
10501 2003-04-11  Havoc Pennington  <hp@redhat.com>
10502
10503         * NEWS: update
10504
10505         * configure.in: 0.9
10506
10507 2003-04-11  Havoc Pennington  <hp@redhat.com>
10508
10509         * bus/messagebus.in: remove pid file when stopping the
10510         message bus, since the bus won't have privileges to remove it
10511         itself.
10512
10513 2003-04-11  Havoc Pennington  <hp@redhat.com>
10514
10515         * bus/bus.c (bus_context_new): move credentials change after
10516         creating pidfile
10517
10518 2003-04-11  Havoc Pennington  <hp@pobox.com>
10519
10520         * test/decode-gcov.c: add "below average functions" to the
10521         coverage report, and change how some of the code works.
10522
10523         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10524         not in the coverage stats.
10525
10526         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10527         couple places so running the test suite doesn't result in megaspam.
10528
10529 2003-04-11  Havoc Pennington  <hp@pobox.com>
10530
10531         * bus/dispatch.c (check_existent_service_activation): accept a no
10532         memory error in a place we didn't before
10533
10534         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10535         in case the first one failed," since the test suite is less
10536         broken now.
10537
10538 2003-04-10  Havoc Pennington  <hp@pobox.com>
10539
10540         * bus/dispatch.c (check_segfault_service_activation): add test
10541         for launching an executable that just crashes.
10542
10543         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10544         don't leave a million cores. We'll see how portable this is.
10545
10546 2003-04-10  Havoc Pennington  <hp@pobox.com>
10547
10548         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10549         the possible parent failures before we fork, so that we don't
10550         fail to create a babysitter after creating the child.
10551
10552         * bus/activation.c (bus_activation_activate_service): kill child
10553         if we don't successfully complete the activation.
10554
10555 2003-04-10  Havoc Pennington  <hp@redhat.com>
10556
10557         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10558         the connection if it's disconnected
10559
10560         * bus/activation.c (bus_activation_service_created): use new
10561         transaction features to roll back removal of pending activation if
10562         we don't successfully create the service after all. Don't remove
10563         pending activation if the function fails.
10564
10565         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10566         (_dbus_list_insert_after_link): new code to facilitate
10567         services.c fixes
10568
10569         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10570         new functionality, so we can preallocate the ability to insert
10571         into a hash table.
10572
10573         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10574         allowing us to put custom hooks in a transaction to be used for
10575         cancelling said transaction
10576
10577         * doc/dbus-specification.sgml: add some discussion of secondary
10578         service owners, and disallow zero-length service names
10579
10580         * bus/services.c (bus_registry_acquire_service): new function,
10581         splits out part of bus_driver_handle_acquire_service() and fixes
10582         a bug where we didn't remove the service doing the acquiring
10583         from the secondary queue if we failed to remove the current owner
10584         from the front of the queue.
10585
10586 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10587
10588         * doc/dbus-specification.sgml:
10589         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10590
10591 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10592
10593         * bus/.cvsignore:
10594         * glib/.cvsignore:
10595         * test/.cvsignore:
10596         Added files to cvsignore
10597
10598         * dbus/dbus-message.h:
10599         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10600         Make get_named() take two out argument and return a boolean.
10601         (dbus_message_iter_get_args_valist):
10602         Update usage of get_named().
10603         (dbus_message_iter_append_byte):
10604         Fix typo
10605         (dbus_message_iter_append_named)
10606         Fix typo
10607         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10608         More tests.
10609
10610 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10611
10612         * dbus/dbus-marshal.[ch]:
10613         Add array_type_pos argument to _dbus_marshal_validate_arg.
10614         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10615
10616         * dbus/dbus-message.[ch]:
10617         Multi-dimensional arrays have full type specification in the
10618         outermost array. Iter code re-arranged to handle this.
10619         Added some more iter tests.
10620
10621         * doc/dbus-specification.sgml:
10622         Add me to authors.
10623         Remove old FIXME.
10624         Update new array encoding description.
10625         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10626
10627         * test/data/invalid-messages/array-with-mixed-types.message:
10628         * test/data/valid-messages/array-of-array-of-uint32.message:
10629         Change to the new array format.
10630
10631         * test/data/invalid-messages/too-short-dict.message:
10632         Fix bug in test.
10633
10634         * test/data/valid-messages/recursive-types.message:
10635         Fix up and extend test.
10636
10637 2003-04-10  Havoc Pennington  <hp@pobox.com>
10638
10639         * bus/dispatch.c: lots of fixes
10640
10641         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10642         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10643         that was crack, broke the test service.
10644
10645         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10646         handling to avoid piling up errors if we get a failure on the
10647         first address.
10648
10649         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10650         pid in assertion failures.
10651
10652         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10653         to some fixed size of file descriptor array. Don't return TRUE
10654         anytime a timeout exists, that led to lots of busy loop silliness
10655         in the tests.
10656
10657 2003-04-09  Havoc Pennington  <hp@redhat.com>
10658
10659         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10660         I'd checked this in earlier but hadn't.
10661
10662 2003-04-09  Havoc Pennington  <hp@redhat.com>
10663
10664         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10665         the activation test (man this is getting old!)
10666
10667 2003-04-09  Havoc Pennington  <hp@redhat.com>
10668
10669         * test/test-utils.c: use dispatch status function to fix this up
10670
10671         * bus/connection.c (connection_watch_callback): don't dispatch
10672         from here
10673         (connection_timeout_callback): don't dispatch from here
10674         (bus_connections_setup_connection): set the dispatch status function
10675         (bus_connection_disconnected): unset it
10676
10677         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10678         used to add a connection to be dispatched
10679         (_dbus_loop_iterate): do the dispatching at the end of each
10680         iteration
10681
10682         * dbus/dbus-connection.c
10683         (dbus_connection_set_dispatch_status_function): new function
10684         allowing us to fix up main loop usage
10685         (_dbus_connection_last_unref): free all the various function
10686         user data
10687         (dbus_connection_dispatch): call the DispatchStatusFunction
10688         whenever this function returns
10689         (dbus_connection_handle_watch): call DispatchStatusFunction
10690         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10691         (reply_handler_timeout): call DispatchStatusFunction
10692         (dbus_connection_flush): call DispatchStatusFunction
10693
10694 2003-04-09  Havoc Pennington  <hp@redhat.com>
10695
10696         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10697         a memory leak
10698
10699         * bus/dispatch.c (check_service_activated): fix bug in test
10700
10701         * dbus/dbus-mainloop.c (check_timeout): fix this up
10702
10703         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10704         verbose output so we can sort out output from different processes,
10705         e.g. in the activation case.
10706
10707 2003-04-08  Colin Walters  <walters@gnu.org>
10708
10709         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10710         the pid file.
10711         (bus_context_new): Set it.
10712         (bus_context_unref): Use it to delete the pid file.
10713
10714 2003-04-08  Havoc Pennington  <hp@redhat.com>
10715
10716         * test/data/invalid-messages/array-with-mixed-types.message:
10717         regression test that fails for the moment
10718
10719         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10720         tests for convenience
10721
10722         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10723         array of nil, it broke things.
10724
10725         * test/data/invalid-messages/array-of-nil.message: regression test
10726
10727         * test/data/valid-messages/array-of-array-of-uint32.message:
10728         happened to write this so added it to suite
10729
10730 2003-04-08  Havoc Pennington  <hp@redhat.com>
10731
10732         * bus/driver.c (bus_driver_handle_acquire_service): init
10733         retval/reply before checking name
10734
10735         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10736         recursion depth argument
10737
10738         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10739         in the public struct for future extension
10740
10741         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10742         typo
10743
10744         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10745         message
10746
10747         * doc/dbus-specification.sgml: fix typo
10748
10749 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10750
10751         Implemented recursive types, named types and new-style iters
10752
10753         * bus/driver.c:
10754         * glib/test-thread-client.c: (thread_func):
10755         * glib/test-thread-server.c: (handle_test_message):
10756         * test/test-service.c: (handle_echo):
10757         Update to new api
10758
10759         * dbus/Makefile.am:
10760         * dbus/dbus-dict.c:
10761         * dbus/dbus-dict.h:
10762         * dbus/dbus.h
10763         Remove DBusDict
10764
10765         * dbus/dbus-internals.c: (_dbus_type_to_string):
10766         Update for new types.
10767
10768         * dbus/dbus-marshal.[ch]:
10769         Implement recursive types and the new marshalling format.
10770         Remove hardcoded dict marshalling.
10771         Marshal named types.
10772
10773         * dbus/dbus-message-builder.c:
10774         Add BYTE_ARRAY.
10775         Remove references to old types
10776
10777         * dbus/dbus-message.[ch]:
10778         New non-refcounted iter API that supports recursive iters.
10779         Use iters for appending, including support for recursive
10780         iters.
10781         Add byte and named type support.
10782         Update everything to new marshalling formats.
10783         Add tests for new API.
10784
10785         * dbus/dbus-protocol.h:
10786         Remove old array types.
10787         Add types: BYTE, ARRAY, DICT, NAMED
10788
10789         * dbus/dbus-string.c:
10790         * dbus/dbus-sysdeps.c:
10791         Make parse_double locale safe.
10792
10793         * dbus/dbus-test-main.c:
10794         Call setlocale.
10795
10796         * dbus/dbus-test.c:
10797         Kill dict test
10798
10799         * doc/dbus-specification.sgml:
10800         Update spec
10801
10802         * test/data/incomplete-messages/missing-body.message:
10803         * test/data/invalid-messages/bad-boolean.message:
10804         * test/data/invalid-messages/bad-boolean-array.message:
10805         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10806         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10807         * test/data/invalid-messages/too-short-dict.message:
10808         * test/data/valid-messages/dict-simple.message:
10809         * test/data/valid-messages/dict.message:
10810         * test/data/valid-messages/emptiness.message:
10811         * test/data/valid-messages/lots-of-arguments.message:
10812         * test/data/valid-messages/no-padding.message:
10813         * test/data/valid-messages/recursive-types.message:
10814         Add missing NAME fields
10815         Fix up dicts & arrays
10816
10817         * test/data/invalid-messages/dict-with-nil-value.message:
10818         Removed, this is not invalid anymore.
10819
10820         * test/data/valid-messages/recursive-types.message:
10821         Add new test for deeply recursive types.
10822
10823 2003-04-07  Havoc Pennington  <hp@pobox.com>
10824
10825         * bus/driver.c (bus_driver_handle_acquire_service): return an
10826         error if you try to acquire a service that starts with ':'
10827
10828 2003-04-07  Havoc Pennington  <hp@redhat.com>
10829
10830         * doc/dbus-specification.sgml: require that base service names
10831         start with ':' and that the base service is created/deleted
10832         as first and last things a connection does on the bus
10833
10834         * bus/dispatch.c (check_existent_service_activation): lots more
10835         work on the activation test; it doesn't fully pass yet...
10836
10837         * test/test-service.c (main): fix so we don't memleak the
10838         connection to the message bus
10839         (filter_func): accept a message asking us to exit
10840
10841 2003-04-06  Havoc Pennington  <hp@pobox.com>
10842
10843         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10844         from Colin Walters
10845
10846         * configure.in: fixes to Qt detection from Colin Walters
10847
10848         * doc/Makefile.am: Only remove generated docbook dirs if they
10849         exist, from Colin Walters
10850
10851         * dbus/dbus-bus.c: change how we set well-known connections to
10852         NULL, so that it works if a single connection is stored in
10853         two well-known array slots.
10854
10855         * test/Makefile.am: remove a lot of stuff that isn't immediately
10856         useful, it's in CVS history if we want it.
10857
10858         * test/test-service.c: use dbus-mainloop instead of that
10859         watch.[hc] crack
10860
10861 2003-04-06  Havoc Pennington  <hp@pobox.com>
10862
10863         * dbus/Makefile.am: split lists of sources into stuff that goes in
10864         the library, util functions that go in the lib and are also used
10865         elsewhere, and util functions that are used in tests/daemon but
10866         don't go in the lib.
10867
10868         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10869         here so it can be used in test binaries also
10870
10871 2003-04-06  Havoc Pennington  <hp@pobox.com>
10872
10873         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10874         here in the parent process, so we can return an error if it
10875         fails. Also, move some of the code into the child so the parent
10876         is less hosed if we fail midway through.
10877
10878         * bus/bus.c (bus_context_new): move pidfile detection further up
10879         in the function, before we start overwriting sockets and such.
10880
10881         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10882
10883         * configure.in: add --with-system-pid-file and --with-system-socket
10884
10885 2003-04-06  Colin Walters  <walters@verbum.org>
10886
10887         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10888
10889         * bus/system.conf.in: Declare a pidfile.
10890
10891         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10892         create one (if appropriate).
10893
10894         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10895         (struct BusConfigParser) [pidfile]: New.
10896         (element_type_to_name, merge_included, start_busconfig_child)
10897         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10898         (bus_config_parser_unref): Free it.
10899         (bus_config_parser_get_pidfile): New function.
10900
10901         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10902
10903         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10904
10905         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10906
10907         * dbus/dbus-sysdeps.h: Prototype it.
10908
10909 2003-04-06  Havoc Pennington  <hp@pobox.com>
10910
10911         * bus/bus.c (bus_context_new): print the address in here, rather
10912         than in main(), because we need to do it before forking the daemon
10913
10914         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10915         on the service nonexistent error
10916
10917         * bus/driver.c (bus_driver_handle_acquire_service): set the
10918         sender on the AcquireService reply
10919
10920         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10921         server also listen on a UNIX socket so services can connect to it.
10922
10923 2003-04-06  Havoc Pennington  <hp@pobox.com>
10924
10925         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10926         so it detects deadlocks and also we actually init threads when
10927         debugging.
10928
10929 2003-04-06  Havoc Pennington  <hp@pobox.com>
10930
10931         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10932         save the domain socket name, and unlink it when we disconnect the
10933         server. Means that at least when we exit normally, we won't leave
10934         a bunch of junk in /tmp
10935
10936         * dbus/dbus-transport-unix.c
10937         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10938         memory management). (I was making a real change here but then
10939         didn't)
10940
10941 2003-04-06  Havoc Pennington  <hp@pobox.com>
10942
10943         * bus/bus.c (bus_context_new): fix wrong handling of
10944         server_data_slot_unref() in the error case.
10945
10946         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10947         "(condition) != 0" to _dbus_real_assert so that
10948         "_dbus_assert (pointer)" doesn't cause a warning
10949
10950         * bus/main.c (main): accept --print-address option to print out
10951         the message bus address
10952
10953         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10954
10955         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10956         "tmpdir" option to unix: address on client side
10957
10958         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10959         to unix: address
10960
10961         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10962         we can use to create sockets in the test suite.
10963
10964         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10965         cleanly. To be used for testing.
10966
10967         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10968
10969         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10970
10971         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10972         handle trying to call this when there's no servers active
10973
10974 2003-04-05  Havoc Pennington  <hp@pobox.com>
10975
10976         * NEWS: update
10977
10978         * configure.in: 0.8
10979
10980 2003-04-05  Havoc Pennington  <hp@pobox.com>
10981
10982         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10983         crash on startup. Need to get "try starting the daemon"
10984         in the test suite I guess. ;-)
10985
10986         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10987         tracked the number of open connections; it's better done in
10988         application-specific code as you want it to span all servers etc.
10989
10990 2003-04-05  Havoc Pennington  <hp@pobox.com>
10991
10992         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10993         patch from Colin Walters
10994
10995 2003-04-05  Havoc Pennington  <hp@pobox.com>
10996
10997         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10998         reality; in fact multiple mechanisms are allowed.
10999
11000         * dbus/dbus-internals.c (_dbus_real_assert)
11001         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11002         _dbus_assert_not_reached() into functions, so that they don't show
11003         up in basic block counts for test coverage, and don't use up as
11004         much disk space. Does mean slower execution speed though, so
11005         assumes --disable-asserts is the normal production case.
11006
11007 2003-04-05  Havoc Pennington  <hp@pobox.com>
11008
11009         * test/Makefile.am (dist-hook): also dist *.in files
11010
11011         * NEWS: update
11012
11013         * configure.in: 0.7
11014
11015 2003-04-05  Havoc Pennington  <hp@pobox.com>
11016
11017         * dbus/dbus-string.c: docs warning
11018
11019         * dbus/dbus-spawn.c: missing docs
11020
11021         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11022
11023 2003-04-05  Havoc Pennington  <hp@pobox.com>
11024
11025         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11026         magic from GLib
11027
11028         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11029         to -1 once we've reaped the babysitter
11030         (_dbus_babysitter_handle_watch): do as much work as we can, not
11031         just one go of it
11032
11033         * bus/activation.c: add code using DBusBabysitter so that we
11034         handle it when a service fails to start up properly.
11035         (bus_activation_service_created): don't remove the activation
11036         entries as we go, just let them get removed when we free the pending
11037         activation. Unref reply messages after sending them.
11038
11039 2003-04-05  Havoc Pennington  <hp@pobox.com>
11040
11041         * test/decode-gcov.c (main): print per-directory stats in the report
11042
11043         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11044
11045 2003-04-05  Havoc Pennington  <hp@pobox.com>
11046
11047         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11048
11049         * test/decode-gcov.c: hack up a little program to suck data
11050         out of gcov files. Yes this is sort of silly.
11051
11052         * configure.in: define something in config.h and do an
11053         AM_CONDITIONAL when gcov is enabled
11054
11055 2003-04-04  Havoc Pennington  <hp@redhat.com>
11056
11057         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11058         return a "babysitter" object that is used to monitor the status of
11059         the spawned process and reap it when required.
11060
11061         * test/test-segfault.c, test/test-exit.c,
11062         test/test-sleep-forever.c: binaries that do various lame things,
11063         used in the test suite.
11064
11065         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11066
11067 2003-04-03  Havoc Pennington  <hp@pobox.com>
11068
11069         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11070         in preparation for modifying it, dbus-sysdeps is getting
11071         a bit unmanageable.
11072
11073 2003-04-03  Havoc Pennington  <hp@redhat.com>
11074
11075         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11076         have multiple ones
11077
11078         * bus/*.[hc]: adapt to mainloop change
11079
11080 2003-04-03  Havoc Pennington  <hp@redhat.com>
11081
11082         * bus/activation.c (load_directory): fix up memleaks
11083         (bus_activation_entry_free): free the entry
11084
11085         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11086         we get one from the message bus; fix memleaks.
11087
11088         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11089
11090 2003-04-03  Havoc Pennington  <hp@pobox.com>
11091
11092         * bus/config-parser.c (bus_config_parser_unref): free
11093         list of mechanisms, bug discovered by test suite enhancements
11094         (putting system.conf and session.conf into suite)
11095
11096         * test/Makefile.am, test/test-service.c: add placeholder for a
11097         test service that we'll activate as part of test suite. Doesn't
11098         do anything yet.
11099
11100         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11101         setting NULL value, and use system malloc not dbus_malloc()
11102         when we have unavoidable memleakage.
11103
11104         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11105         didn't work, and support DBUS_BUS_ACTIVATION.
11106
11107         * bus/activation.c (child_setup): pass our well-known bus type to
11108         the child
11109
11110         * bus/config-parser.c: support <type> to specify well-known type
11111
11112         * doc/dbus-specification.sgml: document the env variables to
11113         locate well-known buses and find service activator
11114
11115 2003-04-02  Havoc Pennington  <hp@redhat.com>
11116
11117         * test/Makefile.am (all-local): add a rule to copy tests to
11118         builddir, so we can have generated tests. Use this to remove the
11119         silly hack for testing system.conf and session.conf. Will use this
11120         shortly to generate .service files pointing to test binaries.
11121
11122 2003-04-02  Havoc Pennington  <hp@redhat.com>
11123
11124         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11125         current alloc and needed new length, not max of the doubled
11126         allocation and needed new length. Also, when building tests,
11127         don't do the double-allocation stuff, just realloc every time.
11128
11129 2003-04-02  Havoc Pennington  <hp@redhat.com>
11130
11131         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11132         in error messages
11133         (_dbus_string_get_dirname): new
11134         (_dbus_sysdeps_test): new
11135         (_dbus_directory_open): include dirnames in error messages
11136
11137         * bus/config-parser.c: interpret <include> and <includedir> and
11138         <servicedir> relative to config file location if the given
11139         filename is not absolute.
11140
11141         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11142
11143 2003-04-02  Havoc Pennington  <hp@redhat.com>
11144
11145         * bus/connection.c (bus_transaction_send_error_reply): set sender
11146         service for the error, and unref the reply on success
11147
11148         * bus/activation.c: convert to use BusTransaction so OOM can be
11149         handled correctly
11150         (bus_activation_service_created): set sender of the message
11151
11152 2003-04-01  Havoc Pennington  <hp@redhat.com>
11153
11154         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11155         <includedir> (at least mostly)
11156
11157         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11158         first, then the user ID
11159
11160 2003-04-01  Havoc Pennington  <hp@pobox.com>
11161
11162         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11163         function
11164
11165         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11166
11167         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11168
11169         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11170         socket 0777, and unlink any existing socket.
11171
11172         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11173         the configuration file so specifies; set up auth mechanism
11174         restrictions
11175
11176         * bus/config-parser.c (bus_config_parser_content): add support
11177         for <fork> option and fill in code for <auth>
11178
11179         * bus/system.conf.in: add <fork/> to default configuration,
11180         and limit auth mechanisms to EXTERNAL
11181
11182         * doc/config-file.txt (Elements): add <fork>
11183
11184         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11185         (_dbus_change_identity): new function
11186
11187 2003-03-31  Havoc Pennington  <hp@redhat.com>
11188
11189         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11190         (_dbus_listen_unix_socket): fix off-by-one error in null
11191         termination spotted by Nalin
11192
11193 2003-03-31  Havoc Pennington  <hp@redhat.com>
11194
11195         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11196         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11197         having a real home directory available.
11198
11199 2003-03-31  Havoc Pennington  <hp@redhat.com>
11200
11201         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11202
11203         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11204
11205         * configure.in: add support for specifying a style of init script
11206         to install
11207
11208 2003-03-31  Havoc Pennington  <hp@redhat.com>
11209
11210         Fix some annoying DBusString API and fix all affected code.
11211
11212         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11213         max_length argument
11214         (_dbus_string_get_data): change to return string instead of using
11215         an out param
11216         (_dbus_string_get_const_data): ditto
11217         (_dbus_string_get_data_len): ditto
11218         (_dbus_string_get_const_data_len): ditto
11219
11220 2003-03-31  Havoc Pennington  <hp@redhat.com>
11221
11222         * bus/main.c (main): fix up the command line arguments to be nicer
11223
11224 2003-03-31  Havoc Pennington  <hp@redhat.com>
11225
11226         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11227         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11228         final location that lands in the config file
11229
11230         * bus/config-loader-expat.c (bus_config_load): fix type of
11231         XML_Parser variable
11232
11233         * doc/TODO: remove TODO item for dbus_bus_get()
11234
11235         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11236
11237 2003-03-31  Havoc Pennington  <hp@pobox.com>
11238
11239         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11240         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11241         argument since they are always client side
11242
11243         * dbus/dbus-server.c (dbus_server_get_address): new function
11244
11245         * bus/main.c (main): take the configuration file as an argument.
11246
11247         * test/data/valid-config-files/debug-allow-all.conf: new file to
11248         use with dispatch.c tests for example
11249
11250         * bus/test-main.c (main): require test data dir
11251
11252         * bus/bus.c (bus_context_new): change this to take a
11253         configuration file name as argument
11254
11255         * doc/config-file.txt (Elements): add <servicedir>
11256
11257         * bus/system.conf, bus/session.conf: new files
11258
11259         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11260         well-known socket if none set
11261
11262         * configure.in: create system.conf and session.conf
11263
11264 2003-03-30  Havoc Pennington  <hp@pobox.com>
11265
11266         * bus/config-parser.c: hacking
11267
11268         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11269         to shut down, since it could cause weirdness with the DBusList
11270         lock
11271
11272         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11273         link-oriented stack routines
11274         (alloc_link): free the mempool if the first alloc from it fails
11275
11276         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11277
11278         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11279         from GLib
11280         (_dbus_string_skip_white): new
11281
11282         * doc/config-file.txt (Elements): add <includedir>
11283
11284 2003-03-28  Havoc Pennington  <hp@pobox.com>
11285
11286         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11287         (_dbus_string_copy_data): new functions
11288
11289 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11290
11291         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11292         * dbus/dbus-bus.h:
11293         Add dbus_bus_get.
11294
11295         * dbus/dbus-memory.c:
11296         Fix a doc comment.
11297
11298 2003-03-28  Havoc Pennington  <hp@pobox.com>
11299
11300         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11301         I think it may have just been superstition. Not sure.
11302
11303         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11304         failures that were not being handled.
11305
11306         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11307
11308         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11309         row that will fail on out-of-memory.
11310
11311         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11312         function for testing out-of-memory handling.
11313
11314         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11315         allocation functions, they do map exactly to the expat ones.
11316
11317 2003-03-27  Havoc Pennington  <hp@redhat.com>
11318
11319         * bus/config-loader-libxml.c (bus_config_load): add another error
11320         check
11321
11322 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11323
11324         * doc/TODO:
11325         Add note about automatic service activation.
11326
11327         * doc/dbus-specification.sgml:
11328         Rename the specification and clarify a few things.
11329
11330 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11331
11332         * Doxyfile.in:
11333         * dbus/dbus-address.c:
11334         * dbus/dbus-dict.c:
11335         * dbus/dbus-marshal.c:
11336         * dbus/dbus-server-debug-pipe.c:
11337         * dbus/dbus-transport-unix.c:
11338         Fix documentation warnings.
11339
11340 2003-03-26  Havoc Pennington  <hp@pobox.com>
11341
11342         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11343         after every test so it's quick and easy to see which leaked, and
11344         so we test multiple dbus_shutdown() calls
11345
11346         * configure.in: change configure.in XML stuff to also support
11347         expat
11348
11349         * config-loader-libxml.c: some hacking
11350
11351         * config-loader-expat.c: some hacking
11352
11353         * config-parser.c: some hacking, plus tests
11354
11355 2003-03-25  Havoc Pennington  <hp@redhat.com>
11356
11357         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11358
11359         * configure.in: add --with-xml option to specify XML library,
11360         right now only libxml is supported.
11361
11362         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11363         nonworking code between home and work, still just stubs
11364
11365 2003-03-24  Havoc Pennington  <hp@redhat.com>
11366
11367         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11368         file
11369
11370         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11371         NULL argument for "message" if the error is a well-known one,
11372         fill in a generic message in this case.
11373
11374         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11375         favor of DBusError
11376
11377         * bus/test.c (bus_test_flush_bus): add
11378
11379         * bus/policy.c (bus_policy_test): test code stub
11380
11381 2003-03-24  Havoc Pennington  <hp@pobox.com>
11382
11383         * bus/connection.c (bus_connections_setup_connection): set up
11384         the "can this user connect" function, but it always returns
11385         TRUE until we have a config file parser so we can have a config
11386         file that allows connections.
11387
11388 2003-03-23  Havoc Pennington  <hp@pobox.com>
11389
11390         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11391         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11392         the mutex, so we can check for proper memory management
11393         and OOM handling.
11394
11395         * dbus/dbus-dataslot.c: remove the mutex from
11396         DBusDataSlotAllocator and lock it manually when using it,
11397         to simplify fitting it into the global slots framework.
11398
11399         * dbus/dbus-threads.c (init_static_locks): rework how we're
11400         handling global locks so they are easily shut down.
11401
11402         * bus/policy.c (bus_policy_append_rule): fix
11403
11404         * bus/test-main.c (main): check for memleaks
11405
11406         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11407         test suite check for memleaks
11408
11409         * dbus/dbus-memory.c: add support in test mode for tracking
11410         number of outstanding blocks
11411
11412 2003-03-23  Havoc Pennington  <hp@pobox.com>
11413
11414         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11415         policies code
11416
11417         * dbus/dbus-hash.h: add ULONG hash keys
11418
11419         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11420         (_dbus_get_group_id): new function
11421
11422 2003-03-20  Havoc Pennington  <hp@redhat.com>
11423
11424         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11425         new function
11426         (dbus_connection_get_unix_user): new function
11427
11428 2003-03-20  Havoc Pennington  <hp@pobox.com>
11429
11430         * bus/connection.c (bus_connection_send_oom_error): assert that
11431         message has a sender
11432         (connection_execute_transaction): ditto
11433         (bus_connection_preallocate_oom_error): fix to set the sender, and
11434         set recipient to the destination service, not the bus driver
11435
11436         * bus/policy.c: hacking
11437
11438         * dbus/dbus-message.c (dbus_message_service_is): new function
11439         (dbus_message_sender_is): new
11440
11441 2003-03-19  Havoc Pennington  <hp@redhat.com>
11442
11443         * bus/policy.c: start sketching code for policy restrictions on
11444         what connections can do.
11445
11446 2003-03-18  Havoc Pennington  <hp@redhat.com>
11447
11448         * doc/TODO: some notes on high-level todo items. Little nitpick
11449         stuff is all in @todo, so no need to add it here.
11450
11451         * doc/config-file.txt: some notes on how config file might look
11452
11453 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11454
11455         * configure.in: 0.6
11456
11457         * NEWS: Update.
11458
11459 2003-03-17  Havoc Pennington  <hp@redhat.com>
11460
11461         * dbus/dbus-internals.h: add gcc attributes so that
11462         our printf-style functions warn on bad arguments to
11463         format
11464
11465         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11466         format bug
11467
11468         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11469         printf format bug
11470
11471 2003-03-17  Havoc Pennington  <hp@redhat.com>
11472
11473         * bus/test-main.c (main): make it print something as it runs
11474         so make check doesn't look stuck
11475
11476         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11477         from CVS, now obsolete
11478
11479 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11480
11481         * bus/dispatch.c: (bus_dispatch):
11482         Refetch the service name since it may have been reallocated
11483         when dbus_message_set_sender was called.
11484
11485         * dbus/dbus-sysdeps.c: (_dbus_accept):
11486         Add address and address length variables and use them to stop
11487         valgrind from complaining.
11488
11489 2003-03-17  Havoc Pennington  <hp@pobox.com>
11490
11491         All tests pass, no memleaks, no valgrind complaints.
11492
11493         * bus/test.c: refcount handler_slot
11494
11495         * bus/connection.c (bus_connections_new): refcount
11496         connection_data_slot
11497
11498         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11499         bytes so that auth scripts pass.
11500
11501         * bus/dispatch.c: init message_handler_slot so it gets allocated
11502         properly
11503
11504         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11505
11506         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11507         dealloc server_pipe_hash when no longer used for benefit of
11508         leak checking
11509
11510         * dbus/dbus-auth.c (process_command): memleak fix
11511
11512         * bus/dispatch.c (check_hello_message): memleak fix
11513
11514 2003-03-16  Havoc Pennington  <hp@pobox.com>
11515
11516         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11517
11518 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11519
11520         * bus/activation.c (bus_activation_activate_service): Append
11521         the pending activation entry to the list of pending activations.
11522
11523 2003-03-16  Havoc Pennington  <hp@pobox.com>
11524
11525         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11526         connections
11527
11528         * dbus/dbus-address.c (create_entry): fix OOM handling when
11529         failing to alloc entry->method
11530
11531 2003-03-16  Havoc Pennington  <hp@pobox.com>
11532
11533         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11534         the watch
11535
11536         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11537         add some missing dbus_set_result
11538
11539         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11540         alloc the DBusMessageHandler
11541
11542         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11543         the transport here, since we call this from the finalizer; it
11544         resulted in a double-finalize.
11545
11546         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11547         where we tried to use transport->connection that was NULL,
11548         happened when transport was disconnected early on due to OOM
11549
11550         * bus/*.c: adapt to handle OOM for watches/timeouts
11551
11552         * dbus/dbus-transport-unix.c: port to handle OOM during
11553         watch handling
11554
11555         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11556         reference to unused bytes instead of a copy
11557
11558         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11559         out of memory
11560
11561         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11562         FALSE on OOM
11563
11564         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11565         of memory
11566
11567 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11568
11569         * doc/dbus-specification.sgml:
11570         Document reply message for ActivateService.
11571
11572 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11573
11574         * bus/activation.c: (bus_pending_activation_entry_free),
11575         (bus_pending_activation_free), (bus_activation_new),
11576         (bus_activation_unref), (bus_activation_service_created),
11577         (bus_activation_activate_service):
11578         * bus/activation.h:
11579         * bus/bus.c: (bus_context_new):
11580         * bus/desktop-file.c: (new_section):
11581         * bus/driver.c: (bus_driver_send_service_deleted),
11582         (bus_driver_handle_activate_service):
11583         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11584         * bus/services.h:
11585         * dbus/dbus-connection.c:
11586         (dbus_connection_send_with_reply_and_block):
11587         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11588         * dbus/dbus-protocol.h:
11589         Make activation work better. Now pending activations will be queued
11590         and the daemon won't try to activate services that are already registered.
11591
11592 2003-03-16  Havoc Pennington  <hp@pobox.com>
11593
11594         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11595         connection data
11596
11597         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11598         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11599
11600 2003-03-16  Havoc Pennington  <hp@pobox.com>
11601
11602         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11603         this. always run the test suite before commit...
11604
11605         * bus/*: adapt to DBusConnection API changes
11606
11607         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11608         requires renaming stuff to avoid dbus_connection_dispatch name
11609         conflict.
11610
11611         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11612         function
11613
11614         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11615         separate from _dbus_message_loader_return_buffer()
11616
11617         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11618         this, because it's now always broken to use; the number of
11619         messages in queue vs. the number still buffered by the message
11620         loader is undefined/meaningless. Should use
11621         dbus_connection_get_dispatch_state().
11622         (dbus_connection_dispatch): rename from
11623         dbus_connection_dispatch_message
11624
11625 2003-03-16  Havoc Pennington  <hp@pobox.com>
11626
11627         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11628         implementation
11629
11630 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11631
11632         * dbus/dbus-connection.c:
11633         (dbus_connection_send_with_reply_and_block):
11634         Decrease connection->n_incoming when removing an entry
11635         from the list.
11636         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11637         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11638         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11639         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11640         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11641         (dbus_dict_get_byte_array):
11642         Handle NULL arrays and strings. Also add support for byte arrays.
11643
11644         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11645         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11646         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11647         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11648         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11649         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11650         * dbus/dbus-marshal.h:
11651         Add support for marshalling and demarshalling empty arrays and strings.
11652
11653         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11654         (dbus_message_append_string_array),
11655         (dbus_message_iter_get_boolean),
11656         (dbus_message_iter_get_boolean_array),
11657         (dbus_message_iter_get_int32_array),
11658         (dbus_message_iter_get_uint32_array),
11659         (dbus_message_iter_get_double_array),
11660         (dbus_message_iter_get_byte_array),
11661         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11662         (check_message_handling):
11663         Add support for getting empty arrays and dicts.
11664
11665         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11666         Don't do any validation at all for now, that's better than just checking
11667         for ASCII.
11668
11669         * test/data/valid-messages/emptiness.message:
11670         New test message with lots of empty arrays.
11671
11672 2003-03-16  Havoc Pennington  <hp@pobox.com>
11673
11674         * dbus/dbus-connection.c
11675         (_dbus_connection_queue_received_message_link): new function that
11676         can't fail due to OOM
11677
11678         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11679         new function pops a message together with a list link
11680         containing it.
11681
11682         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11683         message queuing functions to avoid needing to alloc memory
11684
11685 2003-03-16  Havoc Pennington  <hp@pobox.com>
11686
11687         Oops - test code was only testing failure of around 30 of the
11688         mallocs in the test path, but it turns out there are 500+
11689         mallocs. I believe this was due to misguided linking setup such
11690         that there was one copy of dbus_malloc etc. in the daemon and one
11691         in the shared lib, and only daemon mallocs were tested. In any
11692         case, the test case now tests all 500+ mallocs, and doesn't pass
11693         yet, though there are lots of fixes in this patch.
11694
11695         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11696         this so that it doesn't need to allocate memory, since it
11697         has no way of indicating failure due to OOM (and would be
11698         annoying if it did).
11699
11700         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11701
11702         * bus/Makefile.am: rearrange to create two self-contained
11703         libraries, to avoid having libraries with overlapping symbols.
11704         that was resulting in weirdness, e.g. I'm pretty sure there
11705         were two copies of global static variables.
11706
11707         * dbus/dbus-internals.c: move the malloc debug stuff to
11708         dbus-memory.c
11709
11710         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11711         empty.
11712
11713         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11714
11715         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11716         on failure.
11717
11718         * bus/dispatch.c (bus_dispatch_add_connection): free
11719         message_handler_slot when no longer using it, so
11720         memory leak checkers are happy for the test suite.
11721
11722         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11723
11724         * bus/bus.c (new_connection_callback): disconnect in here if
11725         bus_connections_setup_connection fails.
11726
11727         * bus/connection.c (bus_connections_unref): fix to free the
11728         connections
11729         (bus_connections_setup_connection): if this fails, don't
11730         disconnect the connection, just be sure there are no side
11731         effects.
11732
11733         * dbus/dbus-string.c (undo_alignment): unbreak this
11734
11735         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11736         leaking
11737         (_dbus_auth_new): fix the order in which we free strings
11738         on OOM failure
11739
11740         * bus/connection.c (bus_connection_disconnected): fix to
11741         not send ServiceDeleted multiple times in case of memory
11742         allocation failure
11743
11744         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11745         get the base service name
11746         (dbus_bus_register_client): don't return base service name,
11747         instead store it on the DBusConnection and have an accessor
11748         function for it.
11749         (dbus_bus_register_client): rename dbus_bus_register()
11750
11751         * bus/dispatch.c (check_hello_message): verify that other
11752         connections on the bus also got the correct results, not
11753         just the one sending hello
11754
11755 2003-03-15  Havoc Pennington  <hp@pobox.com>
11756
11757         Make it pass the Hello handling test including all OOM codepaths.
11758         Now to do other messages...
11759
11760         * bus/services.c (bus_service_remove_owner): fix crash when
11761         removing owner from an empty list of owners
11762         (bus_registry_ensure): don't leave service in the list of
11763         a connection's owned services if we fail to put the service
11764         in the hash table.
11765
11766         * bus/connection.c (bus_connection_preallocate_oom_error): set
11767         error flag on the OOM error.
11768
11769         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11770         handle _dbus_transport_set_connection failure
11771
11772         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11773         to create watches up front and simply enable/disable them as
11774         needed.
11775         (unix_connection_set): this can now fail on OOM
11776
11777         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11778         of enabling/disabling a watch or timeout.
11779
11780         * bus/loop.c (bus_loop_iterate): don't touch disabled
11781         watches/timeouts
11782
11783         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11784
11785 2003-03-15  Havoc Pennington  <hp@pobox.com>
11786
11787         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11788         write useful test code, after all that futzing around ;-)
11789
11790         Test does not yet pass because we can't handle OOM in
11791         _dbus_transport_messages_pending (basically,
11792         dbus_connection_preallocate_send() does not prealloc the write
11793         watch). To fix this, I think we need to add new stuff to
11794         set_watch_functions, namely a SetEnabled function so we can alloc
11795         the watch earlier, then enable it later.
11796
11797         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11798         dbus-memory.c to the convenience lib
11799
11800         * bus/test.c: rename some static functions to keep them clearly
11801         distinct from stuff in connection.c. Handle client disconnection.
11802
11803 2003-03-14  Havoc Pennington  <hp@pobox.com>
11804
11805         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11806         transport, tests more of the real codepath. Set up clients
11807         with bus_setup_debug_client.
11808
11809         * bus/test.c (bus_setup_debug_client): function to set up debug
11810         "clients" on the main loop
11811
11812         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11813         support
11814
11815         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11816         server type
11817
11818         * dbus/dbus-server-debug.c: support a debug server based on pipes
11819
11820         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11821         (_dbus_close): new function
11822
11823         * configure.in: check for socketpair
11824
11825 2003-03-14  Havoc Pennington  <hp@redhat.com>
11826
11827         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11828         cheesy hack
11829
11830         * dbus/dbus-transport-debug.c: rework this a good bit to be
11831         less complicated. hopefully still works.
11832
11833         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11834         manually
11835
11836         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11837         after running it
11838
11839         * dbus/dbus-message.c (dbus_message_copy): rename from
11840         dbus_message_new_from_message, fix it up to copy
11841         all the message fields, add test case
11842
11843         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11844         not quite passing yet
11845
11846 2003-03-14  Havoc Pennington  <hp@pobox.com>
11847
11848         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11849         until no work remains" in test code. (the large diff here
11850         is just code movement, no actual changes)
11851
11852         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11853         1, no point waiting around for test code.
11854         (_dbus_server_debug_accept_transport): unref the timeout
11855         after adding it (right?)
11856
11857         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11858
11859 2003-03-13  Havoc Pennington  <hp@redhat.com>
11860
11861         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11862         out of memory
11863
11864         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11865         of memory
11866
11867         * dbus/dbus-connection.h: Make AddWatchFunction and
11868         AddTimeoutFunction return a bool so they can fail on out-of-memory
11869
11870         * bus/bus.c (bus_context_new): set up timeout handlers
11871
11872         * bus/connection.c (bus_connections_setup_connection): set up
11873         timeout handlers
11874
11875         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11876         can fail
11877
11878         * bus/bus.c (bus_context_new): adapt to changes
11879
11880         * bus/connection.c: adapt to changes
11881
11882         * test/watch.c: adapt to DBusWatch changes
11883
11884         * bus/dispatch.c (bus_dispatch_test): started adding this but
11885         didn't finish
11886
11887 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11888
11889         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11890
11891 2003-03-13  Havoc Pennington  <hp@pobox.com>
11892
11893         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11894         set up a test framework as for the library
11895
11896 2003-03-12  Havoc Pennington  <hp@pobox.com>
11897
11898         Throughout: purge global variables, introduce BusActivation,
11899         BusConnections, BusRegistry, etc. objects instead.
11900
11901         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11902         message bus object
11903
11904         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11905         going to redo this a bit differently I think
11906
11907 2003-03-12  Havoc Pennington  <hp@redhat.com>
11908
11909         Mega-patch that gets the message bus daemon initially handling
11910         out-of-memory. Work still needed. Also lots of random
11911         moving stuff to DBusError instead of ResultCode.
11912
11913         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11914
11915         * dbus/dbus-connection.c
11916         (dbus_connection_send_with_reply_and_block): use DBusError
11917
11918         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11919         DBusResultCode
11920
11921         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11922         code here, as the only failure possible is OOM.
11923
11924         * bus/connection.c (bus_connection_disconnect):
11925         rename bus_connection_disconnected as it's a notification only
11926
11927         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11928         "name" on get_args failure, should be done by get_args;
11929         don't disconnect client for bad args, just return an error.
11930         (bus_driver_handle_service_exists): ditto
11931
11932         * bus/services.c (bus_services_list): NULL-terminate returned array
11933
11934         * bus/driver.c (bus_driver_send_service_lost)
11935         (bus_driver_send_service_acquired): send messages from driver to a
11936         specific client to the client's unique name, not to the broadcast
11937         service.
11938
11939         * dbus/dbus-message.c (decode_header_data): reject messages that
11940         contain no name field
11941         (_dbus_message_get_client_serial): rename to
11942         dbus_message_get_serial and make public
11943         (_dbus_message_set_serial): rename from set_client_serial
11944         (_dbus_message_set_reply_serial): make public
11945         (_dbus_message_get_reply_serial): make public
11946
11947         * bus/connection.c (bus_connection_foreach): allow stopping
11948         iteration by returning FALSE from foreach function.
11949
11950         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11951         (dbus_connection_free_preallocated_send)
11952         (dbus_connection_preallocate_send): new API for sending a message
11953         without possibility of malloc failure.
11954         (dbus_connection_send_message): rename to just
11955         dbus_connection_send (and same for whole function family)
11956
11957         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11958
11959         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11960
11961         * bus/activation.c: handle/return errors
11962
11963         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11964
11965         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11966         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11967         (_dbus_result_from_errno): move to this file
11968
11969 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11970
11971         * dbus/dbus-marshal.c:
11972         (_dbus_marshal_set_string):
11973         Take a length argument so we can marshal the correct string
11974         length.
11975
11976         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11977         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11978         (_dbus_marshal_test):
11979         * dbus/dbus-marshal.h:
11980         Add support for marshalling and demarshalling dicts.
11981
11982         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11983         Add support for TYPE DICT.
11984
11985         * dbus/dbus-message.c: (set_string_field):
11986         Adjust header padding.
11987
11988         (dbus_message_append_args_valist), (dbus_message_append_dict),
11989         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11990         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11991         (check_message_handling), (check_have_valid_message):
11992         * dbus/dbus-message.h:
11993         Add functions for setting and getting dicts.
11994
11995         * dbus/dbus-protocol.h:
11996         Add DBUS_TYPE_DICT.
11997
11998         * dbus/dbus.h:
11999         Add dbus-dict.h
12000
12001         * doc/dbus-specification.sgml:
12002         Add information about how dicts are marshalled.
12003
12004         * test/data/invalid-messages/dict-with-nil-value.message:
12005         * test/data/invalid-messages/too-short-dict.message:
12006         * test/data/valid-messages/dict-simple.message:
12007         * test/data/valid-messages/dict.message:
12008         Add sample messages containing dicts.
12009
12010 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12011
12012         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12013
12014 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12015
12016         * dbus/Makefile.am:
12017         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12018         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12019         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12020         (dbus_dict_set_double), (dbus_dict_set_string),
12021         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12022         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12023         (dbus_dict_set_string_array), (_dbus_dict_test):
12024         * dbus/dbus-dict.h:
12025         Fix according to comments from Havoc.
12026
12027 2003-03-06  Michael Meeks  <michael@server.home>
12028
12029         * configure.in: if we don't have kde-config, disable have_qt.
12030
12031 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12032
12033         * dbus/Makefile.am:
12034         Add dbus-dict.[ch]
12035
12036         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12037         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12038         (dbus_dict_remove), (dbus_dict_get_value_type),
12039         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12040         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12041         (dbus_dict_put_double), (dbus_dict_put_string),
12042         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12043         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12044         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12045         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12046         (dbus_dict_get_double), (dbus_dict_get_string),
12047         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12048         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12049         (dbus_dict_get_string_array), (_dbus_dict_test):
12050         * dbus/dbus-dict.h:
12051         Add DBusDict implementation
12052
12053         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12054         * dbus/dbus-test.h:
12055         Add _dbus_dict_test
12056
12057 2003-03-04  Havoc Pennington  <hp@pobox.com>
12058
12059         * test/data/auth/*: adapt to changes
12060
12061         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12062         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12063         userid
12064
12065         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12066         more stuff from being in a context name, to make the protocol
12067         simpler to deal with
12068
12069         * dbus/dbus-errors.c (dbus_error_has_name): new function
12070         (dbus_error_is_set): new function
12071
12072         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12073         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12074
12075         * dbus/dbus-connection.c (dbus_connection_flush): also read
12076         messages during a flush operation
12077
12078         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12079
12080 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12081
12082         * configure.in: Check for gethostbyname on Solaris.
12083
12084         * dbus/dbus-transport.c: (_dbus_transport_open):
12085         Remove duplicate "tcp" entry.
12086
12087         * doc/dbus-specification.sgml:
12088         Clarify some things.
12089
12090 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12091
12092         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12093         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12094         (_dbus_keyring_test):
12095         * dbus/dbus-md5.c: (_dbus_md5_compute):
12096         * dbus/dbus-sha.c: (_dbus_sha_compute):
12097         Plug memory leaks.
12098
12099 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12100
12101         * README: Add some things.
12102
12103 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12104
12105         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12106         after case DBUS_TYPE_BOOELAN.
12107
12108 2003-03-02  Havoc Pennington  <hp@pobox.com>
12109
12110         * test/break-loader.c (randomly_set_extreme_ints): add test that
12111         sets really huge and small integers
12112
12113         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12114         that length of boolean array fits in the string, and that
12115         string has room for boolean value in single-bool case.
12116
12117         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12118         optional value to "ALIGN" command which is what to fill the
12119         alignment with.
12120
12121         * test/data/valid-messages/no-padding.message: add regression
12122         test for the message padding problem
12123
12124 2003-03-02  Havoc Pennington  <hp@pobox.com>
12125
12126         * dbus/dbus-message.c (decode_header_data): fix to always init
12127         message_padding, from Benjamin Dauvergne
12128
12129 2003-03-02  Havoc Pennington  <hp@pobox.com>
12130
12131         * configure.in: 0.5
12132
12133         * NEWS: Update.
12134
12135 2003-03-01  Joe Shaw  <joe@assbarn.com>
12136
12137         * configure.in: Check for "struct cmsgcred" and try to access its
12138         members for BSD-like unices.
12139
12140         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12141         _dbus_read_credentials_unix_socket().
12142         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12143         read() for reading the credential byte off the unix socket.  Use
12144         struct cmsgcred on systems that support it.
12145
12146 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12147
12148         * glib/Makefile.am:
12149         * configure.in:
12150         Make gthreads-2.0 dependency optional. Don't build thread test if
12151         its not found.
12152
12153 2003-02-27  Havoc Pennington  <hp@pobox.com>
12154
12155         * dbus/dbus-connection.c
12156         (dbus_connection_send_message_with_reply_and_block): fix doh!
12157         doh! doh! bug that resulted in never removing a reply from the
12158         queue, no wonder we called get_reply_serial so much ;-)
12159
12160         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12161         and client serial instead of demarshaling them every time
12162
12163 2003-02-27  Havoc Pennington  <hp@pobox.com>
12164
12165         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12166         more inlined, using dbus-string-private.h, speeds things up
12167         substantially
12168
12169         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12170         when freeing the string
12171         (_dbus_string_steal_data): fix for align offset
12172         (undo_alignment): new function
12173
12174 2003-02-26  Havoc Pennington  <hp@redhat.com>
12175
12176         All kinds of audit fixes from Owen, plus initial attempt to
12177         handle unaligned memory returned from malloc.
12178
12179         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12180         leave room for align_offset and nul byte
12181         (fixup_alignment): function to track an align_offset and
12182         ensure real->str is aligned
12183         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12184         to allow a nul byte plus align offset
12185         (_dbus_string_lock): fix overflow issue
12186         (_dbus_string_init_const_len): add assertions on sanity of len,
12187         assign allocated to be ALLOCATION_PADDING larger than len
12188         (set_length): fixup the overflow handling
12189         (_dbus_string_get_data_len): fix overflow in assertion
12190         (open_gap): detect overflow in size of gap to be opened
12191         (_dbus_string_lengthen): add overflow check
12192         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12193         (_dbus_string_append): add overflow check
12194         (_dbus_string_append_unichar): overflow
12195         (_dbus_string_delete): fix overflow in assertion
12196         (_dbus_string_copy_len): overflow in assertion
12197         (_dbus_string_replace_len): overflows in assertions
12198         (_dbus_string_find): change to implement in terms of
12199         _dbus_string_find_to
12200         (_dbus_string_find_to): assorted fixage
12201         (_dbus_string_equal_c_str): assert c_str != NULL,
12202         fix logic so the function works
12203         (_dbus_string_ends_with_c_str): fix overflow thingy
12204         (_dbus_string_base64_encode): overflow fix
12205         (_dbus_string_validate_ascii): overflow
12206         (_dbus_string_validate_nul): overflow
12207
12208 2003-02-26  Havoc Pennington  <hp@redhat.com>
12209
12210         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12211
12212 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12213
12214         * configure.in:
12215         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12216
12217         * dbus/dbus-connection.c:
12218         * dbus/dbus-connection.h:
12219         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12220         Add dbus_connection_set_wakeup_main_function and use it when queueing
12221         incoming and outgoing messages.
12222
12223
12224         * dbus/dbus-dataslot.c:
12225         Threadsafe usage of DBusDataSlotAllocator
12226
12227         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12228         dbus_new can fail.
12229
12230         * dbus/dbus-server-unix.c:
12231         Add todo comment
12232
12233         * glib/dbus-gmain.c:
12234         Implement the new wakeup functions for glib.
12235
12236         * glib/Makefile.am:
12237         * glib/test-thread-client.c:
12238         * glib/test-thread-server.c:
12239         * glib/test-thread.h:
12240         Initial cut at some thread test code. Not really done yet.
12241
12242 2003-02-26  Havoc Pennington  <hp@pobox.com>
12243
12244         * dbus/dbus-connection.c
12245         (dbus_connection_send_message_with_reply_and_block): fix crash
12246         where we ref'd the outgoing message instead of the returned reply
12247
12248         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12249         at the end of this function, so if we didn't need to read for
12250         authentication, we reinstall it for receiving messages
12251
12252         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12253         a NULL sender for peer-to-peer case
12254
12255         * dbus/dbus-transport-unix.c (check_read_watch): handle
12256         !authenticated case correctly
12257
12258         * glib/dbus-gmain.c: add support for DBusServer
12259
12260         * dbus/dbus-server.c: add data slot support
12261
12262         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12263         return values and handle errors
12264
12265         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12266         DBusConnection
12267
12268         * Doxyfile.in (INPUT): add glib subdir
12269
12270         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12271         setup_with_g_main instead of hookup_with_g_main; write docs
12272
12273 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12274
12275         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12276         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12277         * dbus/dbus-message.c: (dbus_message_append_boolean),
12278         (dbus_message_append_boolean_array),
12279         (dbus_message_get_args_valist), (_dbus_message_test):
12280         * dbus/dbus-message.h:
12281         * doc/dbus-specification.sgml:
12282         Various fixes as pointed out by Havoc.
12283
12284         * test/data/invalid-messages/bad-boolean-array.message:
12285         * test/data/invalid-messages/bad-boolean.message:
12286         Add invalid boolean value test cases.
12287
12288 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12289
12290         * dbus/dbus-internals.c: (_dbus_type_to_string):
12291         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12292         (_dbus_marshal_validate_arg):
12293         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12294         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12295         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12296         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12297         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12298         (dbus_message_iter_get_double),
12299         (dbus_message_iter_get_boolean_array), (message_iter_test):
12300         * dbus/dbus-message.h:
12301         * dbus/dbus-protocol.h:
12302         * doc/dbus-specification.sgml:
12303         * test/data/valid-messages/lots-of-arguments.message:
12304         Add support for boolean and boolean array types.
12305
12306 2003-02-23  Havoc Pennington  <hp@pobox.com>
12307
12308         * dbus/dbus-keyring.c: finish most of this implementation and
12309         simple unit test
12310
12311         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12312         these barf if the error isn't cleared to NULL
12313
12314         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12315         (_dbus_create_directory): new function
12316
12317         * dbus/dbus-errors.c (dbus_set_error): fix warning
12318
12319         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12320         (_dbus_string_hex_decode): new function
12321         (test_hex_roundtrip): test code
12322
12323         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12324
12325         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12326
12327         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12328         the save-to-temp/rename trick to atomically write the new file
12329         (_dbus_string_parse_uint): new function
12330
12331 2003-02-22  Havoc Pennington  <hp@pobox.com>
12332
12333         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12334
12335 2003-02-22  Havoc Pennington  <hp@pobox.com>
12336
12337         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12338         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12339
12340         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12341
12342         * dbus/test/data/sha-1: add US government test suite for SHA-1
12343
12344 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12345
12346         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12347         Make string arrays NULL-terminated.
12348
12349         * dbus/dbus-memory.c: (dbus_free_string_array):
12350         * dbus/dbus-memory.h:
12351         New function for freeing NULL-terminated string arrays.
12352
12353         * dbus/dbus-message-builder.c: (append_quoted_string),
12354         (_dbus_message_data_load):
12355         Add support for array types.
12356
12357         * dbus/dbus-message.c: (check_message_handling):
12358         Add more types as test cases.
12359
12360         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12361         (_dbus_string_parse_double):
12362         Add the start offset to the end offset.
12363
12364         * test/data/valid-messages/lots-of-arguments.message:
12365         New test message with lots of arguments.
12366
12367 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12368
12369         * dbus/dbus-message.c: (dbus_message_append_nil),
12370         (dbus_message_append_int32), (dbus_message_append_uint32),
12371         (dbus_message_append_double), (dbus_message_append_string),
12372         (dbus_message_append_int32_array),
12373         (dbus_message_append_uint32_array),
12374         (dbus_message_append_double_array),
12375         (dbus_message_append_byte_array),
12376         (dbus_message_append_string_array):
12377         Fix all out-of-memory handling in these functions.
12378
12379 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12380
12381         * dbus/dbus-message.c: (dbus_message_append_nil):
12382         Fix a silly.
12383
12384 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12385
12386         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12387         (dbus_message_append_nil), (dbus_message_append_int32_array),
12388         (dbus_message_append_uint32_array),
12389         (dbus_message_append_double_array),
12390         (dbus_message_append_byte_array),
12391         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12392         (dbus_message_iter_get_int32_array),
12393         (dbus_message_iter_get_uint32_array),
12394         (dbus_message_iter_get_double_array),
12395         (dbus_message_iter_get_byte_array),
12396         (dbus_message_iter_get_string_array):
12397
12398         * dbus/dbus-message.h:
12399         Add functions for appending and getting arrays.
12400
12401 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12402
12403         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12404         element size at least 8 bytes, fixes mempool tests on
12405         64-bit machines.
12406
12407 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12408
12409         * dbus/dbus-transport-unix.c (unix_do_iteration):
12410         Unlock the connection mutex during a blocking select call.
12411         Add todo about how we need a way to wake up the select.
12412
12413         * dbus/dbus-connection-internal.h:
12414         * dbus/dbus-connection.c:
12415         Add _dbus_connection_lock and _dbus_connection_unlock.
12416
12417 2003-02-19  Havoc Pennington  <hp@pobox.com>
12418
12419         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12420         Doxyfile.in, not Doxyfile
12421
12422         * dbus/dbus-keyring.c: do some hacking on this
12423
12424         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12425
12426         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12427         dbus_error_init
12428         (dbus_set_error): remove dbus_error_init, check for message ==
12429         NULL *before* we sprintf into it, and add @todo about including
12430         system headers in this file
12431
12432         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12433
12434         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12435
12436         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12437         get various bits of user information based on either username
12438         or user ID
12439         (_dbus_homedir_from_username): new function
12440
12441 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12442
12443         * configure.in:
12444         Add check for nonposix getpwnam_r
12445
12446         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12447         Align the pool element size to a sizeof (void *) boundary.
12448
12449         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12450         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12451         General Solaris fixes.
12452
12453         * test/data/valid-messages/simplest-manual.message:
12454         Explicitly state that we want little-endian packing.
12455
12456 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12457
12458         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12459
12460         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12461         Added to create a transport connecting using a tcp/ip socket.
12462
12463         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12464         to a tcp socket at given host and port.
12465         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12466         hostname and port.
12467
12468         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12469
12470         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12471         Added to create a server listening on a TCP/IP socket.
12472
12473 2003-02-19  Havoc Pennington  <hp@pobox.com>
12474
12475         Throughout: mop up all the Doxygen warnings and undocumented
12476         stuff.
12477
12478         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12479         to search any paths.
12480
12481         * dbus/dbus-threads.c: move global mutex initializers to
12482         dbus-internals.h, multiple prototypes was confusing doxygen
12483         besides being kind of ugly
12484
12485         * Doxyfile (PREDEFINED): have Doxygen define
12486         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12487         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12488         (do not abuse the feature! it's for stuff like the autogenerated
12489         macros in dbus-md5.c, not just for things you don't feel like
12490         documenting...)
12491
12492 2003-02-18  Havoc Pennington  <hp@pobox.com>
12493
12494         * dbus/dbus-string.c (_dbus_string_zero): new function
12495
12496         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12497         wrap it in some dbus-friendly API
12498
12499         * dbus/dbus-types.h: add 16-bit types
12500
12501 2003-02-18  Joe Shaw  <joe@assbarn.com>
12502
12503         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12504         credentials from our currently running process.
12505         (get_word): Fix a buglet where we were copying the entire length
12506         instead of relative to our position.
12507
12508         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12509         keys on the stack... it's 640k of data.
12510
12511         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12512         read the credentials byte off the socket, even if we don't have
12513         SO_PEERCRED.
12514         (_dbus_poll): Implement poll() using select() for systems which
12515         don't have it.
12516
12517         * glib/test-dbus-glib.c (main): Print out an error if no
12518         parameters are given.
12519
12520         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12521         can fallback to a secondary auth mechanism if the first fails.
12522
12523 2003-02-18  Havoc Pennington  <hp@pobox.com>
12524
12525         * AUTHORS: add Alex
12526
12527 2003-02-17  Havoc Pennington  <hp@pobox.com>
12528
12529         * doc/dbus-specification.sgml: lots of cosmetic
12530         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12531         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12532         s/server/bus/ (except in authentication section). Add a section
12533         "Message Bus Message Routing"
12534
12535 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12536
12537         Release 0.4
12538
12539         * NEWS: Update
12540
12541 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12542
12543         * doc/dbus-specification.sgml:
12544         Specification updates.
12545
12546 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12547
12548         * bus/activation.c: (bus_activation_init), (child_setup),
12549         (bus_activation_activate_service):
12550         * bus/activation.h:
12551         * bus/main.c: (main):
12552         Set DBUS_ADDRESS environment variable.
12553
12554         * dbus/dbus-errors.c: (dbus_set_error):
12555         Don't use va_copy since that's a C99 feature.
12556
12557         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12558         (_dbus_spawn_async):
12559         * dbus/dbus-sysdeps.h:
12560         Add child_setup_func to _dbus_spawn_async.
12561
12562         * doc/dbus-specification.sgml:
12563         Update specification.
12564
12565         * test/spawn-test.c: (setup_func), (main):
12566         Fix test.
12567
12568 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12569
12570         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12571         Added todo.
12572
12573 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12574
12575         * doc/.cvsignore:
12576         * doc/Makefile.am:
12577         * doc/dbus-test-plan.sgml:
12578         Add test plan document.
12579
12580         * test/Makefile.am:
12581         Fix distcheck.
12582
12583 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12584
12585         * dbus/dbus-message.c: (decode_header_data),
12586         (_dbus_message_loader_return_buffer):
12587         Set the header padding amount when loading a message.
12588
12589 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12590
12591         * bus/dispatch.c: (send_one_message):
12592         Only send broadcast messages to registered connections.
12593
12594         * dbus/dbus-message.c: (dbus_message_name_is):
12595         * dbus/dbus-message.h:
12596         New convenience function.
12597
12598         * dbus/dbus-transport-debug.c: (do_reading):
12599         Only dispatch one message per run.
12600
12601         * test/Makefile.am:
12602         * test/bus-test.c: (new_connection_callback), (die),
12603         (test_hello_client1_handler), (test_hello_client2_handler),
12604         (test_hello_replies), (main):
12605
12606         * test/bus-test-loop.[ch]:
12607         Add these.
12608
12609 2003-02-16  Havoc Pennington  <hp@pobox.com>
12610
12611         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12612         backward conditional
12613
12614 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12615
12616         * dbus/dbus-connection.c:
12617         Implement sent_message_with_reply. (with_reply_and block is still
12618         busted).
12619         Made dispatch_message not lose message if OOM.
12620
12621         * dbus/dbus-errors.h:
12622         Add NoReply error (for reply timeouts).
12623
12624 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12625
12626         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12627         Actually free keys and values when destroying hashtable.
12628
12629 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12630
12631         * dbus/dbus-auth.c: (client_try_next_mechanism):
12632         Plug a leak.
12633
12634         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12635         Return TRUE if there's no thread implementation around.
12636
12637         * glib/dbus-gmain.c: (free_source),
12638         (dbus_connection_hookup_with_g_main):
12639         Make sure to remove the GSource when the connection is finalized.
12640
12641 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12642
12643         * bus/dispatch.c: (bus_dispatch_message_handler):
12644         * dbus/dbus-errors.h:
12645         Return an error if someone tries to send a message to a service
12646         that doesn't exist.
12647
12648 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12649
12650         * bus/activation.c: (load_directory), (bus_activation_init),
12651         (bus_activation_activate_service):
12652         * bus/activation.h:
12653         * bus/driver.c:
12654         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12655         More work on the activation handling.
12656
12657         * dbus/dbus-errors.h:
12658         Add some error messages
12659
12660         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12661         * dbus/dbus-message.h:
12662         New function that creates an error message.
12663
12664         * dbus/dbus-protocol.h:
12665         Add ACTIVATE_SERVER message.
12666
12667         * dbus/dbus-server-unix.c: (unix_handle_watch),
12668         (_dbus_server_new_for_domain_socket):
12669         Call _dbus_fd_set_close_on_exec.
12670
12671         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12672         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12673         (_dbus_fd_set_close_on_exec):
12674         * dbus/dbus-sysdeps.h:
12675         Add _dbus_fd_set_close_on exec function. Also add function that checks
12676         that all open fds are set to close-on-exec and warns otherwise.
12677
12678         * dbus/dbus-transport-unix.c:
12679         (_dbus_transport_new_for_domain_socket):
12680         Call _dbus_fd_set_close_on_exec.
12681
12682 2003-02-16  Havoc Pennington  <hp@pobox.com>
12683
12684         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12685         allow people to avoid setting SIGPIPE to SIG_IGN
12686         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12687         we've been asked not to
12688
12689 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12690
12691         * dbus/dbus-list.c: (_dbus_list_append_link),
12692         (_dbus_list_prepend_link):
12693         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12694         (dbus_realloc):
12695         Warning fixes.
12696
12697 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12698
12699         * bus/Makefile.am:
12700         * bus/activation.c: (bus_activation_entry_free),
12701         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12702         * bus/activation.h:
12703         * bus/main.c: (main):
12704         Add simple activation support, doesn't work yet though.
12705
12706 2003-02-15   Zack Rusin  <zack@kde.org>
12707
12708         * qt/dbus-qthread.cpp:  small casting fix
12709
12710 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12711
12712         * dbus/dbus-errors.c: (dbus_set_error):
12713         * dbus/dbus-errors.h:
12714         Add a few errors and make dbus_set_error void.
12715
12716         * dbus/dbus-sysdeps.c:
12717         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12718         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12719         * dbus/dbus-sysdeps.h:
12720         Add _dbus_spawn_async.
12721
12722         * test/spawn-test.c: (main):
12723         Test for _dbus_spawn_async.
12724
12725 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12726
12727         * dbus/dbus-internals.h:
12728         Fix build without tests.
12729
12730         * dbus/dbus-list.c: (alloc_link):
12731         Fix a segfault when a malloc fails.
12732
12733         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12734         (dbus_malloc0), (dbus_realloc):
12735         Add support for malloc debugging.
12736
12737 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12738
12739         * dbus/dbus-threads.c:
12740         * dbus/dbus-threads.h:
12741         Add condvars. Remove static mutext from API.
12742         Implement static mutexes by initializing them from threads_init.
12743
12744         * glib/dbus-gthread.c:
12745         * qt/dbus-qthread.cpp:
12746         Update with the thread api changes.
12747
12748
12749         * dbus/dbus-list.c:
12750         * dbus/dbus-list.h:
12751         Turn StaticMutex into normal mutex + init function.
12752         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12753         _dbus_list_append_link, _dbus_list_prepend_link
12754
12755
12756         * dbus/dbus-sysdeps.c:
12757         * dbus/dbus-sysdeps.h:
12758         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12759         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12760
12761         * dbus/dbus-protocol.h:
12762         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12763
12764         * dbus/dbus-message.c:
12765         Make ref/unref atomic.
12766         Fix some docs.
12767
12768         * dbus/dbus-connection-internal.h:
12769         * dbus/dbus-connection.c:
12770         * dbus/dbus-connection.h:
12771         Make threadsafe.
12772         Change _peek to _borrow,_return & _steal_borrowed.
12773         Change disconnect callback to event.
12774         Make dbus_connection_dispatch_messages reentrant.
12775
12776         * dbus/dbus-transport.c:
12777         Don't ref the connection on calls to the transport
12778         implementation.
12779
12780         * dbus/dbus-message-handler.c:
12781         Make threadsafe.
12782
12783         * glib/dbus-gmain.c:
12784         Don't use peek_message anymore
12785
12786         * test/Makefile.am:
12787         * test/debug-thread.c:
12788         * test/debug-thread.h:
12789         Simple thread implementation that asserts() on deadlocks in
12790         single-threaded code.
12791
12792         * test/bus-test.c:
12793         (main) Call debug_threads_init.
12794
12795         * test/watch.c:
12796         Use disconnect message instead of disconnect callback.
12797
12798         * bus/connection.c:
12799         * bus/connection.h:
12800         Don't call dbus_connection_set_disconnect_function. Instead export
12801         bus_connection_disconnect.
12802
12803         * bus/dispatch.c:
12804         Call bus_connection_disconnect when we get a disconnected message.
12805
12806 2003-02-15  Havoc Pennington  <hp@pobox.com>
12807
12808         * dbus/dbus-message.c (dbus_message_new): fool around with the
12809         docs
12810
12811 2003-02-14  Havoc Pennington  <hp@pobox.com>
12812
12813         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12814
12815         * dbus/dbus-memory.c: fail if the debug functions indicate we
12816         should
12817
12818         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12819         (_dbus_decrement_fail_alloc_counter): debug functions to
12820         simulate memory allocation failures
12821
12822 2003-02-14  Havoc Pennington  <hp@pobox.com>
12823
12824         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12825         to DBusError
12826
12827 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12828
12829         * bus/driver.c: (bus_driver_handle_hello):
12830         * bus/driver.h:
12831         * bus/services.c: (bus_service_lookup):
12832         Reorder message sending so we get a more sane order.
12833
12834         * test/bus-test.c: (message_handler):
12835         Fix tyop.
12836
12837 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12838
12839         * bus/driver.c: (bus_driver_send_service_deleted),
12840         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12841         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12842         (bus_driver_send_welcome_message),
12843         (bus_driver_handle_list_services),
12844         (bus_driver_handle_acquire_service),
12845         (bus_driver_handle_service_exists):
12846         * dbus/dbus-bus.c: (dbus_bus_register_client),
12847         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12848         * dbus/dbus-errors.c: (dbus_result_to_string):
12849         * dbus/dbus-errors.h:
12850         * dbus/dbus-message.c: (dbus_message_append_args),
12851         (dbus_message_append_args_valist), (dbus_message_get_args),
12852         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12853         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12854         (dbus_message_iter_get_byte_array),
12855         (dbus_message_iter_get_string_array), (message_iter_test),
12856         (check_message_handling), (_dbus_message_test):
12857         * dbus/dbus-message.h:
12858         * test/bus-test.c: (main):
12859         Change fields to arguments in messages, so that they won't be
12860         confused with header fields.
12861
12862         * glib/test-dbus-glib.c: (main):
12863         Remove append_fields from hello message.
12864
12865 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12866
12867         * dbus/dbus-errors.c:
12868         * dbus/dbus-message.c:
12869         * dbus/dbus-string.c:
12870         Documentation fixes.
12871
12872 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12873
12874         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12875         (remove_timeout):
12876         Implement support for timeouts in dbus-glib.
12877
12878 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12879
12880         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12881         * dbus/dbus-message.c: (process_test_subdir):
12882         * test/break-loader.c: (find_breaks_based_on):
12883         Plug some memory leaks.
12884
12885 2003-02-13  Richard Hult  <rhult@codefactory.se>
12886
12887         * bus/main.c: Fix build.
12888
12889         * dbus/dbus-errors.h:
12890         * dbus/dbus-errors.c: Fix copyright for Anders.
12891
12892 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12893
12894         * bus/Makefile.am:
12895         Add utils.[ch]
12896
12897         * bus/connection.c: (bus_connection_foreach):
12898         Fix a warning.
12899
12900         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12901         (unescape_string), (new_section), (parse_section_start),
12902         (parse_key_value), (report_error), (bus_desktop_file_load),
12903         (bus_desktop_file_get_string):
12904         * bus/desktop-file.h:
12905         Use DBusError for error reporting.
12906
12907         * bus/dispatch.c: (send_one_message),
12908         (bus_dispatch_message_handler):
12909         * bus/driver.c: (bus_driver_send_service_deleted),
12910         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12911         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12912         (bus_driver_send_welcome_message),
12913         (bus_driver_handle_list_services),
12914         (bus_driver_handle_acquire_service),
12915         (bus_driver_handle_service_exists):
12916         * bus/loop.c: (bus_loop_run):
12917         * bus/main.c:
12918         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12919
12920         * bus/utils.c: (bus_wait_for_memory):
12921         * bus/utils.h:
12922         New files with general utility functions.
12923
12924         * dbus/dbus-internals.h:
12925         Remove _DBUS_HANDLE_OOM.
12926
12927 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12928
12929         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12930         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12931         * dbus/dbus-errors.h:
12932         Add DBusError structure.
12933
12934 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12935
12936         * test/data/valid-messages/standard-acquire-service.message:
12937         * test/data/valid-messages/standard-hello.message:
12938         * test/data/valid-messages/standard-list-services.message:
12939         * test/data/valid-messages/standard-service-exists.message:
12940         Add some standard messages.
12941
12942 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12943
12944         * bus/driver.c: (bus_driver_send_welcome_message),
12945         (bus_driver_handle_list_services),
12946         (bus_driver_handle_acquire_service),
12947         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12948         Update for API changes in libdbus.
12949
12950         * dbus/dbus-message.c: (dbus_message_new_reply):
12951         * dbus/dbus-message.h:
12952         Remove the name argument. The spec states that replies shouldn't
12953         have a name.
12954
12955 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12956
12957         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12958         (report_error), (bus_desktop_file_load), (lookup_section),
12959         (lookup_line), (bus_desktop_file_get_raw),
12960         (bus_desktop_file_get_string):
12961         * bus/desktop-file.h:
12962         Some fixes, and new functions for getting a key value from a section.
12963
12964 2003-02-13  Havoc Pennington  <hp@pobox.com>
12965
12966         * test/data/auth/fail-after-n-attempts.auth-script: new test
12967
12968         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12969         reject the client.
12970
12971 2003-02-13  Havoc Pennington  <hp@pobox.com>
12972
12973         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12974         dbus_credentials_match were backward
12975
12976         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12977         NO_CREDENTIALS and ROOT_CREDENTIALS
12978
12979         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12980         into here. Never process more commands after we've reached an
12981         end state; store further data as unused bytes.
12982
12983         * test/data/auth/*: add more auth tests
12984
12985         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12986         command to match exact string and EXPECT_UNUSED to match unused
12987         bytes
12988
12989         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12990
12991 2003-02-12  Havoc Pennington  <hp@pobox.com>
12992
12993         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12994         \r off of popped lines
12995
12996         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12997         scripts
12998
12999         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13000         SEND, append \r\n
13001
13002 2003-02-12  Havoc Pennington  <hp@pobox.com>
13003
13004         * dbus/Makefile.am: remove break-loader from the build, since it
13005         moved.
13006
13007         * configure.in: add --enable-gcov to turn on coverage profiling
13008         flags and disable optimization
13009
13010 2003-02-10  Havoc Pennington  <hp@pobox.com>
13011
13012         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13013         initial cut at test framework for DBusAuth from laptop.
13014         Doesn't quite work yet but it compiles and I need to get
13015         it off the 266mhz laptop. ;-)
13016
13017         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13018         fix a memleak in error case
13019
13020 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13021
13022         * bus/Makefile.am:
13023         * bus/desktop-file.c:
13024         * bus/desktop-file.h:
13025         Add a desktop file parser.
13026
13027 2003-02-11  Zack Rusin  <zack@kde.org>
13028
13029         * qt/message.[h|cpp]: sample implementation
13030         of the KDE wrapper for DBusMessage
13031
13032 2003-02-09  Zack Rusin  <zack@kde.org>
13033
13034         * test/bus-test.c: make_it_compile
13035         * doc/dbus-specification.sgml: minimal semantic fix
13036
13037 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13038
13039         Release 0.3
13040
13041         * NEWS: Update
13042
13043 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13044
13045         * dbus/Makefile.am:
13046         * dbus/dbus-break-loader.c:
13047         * test/Makefile.am:
13048         * test/break-loader.c:
13049         Move dbus-break-loader to test/ and rename it to break-loader.
13050
13051 2003-02-02  Havoc Pennington  <hp@pobox.com>
13052
13053         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13054         for code to manage cookies in your home directory
13055
13056         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13057
13058         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13059         to authenticate, then disconnect the client.
13060
13061 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13062
13063         * dbus/dbus-message.c (dbus_message_append_fields):
13064         Correct docs.
13065
13066 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13067
13068         * doc/dbus-specification.sgml:
13069         Update address format section.
13070
13071 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13072
13073         * test/Makefile.am:
13074         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13075         (message_handler), (new_connection_callback), (loop_quit),
13076         (loop_run), (main):
13077         Add bus test.
13078
13079 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13080
13081         * bus/driver.c: (bus_driver_handle_service_exists):
13082         Simplify the code a bit.
13083
13084         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13085         Fix a silly.
13086
13087 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13088
13089         * bus/Makefile.am:
13090         Add libdbus-daemon.la and link to it.
13091
13092 2003-02-01  James Willcox  <jwillcox@gnome.org>
13093
13094         * bus/driver.c: (bus_driver_handle_own_service):
13095         Actually include the service reply code in the message.
13096
13097 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13098
13099         * bus/driver.c: (bus_driver_handle_service_exists):
13100         Don't unref the incoming message.
13101
13102 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13103
13104         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13105
13106 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13107
13108         * dbus/dbus-server.c: (dbus_server_listen):
13109         * dbus/dbus-transport.c: (_dbus_transport_open):
13110         ifdef out the calls to the debug transport and server.
13111
13112 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13113
13114         * dbus/dbus-watch.c (dbus_watch_get_flags):
13115         Add note in the docs that ERROR or HANGUP won't be returned
13116         and are assumed always on.
13117
13118         * glib/dbus-gmain.c (add_watch):
13119         Always add IO_ERR | IO_HUP
13120
13121         * dbus/dbus-message.h:
13122         Add semicolon after dbus_message_iter_get_string_array().
13123         Makes qt code build again
13124
13125 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13126
13127         * bus/driver.c: (create_unique_client_name),
13128         (bus_driver_handle_hello):
13129         Don't take a name, just use a numeric id to identify
13130         each client.
13131
13132         * dbus/Makefile.am:
13133         * dbus/dbus-bus.c: (dbus_bus_register_client),
13134         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13135         * dbus/dbus-bus.h:
13136         Add new convenience functions for communicating with the bus.
13137
13138         * dbus/dbus-message.h:
13139
13140         * dbus/dbus-protocol.h:
13141         Fix a typo.
13142
13143 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13144
13145         * dbus/dbus-message.c (dbus_message_append_fields):
13146         Add some more doc comments.
13147
13148 2003-02-01  Havoc Pennington  <hp@pobox.com>
13149
13150         * dbus/dbus-break-loader.c (randomly_modify_length): change
13151         a 4-byte value in the message as if it were a length
13152
13153         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13154         execute bit on saved files
13155
13156 2003-02-01  Havoc Pennington  <hp@pobox.com>
13157
13158         * dbus/dbus-break-loader.c (main): new program to find messages
13159         that break the loader.
13160
13161         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13162         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13163
13164         * dbus/dbus-string.c (_dbus_string_set_byte): new
13165
13166 2003-01-31  Havoc Pennington  <hp@pobox.com>
13167
13168         * dbus/dbus-message.c: refactor the test code to be more general,
13169         in preparation for writing a "randomly permute test cases to
13170         try to break the loader" program.
13171
13172 2003-01-31  Havoc Pennington  <hp@pobox.com>
13173
13174         * doc/dbus-specification.sgml: work on the specification
13175
13176         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13177         the protocol version of the message.
13178
13179         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13180         no longer specifies that.
13181         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13182         1/2/3/4)
13183
13184         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13185         "break" for DBUS_TYPE_NIL, remove @todo
13186
13187 2003-01-31  Havoc Pennington  <hp@pobox.com>
13188
13189         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13190         just set_is_error/get_is_error as this is a commonly-used
13191         function, and write docs.
13192
13193 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13194
13195         * dbus/dbus-address.c: (dbus_address_entry_free):
13196         Free key and value lists.
13197
13198         * dbus/dbus-internals.c: (_dbus_type_to_string):
13199         Add the types we didn't have.
13200
13201         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13202         (_dbus_marshal_validate_arg):
13203         Add NIL types.
13204
13205         * dbus/dbus-message.c: (dbus_message_set_sender):
13206         Remove todo about being able to set sender to NULL.
13207
13208         (dbus_message_set_is_error_reply),
13209         (dbus_message_get_is_error_reply):
13210         * dbus/dbus-message.h:
13211         New functions.
13212
13213         * dbus/dbus-protocol.h:
13214         Add error reply flag.
13215
13216         * test/data/valid-messages/opposite-endian.message:
13217         Add NIL type to test.
13218
13219 2003-01-31  Havoc Pennington  <hp@pobox.com>
13220
13221         * doc/dbus-specification.sgml: fully specify the header.  Add
13222         flags and major protocol version, and change header/body len to
13223         unsigned.
13224
13225         * dbus/dbus-message-builder.c (append_saved_length): append length
13226         as uint32
13227
13228         * dbus/dbus-message.c (dbus_message_create_header): change header
13229         length and body length to unsigned. Add the new fields from the
13230         spec
13231         (_dbus_message_loader_return_buffer): unsigned header/body len
13232
13233 2003-01-30  Havoc Pennington  <hp@pobox.com>
13234
13235         * dbus/dbus-auth.c: rework to use only REJECTED, no
13236         MECHANISMS
13237
13238         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13239         use REJECTED, suggested by Mark McLoughlin
13240
13241 2003-01-30  Havoc Pennington  <hp@pobox.com>
13242
13243         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13244         a better way to report errors here. e.g.  "unix address lacks
13245         path" or something. also "no such file" when the path doesn't
13246         exist, etc.
13247
13248         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13249         leaking list nodes
13250         (dbus_parse_address): add @todo about documenting address format,
13251         and allowing , and ; to be escaped
13252
13253 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13254
13255         * dbus/Makefile.am:
13256         Add dbus-address.[ch]
13257
13258         * dbus/dbus-address.c: (dbus_address_entry_free),
13259         (dbus_address_entries_free), (create_entry),
13260         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13261         (dbus_parse_address), (_dbus_address_test):
13262         * dbus/dbus-address.h:
13263         New files for dealing with address parsing.
13264
13265         * dbus/dbus-connection.c:
13266         Document timeout functions.
13267
13268         * dbus/dbus-message.c:
13269         Document dbus_message_new_from_message.
13270
13271         * dbus/dbus-server-debug.c:
13272         Document.
13273
13274         * dbus/dbus-server.c: (dbus_server_listen):
13275         Parse address and use correct server implementation.
13276
13277         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13278         * dbus/dbus-string.h:
13279         New function with test.
13280
13281         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13282         * dbus/dbus-test.h:
13283         Add address tests.
13284
13285         * dbus/dbus-transport-debug.c:
13286         Document.
13287
13288         * dbus/dbus-transport.c: (_dbus_transport_open):
13289         Parse address and use correct transport implementation.
13290
13291 2003-01-30  Havoc Pennington  <hp@pobox.com>
13292
13293         * dbus/dbus-message.c: use message->byte_order instead of
13294         DBUS_COMPILER_BYTE_ORDER throughout.
13295         (dbus_message_create_header): pad header to align the
13296         start of the body of the message to 8-byte boundary
13297
13298         * dbus/dbus-marshal.h: make all the demarshalers take const
13299         DBusString arguments.
13300
13301         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13302         validate message args here, so we don't have to do slow validation
13303         later, and so we catch bad messages as they are incoming. Also add
13304         better checks on header_len and body_len. Also fill in
13305         message->byte_order
13306
13307         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13308         implemented properly)
13309         (_dbus_string_validate_nul): new function to check all-nul
13310
13311         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13312         get_arg_end_pos and remove all validation
13313         (_dbus_marshal_validate_arg): actually do validation here.
13314
13315 2003-01-29  Havoc Pennington  <hp@pobox.com>
13316
13317         * dbus/dbus-message.c (check_message_handling): fix assertion
13318         failure on set_client_serial
13319
13320 2003-01-28  Havoc Pennington  <hp@pobox.com>
13321
13322         * dbus/dbus-server-debug.c: Add doc section comments
13323
13324         * dbus/dbus-transport-debug.c: add doc section comments
13325
13326 2003-01-28  Havoc Pennington  <hp@redhat.com>
13327
13328         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13329         the reverse order from how I had it
13330         (_dbus_string_base64_encode): reverse encoding order. I was
13331         basically byteswapping everything during encoding.
13332
13333 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13334
13335         * dbus/dbus-connection-internal.h:
13336         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13337         (_dbus_connection_remove_timeout):
13338         Add functions for adding and removing timeouts.
13339
13340         * dbus/dbus-message.c: (dbus_message_new_from_message):
13341         Add new function that takes a message and creates an exact
13342         copy of it, but with the refcount set to 1.
13343         (check_message_handling):
13344         Fix build error.
13345
13346         * dbus/dbus-server-protected.h:
13347         * dbus/dbus-server.c: (_dbus_server_init_base),
13348         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13349         (dbus_server_set_timeout_functions):
13350         (_dbus_server_remove_timeout):
13351         New functions so that a server can add and remove timeouts.
13352
13353         (dbus_server_listen):
13354         Add commented out call to dbus_server_debug_new.
13355
13356         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13357         Actually set the handler, doh.
13358
13359         * dbus/dbus-transport.c: (_dbus_transport_open):
13360         Add commented out call to dbus_transport_debug_client_new.
13361
13362         * dbus/Makefile.am:
13363         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13364
13365 2003-01-28  Havoc Pennington  <hp@pobox.com>
13366
13367         * dbus/dbus-message.c (check_message_handling): function to check
13368         on the loaded message, iterates over it etc.
13369
13370 2003-01-28  Havoc Pennington  <hp@pobox.com>
13371
13372         * test/Makefile.am (dist-hook): fix make distdir
13373
13374         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13375
13376 2003-01-27  Havoc Pennington  <hp@pobox.com>
13377
13378         * dbus/dbus-mempool.c (time_for_size): replace printf with
13379         _dbus_verbose
13380
13381         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13382         empty lines; fix the SAVE_LENGTH stuff to be
13383         START_LENGTH/END_LENGTH so it actually works; couple other
13384         bugfixes
13385
13386         * test/Makefile.am (dist-hook): add dist-hook for .message files
13387
13388         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13389         can be constant or locked.
13390         (_dbus_string_free): allow freeing a const string as
13391         documented/intended
13392
13393         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13394
13395         * dbus/dbus-test-main.c (main): take an argument which is the
13396         directory containing test data
13397
13398         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13399         argument to this and load all the messages in test/data/
13400         checking that they can be loaded or not loaded as appropriate.
13401
13402 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13403
13404         * bus/dispatch.c: (bus_dispatch_message_handler):
13405         Dispatch messages sent to services.
13406
13407         * bus/driver.c: (bus_driver_send_service_deleted),
13408         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13409         (bus_driver_send_service_acquired):
13410         Add helper functions for sending service related messages.
13411
13412         (bus_driver_send_welcome_message):
13413         Send HELLO_REPLY instead of WELCOME.
13414
13415         (bus_driver_handle_list_services):
13416         Send LIST_SERVICES_REPLY instead of SERVICES.
13417
13418         (bus_driver_handle_own_service),
13419         (bus_driver_handle_service_exists):
13420         New message handlers.
13421
13422         (bus_driver_handle_message):
13423         Invoke new message handlers.
13424
13425         (bus_driver_remove_connection):
13426         Don't remove any services here since that's done automatically
13427         by bus_service_remove_owner now.
13428
13429         * bus/driver.h:
13430         New function signatures.
13431
13432         * bus/services.c: (bus_service_add_owner):
13433         Send ServiceAcquired message if we're the only primary owner.
13434
13435         (bus_service_remove_owner):
13436         Send ServiceAcquired/ServiceLost messages.
13437
13438         (bus_service_set_prohibit_replacement),
13439         (bus_service_get_prohibit_replacement):
13440         Functions for setting prohibit replacement.
13441
13442         (bus_service_has_owner):
13443         New function that checks if a connection is in the owner queue of
13444         a certain service.
13445
13446         * bus/services.h:
13447         Add new function signatures.
13448
13449         * dbus/dbus-list.c: (_dbus_list_test):
13450         Add tests for _dbus_list_remove_last and traversing the list backwards.
13451
13452         * dbus/dbus-list.h:
13453         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13454         go any further, so return NULL then.
13455
13456         * dbus/dbus-protocol.h:
13457         Add new messages, service flags and service replies.
13458
13459 2003-01-26  Havoc Pennington  <hp@pobox.com>
13460
13461         * dbus/dbus-message-builder.c: implement, completely untested.
13462
13463         * test/data/*: add data to be used in testing.
13464         ".message" files are our simple loadable text format.
13465         ".message-raw" will be binary dumps of messages.
13466
13467         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13468
13469 2003-01-26  Havoc Pennington  <hp@pobox.com>
13470
13471         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13472
13473         * dbus/dbus-errors.c (dbus_result_to_string): add
13474         file errors
13475
13476         * dbus/dbus-message-builder.c: new file, will contain code to load
13477         up messages from files. Not implemented yet.
13478
13479 2003-01-26  Havoc Pennington  <hp@pobox.com>
13480
13481         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13482         the sender by setting to NULL
13483
13484 2003-01-26  Havoc Pennington  <hp@pobox.com>
13485
13486         The unit tests pass, but otherwise untested.  If it breaks, the
13487         tests should have been better. ;-)
13488
13489         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13490         the connection.
13491
13492         * dbus/dbus-message.c: redo everything so we maintain
13493         message->header as the only copy of the various fields.
13494         This avoids the possibility of out-of-memory in some cases,
13495         for example dbus_message_lock() can't run out of memory anymore,
13496         and avoids extra copying. Figured I may as well go ahead and do
13497         this since it was busted for dbus_message_lock to not return
13498         failure on OOM, and dbus_message_write_header was totally
13499         unchecked for OOM. Also fixed some random other bugs.
13500
13501         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13502         that strings are nul-terminated. Also, end_pos can be equal
13503         to string length just not greater than, I think.
13504         (_dbus_marshal_set_int32): new function
13505         (_dbus_marshal_set_uint32): new function
13506         (_dbus_marshal_set_string): new function
13507
13508         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13509         a warning, init timeout_list to NULL
13510         (dbus_connection_send_message): don't use uninitialized variable
13511         "serial"
13512
13513         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13514
13515 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13516
13517         * bus/driver.c: (bus_driver_handle_hello),
13518         (bus_driver_send_welcome_message):
13519         Plug leaks
13520
13521 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13522
13523         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13524         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13525         (dbus_connection_unref):
13526         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13527         * dbus/dbus-message.c: (dbus_message_unref),
13528         Plug memory leaks.
13529
13530         (dbus_message_get_fields):
13531         Remove debugging printout.
13532
13533         (_dbus_message_loader_return_buffer):
13534         Don't store the header string.
13535
13536         (_dbus_message_test):
13537         Plug leaks.
13538
13539 2003-01-26  Richard Hult  <rhult@codefactory.se>
13540
13541         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13542         the file descriptor list, since it can change under us.
13543
13544 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13545
13546         * glib/dbus-gmain.c: (dbus_connection_prepare),
13547         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13548         (remove_watch), (dbus_connection_hookup_with_g_main):
13549         Rewrite the glib handling to use its own GSource instead of a
13550         GIOChannel so we can catch messages put in the queue while waiting
13551         for a reply.
13552
13553 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13554
13555         * bus/Makefile.am:
13556         * bus/connection.c: (connection_disconnect_handler),
13557         (connection_watch_callback), (bus_connection_setup):
13558         * bus/dispatch.c: (send_one_message),
13559         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13560         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13561         * bus/dispatch.h:
13562         * bus/driver.c: (bus_driver_send_service_deleted),
13563         (bus_driver_send_service_created), (bus_driver_handle_hello),
13564         (bus_driver_send_welcome_message),
13565         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13566         (bus_driver_handle_message):
13567         * bus/driver.h:
13568         Refactor code, put the message dispatching in its own file. Use
13569         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13570         is disconnected.
13571
13572 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13573
13574         * dbus/dbus-internals.h:
13575         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13576
13577         * dbus/dbus-message.c: (dbus_message_get_sender):
13578         * dbus/dbus-message.h:
13579         Implement dbus_message_get_sender.
13580
13581         * dbus/dbus-protocol.h:
13582         Add message and service defines.
13583
13584 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13585
13586         * dbus/dbus-connection.c: (dbus_connection_send_message):
13587         * dbus/dbus-message-internal.h:
13588         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13589         (dbus_message_write_header):
13590         Remove _dbus_messag_unlock and don't set the client serial on a
13591         message if one already exists.
13592
13593 2003-01-24  Havoc Pennington  <hp@pobox.com>
13594
13595         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13596         list_pool
13597
13598         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13599         on OOM
13600
13601 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13602
13603         * dbus/dbus-list.c: (alloc_link), (free_link):
13604         Use a memory pool for the links.
13605
13606 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13607
13608         * bus/connection.c: (bus_connection_foreach):
13609         * bus/connection.h:
13610         Add new bus_connection_foreach function.
13611
13612         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13613         Add function that broadcasts a message to all clients.
13614
13615         (bus_driver_send_service_created), (bus_driver_handle_hello),
13616         (bus_driver_send_welcome_message),
13617         (bus_driver_handle_list_services), (bus_driver_message_handler):
13618         Implement functions that take care of listing services, and notifying
13619         clients when new services are created.
13620
13621         * bus/services.c: (bus_services_list):
13622         * bus/services.h:
13623         Add new function that returns an array of strings with the currently
13624         registered services.
13625
13626         * glib/dbus-glib.h:
13627         * glib/dbus-gmain.c:
13628         Update copyright year.
13629
13630 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13631
13632         * dbus/dbus-connection.c: (dbus_connection_send_message):
13633         Unlock the message in case it was sent earlier.
13634
13635         (dbus_connection_send_message_with_reply_and_block):
13636         Remove the reply message from the list.
13637
13638         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13639         Set array_len and new_pos correctly.
13640
13641         (_dbus_marshal_test):
13642         Remove debug output.
13643
13644         * dbus/dbus-message-internal.h:
13645         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13646         New function that returns the reply serial.
13647
13648         (_dbus_message_unlock):
13649         New function that unlocks a message and resets its header.
13650
13651         (dbus_message_append_string_array),
13652         (dbus_message_get_fields_valist),
13653         (dbus_message_iter_get_field_type),
13654         (dbus_message_iter_get_string_array),
13655         (dbus_message_get_fields),
13656         (dbus_message_append_fields_valist):
13657         Handle string arrays.
13658
13659         (dbus_message_set_sender):
13660         Make this function public since the bus daemon needs it.
13661
13662         (decode_header_data):
13663         Set the reply serial to -1 initially.
13664
13665         * dbus/dbus-message.h:
13666         Add dbus_message_set_sender.
13667
13668 2003-01-24  Havoc Pennington  <hp@pobox.com>
13669
13670         * doc/dbus-specification.sgml: add some stuff
13671
13672 2003-01-22  Havoc Pennington  <hp@pobox.com>
13673
13674         * doc/dbus-specification.sgml: Start to document the protocol.
13675
13676 2003-01-22  Havoc Pennington  <hp@pobox.com>
13677
13678         * dbus/dbus-connection.c
13679         (dbus_connection_send_message_with_reply_and_block): add some @todo
13680
13681         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13682
13683 2003-01-21  Havoc Pennington  <hp@pobox.com>
13684
13685         (patch untested because can't compile)
13686
13687         * bus/driver.c (create_unique_client_name): make this function
13688         never recycle client names. Also, caller should initialize
13689         the DBusString.
13690
13691         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13692
13693 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13694
13695         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13696         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13697         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13698         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13699         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13700         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13701         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13702         * dbus/dbus-marshal.h:
13703         * dbus/dbus-protocol.h:
13704         Add support for marshalling and demarshalling integer, double
13705         and string arrays.
13706
13707 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13708
13709         * bus/Makefile.am:
13710         Add driver.[ch]
13711
13712         * bus/connection.c: (connection_disconnect_handler):
13713         Remove the connection from the bus driver's list.
13714
13715         (connection_watch_callback): Dispatch messages.
13716
13717         (free_connection_data): Free connection name.
13718
13719         (bus_connection_setup): Add connection to the bus driver's list.
13720         (bus_connection_remove_owned_service):
13721         (bus_connection_set_name), (bus_connection_get_name):
13722         Add functions for setting and getting the connection's name.
13723
13724         * bus/connection.h:
13725         Add function headers.
13726
13727         * bus/driver.c: (create_unique_client_name),
13728         (bus_driver_handle_hello_message),
13729         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13730         (bus_driver_add_connection), (bus_driver_remove_connection):
13731         * bus/driver.h:
13732         * bus/main.c:
13733         * bus/services.c: (bus_service_free):
13734         * bus/services.h:
13735         New file that handles communication and registreation with the bus
13736         itself.
13737
13738 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13739
13740         * dbus/dbus-connection.c: (dbus_connection_send_message):
13741         Add a new client_serial parameter.
13742
13743         (dbus_connection_send_message_with_reply):
13744         Remove a @todo since we've implemented the blocking function.
13745
13746         (dbus_connection_send_message_with_reply_and_block):
13747         New function that sends a message and waits for a reply and
13748         then returns the reply.
13749
13750         * dbus/dbus-connection.h:
13751         Add new functions.
13752
13753         * dbus/dbus-errors.c: (dbus_result_to_string):
13754         * dbus/dbus-errors.h:
13755         Add new DBUS_RESULT.
13756
13757         * dbus/dbus-message-internal.h:
13758         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13759         (_dbus_message_set_sender), (dbus_message_write_header),
13760         (dbus_message_new_reply), (decode_header_data),
13761         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13762         * dbus/dbus-message.h:
13763         Add new functions that set the reply serial and sender.
13764         Also marshal and demarshal them correctly and add test.
13765
13766         * dbus/dbus-protocol.h:
13767         Add new DBUS_MESSAGE_TYPE_SENDER.
13768
13769         * glib/dbus-glib.h:
13770         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13771         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13772         (dbus_connection_hookup_with_g_main):
13773         * glib/test-dbus-glib.c: (main):
13774         Rewrite to use GIOChannel and remove the GSource crack.
13775
13776         * test/echo-client.c: (main):
13777         * test/watch.c: (check_messages):
13778         Update for changed APIs
13779
13780 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13781
13782         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13783
13784         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13785         Create a DBusTimeoutList.
13786         (dbus_connection_set_timeout_functions): Add new function to
13787         set timeout callbacks
13788
13789         * dbus/dbus-connection.h: Add public DBusTimeout API.
13790
13791         * dbus/dbus-message.c: (dbus_message_get_service):
13792         * dbus/dbus-message.h:  New function.
13793
13794         * dbus/dbus-server.c: Fix small doc typo.
13795
13796         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13797
13798 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13799
13800         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13801         of the string, just as long as specified.
13802
13803 2003-01-19  Havoc Pennington  <hp@pobox.com>
13804
13805         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13806         new function
13807
13808         * dbus/dbus-server.c (dbus_server_set_max_connections)
13809         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13810         keep track of current number of connections, and add API for
13811         setting a max (but haven't implemented enforcing the max yet)
13812
13813 2003-01-18  Havoc Pennington  <hp@pobox.com>
13814
13815         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13816         reading/writing if read_watch != NULL or write_watch != NULL.
13817
13818         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13819         the message loader code to actually load message->header and
13820         message->body into the newly-created message.
13821
13822         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13823         in OOM case
13824
13825         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13826         (dbus_connection_get_max_message_size)
13827         (dbus_connection_set_max_live_messages_size)
13828         (dbus_connection_get_max_live_messages_size): implement some
13829         resource limitation functions
13830
13831         * dbus/dbus-resources.c: new file implementing some of the
13832         resource limits stuff
13833
13834         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13835         missing docs, add @todo to handle OOM etc.
13836
13837         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13838         docs
13839
13840 2003-01-18  Havoc Pennington  <hp@pobox.com>
13841
13842         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13843         connection if it hasn't been already.
13844
13845         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13846         replace with DisconnectFunction.
13847
13848 2003-01-18  Havoc Pennington  <hp@pobox.com>
13849
13850         Building --disable-verbose-mode --disable-asserts --disable-tests
13851         cuts the library from 112K to 45K or so
13852
13853         * configure.in: check for varargs macro support,
13854         add --enable-verbose-mode, --enable-asserts.
13855
13856         * dbus/dbus-internals.h (_dbus_assert): support
13857         DBUS_DISABLE_ASSERT
13858         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13859
13860 2003-01-18  Havoc Pennington  <hp@pobox.com>
13861
13862         * dbus/dbus-test.c: include config.h so that tests actually run
13863
13864         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13865         so the failure mode when that assumption fails will be plenty
13866         obvious.
13867
13868 2003-01-18  Havoc Pennington  <hp@pobox.com>
13869
13870         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13871
13872         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13873         the distribution
13874
13875         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13876         since we don't want to use those in make check
13877
13878 2003-01-15  Havoc Pennington  <hp@redhat.com>
13879
13880         Release 0.2
13881
13882         * NEWS: update
13883
13884 2003-01-15  Havoc Pennington  <hp@redhat.com>
13885
13886         * test/Makefile.am: fix so that test source code ends up in the
13887         distribution on make distcheck
13888
13889 2003-01-15  Havoc Pennington  <hp@redhat.com>
13890
13891         Release 0.1.
13892
13893         * NEWS: update
13894
13895 2003-01-15  Havoc Pennington  <hp@redhat.com>
13896
13897         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13898         fix build when --disable-tests
13899
13900         * Makefile.am (EXTRA_DIST): put HACKING in here
13901
13902         * HACKING: document procedure for making a tarball release.
13903
13904 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13905
13906         * bus/connection.c: (connection_error_handler),
13907         (bus_connection_setup):
13908         * bus/main.c: (main):
13909         Make sure that the DBusConnectionData struct is NULLed
13910         out to prevent a segfault.
13911
13912         * dbus/dbus-errors.c: (dbus_result_to_string):
13913         * dbus/dbus-errors.h:
13914         * dbus/dbus-message.c: (dbus_message_get_fields),
13915         (dbus_message_get_fields_valist), (_dbus_message_test):
13916         * dbus/dbus-message.h:
13917         Make dbus_message_get_fields return a result code so we can
13918         track invalid fields as well as oom.
13919
13920 2003-01-11  Havoc Pennington  <hp@pobox.com>
13921
13922         * configure.in: change --enable-test/--enable-ansi action-if-given
13923         to enable_foo=$enableval instead of enable_foo=yes
13924
13925 2003-01-08  Havoc Pennington  <hp@pobox.com>
13926
13927         * dbus/dbus-string.c (_dbus_string_align_length): new function
13928
13929         * dbus/dbus-test-main.c: move main() for test app here
13930         * dbus/dbus-test.c
13931         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13932         symbol to run tests, because dbus-test isn't in the main
13933         library
13934
13935         Code review nitpicks.
13936
13937         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13938         for people with narrow emacs ;-). Assert client_serial was filled
13939         in. Assert message->name != NULL.
13940         (dbus_message_append_fields): have "first_field_type" arg separate
13941         from va list, needed for C++ binding that also uses varargs IIRC
13942         and helps with type safety
13943         (dbus_message_new): add @todo about using DBusString to store
13944         service/name internally
13945         (dbus_message_new): don't leak ->service and ->name on OOM later
13946         in the function
13947         (dbus_message_unref): free the service name
13948         (dbus_message_get_fields): same change to varargs
13949         i.e. first_field_type
13950         (_dbus_message_loader_return_buffer): assert that the message data
13951         is aligned (if not it's a bug in our code). Put in verbose griping
13952         about why we set corrupted = TRUE.
13953         (decode_header_data): add FIXME that char* is evil.  Was going to
13954         add FIXME about evil locale-specific string.h strncmp, but just
13955         switched to wacky string-as-uint32 optimization. Move check for
13956         "no room for field name" above get_const_data_len() to avoid
13957         assertion failure in get_const_data_len if we have trailing 2
13958         bytes or the like. Check for service and name fields being
13959         provided twice. Don't leak service/name on error. Require field
13960         names to be aligned to 4 bytes.
13961
13962         * dbus/dbus-marshal.c: move byte swap stuff to header
13963         (_dbus_pack_int32): uscore-prefix
13964         (_dbus_unpack_int32): uscore-prefix
13965         (_dbus_unpack_uint32): export
13966         (_dbus_demarshal_string): add @todo complaining about use of
13967         memcpy()
13968         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13969         handling allowing corrupt data to go unchecked
13970
13971 2003-01-08  Havoc Pennington  <hp@redhat.com>
13972
13973         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13974         to the select() as needed for authentication. (should be using
13975         _dbus_poll() not select, but for another day)
13976
13977         * dbus/dbus.h: include dbus/dbus-protocol.h
13978
13979 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13980
13981         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13982         dbus-connection.h
13983
13984 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13985
13986         * dbus/dbus-internals.c: (_dbus_type_to_string):
13987         New function that returns a string describing a type.
13988
13989         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13990         * dbus/dbus-marshal.h:
13991         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13992         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13993         (dbus_message_iter_get_byte_array):
13994         * dbus/dbus-message.h:
13995         Add new convenience functions for appending and getting message fields.
13996         Also add demarshalling routines for byte arrays.
13997
13998 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13999
14000         * dbus/dbus-connection-internal.h:
14001         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14002         (_dbus_connection_get_next_client_serial),
14003         (dbus_connection_send_message):
14004         * dbus/dbus-internals.h:
14005         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14006         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14007         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14008         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14009         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14010         (_dbus_verbose_bytes), (_dbus_marshal_test):
14011         * dbus/dbus-marshal.h:
14012         * dbus/dbus-message-internal.h:
14013         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14014         (dbus_message_write_header), (_dbus_message_lock),
14015         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14016         (dbus_message_get_name), (dbus_message_append_int32),
14017         (dbus_message_append_uint32), (dbus_message_append_double),
14018         (dbus_message_append_string), (dbus_message_append_byte_array),
14019         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14020         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14021         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14022         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14023         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14024         (decode_header_data), (_dbus_message_loader_return_buffer),
14025         (message_iter_test), (_dbus_message_test):
14026         * dbus/dbus-message.h:
14027         * dbus/dbus-protocol.h:
14028         * dbus/dbus-test.c: (main):
14029         * dbus/dbus-test.h:
14030         * glib/test-dbus-glib.c: (message_handler), (main):
14031         * test/echo-client.c: (main):
14032         * test/watch.c: (check_messages):
14033         Make messages sendable and receivable for real.
14034
14035 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14036
14037         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14038         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14039         * dbus/dbus-message.c: (dbus_message_append_int32),
14040         (dbus_message_append_uint32), (dbus_message_append_double),
14041         (dbus_message_append_string), (dbus_message_append_byte_array):
14042         Handle OOM restoration.
14043
14044 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14045
14046         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14047         (_dbus_demarshal_string), (_dbus_marshal_test):
14048         * dbus/dbus-marshal.h:
14049         * dbus/dbus-message.c: (dbus_message_get_name),
14050         Document these functions.
14051
14052         (dbus_message_append_int32), (dbus_message_append_uint32),
14053         (dbus_message_append_double), (dbus_message_append_string),
14054         (dbus_message_append_byte_array):
14055         * dbus/dbus-message.h:
14056         Add functions for adding message fields of different types.
14057
14058         * dbus/dbus-protocol.h:
14059         Add the different types.
14060
14061 2003-01-05  Havoc Pennington  <hp@pobox.com>
14062
14063         * bus/connection.c: implement routines for handling connections,
14064         first thing is keeping a list of owned services on each connection
14065         and setting up watches etc.
14066
14067         * bus/services.c: implement a mapping from service names to lists
14068         of connections
14069
14070         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14071
14072         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14073         to use static mutexes for global data
14074
14075         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14076         collection of functions to set/get application-specific data
14077         on the DBusConnection.
14078
14079 2003-01-04  Havoc Pennington  <hp@pobox.com>
14080
14081         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14082         (_dbus_poll): new function
14083
14084         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14085         copied from GLib
14086
14087         * bus/loop.c: initial code for the daemon main loop
14088
14089 2003-01-04  Havoc Pennington  <hp@pobox.com>
14090
14091         * test/watch.c (error_handler): make it safe if the error handler
14092         is called multiple times (if we s/error handler/disconnect
14093         handler/ we should just guarantee it's called only once)
14094
14095         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14096         error handler on disconnect (it's quite possible we should
14097         just change the error handler to a "disconnect handler," I'm
14098         not sure we have any other meaningful errors)
14099
14100         * configure.in: check for getpwnam_r
14101
14102         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14103         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14104         mechanism as in SASL spec, using socket credentials
14105
14106         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14107         (_dbus_send_credentials_unix_socket): new function
14108
14109         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14110         dbus_accept()
14111         (_dbus_write): only check errno if <0 returned
14112         (_dbus_write_two): ditto
14113
14114 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14115
14116         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14117         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14118         (_dbus_marshal_test):
14119         * dbus/dbus-marshal.h:
14120         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14121         to _dbus_marshal_utf8_string. Also fix some tests.
14122
14123 2002-12-28  Harri Porten  <porten@kde.org>
14124
14125         * configure.in: added check for C++ compiler and a very cheesy
14126         check for the Qt integration
14127
14128         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14129
14130         * qt/Makefile.am: added
14131
14132         * qt/.cvsignore: added
14133
14134         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14135         latter, added #ifdef QT_THREAD_SUPPORT guard.
14136
14137         * dbus/Makefile.am: added missing headers for make dist
14138
14139 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14140
14141         * dbus/Makefile.am: fixup export-symbols-regex.
14142
14143 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14144
14145         * acinclude.m4: Add this file and put the
14146         PKG_CHECK_MODULE macro in it.
14147
14148 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14149
14150         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14151         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14152         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14153         (_dbus_marshal_test):
14154         Make the demarshalling routines align the pos argument.
14155         Add string marshalling tests and fix the obvious bugs
14156         discovered.
14157
14158 2002-12-26  Havoc Pennington  <hp@pobox.com>
14159
14160         * dbus/dbus-auth.c: fixes fixes fixes
14161
14162         * dbus/dbus-transport-unix.c: wire up support for
14163         encoding/decoding data on the wire
14164
14165         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14166         (_dbus_auth_decode_data): append to target string
14167         instead of nuking it.
14168
14169 2002-12-26  Havoc Pennington  <hp@pobox.com>
14170
14171         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14172         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14173         doh
14174
14175         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14176         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14177         now). Main point is because I wanted unpack_uint32 to implement
14178         _dbus_verbose_bytes
14179         (_dbus_verbose_bytes): new function
14180
14181         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14182
14183         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14184         mechanism to handle a corrupt message stream
14185         (_dbus_message_loader_new): fix preallocation to only prealloc,
14186         not prelengthen
14187
14188         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14189         (_dbus_string_test): enhance tests for copy/move and fix the
14190         functions
14191
14192         * dbus/dbus-transport-unix.c: Hold references in more places to
14193         avoid reentrancy problems
14194
14195         * dbus/dbus-transport.c: ditto
14196
14197         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14198         leak reference count in no-message case
14199
14200         * test/watch.c (do_mainloop): handle adding/removing watches
14201         during iteration over the watches. Also, ref the connection/server
14202         stored on a watch, so we don't try to mangle a destroyed one.
14203
14204         * dbus/dbus-transport-unix.c (do_authentication): perform
14205         authentication
14206
14207         * dbus/dbus-auth.c (get_state): add a state
14208         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14209         (_dbus_auth_get_unused_bytes): append the unused bytes
14210         to the passed in string, rather than prepend
14211
14212         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14213         the auth conversation DBusAuth
14214
14215         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14216         (_dbus_transport_new_for_domain_socket): when creating a
14217         transport, pass in whether it's a client-side or server-side
14218         transport so we know which DBusAuth to create
14219
14220 2002-12-03  Havoc Pennington  <hp@pobox.com>
14221
14222         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14223         _after_ finalizing the derived members
14224         (unix_connection_set): unref watch if we fail to add it
14225
14226         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14227         transport first, so that the connection owned by the
14228         transport will be valid as the transport finalizes.
14229
14230         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14231         if necessary, and remove watches from the connection.
14232
14233         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14234
14235 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14236
14237         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14238         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14239         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14240         (_dbus_marshal_test):
14241         * dbus/dbus-marshal.h:
14242         Add string marshal functions and have the demarshal functions
14243         return the new position.
14244
14245 2002-12-25  Havoc Pennington  <hp@pobox.com>
14246
14247         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14248         it is a simple protocol that just maps directly to SASL.
14249
14250         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14251         initial implementation, not actually used yet.
14252
14253         * dbus/dbus-string.c (_dbus_string_find): new function
14254         (_dbus_string_equal): new function
14255         (_dbus_string_base64_encode): new function
14256         (_dbus_string_base64_decode): new function
14257
14258 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14259
14260         * dbus/Makefile.am:
14261         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14262         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14263         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14264         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14265         * dbus/dbus-marshal.h:
14266         * dbus/dbus-protocol.h:
14267         * dbus/dbus-test.c: (main):
14268         * dbus/dbus-test.h:
14269         Add un-optimized marshalling/demarshalling routines.
14270
14271 2002-12-25  Harri Porten  <porten@kde.org>
14272
14273         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14274
14275 2002-12-24  Zack Rusin  <zack@kde.org>
14276
14277         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14278         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14279         main loop stuff
14280
14281 2002-12-24  Havoc Pennington  <hp@pobox.com>
14282
14283         * glib/dbus-gthread.c: fix include
14284
14285         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14286         I think glib API needs to change, though, as you don't
14287         want to use DBusMessageFunction, you want to use the
14288         DBusMessageHandler object. Probably
14289         dbus_connection_open_with_g_main_loop()
14290         and dbus_connection_setup_g_main_loop() or something like that
14291         (but think of better names...) that just create a connection
14292         that has watch/timeout functions etc. already set up.
14293
14294         * dbus/dbus-connection.c
14295         (dbus_connection_send_message_with_reply): new function just to
14296         show how the message handler helps us deal with replies.
14297
14298         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14299
14300         * dbus/dbus-string.c (_dbus_string_test): free a string that
14301         wasn't
14302
14303         * dbus/dbus-hash.c: use memory pools for the hash entries
14304         (rebuild_table): be more paranoid about overflow, and
14305         shrink table when we can
14306         (_dbus_hash_test): reduce number of sprintfs and write
14307         valid C89. Add tests for case where we grow and then
14308         shrink the hash table.
14309
14310         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14311
14312         * dbus/dbus-connection.c (dbus_connection_register_handler)
14313         (dbus_connection_unregister_handler): new functions
14314
14315         * dbus/dbus-message.c (dbus_message_get_name): new
14316
14317         * dbus/dbus-list.c: fix docs typo
14318
14319         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14320         an object representing a handler for messages.
14321
14322 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14323
14324         * glib/dbus-glib.h:
14325         * glib/dbus-gthread.c: (dbus_gthread_init):
14326         Don't use the gdbus prefix for public functions.
14327
14328 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14329
14330         * Makefile.am:
14331         * configure.in:
14332         Add GLib checks and fixup .pc files
14333
14334         * glib/Makefile.am:
14335         * glib/dbus-glib.h:
14336         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14337         (gdbus_connection_check), (gdbus_connection_dispatch),
14338         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14339         (dbus_connection_gsource_new):
14340         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14341         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14342         * glib/test-dbus-glib.c: (message_handler), (main):
14343         Add GLib support.
14344
14345 2002-12-15  Harri Porten  <porten@kde.org>
14346
14347         * autogen.sh: check for libtoolize before attempting to use it
14348
14349         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14350         struct.
14351
14352         * .cvsignore: ignore more stamp files
14353
14354         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14355
14356         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14357         without make install.
14358
14359 2002-12-15  Havoc Pennington  <hp@pobox.com>
14360
14361         * dbus/dbus-threads.c: add thread stubs that a higher library
14362         layer can fill in. e.g. the GLib wrapper might fill them in with
14363         GThread stuff. We still need to use this thread API to
14364         thread-safe-ize the library.
14365
14366 2002-12-12  Havoc Pennington  <hp@pobox.com>
14367
14368         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14369         below new interfaces and include fewer system headers.
14370
14371         * dbus/dbus-sysdeps.c (_dbus_read): new function
14372         (_dbus_write): new function
14373         (_dbus_write_two): new function
14374         (_dbus_connect_unix_socket): new function
14375         (_dbus_listen_unix_socket): new function
14376
14377         * dbus/dbus-message-internal.h: change interfaces to use
14378         DBusString
14379
14380 2002-12-11  Havoc Pennington  <hp@pobox.com>
14381
14382         * dbus/dbus-types.h: add dbus_unichar
14383
14384         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14385
14386         * dbus/dbus-connection.c (dbus_connection_send_message): return
14387         TRUE on success
14388
14389         * dbus/dbus-transport.c: include dbus-watch.h
14390
14391         * dbus/dbus-connection.c: include dbus-message-internal.h
14392
14393         * HACKING: add file with coding guidelines stuff.
14394
14395         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14396         handling here, for security purposes (as in vsftpd). Not actually
14397         using this class yet.
14398
14399         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14400         system/libc usage here, as in vsftpd, for ease of auditing (and
14401         should also simplify portability). Haven't actually moved all the
14402         system/libc usage into here yet.
14403
14404 2002-11-25  Havoc Pennington  <hp@pobox.com>
14405
14406         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14407         always print the first verbose message.
14408
14409 2002-11-24  Havoc Pennington  <hp@pobox.com>
14410
14411         * test/echo-client.c, test/echo-server.c: cheesy test
14412         clients.
14413
14414         * configure.in (AC_CHECK_FUNCS): check for writev
14415
14416         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14417         function
14418
14419         * dbus/dbus-list.c (_dbus_list_foreach): new function
14420
14421         * dbus/dbus-internals.c (_dbus_verbose): new function
14422
14423         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14424         representing a server that listens for connections.
14425
14426         * dbus/.cvsignore: create
14427
14428         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14429         public API for reporting errors
14430
14431         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14432         public object representing a connection that
14433         sends/receives messages. (Same object used for
14434         both client and server.)
14435
14436         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14437         Basic abstraction for different kinds of stream
14438         that we might read/write messages from.
14439
14440 2002-11-23  Havoc Pennington  <hp@pobox.com>
14441
14442         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14443         _DBUS_INT_MAX
14444
14445         * dbus/dbus-test.c (main): add list test, and include
14446         dbus-test.h as intended
14447
14448         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14449         (_dbus_hash_table_remove_int): return value indicates
14450         whether the entry existed to remove
14451
14452         * dbus/dbus-list.c: add linked list utility class,
14453         with docs and tests
14454
14455         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14456         array sometimes.
14457
14458 2002-11-23  Havoc Pennington  <hp@pobox.com>
14459
14460         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14461         DBUS_END_DECLS to nothing, that should fix this once and for all
14462
14463         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14464
14465         * dbus/dbus-message.c, dbus/dbus-hash.c:
14466         add some missing @brief
14467
14468 2002-11-23  Havoc Pennington  <hp@pobox.com>
14469
14470         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14471         to avoid confusing Doxygen
14472
14473         * dbus/dbus-hash.c: @} not }@
14474
14475         * dbus/dbus-message.c (struct DBusMessage): split out
14476         internals docs
14477
14478 2002-11-23  Havoc Pennington  <hp@pobox.com>
14479
14480         * configure.in: pile on more warning flags if using gcc
14481
14482         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14483         to document static functions
14484
14485         * configure.in: add summary to end of configure so it
14486         looks nice and attractive
14487
14488         * dbus/dbus-hash.c: finish implementation and write unit
14489         tests and docs
14490
14491         * configure.in: add --enable-tests to enable unit tests
14492
14493         * dbus/dbus-test.c: test program to run unit tests
14494         for all files in dbus/*, initially runs a test for
14495         dbus-hash.c
14496
14497         * dbus/dbus-internals.h: file to hold some internal utility stuff
14498
14499 2002-11-22  Havoc Pennington  <hp@redhat.com>
14500
14501         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14502         "ported" away from Tcl
14503
14504         * dbus/dbus-types.h: header for types such as dbus_bool_t
14505
14506 2002-11-22  Havoc Pennington  <hp@redhat.com>
14507
14508         * dbus/dbus.h: fixups for doc warnings
14509
14510         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14511         macros
14512         (QUIET): make it quiet so we can see warnings
14513
14514         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14515
14516 2002-11-22  Havoc Pennington  <hp@redhat.com>
14517
14518         * Makefile.am: include "Doxyfile" target in all-local
14519
14520         * configure.in: generate the Doxyfile
14521
14522         * Doxyfile.in: move Doxyfile here, so we can use
14523         configure to generate a Doxyfile with the right
14524         version number etc.
14525
14526 2002-11-22  Havoc Pennington  <hp@redhat.com>
14527
14528         * dbus/dbus-message.c: move inline docs into .c file
14529
14530         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14531         so all docs are under doc/
14532         (MAN_EXTENSION): generate man pages. Use extension
14533         ".3dbus" which matches ".3qt" on my system,
14534         I guess this is OK, I don't know really.
14535         (FILE_PATTERNS): look for .c files not .h, makes sense
14536         for plain C I think
14537
14538 2002-11-22  Havoc Pennington  <hp@pobox.com>
14539
14540         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14541         because any app can be a server, and any app can be a client,
14542         the bus is a special kind of server.
14543
14544 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14545
14546         * Doxyfile : adding. Still needs Makefile rules to be generated
14547         automatically (just run "doxygen" in the toplevel dir for now to
14548         generate docs)
14549
14550         * dbus/dbus-message.h : Adding sample docs (javadoc since
14551         resembles gtk-doc a little more)
14552
14553         * dbus/dbus.h : Adding sample docs
14554
14555 2002-11-21  Havoc Pennington  <hp@redhat.com>
14556
14557         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14558         so we can allow ourselves to include files directly,
14559         instead of having to use dbus.h
14560
14561         * dbus/dbus.h: fill in
14562
14563         * dbus/dbus-message.h: sketch out a sample header file.
14564         Include griping if you include it directly instead of
14565         via dbus.h
14566
14567         * dbus/dbus-macros.h: new file with macros for extern "C",
14568         TRUE/FALSE, NULL, etc.
14569
14570         * doc/file-boilerplate.c: put include guards in here
14571
14572 2002-11-21  Havoc Pennington  <hp@redhat.com>
14573
14574         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14575
14576         * COPYING: include the GPL as well, and license code
14577         under both AFL and GPL.
14578
14579 2002-11-21  Havoc Pennington  <hp@redhat.com>
14580
14581         * acconfig.h: get rid of this
14582
14583         * autogen.sh (run_configure): add --no-configure option
14584
14585         * configure.in: remove AC_ARG_PROGRAM to make
14586         autoconf complain less. add AC_PREREQ.
14587         add AC_DEFINE third arg.
14588
14589 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14590
14591         * doc/Makefile.am:
14592         Fix references so we can distcheck.
14593
14594 2002-11-21  Havoc Pennington  <hp@redhat.com>
14595
14596         * Initial module creation
14597