* configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
[platform/upstream/dbus.git] / ChangeLog
1 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
2
3         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
4         avoid using dirfd on systems that don't have dirfd 
5         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
6
7 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
8
9         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
10         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
11
12         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
13         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
14         macro because _dbus_abort calls it
15
16         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
17         works
18
19 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
20
21         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
22         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
23
24 2006-10-02  Thiago Macieira  <thiago@kde.org>
25
26         * tools/dbus-launch.c (main): make it complain and abort
27         execution in case an unknown option is given. Also, process
28         the '--' argument as the end of arguments.
29
30 2006-10-01  Havoc Pennington  <hp@redhat.com>
31
32         * tools/dbus-launch.c (print_variables): if no syntax is given,
33         don't print something that's sort-of-half-sh-syntax, just print
34         a plain key-value pairs thing.
35
36         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
37         the local machine representation (but still have the hostname in
38         the display). Remove the hostname from the display if it is
39         localhost. Change session files to be named
40         ~/.dbus/session-bus/machine-display. Change X atoms to be
41         underscore-prefixed so nobody whines about ICCCM compliance.
42         Otherwise name them the same as the env variables.
43         Change session file format to include key-value pairs and an
44         explanatory comment. Keys are the same as the env variables.
45         (set_address_in_x11): X property format can't depend on
46         sizeof(pid_t) on a particular machine, fix to always be 32 bits
47
48         * tools/dbus-launch.c: make --autolaunch take a machine id
49         argument. If --autolaunch is used with a program to run, complain
50         for now (but add a FIXME). Also, don't look for existing bus if 
51         there's a program to run (but add a FIXME).
52
53         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
54         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
55         just to get this, and avoids duplicating uuid-reading code).
56
57         * tools/dbus-launch.1: clarify various things
58         
59 2006-10-01  Havoc Pennington  <hp@redhat.com>
60
61         * test/test-service.c (path_message_func): remove broken extra
62         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
63
64         * test/test-shell-service.c (path_message_func): same fix
65         
66         * dbus/dbus-connection.c
67         (_dbus_connection_get_dispatch_status_unlocked): break up the
68         function a little for clarity and fix the notification of
69         dbus-bus.c to not require dispatch to be complete
70
71         * dbus/dbus-connection.c (dbus_connection_unref): improve the
72         warning when you try to finalize an open connection.
73         
74 2006-10-01  Havoc Pennington  <hp@redhat.com>
75
76         * dbus/dbus-bus.c
77         (internal_bus_get): only weak ref the connection; this means 
78         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
79         called safely in any context
80         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
81         unref
82
83         * dbus/dbus-connection.c
84         (_dbus_connection_get_dispatch_status_unlocked): move
85         _dbus_bus_notify_shared_connection_disconnected_unlocked here
86         when queuing Disconnected instead of when the Disconnected message
87         arrives, so dbus_bus_get() won't return closed connections.
88         
89 2006-10-01  Havoc Pennington  <hp@redhat.com>
90
91         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
92         Add a hack to make DBusNewConnectionFunction work right.
93
94         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
95         the hack here. Also, fix the todo about refcount leak.
96         
97         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
98         and use the hack here
99         
100         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
101         "shareable" flag; this was completely broken, since it meant 
102         dbus_connection_open() returned a connection of unknown
103         shared-ness. Now, we always hold a ref on anything opened 
104         as shareable.
105
106         Move the call to notify dbus-bus.c into
107         connection_forget_shared_unlocked, so libdbus consistently forgets
108         all its knowledge of a connection at once. This exposed numerous
109         places where things were totally broken if we dropped a ref inside
110         get_dispatch_status_unlocked where
111         connection_forget_shared_unlocked was previously, so move
112         connection_forget_shared_unlocked into
113         _dbus_connection_update_dispatch_status_and_unlock. Also move the
114         exit_on_disconnect here.
115
116         (shared_connections_shutdown): this assumed weak refs to the
117         shared connections; since we have strong refs now, the assertion 
118         was failing and stuff was left in the hash. Fix it to close
119         still-open shared connections.
120         
121         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
122         debug pipe connections
123         
124         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
125         dbus-bus.c if the closed connection is in fact shared
126         (_dbus_connection_close_possibly_shared): rename from 
127         _dbus_connection_close_internal
128         (dbus_connection_close, dbus_connection_open,
129         dbus_connection_open_private): Improve docs to explain the deal
130         with when you should close or unref or both
131
132         * dbus/dbus-bus.c
133         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
134         from _dbus_bus_check_connection_and_unref_unlocked and modify to
135         loop over all connections
136
137         * test/test-utils.c (test_connection_shutdown): don't try to close
138         shared connections.
139
140         * test/name-test/test-threads-init.c (main): fix warnings in here
141
142         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
143         env variable to cause blocking waiting for gdb; drop
144         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
145         unconditionally.
146
147         * configure.in: add -export-dynamic to libtool flags if assertions enabled
148         so _dbus_print_backtrace works.
149
150         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
151         instead of _dbus_verbose to print the backtrace, and diagnose lack 
152         of -rdynamic/-export-dynamic
153         
154 2006-09-30  Havoc Pennington  <hp@redhat.com>
155
156         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
157         (internal_bus_get): fix screwy code formatting. whoever committed
158         that was not paying attention!
159
160 2006-09-30  Havoc Pennington  <hp@redhat.com>
161
162         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
163         reflect addition of interfaces.
164
165         * doc/dbus-specification.xml: describe a new
166         org.freedesktop.DBus.Peer.GetMachineId method
167
168         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
169         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
170         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
171         at end of skip_white
172         (_dbus_string_chop_white): new function
173
174         * bus/connection.c (bus_connections_setup_connection): call
175         dbus_connection_set_route_peer_messages.
176
177         * dbus/dbus-connection.c
178         (_dbus_connection_peer_filter_unlocked_no_update): modify to
179         support a GetMachineId method.
180
181         Also, support a new flag to let the bus pass peer methods through
182         to apps on the bus, which can be set with
183         dbus_connection_set_route_peer_messages.
184
185         Finally, handle and return an error for anything unknown on the
186         Peer interface, which will allow us to extend the Peer interface
187         in the future without fear that we're now intercepting something
188         apps were wanting to see.
189         
190         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
191         dbus/dbus-uuidgen.c
192
193         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
194         binary here, since most of the code is already in libdbus
195
196         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
197         uuid from the system config file
198
199         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
200         (_dbus_read_uuid_file_without_creating) 
201         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
202         uuid-related functions, partly factored out from dbus-server.c
203
204         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
205         DBUS_ERROR_FILE_EXISTS instead of EEXIST
206
207         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
208
209         * tools/dbus-cleanup-sockets.1: explain what the point of this
210         thing is a bit more
211
212         * autogen.sh (run_configure): add --config-cache to default
213         configure args
214
215         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
216         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
217
218         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
219         don't try to save address, fixes crash in make check
220         
221 2006-09-30  Thiago Macieira  <thiago@kde.org>
222
223         * configure.in: add DBUS_BINDIR as a #define to C source code.
224
225         * tools/dbus-launch.c
226         * tools/dbus-launch.h
227         * tools/dbus-launch-x11.c:
228         * tools/dbus-launch.1: Add the --autolaunch option to
229         dbus-launch, which makes it scan for an existing session
230         started with --autolaunch. With that option, it also creates
231         an X11 window and saves the bus address and PID to it.
232
233         * dbus/dbus-sysdeps.h:
234         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
235         a function that runs "dbus-launch --autolaunch" to retrieve
236         the running D-Bus session address (or start one if none was running)
237
238         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
239         address protocol, which tries to get the running session from
240         dbus-launch.
241
242         * dbus/dbus-bus.c:
243         * dbus/dbus-internals.h: Make "autolaunch:" be the default
244         D-Bus session bus address.
245
246         * dbus/dbus-connection.c: Fix horrible typo in error message.
247
248 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
249
250         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
251
252 2006-09-17  Havoc Pennington  <hp@redhat.com>
253
254         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
255         fix so that if unix_user_function is set on windows, we still
256         do the default check that the auth identity matches the bus identity
257
258 2006-09-16  Havoc Pennington  <hp@redhat.com>
259
260         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
261         to _dbus_transport_open_platform_specific,
262         _dbus_transport_open_socket,
263         and _dbus_transport_open_debug_pipe
264
265         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
266
267 2006-09-16  Havoc Pennington  <hp@redhat.com>
268
269         Attempt auditing public API to remove all cases where a Unix
270         function returns weird emulated goo to Windows. This probably 
271         breaks the bus daemon on Windows, to fix it again we may 
272         need to stop processing unix-specific config options on Windows,
273         and may need to add Windows-specific public API or config options.
274         
275         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
276         to reflect added interfaces; should not break soname.
277         
278         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
279         not invoke unix user function on Windows. Kind of a hacky fix, but 
280         we don't want a "unix uid" leaking out on Windows.
281
282         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
283         to get the socket fd on Windows or UNIX
284         (dbus_connection_get_unix_fd): make this always fail on Windows
285
286 2006-09-16  Havoc Pennington  <hp@redhat.com>
287
288         * dbus/dbus-server.c (dbus_server_listen): change how this works
289         to be able to delegate to a set of handlers that can succeed,
290         fail, or choose not to handle. Allows us to have 
291         dbus_server_listen_platform_specific.
292
293         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
294         factor out the tcp socket stuff to be used on windows, leaving
295         unix domain socket only in dbus-socket-unix.c
296
297         * dbus/dbus-transport-socket.c
298         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
299         stuff to be used on windows, leaving unix domain socket only 
300         in dbus-transport-unix.c
301
302         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
303         temporary hack to be sure this fails on windows
304         (dbus_connection_get_unix_process_id): ditto
305
306 2006-09-16  Havoc Pennington  <hp@redhat.com>
307
308         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
309         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
310         _dbus_open_socket so the domain/type/protocol from system headers
311         are not required. This is kind of pointless though unless we move
312         part of _dbus_connect_tcp_socket into sysdeps.c instead of
313         sysdeps-unix.c, which would mean adding a wrapper around
314         bind/listen/etc.
315         Also, add DBusError to the socket-opening functions so they 
316         don't require use of errno.
317
318 2006-09-16  Havoc Pennington  <hp@redhat.com>
319
320         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
321         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
322
323         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
324         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
325         functions specifically for sockets only, and move generic 
326         read/write/open/close into unix-specific code.
327
328 2006-09-14  Havoc Pennington  <hp@redhat.com>
329
330         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
331         complaint about accessing revents when poll returns 0, from Julian Seward.
332
333 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
334
335         * Released 1.0 RC 1 (0.93) 
336
337 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
338
339         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
340         use _dbus_close instead of close
341
342 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
343
344         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
345         credentials.  Fixes "external" authentication under e.g. NetBSD
346         which does not support any other socket credentials mechanism.
347         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
348
349 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
350
351         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
352         dbus_threads_init and be used by the dbus mutex functions to
353         avoid deadlocks.
354
355         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
356
357 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
358
359         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
360         use threadsafe readdir_r instead of readdir
361
362 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
363
364         * dbus-threads.c (dbus_threads_init_default): New method for
365         initializing the internal thread implementation (Patch from
366         Alexander Larsson <alexl at redhat dot com>)
367
368 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
369
370         * remove a bunch of todo items from the 1.0 list
371
372 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
373
374         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
375         key not found
376
377 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
378
379         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
380         complex debugging code
381
382         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
383         between the test suite ifdefs
384         (_dbus_verbose_bytes): return if verbosity is not enabled 
385
386 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
387
388         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
389         remove DBusMark
390
391 2006-09-10  Havoc Pennington  <hp@redhat.com>
392
393        patch mostly by Peter Kümmel, bug #8211
394         
395         * dbus/dbus-sysdeps-unix.c: new file, which splits out
396         unix-specific stuff in dbus-sysdeps.c
397
398         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
399         and move unix-specific stuff to dbus-sysdeps-unix.c
400
401         * configure.in: check HAVE_ERRNO_H
402         
403 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
404
405         * bus/test-main.c (main): Initialize threading during tests
406
407         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
408         Unlock connection on error
409         (generate_local_error_message): static method for generating
410         an error message when we don't have a message to reply to
411         (_dbus_connection_block_pending_call): Send a disconnect error
412         instead of just a timeout (NULL) when the bus gets disconnected
413         while blocking for a reply.
414         
415 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
416
417         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
418         filters (Patch from Kimmo Hämäläinen 
419         <kimmo dot hamalainen at nokia dot com>)
420
421 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
422
423         * dbus/dbus-connection-internal.h: Add prototype for 
424         _dbus_connection_test_get_locks to remove warning
425
426 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
427
428         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
429         close child_err_report_pipe[WRITE_END] on exec (Patch from 
430         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
431
432 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
433
434         * Clean up close calls to use _dbus_close (Patch from 
435         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
436
437 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
438
439         * doc/TODO:
440         - Remove pending call locking todo item
441         - dbus_connection_open now holds hard ref.  Remove todo item
442         - do proper locking on _dbus_bus_check_connection_and_unref
443           and handle DBUS_BUS_STARTER. Remove todo item
444         - Warn on closing of a shared connection.  Remove todo item
445
446         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
447         dbus/dbus-connection.c: Use the dbus_connection_close_internal
448         so we don't get the warning when closing shared connections
449
450         * test/test-service.c, test/test-shell-service.c: Applications
451         don't close shared connections themselves so we unref instead of
452         close
453
454         * test/test-utils.c (test_connection_shutdown): Close the connection
455
456         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
457         _dbus_bus_check_connection_and_unref_unlocked since we only call this
458         method on a locked connection.  
459         Make sure we call _dbus_connection_unref_unlocked instead of 
460         dbus_connection_unref also.
461         Handle DBUS_BUS_STARTER correctly
462
463         * dbus/dbus-connection.c (connection_record_shared_unlocked):
464         Mark as shared and hard ref the connection
465         (connection_forget_shared_unlocked): Remove the hard ref from the 
466         connection
467         (_dbus_connection_close_internal_and_unlock):  New internal function
468         which takes a locked connection and unlocks it after closing it
469         (_dbus_connection_close_internal): New internal function which acts
470         like the origonal dbus_connection_close method by grabbing a connection
471         lock and calling _dbus_connection_close_internal_and_unlock
472         (dbus_connection_close): Public close method, warns when the app
473         trys to close a shared connection
474
475 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
476
477         * bus/driver.c:
478         (bus_driver_generate_introspect_string): New method for populating
479         a DBusString with the introspect data
480         (bus_driver_handle_introspect): Move introspect generation code to 
481         bus_driver_generate_introspect_string
482
483         * bus/main.c:
484         (introspect): New function which prints out the intropect data and
485         exits
486         (main): Add a --introspect switch
487
488 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
489
490         * doc/TODO: Removed dtd publishing item.  
491         It seems the dtd has already been added at
492         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
493
494 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
495
496         * doc/TODO, various source files: Audited todo's and FIXME's and
497         prepended the ones we should be looking at with 1.0.  Those
498         prepended with 1.0? need clerification or might not be needed
499         for 1.0
500
501 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
502
503         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
504         NULL in the public API (Patch from Kimmo Hämäläinen 
505         <kimmo dot hamalainen at nokia dot com>)
506
507 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
508
509         * configure.in: Fix for OS-X compile time endian issues (patch from
510         Benjamin Reed <ranger at befunk dot com>)
511
512 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
513
514         * configure.in: Check for no-common compiler flag (OS-X fix from
515         Benjamin Reed <ranger at befunk dot com>)
516
517 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
518
519         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
520         <fcrozat at mandriva dot com>)
521
522 2006-08-29  Havoc Pennington  <hp@redhat.com>
523
524         * test/test-service.c (path_message_func): fix lack of return value
525
526         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
527         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
528         any more sense than on anything else in this file.
529         (_dbus_get_tmpdir): add const to return value, and keep the
530         results of the various getenv around in a static variable.
531
532 2006-08-29  Havoc Pennington  <hp@redhat.com>
533
534         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
535         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
536
537 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
538
539         * test/Makefile.am: change find to use syntax that works with non
540         gnu versions of find
541
542 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
543
544         * dbus/dbus-transport.c: fix invalid deref when checking if
545         a vtable method exists (Patch from Christian Ehrlicher 
546         <ch dot ehrlicher at gmx dot de>)
547
548 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
549
550         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
551         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
552         to build with builddir != srcdir (Taken from a patch by Bernard Leak
553         <bernard at brenda-arkle dot demon dot co dot uk>)
554
555 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
556
557         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
558         default case
559
560 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
561
562         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
563         it works on any system providing this interface, not only FreeBSD.
564         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
565
566 2006-08-20  Havoc Pennington  <hp@redhat.com>
567
568         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
569         the docs
570
571 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
572
573         * Released 0.92 
574
575 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
576
577         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
578         to reflect the init late change
579
580         * bus/bus.c (bus_context_new): Check user before we fork so we can
581         print out an error message a user will be able to see
582
583 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
584
585         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
586
587         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
588         Add two more global locks for use on windows platforms.  These are
589         unused on non-windows platforms but are not ifdefed out to avoid
590         potential bugs (i.e. the few bytes lost does not warrent the extra
591         maintanence and complexity that having seperate sets of locks would
592         cause)
593
594 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
595
596         * bus/services.c (bus_registry_acquire_service): Return an error
597         when an application tries to register the org.freedesktop.DBus Bus Name
598
599         * bus/services.c (bus_registry_release_service): Return an error
600         when an application tries to release the org.freedesktop.DBus Bus Name
601
602 2006-08-17  Alp Toker  <alp@atoker.com>
603
604         * doc/dbus-specification.xml: Fix some minor typos.
605
606 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
607
608         * configure.in: use $with_init_scripts instead of $operating_system
609         to determine where to store the pid since the init scripts manipulate 
610         the pid file (patch from Marcelo Ricardo Leitner 
611         <marcelo dot leitner at terra dot com dot br>.  
612
613 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
614
615         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
616         static DBusList *uninitialized_condvar_list to support new late 
617         initialization threading model.  In this model threads can be initialized
618         even after the D-Bus API has been used but still needs to be initialized 
619         before the second thread has been started.  Mutexes and condvar addresses
620         are stored in the two static lists and are replaced with actuall locks
621         when threads are initalized.
622         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
623         the location into the static list
624         (_dbus_mutex_free_at_location): New method for removing a mutex location 
625         from the static list and freeing the mutex
626         (_dbus_condvar_new_at_location): New method for creating a conditional 
627         variable and placing the location into the static list
628         (_dbus_condvar_free_at_location): New method for removing a conditional
629         variable location from the static list and freeing the conditional variable 
630         (init_uninitialized_locks): Atomic method which goes through the static 
631         lists of mutex and condvar location and updates them with actuall locks
632         (init_global_locks): changed to init_locks
633         
634         * dbus/dbus-connection.c:
635         (_dbus_connection_test_get_locks): New method for tests to check connections
636         (_dbus_connection_new_for_transport): Use the new at_location mutex and
637         condvar API
638         (dbus_connection_allocate_data_slot): Pass in the global lock address
639         to _dbus_data_slot_allocator_alloc
640
641         * dbus/dbus-dataslot.c:
642         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
643         instead of the mutex itself
644
645         * dbus/dbus-message.c:
646         (dbus_message_allocate_data_slot): Pass in the global lock address
647         to _dbus_data_slot_allocator_alloc
648
649         * dbus/dbus-pending-call.c:
650         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
651         to _dbus_data_slot_allocator_alloc
652
653         * dbus/dbus-server.c:
654         (_dbus_server_init_base): Use the new at_location mutex API
655         (dbus_server_allocate_data_slot): Pass in the global lock address
656         to _dbus_data_slot_allocator_alloc
657
658         * test/name-test/test-threads-init.c: New test case for late thread
659         initialization
660
661 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
662
663         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
664         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
665         causes compile problems when asserts are turned off
666         Keeping _dbus_warn for printing out the message so even if
667         asserts are turned off the user gets the messages that something is 
668         wrong 
669
670 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
671
672         Patches by Kjartan Maraas <kmaraas at gnome dot org>
673
674         * bus/services.c (bus_service_list_queued_owners):
675         Add a pointer cast to fix compiler warning
676
677         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
678         return a NULL instead of FALSE since the return type
679         is not expecting a boolean
680
681         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
682         Remove unused variable
683
684         * dbus/dbus-marshal-recursive-util.c (node_new):
685         return a NULL instead of FALSE since the return type
686         is not expecting a boolean
687
688         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
689         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
690         because we are expecting a pointer not a boolean
691
692         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
693         add void as the parameter so some compilers
694         don't complain
695
696         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
697           _dbus_transport_new_for_tcp_socket):
698         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
699         because we are expecting a pointer not a boolean
700
701         * test/shell-test.c (test_command_line):
702         cast the second argument to _dbus_list_append to avoid compiler
703         warnings
704
705         * test/test-names.c (main): remove unused variable
706
707         * test/test-service.c (check_hello_from_self_reply):
708         Initialize echo_message and echo_reply to NULL
709         
710         * test/test-shell-service.c (handle_echo):
711         Remove unused variable and cast the third parameter passed to
712         dbus_connection_get_object_path_data to avoid compiler warrnings
713
714         * test/name-test/test-names.c (clear_message_queue):
715         Remove unused function
716
717         * test/name-test/test-pending-call-dispatch.c:
718         Fix format string in printf
719
720
721 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
722
723         * dbus/dbus-bus.c:
724         * test/name-test/test-names.c:
725         Remove test method dbus_bus_connection_get_unique_name because 
726         we already have public method dbus_bus_get_unique_name that 
727         does the exact same thing
728
729 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
730
731         * dbus/dbus-signature.c:
732         fix typos in Julio's previous patch which cause make check to fail
733
734 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
735
736         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
737         In any case it was wrong since this is a test checking to see if
738         address parsing is correct.  There was no need to get the true
739         tmp directory.  
740
741 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
742
743         * dbus/dbus-macros.h: Revert the addition of stddef.h
744         as we should not be adding it to library headers 
745
746 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
747
748         * dbus/dbus-signature.c:
749         Fix the unit tests so that they work if assertions are not enabled.
750         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
751
752 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
753
754         * tools/run-with-tmp-session-bus.sh:
755         * test/name-test/run-test.sh:
756         Remove bashisms (patch from Julio M. Merino Vidal
757         <jmmv at NetBSD dot org>)
758
759 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
760
761         * configure.in: add a version (>= 2.6.0) check for libxml2
762
763 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
764
765         * configure.in: make sure the compiler supports -Wfloat-equal
766         
767         * bus/dir-watch-dnotify.c: move functional code after 
768         variable declerations (C99 fix)  (patches from Jens Granseuer
769         <jensgr at gmx dot net>
770
771 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
772
773         * dbus/dbus-macros.h:
774         add #include <stddef.h> so that Sun compilers don't complain about
775         the defining NULL
776
777 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
778
779         * dbus/dbus-sysdeps.c:
780         * dbus/dbus-address.c:
781         * bus/activation.c:
782         * test/shell-test.c:
783         don't hardcode tmp directory (patch from Dave Meikle 
784         <dmk at davemeikle dot co dot uk>)
785
786 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
787
788         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
789         Change an assert to a detailed warning and abort.  
790         When allocator->lock != mutex it indicates that the user has failed
791         to initalize threads before using the D-Bus library.  This warning
792         helps the user identify the issue and fix their app.
793
794 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
795
796         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
797         with cleanups of bugs found from Coverity reports:
798
799         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
800         close the file on error to avoid a leak
801
802         * bus/expirelist.c (bus_expire_list_test):
803         Check for NULL on dbus_new0
804
805         * bus/activation.c (update_directory):
806         remove dead code
807
808         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
809         Fix some leaks
810
811         * bus/bus.c (process_config_every_time):
812         Fixed a leak
813
814         * bus/desktop-file.c (parse_key_value):
815         Fixed leak
816
817         * bus/selinux.c (bus_selinux_id_table_insert):
818         Fixed leak
819
820 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
821
822         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
823         remove dead code
824
825 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
826
827         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
828         #!/bin/bash
829
830 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
831
832         * Doxyfile.in: fix the INPUT line so we can generate docs 
833         when sourcedir != builddir (patch from Cygwin Ports maintainer
834         <yselkowitz at users dot sourceforge dot net>
835
836 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
837
838         * dbus/dbus-sysdeps.h:
839         * dbus/dbus-sysdeps.c: 
840         * dbus/dbus-string.c: 
841         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
842         GLib's function which does the same thing
843
844         * configure.in:
845         * bus/Makefile.am:
846         * bus/dir-watch-default.c:
847         * bus/dir-watch-dnotify.c:
848         * bus/dir-watch-kqueue.c:
849         Add kqueue directory watching for freebsd and split the directory
850         watching code into seperate files per method/arch
851         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
852
853 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
854
855         * configure.in:
856         * tools/Makefile.am:
857         * tools/dbus-launch.c:
858         * bus/Makefile.am:
859         allow --with-dbus-daemondir switch to be used to make the
860         daemon install to a seperate bindir like /usr/libexec
861         (patch from Brian Cameron <brian dot cameron at sun dot com)
862
863 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
864
865         * bus/Makefile.am (install-data-hook): removed the slash after 
866         $(DESTDIR) so we don't get the double slash which does not work
867         in windows (patch from Andras Porjesz 
868         <andras dot porjesz at siemens dot com>)
869
870 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
871
872         * dbus/dbus-sysdeps.h:
873         * dbus/dbus-sysdeps.c: 
874           add _dbus_printf_length (patch from Peter Kümmel 
875           <syntheticpp at gmx dot net>)
876
877 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
878
879         * dbus/dbus-internals.c: unistd.h is not used 
880         (_dbus_verbose_real): only enable verbose printing 
881         if DBUS_VERBOSE environment var is set to '1'
882         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
883
884 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
885
886         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
887         so we still compile on older gcc (patch from Frederic Peters 
888         <fpeters at 0d dot be>
889
890 2006-08-04  Havoc Pennington  <hp@redhat.com>
891
892         * configure.in: add -Wdeclaration-after-statement
893
894         * dbus/dbus-connection.c: change all the pending call stuff to
895         reflect the fact that pending call operations use the connection
896         lock
897
898         * dbus/dbus-pending-call.c: add locking here
899
900         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
901         field const consistent with how message field is done
902
903 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
904
905         * s/D-BUS/D-Bus/g
906
907 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
908
909         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
910         <in7y118 at public.uni-hamburg dot de> - fix invalid
911         read/write reported by valgrind
912
913 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
914
915         * Released 0.91
916
917 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
918
919         * dbus/dbus-connection.c:
920         (_dbus_connection_attach_pending_call_unlocked):
921         (connection_timeout_and_complete_all_pending_calls_unlocked):
922         Make sure we set timeout_added on pending calls to FALSE when
923         we remove the timeout from the connection
924
925 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
926
927         * Removed some extra bindings stuff lingering around (thanks timo)
928         * dbus-pendingcall.c (_dbus_pending_call_new): 
929         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
930         when we tried to take a lock on an already locked connection
931
932 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
933
934         * Released 0.90
935
936 2006-07-17  Havoc Pennington  <hp@redhat.com>
937
938         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
939         ints, reported by Owen Taylor
940
941 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
942
943         * doc/TODO:
944         * dbus/dbus-bus.c:
945         * dbus-errors.c:
946         * dbus/dbus-marshal-validate.c:
947           Removed TODO items which were fixed or are no longer relevent
948
949 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
950
951         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
952         Remove stray files from the stripped bindings
953
954 2006-07-16  Havoc Pennington  <hp@redhat.com>
955
956         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
957         Improve the error message on reply timeout
958
959 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
960
961         * Remove all bindings
962
963 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
964
965         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
966         and set pending_reply out arg to NULL is connection is disconnected
967         (connection_timeout_and_complete_all_pending_calls_unlocked): New
968         static method for cleaning up pending calls on disconnect
969         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
970         calls queued timeouts on disconnect 
971
972          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
973         Remove 
974
975 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
976
977         * bus/activation.[ch] (bus_activation_list_services): new function to 
978         get the list of services that can be activated
979
980         * bus/dispatch.c: test coverage for the new bus method
981         ListActivatableNames
982
983         * bus/driver.c: new bus method ListActivatableNames to get the list of
984         services that can be activated
985
986         * doc/dbus-specification.xml: ListActivatableNames method documentation
987
988 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
989         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
990         source files
991
992 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
993         * dbus/dbus-message-factory.c:
994         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
995
996 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
997         * dbus/dbus-connection-internal.h:
998         * dbus/dbus-connection.c:
999         * file dbus/dbus-pending-call.c:
1000         * dbus/dbus-pending-call.h:
1001         Make DBusPendingCall an opaque type even to D-Bus internals
1002
1003 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1004
1005         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1006         connection_close
1007
1008         * dbus/dbus-connection.c: include dbus-bus.h
1009         (_dbus_connection_read_write_dispatch): make static
1010
1011 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1012
1013         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1014         function
1015         (dbus_connection_dispatch): On disconnect unref any shared connections
1016
1017         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1018         for cleaning up shared connections on disconnect
1019         (internal_bus_get): get a hard refrence to shared connections when
1020         they are created
1021         
1022         * doc/TODO: Remove items which are no longer relevent or have been fixed
1023         Split 1.0 todo items with a 0.90 freeze todo list
1024  
1025 2006-06-14  Ross Burton  <ross@openedhand.com>
1026
1027         * glib/dbus-gobject.c:
1028         Free a leaking GArray (surely not!) in dbus_g_method_return.
1029
1030 2006-06-14  Ross Burton  <ross@openedhand.com>
1031
1032         * tools/Makefile.am:
1033         * tools/dbus-monitor.c:
1034         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1035         Habacker).
1036         
1037 2006-06-14  Ross Burton  <ross@openedhand.com>
1038
1039         * tools/dbus-print-message.c:
1040         Also print the object path when outputting signals or method calls.
1041
1042 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1043
1044         * qt/src/Makefile.am: install the qdbus.h header.
1045         This allows people to actually use the installed code.
1046
1047 2006-06-12  Ross Burton  <ross@openedhand.com>
1048
1049         * glib/dbus-gproxy.c:
1050         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1051
1052 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1053
1054         * Released 0.62
1055
1056 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1057
1058         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1059         break pedantic builds. Closes bug 6043 (patch approved by
1060         Havoc back in February).
1061
1062 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1063
1064         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1065         that took a QDBusMessage parameter.
1066         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1067         * qt/tools/dbus.cpp: Don't use automatic call because we might
1068         be calling an async method: request a reply.
1069
1070 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1071
1072         * test/qt/*: Update the testcases, including testing the new
1073         functionality of sending null QByteArray and QString over the
1074         bus. Add new headertest test and restore the old
1075         qdbusxmlparser test.
1076
1077 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1078
1079         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1080         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1081
1082         * qt/examples/Makefile.am:
1083         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1084         form.
1085
1086         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1087         QByteArray() (nulls) over the bus.
1088         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1089         the one that has the signature suffix stripped.
1090         * qt/src/qdbusreply.h: Make some methods const.
1091
1092 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1093
1094         Patch from Timo Hoenig <thoenig@suse.de>.
1095
1096         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1097         required during build to EXTRA_DIST.
1098         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1099         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1100         * configure.in: Fix "make dist", take care that the Makefile for
1101         qt/dbus is being generated.
1102
1103 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1104
1105         * bus/bus.c: Fix eavesdropping on method calls
1106
1107 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1108
1109         * configure.in:
1110         * dbus/dbus-userdb-util.c:
1111         Add Solaris console owner patch from Artem Kachitchkine
1112
1113 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1114
1115         * qt/Makfile.am:
1116         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1117         reorganisation. Thanks to Timo Hoenig for pointing this out.
1118
1119 2006-06-06  Robert McQueen  <robot101@debian.org>
1120
1121         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1122           call to dbus_g_type_get_struct.
1123
1124 2006-06-06  Robert McQueen  <robot101@debian.org>
1125
1126         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1127           pointers were put into a GPtrArray-based specialised collection, and
1128           then freed along with the array. GValues which you add into
1129           collections or maps which have the NOCOPY flag set are assumed to not
1130           belong to the caller, so rather than the existing pointer-stealing
1131           semantics, they are copied instead. Given that the main consumers of
1132           this abstraction are the bindings themselves, I don't think this is
1133           too bad, but others should watch their choice of take vs set_static.
1134
1135 2006-06-06  Robert McQueen  <robot101@debian.org>
1136
1137         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1138           of g_slist_prepend not being used. Fixed copying of slist-based
1139           specialised collections, then wrote a test case and found that it was
1140           all broken. Went on to fix iterating and appending too. Good thing
1141           nobody uses this code yet.
1142
1143 2006-06-06  Robert McQueen  <robot101@debian.org>
1144
1145         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1146           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1147           are discarded without unsetting, so it makes no difference whether
1148           we take or set_static). Remove cases for G_TYPE_POINTER because
1149           there really is nothing useful we can do with them in our
1150           specialised types - we *need* boxed copy/free functions at the very
1151           least.
1152
1153 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1154
1155         * qt/dbus: Add directory. I had forgotten to add this
1156         yesterday after the move...
1157
1158         * qt/examples/Makefile.am:
1159         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1160
1161         * qt/tools/Makefile.am:
1162         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1163         Added feature to get and set properties.
1164         Added validation of service, object path and interface names.
1165
1166         * qt/tools/dbusidl2cpp.cpp: Two new features:
1167         1) Allow specifying both the header and the source file names,
1168         by separating them with a colon.
1169         2) Don't write an interface output if the -p switch wasn't
1170         given, but the -a was.
1171
1172         * qt/src/*: Fix usage of Iterators and ConstIterators.
1173         Fix shadowing of variables by other variables (-Wshadow).
1174         Fix keyword-cleanliness in headers.
1175         Fix ASCII-cast (QLatin1String, QLatin1Char).
1176         Fix validation of member names.
1177         Add extra checking of introspection data during XML parsing.
1178         Various bug fixes.
1179
1180 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1181
1182         * dbus/Makefile.am:
1183         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1184         qt/dbus/qdbus.h now.
1185
1186 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1187
1188         * configure.in: Make --disable-qt actually do
1189           something. Patch inspired by Zack Rusin.
1190
1191 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1192
1193         * qt/: Update to Subversion r548032.
1194         This includes a big reorganisation of the files inside the
1195         subdir.
1196
1197 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1198
1199         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1200         clear:  
1201         "Failed to connect to socket <host>:<port> <error>" instead of
1202         "Failed to connect to socket <host>: <error>:<port>"
1203
1204         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1205         for a tcp transport. 
1206
1207 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1208
1209         * qt/*: Update the QtDBus bindings up to revision 546310 in
1210         Subversion.
1211         This adds the dbuscpp2xml tool, that parses a C++ header and
1212         outputs a D-BUS Introspection XML.
1213
1214 2006-05-21  Havoc Pennington  <hp@redhat.com>
1215
1216         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1217         is not NULL when it shouldn't be. Also a couple of possible fixes
1218         for #4637 though I don't understand why the bug happens, to be
1219         honest... also the object constructor has an assert name != NULL
1220         and the name is only currently NULL for peer-to-peer proxies that 
1221         I don't think anyone uses? So it should be asserting.
1222         Anyway, for now at least see if we get an earlier assertion failure.
1223
1224         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1225         apparently broken code to be sure the tests fail and someone 
1226         will fix them...
1227
1228 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1229
1230         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1231         and arrays when they had a single element: has_next returns
1232         false, even before you read the element. So, instead, check
1233         the array length.
1234
1235 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1236
1237         * qt/qdbusmessage.cpp:
1238         * qt/qdbustypehelper_p.h:
1239         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1240         the list is a const-reference
1241
1242 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1243
1244         * Adding old doc patch that never got applied
1245         
1246         * dbus/bus.c (dbus_bus_add_match): Add documentation
1247
1248         * doc/dbus-specification.xml: Add documentation for the match rules
1249           and the AddMatch and RemoveMatch methods
1250
1251 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1252
1253         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1254         call (r535506)
1255
1256         * qt/dbusidl2cpp.cpp:
1257         * qt/qdbusabstractadaptor.cpp:
1258         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1259         sibling of the QDBusAbstractAdaptor objects instead of the
1260         parent. (r535848)
1261
1262         * qt/dbusidl2cpp.cpp:
1263         * qt/qdbusabstractinterface.cpp:
1264         * qt/qdbusabstractinterface.h:
1265         * qt/qdbusabstractinterface_p.h:
1266         * qt/qdbusinterface.cpp: Make properties in interfaces
1267         actually work. The code that was generated would not compile,
1268         due to moc calls to functions that did not exist. They now
1269         shall. (r536571)
1270
1271 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1272
1273         * Makefile.am:
1274         * configure.in:
1275         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1276         Thanks to Brad Hards for providing the patch
1277
1278 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1279
1280         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1281         call. (r535506)
1282
1283 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1284
1285         * qt/examples/dbus.cpp: Enhance error messages and use
1286         QDBusInterfacePtr.
1287
1288 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1289
1290         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1291         and disable the copy operators. (r533772, r534746)
1292
1293         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1294
1295         * qt/qdbusabstractinterface.cpp:
1296         * qt/qdbusabstractinterface.h: Change the default call mode to
1297         not use the event loop. Add convenience call() methods that
1298         take a CallMode parameter. (r534042)
1299
1300         * qt/qdbusconnection.h: Change the default call mode to not
1301         use the event loop. (r534042)
1302
1303         * qt/qdbusinterface.cpp:
1304         * qt/qdbusinterface.h: Add a method to tell us if the
1305         interface is valid (since we don't return a null pointer
1306         anymore) (r534099)
1307
1308         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1309         (r534101)
1310
1311         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1312         function in two so taht we get the chance to introspect
1313         without having a QDBusMessage (r534102)
1314
1315         * qt/qdbusbus.h:
1316         * qt/qdbusconnection.cpp:
1317         * qt/qdbusconnection_p.h:
1318         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1319         avoid a round-trip to the server when attempting to introspect
1320         one of our own objects. Also make sure the filter functions
1321         match the empty interface as well. (r534108)
1322         Don't keep the connection names. Instead, trust the unique
1323         connection name (r534111)
1324         Remove event loop usage (r534112)
1325
1326 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1327
1328         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1329         Brad Hards.
1330
1331 2006-04-28  Robert McQueen  <robot101@debian.org>
1332
1333         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1334         any order, making it easier for people who inherit from this
1335         object.
1336
1337 2006-04-28  Robert McQueen  <robot101@debian.org>
1338
1339         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1340         of memory from within pointer arrays and lists. Fixes bug #6300.
1341
1342 2006-04-28  Robert McQueen  <robot101@debian.org>
1343
1344         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1345         generating struct signatures. Fixes bug #6083.
1346
1347 2006-04-28  Robert McQueen  <robot101@debian.org>
1348
1349         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1350         to qdbusconnection_p.moc.
1351
1352 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1353
1354         * README, INSTALL: Doc fixes
1355         Patch from Brad Hards <bradh at frogmouth.net>
1356
1357 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1358
1359         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1360         the dynamic meta object. No need to guess which interface to
1361         call.
1362
1363 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1364
1365         * qt/qdbusconnection_p.h:
1366         * qt/qdbusmetaobject.cpp:
1367         * qt/qdbusmetaobject_p.h:
1368         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1369         for the dynamic meta object. No need to guess which
1370         interface to call.
1371         * qt/qdbusabstractinterface_p.h:
1372         * qt/qdbusconnection.cpp:
1373         * qt/qdbusintegrator.cpp:
1374         * qt/qdbusinterface.cpp:
1375         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1376         Add a QDBusRef that looks and behaves like DCOPRef.
1377
1378 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1379
1380         * dbus/dbus-connection.c: Interfaces are optional in method
1381         calls, so don't give up if the interface parameter is NULL.
1382         Patch reviewed by Havoc Pennington.
1383
1384 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1385
1386         * qt/qdbusreply.h: Add default constructor and operator=
1387           (r532625)
1388         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1389           in public headers (r532952)
1390         * qt/qdbusabstractinterface.cpp:
1391         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1392           make it the default (r532951)
1393
1394 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1395
1396         * dbus/dbus-connection.c: Fix asserts
1397         Patch from Tim Moloney <t.moloney at verizon.net>
1398
1399 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1400
1401         * mono/Connection.cs, mono/Message.cs: Check Target type
1402         Patch from Aaron Bockover (abockover at novell.com)
1403
1404 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1405
1406         * INSTALL: fine-tune the requirements for the Qt4 binding.
1407
1408 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1409
1410         * tools/dbus-print-message.c: Added support for printing of all 
1411           remaining data types. Fixed logic for indentation of compound
1412           data types.
1413         
1414 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1415
1416         * INSTALL: fill out content of file providing DBus specific
1417           build installations, followed by generic Auto* INSTALL file
1418           content
1419         
1420 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1421
1422         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1423           Patch by Stefan Eilers. (r529537)
1424
1425 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1426
1427         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1428           contents (r528208)
1429
1430 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1431
1432         * qt/Makefile.am: fix the dependency for
1433           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1434           not in qdbusconnection.cpp.
1435           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1436           spotting this.
1437
1438 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1439
1440         * qt/examples/listnames.cpp:
1441         * qt/examples/Makefile.am: Three ways to list the names on the
1442           bus.
1443
1444 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1445
1446         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1447           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1448
1449 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1450
1451         Merge from Subversion:
1452         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1453           something that exists (r526315)
1454         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1455           slots/signals (r526316)
1456         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1457           also return an unknown-method error if the parameters don't
1458           match for org.freedesktop.DBus.Properties. (r526842)
1459         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1460         * qt/qdbusintegrator.cpp: Restore the proper order of
1461           delivery: don't make method returns be delivered on priority
1462           (r528150)
1463
1464 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1465
1466         * configure.in qt/Makefile.am: add qt/examples
1467         * qt/examples: Add QtDBus example programs:
1468           - hello: Hello, World
1469           - ping: Simple method-calling program
1470           - pong: Simple object-exporting program (not using adaptors)
1471           - complexping: Interactive method-calling program 
1472                 (also gets and sets properties).
1473           - complexpong: Sample program exporting methods, signals and
1474                 properties, using adaptors.
1475           - dbus: Simple implementation of a generic method-calling
1476                 program, similar to 'dbus-send', but with semantics
1477                 similar to 'dcop'.
1478           - chat: Simplistic chat program, implemented using signals
1479                 and the system bus. Looks like IRC.
1480
1481 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1482
1483         * configure.in: Detect QtGui (necessary for one of the
1484           example programs). Note: this increases the minimum required
1485           version of Qt to 4.1.3.
1486
1487 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1488
1489         * test/qt/*: Sync with KDE Subversion revision 523647.
1490         Update the testcases to the new API. Remove testcases for
1491         classes that are no longer public or have been removed.
1492
1493 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1494
1495         * qt/*: 
1496         * dbus/qdbus.h: Sync with KDE Subversion revision
1497         523647. Hopefully, this will be the last of the
1498         source-incompatible changes. Documentation has been improved;
1499         support for QList<basic-types> has been added; QDBusObject is
1500         gone; QDBus(Abstract)Interface is now a QObject with
1501         auto-generated meta-object; QDBusIntrospection is marked
1502         private, since QMetaObject can be used now; lots of bugfixes.
1503
1504 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1505
1506         Patch from Milosz Derezynski <internalerror at gmail.com>
1507         
1508         * configure.in:
1509         Output the service directory in the configure summary
1510
1511         * dbus-1.pc.in:
1512         Add session_bus_services_dir
1513
1514 2006-03-10  Ross Burton  <ross@openedhand.com>
1515
1516         * tools/dbus-print-message.c:
1517         Add support for object paths and signatures.
1518
1519 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1520
1521         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1522         config reload.
1523         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1524         information caches
1525         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1526         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1527         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1528         * dbus/dbus-userdb.h: Add function to flush all user/group information
1529         caches.
1530
1531 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1532
1533         * qt/dbusidl2cpp.cpp:
1534         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1535         for dcopidl2cpp, found in the KDE installations (or the more
1536         modern kalyptus): generate Qt4 C++ code for the input XML
1537         introspection. Currently no IDL parsing.
1538
1539 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1540
1541         * test/qt/*: Update the self-tests.
1542
1543 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1544
1545         * qt/*: 
1546         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1547         represents the first feature-complete version of the Qt4
1548         bindings since I took ove maintainership.
1549
1550 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1551
1552         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1553         dir. This is C++, so we can't use the DBus ones.
1554
1555 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1556
1557         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1558         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1559
1560 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1561
1562         * dbus/dbus-connection.c: 
1563         (_dbus_connection_block_pending_call):
1564         Check to see if our data has already been read off the connection
1565         by another blocking pending call before we block in poll.
1566         (check_for_reply_and_update_dispatch_unlocked):
1567         Code taken from _dbus_connection_block_pending_call - checks for
1568         an already read reply and updates the dispatch if there is one.
1569
1570         * test/name-test/test-pending-call-dispatch.c:
1571         New test for making sure we don't get stuck polling a 
1572         dbus connection which has no data on the socket when
1573         blocking out of order on two or more pending calls.
1574
1575 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1576
1577         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1578         make/automake don't detect that we're talking about the same
1579         .lo file if I specify the full path to the source files.
1580
1581 2006-02-26  Havoc Pennington  <hp@redhat.com>
1582
1583         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1584
1585         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1586         session bus variable is unset, suggest "man dbus-launch" and "man
1587         dbus-daemon" to figure out how to fix the problem
1588
1589 2006-02-25  Havoc Pennington  <hp@redhat.com>
1590
1591         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1592         should make this thing use the new glib options parser
1593
1594 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1595
1596         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1597         .lo files taking moc sources.
1598
1599 2006-02-25  Havoc Pennington  <hp@redhat.com>
1600
1601         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1602         and install it as a public header
1603
1604 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1605
1606         * Released 0.61
1607
1608 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1609         
1610         * proxies.py: Fix the callchain
1611
1612 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1613         
1614         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1615
1616         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1617         dbus/dbus-sysdeps.c
1618
1619         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1620         call _dbus_group_info_free_allocated which causes infinite loop,
1621         correctly call _dbus_group_info_free
1622
1623 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1624
1625         * qt/qdbusinterface_p.h:
1626         * qt/qdbusinterface.cpp: Use the standard
1627         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1628         calls instead of creating one for us.
1629
1630         * qt/qdbusconnection_p.h:
1631         * qt/qdbusintegrator.cpp: Remove debugging code.
1632
1633         * qt/qdbusintegrator.cpp:
1634         * qt/qdbusmessage.cpp:
1635         * qt/qdbusmessage_p.h:
1636         * qt/qdbusmessage.h: Change the behaviour of automatic
1637         reply-sending: now a reply is always sent, unless the caller
1638         didn't request one or if the user slot has already sent one.
1639
1640 2006-02-16  Robert McQueen  <robot101@debian.org>
1641
1642         * configure.in: Patch from Debian packages by Sjoerd Simons
1643         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1644         arguments so it's possible to build both bindings in the
1645         same tree.
1646
1647         * qt/Makefile.am: Fix truncated value so that make dist works.
1648
1649 2006-02-16  Robert McQueen  <robot101@debian.org>
1650
1651         * acinclude.m4, configure.in: Patch from Brad Hards
1652         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1653         improving quoting, re-ordering a few checks, and a few other
1654         aesthetic tidy-ups.
1655
1656 2006-02-16  Robert McQueen  <robot101@debian.org>
1657
1658         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1659         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1660         assertion that the next element to read from the iter is fixed in
1661         size. This is not the case when you are at the end of the iter,
1662         because the next element type is INVALID.
1663
1664         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1665         a bogus assert which means that you may not initialise a 0-length
1666         string unless you provide a non-NULL pointer. This prevented
1667         you from marshalling messages containing zero-length arrays in
1668         some cases.
1669
1670         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1671         from Rob to correct bogus asserts when trying to demarshal an
1672         array and get_fixed_array got you 0 elements. Append nothing to
1673         the GArray in this case.
1674
1675         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1676         an empty array via the glib bindings. Without all of the above
1677         patches, this new test fails.
1678
1679 2006-02-16  Robert McQueen  <robot101@debian.org>
1680
1681         * glib/dbus-gmain.c: Make the previous commit compile.
1682
1683         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1684         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1685         specify sender_keyword="foo", path_keyword="bar" when adding
1686         a signal listener, so that you can bind to signals generically
1687         but still do something useful in your callback.
1688
1689         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1690         chars so that they're not cast to chars and made negative. Thanks
1691         to Jakub Stachowski for reporting this and testing the fix.
1692
1693 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1694
1695         * dbus/dbus-glib.h:
1696         * glib/dbus-gmain.h:
1697         (dbus_g_connection_open): new method for openning
1698         a connection to an arbitrary address in the glib bindings
1699
1700         * ChangeLog: checkin last entry which doesn't seem to be commited
1701
1702 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1703
1704         * tools/dbus-launch.c: Fixed sh syntax output
1705
1706 2006-02-13  Robert McQueen  <robot101@debian.org>
1707
1708         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1709         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1710         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1711         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1712         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1713         missing piece of the glib bindings jigsaw puzzle. This modifies
1714         the existing specialised types to have N type parameters (rather
1715         than the current 1 or 2 for arrays and dictionaries respectively).
1716         You can then use this to get a glib type to represent any arbitrary
1717         D-Bus struct type using dbus_g_type_get_struct. The only
1718         implementation of these types is with GValueArrays as before,
1719         but it's now possible to store these in arrays, emit them in
1720         signals, etc.
1721
1722 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1723
1724         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1725         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1726         <thiago.macieira at trolltech.com>
1727
1728 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1729
1730         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1731         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1732
1733 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1734
1735         * bus/connection.c (bus_connections_expect_reply): Make
1736         pending reply limit not common to all connections (Bug #5416)
1737         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1738
1739 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1740
1741         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1742
1743 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1744
1745         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1746         patch from Doug Goldstein <cardoe at gentoo.org>
1747
1748 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1749
1750         * mono/Arguments.cs: Fix a magic number in the mono bindings
1751         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1752
1753 2006-01-27  Robert McQueen  <robot101@debian.org>
1754
1755         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1756         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1757         when generating the client-side methods, instead of overloading
1758         CSymbol which broke everything horribly. My apologies.
1759
1760 2006-01-27  Robert McQueen  <robot101@debian.org>
1761
1762         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1763         by me and Rob Taylor to add a simple_free function to D-Bus map
1764         and collection types, which allows those types which can be freed
1765         with a GDestroyNotify (such as GHashTables and GArrays, but not
1766         GPtrArrays) to be stored as the values in hashtables.
1767
1768         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1769         Patch by Rob Taylor to add nested dicts to the glib tests to check
1770         the above code works, and appears not to leak when called repeatedly.
1771
1772 2006-01-27  Robert McQueen  <robot101@debian.org>
1773
1774         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1775         to free a D-Bus allocated string with dbus_free () instead of
1776         g_free ().
1777
1778 2006-01-27  Iain Holmes  <iain@openedhand.com>
1779
1780         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1781         method from being called multiple times.
1782
1783 2006-01-19  Robert McQueen  <robot101@debian.org>
1784
1785         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1786         <rob.taylor@collabora.co.uk> to add support for generating bindings
1787         to arrays that are represented as GPtrArrays rather than GArrays (ie
1788         size-variable things, such as strings, objects, structs, etc).
1789
1790 2006-01-05  Robert McQueen  <robot101@debian.org>
1791
1792         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1793         <ricardo.kekki@movial.fi> to make it possible to inherit from
1794         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1795         a private part, and moving the setting of the DBusGProxyManager into a
1796         connection property, allowing proper GObject construction.
1797
1798 2006-01-05  Robert McQueen  <robot101@debian.org>
1799
1800         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1801         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1802         annotations when generating glib client bindings.
1803
1804 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1805
1806         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1807
1808         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1809
1810 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1811
1812         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1813
1814 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1815
1816         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1817
1818 2005-12-19  Ross Burton  <ross@openedhand.com>
1819
1820         * doc/dbus-tutorial.xml:
1821         Document the Glib client-side bindings, and list all possible annotations.
1822
1823 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1824
1825         * dbus/bus.c (dbus_bus_release_name): Add documentation
1826
1827 2005-12-06  Robert McQueen  <robot101@debian.org>
1828
1829         * python/service.py: s/sucessful/successful/ so we're allocating to
1830         and reading from the same variable. Oops.
1831
1832 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1833
1834         * Released 0.60
1835
1836 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1837
1838         * test/qt/Makefile.am: build from srcdir
1839
1840         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1841         Note - this code is wrong and needs to be fixed by the Qt binding
1842         developers.  The flags should be treated as bitfields and not enums.
1843
1844         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1845
1846 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1847
1848         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1849           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1850           in production code
1851
1852 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1853
1854         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1855         method for getting messages off the bus in the absence of a
1856         mainloop.  This method is much like 
1857         dbus_connection_read_write_dispatch except it does not dispatch
1858         the messages to a registered filter function.  Instead it
1859         allows a developer to process messages by directly popping
1860         them off the bus.
1861
1862 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1863
1864         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1865         the parser to continue instead of returning error
1866         (bus_desktop_file_load): Do not free parser data when
1867         parse_section_start or parse_key_value fails because it was 
1868         already freed by parser_free (patch from Carlos Garcia Campos  
1869         <carlosgc at gnome.org>)
1870
1871 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1872
1873         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1874         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1875         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1876         test/test-segfault.c, test/test-utils.c,
1877         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1878         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1879         Various cleanup of dead code and compiler warnings (patch from
1880         Kjartan Maraas <kmaraas at gnome.org>) 
1881
1882 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1883
1884         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1885         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1886
1887 2005-11-27  Robert McQueen  <robot101@debian.org>
1888
1889         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1890         part of the preceding one. Oops. Merge patch by Johan Hedberg
1891         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1892         on big-endian platforms.
1893
1894         * test/python/test-client.py: Add some 16-bit integers to the test
1895         values.
1896
1897 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1898
1899         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1900         method return message for property getters
1901
1902 2005-11-27  Robert McQueen  <robot101@debian.org>
1903
1904         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1905         with type v of an instance of dbus.Variant(foo, type='x') caused
1906         it to be boxed twice before sending over the bus.
1907
1908         * python/dbus_bindings.pyx, python/service.py,
1909         test/python/test-client.py: Update the constants for the new
1910         request_name flags, and update comments/test cases now that queueing
1911         is the default action.
1912
1913 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1914
1915         * configure.in:
1916         - Change version to 0.60 for impending release
1917         - upped the sonames because of ABI and API breakage
1918
1919 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1920
1921         * configure.in: Add test/name-test/Makefile to the generated
1922         Makefile list
1923
1924         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1925         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1926         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1927         not to queue an ower if it can't be the primary owner
1928
1929         * bus/bus.h: Add new internal BusOwner struct
1930
1931         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1932         to bus_registry_ensure and don't set the prohibit_replacement flag
1933         since they are now set per BusOwner and not per name.
1934         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1935         that returns the list of connections in a name's connection queue
1936         
1937         * bus/services.c (struct BusService): remove prohibit_replacement field
1938         (struct BusOwner): new struct for keeping track of queued connections
1939         and their associated flags for the queue
1940         (struct BusRegistry): add a BusOwner memory pool
1941         (bus_registry_new): initialize the BusOwner memory pool
1942         (bus_registry_unref): free the BusOwner memory pool
1943         (_bus_service_find_owner_link): new internal method for
1944         searching the queue for a specific connection
1945         (bus_owner_set_flags): new method for adding setting the flags on a
1946         bus owner
1947         (bus_owner_new): new method that creates a BusOwner object from the
1948         pool and sets its flags
1949         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1950         (bus_registry_ensure): Add the flags parameter
1951         (bus_registry_acquire_service): Switch from using raw connections to
1952         using the BusOwner struct
1953         Add new state machine for dealing with the new set of flags
1954         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1955         cancel_ownership, free_ownership_cancel_data, 
1956         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1957         restore_ownership, free_ownership_restore_data, 
1958         add_restore_ownership_to_transaction): Switch to using BusOwner 
1959         instead of raw connections
1960         (bus_service_add_owner): Add flags parameter
1961         Switch to using BusOwner instead of raw connections
1962         Add state machine for dealing with the new set of flags
1963         (bus_service_swap_owner): Swaps the first and second owners in the
1964         queue.  Used to make sure proper signals are sent when a service looses 
1965         or gains primary ownership.  We never insert an owner at the top of the
1966         queue.  Instead we insert it in the second position and then swap.
1967         (bus_service_remove_owner): Remove the owner from the queue sending
1968         out the NameLost and NameOwnerChanged signals if the we were the 
1969         primary owner
1970         (bus_service_get_primary_owners_connection): New method that extracts
1971         the connection from the primary owner
1972         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1973         connection
1974         (bus_service_get_allow_replacement): Changed from the old 
1975         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1976         primary owner and returns if it can be replaced or not
1977         (bus_service_set_prohibit_replacement): removed
1978         (bus_service_has_owner): returns TRUE if and owner with
1979         the specified connection exists in the queue
1980         
1981         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1982         method that only compiles if tests are enabled.  Allows us to get the 
1983         unique name of a connection so we can check it against the queue when
1984         doing regression tests
1985
1986         * bus/activation.c (bus_activation_send_pending_auto_activate),
1987         bus/dispatch.c (bus_dispatch),  
1988         bus/driver.c (bus_driver_handle_get_service_owner, 
1989         bus_driver_handle_get_connection_unix_user, 
1990         bus_driver_handle_get_connection_unix_process_id,
1991         bus_driver_handle_get_connection_selinux_security_context),
1992         bus/signals.c (connection_is_primary_owner): 
1993         use bus_service_get_primary_owners_connection instead of
1994         bus_service_get_primary_owner
1995
1996         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1997         _dbus_listen_unix_socket): Calculate the length of the socket
1998         path and use that instead of using a fixed length which was
1999         causing socket names to contain many trailing Nul bytes.
2000
2001         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2002         (dbus_g_method_get_sender): New method for extracting the sender 
2003         from a DBusGMethodInvocation
2004         (dbus_g_method_return_get_reply): changed name to 
2005         dbus_g_method_get_reply
2006         (dbus_g_method_return_send_reply): changed name to
2007         dbus_g_method_send reply
2008
2009         * doc/dbus-specification.xml: New docs that describe how the new
2010         queueing system works and talks about the changes to the how
2011         we specify socket names
2012
2013         * glib/examples/example-service.c, 
2014         glib/examples/example-signal-emitter.c,
2015         glib/examples/statemachine/statemachine-server.c:
2016         Changed the RequestName flags to the new system
2017
2018         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2019         regression test suite for testing various states of the new
2020         queueing system
2021         
2022 2005-11-15  Robert McQueen  <robot101@debian.org>
2023
2024         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2025         Taylor to add two methods, dbus_g_method_return_get_reply and
2026         dbus_g_method_return_send_reply, to allow you to get the reply
2027         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2028         and send it. The GLib bindings can't marshal a return value of
2029         something like a(s) if the array is empty - ultimately they should be
2030         made to heed the signature of the out arguments as the Python bindings
2031         now can, but this is a workable interim solution which might have
2032         other applications.
2033
2034 2005-11-15  Robert McQueen  <robot101@debian.org>
2035
2036         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2037         method to org.freedesktop.DBus to release a bus name or give up
2038         waiting in the queue for it.
2039
2040         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2041         dbus_bus_release_name method to send the ReleaseName method calls.
2042         Add constants for the return values to dbus/dbus-shared.h.
2043
2044         * doc/dbus-specification.xml: Document the new ReleaseName method
2045         in the specification.
2046
2047         * python/dbus_bindings.pyx: Add a low-level python binding for the
2048         release name method.
2049
2050         * python/exceptions.py, python/service.py: Make freeing BusName
2051         objects release the name. Add a NameExistsException, and fix a
2052         bug with creating UnknownMethodException.
2053
2054         * test/python/test-client.py: Add tests for freeing BusName
2055         objects causing names to be released.
2056
2057 2005-11-14  Robert McQueen  <robot101@debian.org>
2058
2059         * python/service.py: Include the traceback in the error reply when we
2060         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2061
2062 2005-11-14  David Zeuthen  <davidz@redhat.com>
2063
2064         Patch from Timo Hoenig <thoenig@suse.de>.
2065
2066         * bus/bus.c: I've recently investigated why the automatic reload
2067         of configuration files does not work as expected.
2068
2069         Currently, reloading configuration files does only work when
2070         running dbus-daemon with --nodaemon.  If we are running as daemon
2071         we're hitting a dnotify bug once we fork the process.
2072
2073         We're initializing the dnotify fds before calling fork().  Once
2074         the child process forked it does still have the fds (and they
2075         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2076         getting SIGIO as changes are made to the configuration files.
2077
2078         The attached patch moves the initialization of the dnotify fds to
2079         process_config_postinit().  This is safe for all current code
2080         paths and solves the dnotify disfunction.  If we're running
2081         dbus-daemon as daemon the fds for dnotify are now being
2082         initialized after fork() for the child process.
2083
2084         * configure.in: The current configure.in check for dnotify probes
2085         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2086         match for 'xlinux', too. Additionally I have adapted the configure
2087         option's style to match with the others.
2088
2089 2005-11-14  Robert McQueen  <robot101@debian.org>
2090
2091         * python/decorators.py, python/service.py: Add a new argument to the
2092         dbus.service.method decorator called sender_keyword, which if set,
2093         specifies the name of an argument which will be provided the bus
2094         name of the method caller.
2095
2096         * test/python/test-client.py, test/python/test-service.py: Add a
2097         method and test to check the sender_keyword functionality.
2098
2099 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2100
2101         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2102         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2103         Simons <sjoerd at luon.net>)
2104
2105         * AUTHORS: Add Robert McQueen for his work on the Python
2106         Bindings and other parts of D-Bus
2107
2108 2005-11-07  Robert McQueen  <robot101@debian.org>
2109
2110         * python/decorators.py: Change emit_signal function to use the
2111         signature annotation of the signal when marhsalling the arguments from
2112         the service. Fix a bug where the code checking signature length
2113         against argument length referenced the wrong variable.
2114
2115         * python/introspect_parser.py: Avoid adding the type signature of
2116         signal arguments to any methods which occur after them in the
2117         introspection data (!) by making the parser a little more careful
2118         about its current state.
2119
2120         * python/service.py: Remove debug prints from last commit (again :D).
2121
2122         * test/python/test-client.py, test/python/test-service.py: Add test
2123         signals with signature decorators to test the strict marshalling code
2124         gives errors at the right time. Could do with checking the signals
2125         actually get emitted too, given that the test does nothing with
2126         signals at the moment...
2127
2128 2005-11-07  Robert McQueen  <robot101@debian.org>
2129
2130         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2131         instances to stop madness of creating new instances representing
2132         the same bus connection all the time, rendering any tracking of
2133         match rules and bus names quite meaningless. Caught a bug where
2134         the private argument to SessionBus() and friends was being passed
2135         in as use_default_mainloop by mistake. Still some problems with
2136         multiple dbus_binding.Connection instances representing the same
2137         low-level connection (eg when you use both SessionBus() and
2138         StarterBus() in same process), but it's a lot better now than it
2139         was.
2140
2141         * python/dbus_bindings.pyx: Add constants with the return values
2142         for bus_request_name().
2143
2144         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2145         and retrieve the same instances for the same name, so deletion can be
2146         done with refcounting. Also now throws some kind of error if you
2147         don't actually get the name you requested, unlike previously...
2148
2149         * test/python/test-client.py: Add tests for instance caching of buses
2150         and bus name objects.
2151
2152 2005-11-04  Robert McQueen  <robot101@debian.org>
2153
2154         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2155         marshalling of boolean values. Add some booleans to the values in
2156         the test client.
2157
2158         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2159         argument to the dbus.service.method decorator, which allows you to
2160         name arguments to take two callback functions for replying with
2161         return values or an exception.
2162
2163         * test/python/test-client.py, test/python/test-service.py: Add test
2164         case using asynchronous method reply functions, both return values and
2165         errors, and from within both the function itself and from a mainloop
2166         callback.
2167
2168         * python/decorators.py, python/service.py: Perform checking that the
2169         number of method/signal arguments matches the number of types in the
2170         signature at class loading time, not when you first introspect the
2171         class.
2172
2173         * python/service.py: Remove debug print left by the last commit.
2174
2175 2005-11-03  Robert McQueen  <robot101@debian.org>
2176
2177         * python/service.py: Heavy refactoring of method invocation, with
2178         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2179         in favour of a new _message_cb that uses seperate functions for
2180         looking up the method to call, marshalling the return values, and
2181         sending exceptions as errors, and is easier to follow as a
2182         consequence.  Fixes some corner cases about returning things that
2183         don't match your declared out_signature, allows exceptions to define
2184         _dbus_error_name and have it be sent over the bus as the error name,
2185         and paves the way for cool stuff like heeding the message no reply
2186         flag, asynchronous method implementations, informing the method of the
2187         sender, and including backtraces in the error messages.
2188
2189         * test/python/test-client.py: Catch and print exceptions thrown in the
2190         async callback tests, rather than passing them to the low-level
2191         bindings to be ignored in a noisy and frustrating manner.
2192
2193 2005-11-03  Robert McQueen  <robot101@debian.org>
2194
2195         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2196         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2197         tweak others to be consistent.
2198
2199         * test/python/test-client.py: Tweak output of testInheritance.
2200
2201 2005-10-29  Robert McQueen  <robot101@debian.org>
2202
2203         * python/service.py: Major changes to allow multiple inheritance
2204         from classes that define D-Bus interfaces:
2205         
2206          1. Create a new Interface class which is the parent class of
2207             Object, and make the ObjectType metaclass into InterfaceType.
2208         
2209          2. Patch written with Rob Taylor to replace use of method_vtable
2210             with code that walks the class's __MRO__ (method resolution order)
2211             to behave like Python does when invoking methods and allow
2212             overriding as you'd expect. Code is quite tricky because
2213             we have to find two methods, the one to invoke which has the
2214             right name and isn't decorated with the /wrong/ interface,
2215             and the one to pick up the signatures from which is decorated
2216             with the right interface.
2217         
2218             The same caveats apply as to normal multiple inheritance -
2219             this has undefined behaviour if you try and inherit from two
2220             classes that define a method with the same name but are
2221             decorated with different interfaces. You should decorate
2222             your overriding method with the interface you want.
2223         
2224          3. Replace grungy introspection XML generation code in the metaclass
2225             with dictionaries that cope correctly with multiple inheritance
2226             and the overriding of methods. This also uses the signature
2227             decorations to provide correct introspection data, including
2228             the debut appearance of the types of your return values. :D
2229
2230         * test/python/test-client.py, test/python/test-service.py: Add a test
2231         case to try invoking an method that overrides one inherited from a
2232         D-Bus interface class.
2233
2234 2005-10-29  Robert McQueen  <robot101@debian.org>
2235
2236         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2237         Add checking for the end of struct character when marshalling a
2238         struct in MessageIter.append_strict.
2239
2240         * python/examples/example-service.py,
2241         python/examples/gconf-proxy-service.py,
2242         python/examples/gconf-proxy-service2.py: Update to use gobject
2243         mainloop directly rather than appearing to depend on gtk.
2244
2245         * python/test/test-client.py, python/test/test-server.py: Remove
2246         obsolete and broken test scripts for old bindings. We have up to date
2247         and working tests in test/python/.
2248
2249 2005-10-29  Robert McQueen  <robot101@debian.org>
2250
2251         * python/decorators.py: Add optional arguments to the method and
2252         signal decorators to allow you to specify the signature of arguments
2253         and return values. Preserve the doc strings of signal functions in the
2254         decorated version, for pydoc and friends.
2255
2256         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2257         parse_signature_block function with an iterable dbus.Signature()
2258         type. Fix a bug in MessageIter.append_strict where you could append
2259         anything by claiming it was a string.
2260
2261         * python/service.py: Use the out_signature decoration on methods to
2262         marshal return values, meaning you no longer require dbus.Array()
2263         or dbus.Dictionary() to indicate the type when returning empty
2264         arrays or dictionaries. Fix a bug where exceptions which are defined
2265         in __main__ are not turned into error replies.
2266
2267         * test/python/test-client.py, test/python/test-service.py: Add test
2268         for correct marshalling of return values according to out_signature.
2269         Fix a bug in the async call test where the error_handler is missing a
2270         self argument.
2271
2272 2005-10-29  Robert McQueen  <robot101@debian.org>
2273
2274         * glib/Makefile.am, glib/examples/Makefile.am,
2275         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2276         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2277
2278         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2279
2280         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2281         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2282         the command line.
2283
2284 2005-10-27  Ross Burton  <ross@openedhand.com>
2285
2286         * dbus/dbus-marshal-header.c:
2287         Remove dead code.
2288
2289         * glib/dbus-gobject.c:
2290         Stop compiler warning.
2291
2292 2005-10-25  Ross Burton  <ross@openedhand.com>
2293
2294         * dbus/dbus-auth.c:
2295         * dbus/dbus-server-unix.c:
2296         * dbus/dbus-transport-unix.c:
2297         * glib/dbus-gmain.c:
2298         * glib/dbus-gobject.c:
2299         Add some const keywords.
2300
2301 2005-10-25  Ross Burton  <ross@openedhand.com>
2302
2303         * doc/dbus-specification.xml:
2304         Document the NoReply annotation.
2305
2306         * glib/dbus-binding-tool-glib.h:
2307         * glib/dbus-binding-tool-glib.c:
2308         Respect the NoReply annotation.
2309
2310 2005-10-24  Robert McQueen <robot101@debian.org>
2311
2312         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2313         derive from unicode instead of str, and encode/decode UTF-8 when
2314         marshalling/unmarshalling bus messages
2315
2316         * python/introspect_parser.py: encode introspection data as UTF-8
2317         before passing the buffer into libxml2
2318
2319         * test/python/test-client.py: add unicode test strings
2320
2321         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2322         ignore generated python test files
2323
2324 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2325
2326         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2327         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2328         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2329
2330         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2331         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2332         when constructing struct signatures
2333
2334         * python/_dbus.py (Bus): handle private connections using the
2335         private keyword in the constructor. defaults to private=False
2336         (Bus::close): new method to close a connection to the bus
2337
2338         * python/dbus_bindings.pyx (Connection::close): renamed method
2339         was previously called disconnect
2340         (bus_get): now supports getting a private connection
2341
2342         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2343         keyword is set to True.  if it is, execute the method without waiting
2344         for a reply
2345         (ProxyObject::_introspect_execute_queue): new method for executing
2346         all the pending methods that were waiting for the introspect to
2347         finish.  this is called when introspect either succeeds or fails
2348         (ProxyObject::_introspect_error_handler): call queued methods
2349
2350 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2351
2352         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2353         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2354
2355         * python/service.py (Object::_message_cb): handle exceptions correctly
2356         by sending them over the wire to the calling app.  This makes sure
2357         the client returns immediately instead of waiting the 15 seconds to
2358         timeout.
2359
2360         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2361         Add a test to benchmark how long it takes to introspect a service and 
2362         call a method which returns a large element (pretty fast)
2363
2364         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2365         method which pushes a lot of data
2366
2367 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2368
2369         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2370         reclaim memory outside of the loop and use del istead of just setting
2371         the key to None
2372
2373 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2374
2375         * python/service.py (ObjectType::_reflect_on_signal): Always close
2376         signal tag even when there are no arguments
2377
2378 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2379
2380         * configure.in: Set mono, mono-docs and Qt3 to default
2381         to no instead of auto when building.  These bindings do not
2382         have full time maintainers and will not be supported for the
2383         1.0 release.
2384
2385 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2386
2387         patches from Michael Krivoruchko <misha at sun.com>: 
2388         
2389         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2390         _dbus_connection_message_sent, 
2391         _dbus_connection_send_preallocated_unlocked_no_update, 
2392         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2393         is NULL when calling _dbus_verbose
2394
2395         * configure.in: check for functions getpeerucred and getpeereid
2396
2397         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2398         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2399         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2400         Patch was only tested on Solaris 10 x86 so it might be issues
2401         with other platforms (i.e. BSDs and MacOSX)
2402         
2403
2404 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2405
2406         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2407         instead of marshal basic so we can handle recursive types in a variant
2408
2409         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2410         in variants
2411
2412         * test/glib/test-service-glib.c, test-service-glib.xml
2413         (my_object_echo_variant [EchoVariant], 
2414         my_object_process_variant_of_array_of_ints123
2415         [ProcessVariantOfArrayOfInts123]): 
2416         Add two test methods
2417
2418         * python/introspect_parser.py: New module for parsing introspect
2419         data.
2420
2421         * python/dbus_bindings.pyx:
2422         (various places): when throwing errors fix to use errormsg instead 
2423         of message local variable because Pyrex can get confused with other 
2424         message variables (initial patch by Robert McQueen 
2425         <robert.mcqueen at collabora.co.uk>)
2426         (MessageIter::parse_signature_block): new method for getting the next
2427         block in a signiture.
2428         (MessageIter::append_strict): new method for appending values strictly
2429         using the passed in signature instead of guessing at the type
2430         (MessageItter:: append_dict, append_struct, append_array): use 
2431         signatures to marshal children if the signature is available
2432         
2433         * python/exceptions.py (IntrospectionParserException): new exception
2434
2435         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2436         introspected signatures if available, else we fall back to the
2437         old way of doing things.
2438         (ProxyObject::_introspect_reply_handler ): parse introspection data
2439         
2440         * python/service.py (ObjectType::_reflect_on_method): Properly
2441         terminate <method> if there are no args in the reflection data
2442
2443         * test/python/test-client.py: add tests for talking with the GLib
2444         test server.  This gives us better coverage for introspection since
2445         python to python will always generate arguments as variants.  It also
2446         allows us to test the robustness of the GLib bindings and interlanguage
2447         communications.
2448
2449         
2450 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2451
2452         * bus/driver.c (bus_driver_handle_introspect): Add signals
2453         to the introspect data. (patch from Daniel P. Berrange 
2454         <dan at berrange.com>)
2455
2456         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2457         
2458         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2459         _dbus_connection_run_builtin_filters): Changed these to
2460         be unlock_no_update functions and call 
2461         _dbus_connection_send_unlocked_no_update instead of
2462         dbus_connection_send to avoid locking errors.
2463         
2464         * doc/TODO: Removed the make Ping test TODO
2465         
2466 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2467
2468         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2469         We now copy the message from a DBusError and then free 
2470         the error object befor throwing the error
2471
2472         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2473         DBusBindingOutputMode enum which was causing a warning.
2474         #include <time.h> so using time_t is explicitly defined
2475
2476 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2477
2478         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2479         - dbus/dbus-bus.c
2480         (internal_bus_get): new method that take over the heavy lifting
2481         of dbus_bus_get and adds the ability to get a private connection
2482         to the bus
2483         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2484         interface as in previous versions
2485         (dbus_bus_get_private): new method that is a wrapper to 
2486         internal_bus_get to get a private connection to the bus
2487
2488         - dbus/dbus-bus.h
2489         (dbus_bus_get_private): add as a public libdbus interface
2490
2491         - dbus-1.pc.in: output system_bus_default_address and 
2492         sysconfdir variables so apps can use them when compiling
2493
2494 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2495         * dbus/qt: New Qt bindings
2496
2497 2005-09-12  Waldo Bastian  <bastian@kde.org>
2498
2499         * dbus/dbus-marshal-validate.c,
2500         doc/dbus-specification.xml, test/Makefile.am,
2501         test/test-names.c: allow hyphens in bus names.
2502
2503 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2504
2505         * test/data/auth/fallback.auth-script: we don't
2506         retry the EXTERNAL method when we know its going
2507         to fail anymore.
2508
2509 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2510
2511         * dbus/dbus-connection-internal.h: rename
2512         (add|remove|toggle)_(watch|timeout) to unlocked()
2513         
2514         * dbus/dbus-connection.c: ditto.
2515         
2516         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2517         Update some callers for the renaming.
2518
2519 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2520
2521         * dbus/dbus-auth.c: (record_mechanisms): don't
2522         retry the first auth mechanism because we know
2523         we're just going to get rejected again.
2524         
2525         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2526         Fix thinko ... and what a nasty little bugger to
2527         track down you were ...
2528
2529         * dbus/dbus-connection.c:
2530         (_dbus_connection_add_watch),
2531         (_dbus_connection_remove_watch): add note about
2532         these needing the connection to be locked.
2533         (_dbus_connection_get_dispatch_status_unlocked):
2534         set status to DATA_REMAINS when we queue the
2535         disconnected message.
2536         
2537         * bus/dispatch.c:
2538         (bus_dispatch): fix warning.
2539         (check_existent_service_no_auto_start):
2540         Expect ChildSignaled error too.
2541         (check_existent_hello_from_self): fix another
2542         couple of warnings.
2543         
2544 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2545
2546         Patches from James Willcox <snorp@snorp.net>
2547
2548         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2549
2550         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2551         support array "out" parameters.
2552
2553         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2554         for 16-bit int support.
2555
2556 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2557
2558         * Released 0.50
2559
2560         * Patch from Steve Grubb:
2561         - bus/activation.c (bus_activation_service_reload_test): clean up
2562         some indentation
2563         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2564         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2565         buffer overflows in the test suite.  This is non critical because
2566         it can not be exploited and this code is only run when doing a 
2567         make check.
2568
2569         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2570         - configure.in: Don't check and link against kdecore, only qt headers
2571         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2572         - gcj/org/freedesktop/dbus/Makefile.am:
2573         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2574         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2575         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2576         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2577         - tools/Makefile.am: Add platform extentions to binaries 
2578         (i.e. .exe on windows)
2579
2580         * configure.in: 
2581         - Make it so if no suitable version of python is found we only 
2582         disable building python instead of exiting the configure script
2583         - Require version 2.4 of glib for glib bindings
2584         - Up version to 0.50
2585
2586         * python/__init__.py: Sync version with libdbus to (0,50,0)
2587         
2588 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2589
2590         * dbus/dbus-object-tree.c (find_subtree_recurse):
2591         a couple of optimizations (bug #710):
2592         - do a binary search in the tree
2593         - insert a new child at the right place directly, no need for
2594           qsort anymore
2595         - do the "double alloc" thing when allocating children
2596
2597 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2598
2599         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2600
2601         * python/dbus_bindings.pyx: Memory management foo
2602         (global): remove hacky _user_data_references global list
2603         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2604         tuples. Unref user_data
2605         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2606         (Connection::__del__): Remove and replace with __dealloc__ method
2607         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2608         to keep tuple from being deallocated instead of the global var hack
2609         (Connection::register_object_path): Stuff user_data into a tuple.
2610         Use Py_INCREF to keep tuple from being deallocated instead of the 
2611         global var hack
2612         (Connection::register_fallback): Stuff user_data into a tuple.
2613         Use Py_INCREF to keep tuple from being deallocated instead of the 
2614         global var hack
2615         (GIL_safe_pending_call_notification): Don't unref the message
2616         because it gets unreffed when going out of scope.  Py_XDECREF
2617         the user_data
2618         (PendingCall::__del__): Remove and replace with __dealloc__ method
2619         (PendingCall::set_notify): ref the pending call because we will
2620         need it to stick around for when the notify callback gets called
2621         (Message::__del__): Remove and replace with __dealloc__ method
2622
2623         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2624         gthreads_init to match up with the dbus call
2625
2626         * python/glib.py (init_threads): Changed to threads_init to match
2627         up with gobject.threads_init().  init_threads is kept for backwards
2628         compat but will most likely be deprecated in the future
2629
2630         * test/python/test-client.py: 
2631         - revamp to use Python's unittest functionality
2632         - add async call tests
2633         - setup threads in glib and dbus so we make sure locks are working
2634         
2635 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2636
2637         * python/dbus_bindings.pyx 
2638         (_pending_call_notification, cunregister_function_handler, 
2639         cmessage_function_handler): All callback functions have been rearranged 
2640         to workaround a bug in Pyrex when working with the GIL which is Python's 
2641         global lock when dealing with threads.  They have been split into
2642         a wrapper function (which assumes the name of the old function) and
2643         a _GIL_safe_<function name> function which contains the functionality
2644         of the old function.  This ensures that Pyrex does not write code
2645         the lock is released.
2646         
2647
2648 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2649
2650         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2651         GIL global lock when calling back into Python
2652
2653 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2654
2655         * Release 0.36.2
2656
2657         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2658
2659         * bus/policy.c (bus_policy_allow_user): change default "user is
2660         allowed" to be "user has same uid as the bus itself"; any
2661         allow/deny rules will override.
2662
2663         * bus/session.conf.in: don't allow all users, since now by default
2664         the user that ran the bus can connect.
2665
2666 2005-08-26  Colin Walters  <walters@verbum.org>
2667
2668         * tools/dbus-print-message.c (print_message): Flush stdout
2669         after printing a message, so that redirecting to a file, then
2670         hitting Ctrl-C works.
2671
2672 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2673
2674         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2675         (EmptyMessage): new class that subclasses Message.  This is a workaround
2676         to a Pyrex bug that fails to call __del__ when the Message object goes out
2677         of scope.  For some reason subclassing Message fixes this bug
2678         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2679         - s/Message(_create=0)/EmptyMessage everywhere else
2680         
2681         * test/python/test-{server|client}.py: add the python/.libs directory
2682         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2683         get picked up from the system
2684
2685 2005-08-25  Colin Walters  <walters@verbum.org>
2686
2687         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2688         to Ryan Lortie for the suggestion.
2689
2690 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2691
2692         * test/python: Add python regression test
2693
2694         * configure.in: Add test/python/Makefile
2695
2696         * test/Makefile.am: Add the python directory to SUBDIRS
2697
2698 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2699
2700         * Release 0.36.1
2701
2702         * python/_dbus.py: 
2703         (Interface::connect_to_signal): propigate keywords for match on args
2704         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2705
2706         * python/proxies.py (ProxyObject::connect_to_signal):
2707         propigate keywords for match on args
2708
2709         * Makefile.am: point everything to pyexecdir since python borks
2710         on multilib
2711
2712 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2713
2714         * Release 0.36
2715
2716 2005-08-23  Colin Walters  <walters@verbum.org>
2717
2718         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2719
2720 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2721
2722         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2723         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2724         of defining DBusConnection ourselves.
2725
2726 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2727
2728         * python/dbus.pth: New path file to fix up problems when installing
2729         c libraries to lib64 and python files to lib.
2730
2731         * python/Makefile.am: install dbus.pth in the correct spot
2732
2733 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2734         * ChangeLog: clean up my last entry a bit
2735
2736         * doc/introspect.xsl: New stylesheet for converting introspection data
2737         into browser renderable xhtml. Contributed by Lennart Poettering.
2738
2739         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2740         Poettering.
2741
2742         * doc/dbus-tutorial.xml: 
2743         - Add Colin Walter to the Authors section for authoring the GLib
2744         section
2745         - Add descriptions of the new signature and type functionality
2746         in the Python complex type mapping section
2747         - Add a sidenote on the new args matching functionality in 
2748         the Python bindings
2749         - Fixed up some of the examples to use the gobject.MainLoop
2750         instead of gtk.main
2751         
2752         * python/_dbus.py:
2753         (Bus::_create_args_dict): New. Converts a hash of arg matches
2754         to a more useable format
2755         (Bus::add_signal_receiver): add a **keywords parameter for catching
2756         arg match parameters
2757         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2758         arg match parameters
2759         
2760         * python/matchrules.py:
2761         (MatchTree::exec_matches): Check for arg matches
2762         (SignalMatchRule::add_args_match): New method
2763         (SignalMatchRule::execute): Added args_list parameter as an optimization
2764         so we don't have to marshal the args more than once
2765         (SignalMatchRule::match_args_from_list): New method that checks to see
2766         if the rule's arg matches match an argument list.  Only arguments
2767         set in the rule are checked.
2768         (SignalMatchRule::match_args_from_rule): New method that checks to see
2769         if the rule's arg matches match another rule's.  All args have to match
2770         in order for this method to return true.  If either rule has more args
2771         then it is not a match.
2772         (SignalMatchRule::is_match): Add args match
2773         (SignalMatchRule::repr): Add args to the final output if they exist
2774
2775 2005-08-17  Ross Burton  <ross@burtonini.com>
2776
2777         * glib/dbus-gproxy.c:
2778         (dbus_g_proxy_call_no_reply): unref the message once sent.
2779         (dbus_g_proxy_call): protect against NULL proxy.
2780
2781 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2782
2783         * python/__init__.py: Version updated (0, 43, 0)
2784         
2785         * python/dbus_bindings.pyx: 
2786         - Fixed type objects to have self passed into __init__
2787         - Added the Variant type
2788         - Add the ability to specify types or signatures for Array, Variant 
2789         and Dictionary
2790         (Connection::send_with_reply_handlers): return a PendingCall object
2791         (_pending_call_notification): handle the case when an error is returned 
2792         without an error message in the body
2793         (MessageIter::get_boolean): return True or False instead of an integer
2794         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2795         and add checks for objects with embeded signatures or types (Array, 
2796         Variant and Dictionary)
2797         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2798         (MessageIter::append_dict): handle embeded types or signatures
2799         (MessageIter::append_array): handle embeded types or signatures
2800         (MessageIter::append_variant): new method
2801         
2802         * python/proxies.py:
2803         (DeferedMethod): New. Dummy executable object used when queuing calls 
2804         blocking on introspection data
2805         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2806         or shorter timeouts for method calls
2807         (ProxyObject): Add first pass at an introspection state machine
2808         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2809         introspection. 
2810         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2811         the usual mechanisms for sending messages.  This is to avoid a deadlock
2812         where the Intospect call would be queued waiting for the Introspect 
2813         call to finish ;-)
2814         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2815         when introspection returns with no error
2816         (ProxyObject::_introspect_error_handler): New.  This method is called 
2817         when introspection encounters an error
2818         (ProxyObject::__getattr__): Code to handle different introspection 
2819         states.  Queue async calls or block blocking calls if we are 
2820         introspecting.  Pass through as normal if we are not or are done with 
2821         introspecting.
2822         
2823         * python/service.py: Import signal and method from decorators.py
2824
2825         * python/types.py: Add Variant type
2826
2827 2005-08-16  Colin Walters  <walters@verbum.org>
2828
2829         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2830         DBusError message is NULL.
2831
2832 2005-08-09  Havoc Pennington  <hp@redhat.com>
2833
2834         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2835         malloc'd copy of the name parameter
2836
2837 2005-08-09  Havoc Pennington  <hp@redhat.com>
2838
2839         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2840         warning if the reply serial is set to 0
2841
2842 2005-08-04  Colin Walters  <walters@verbum.org>
2843
2844         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2845         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2846         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2847         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2848         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2849         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2850         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2851         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2852         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2853         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2854         
2855         Prefix name with _ to ensure they're not exported.  All callers
2856         updated.
2857
2858         * glib/dbus-gvalue.c (typecode_to_gtype)
2859         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2860         (signature_iter_to_g_type_dict)
2861         (signature_iter_to_g_type_array)
2862         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2863         (dbus_gtypes_from_arg_signature):
2864         Move to dbus-gsignature.c.
2865
2866         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2867         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2868         (dbus_binding_tool_output_glib_client): Ditto.
2869
2870         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2871         and dbus-gsignature.h
2872
2873         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2874         unused variable.
2875
2876 2005-08-03  Colin Walters  <walters@verbum.org>
2877
2878         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2879         catch any incompatible changes accidentally made.
2880
2881 2005-08-03  Havoc Pennington  <hp@redhat.com>
2882
2883         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2884         typo, from Julien Puydt
2885
2886         * bus/connection.c (bus_connection_disconnected): we were always
2887         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2888
2889 2005-08-01  Colin Walters  <walters@verbum.org>
2890
2891         Patch from Joe Markus Clarke:   
2892         
2893         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2894         use-after-free.
2895
2896 2005-08-01  Colin Walters  <walters@verbum.org>
2897         
2898         Patch from Joe Markus Clarke:   
2899         
2900         * tools/dbus-send.c (main): 
2901         
2902         Don't use C99 style initializers (bug #3933).
2903         
2904 2005-08-01  Colin Walters  <walters@verbum.org>
2905
2906         Patch from Joe Markus Clarke:   
2907
2908         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2909         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2910         * glib/dbus-gobject.c (write_interface):
2911
2912         Don't use C99 style initializers (bug #3933).
2913
2914 2005-07-31  Havoc Pennington  <hp@redhat.com>
2915
2916         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2917         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2918
2919 2005-07-30  Havoc Pennington  <hp@redhat.com>
2920
2921         * fix a bunch of Doxygen warnings and mistakes
2922
2923 2005-07-30  Havoc Pennington  <hp@redhat.com>
2924
2925         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2926         DBUS_BUILD_TESTS since it's now used in production code
2927
2928 2005-07-29  Havoc Pennington  <hp@redhat.com>
2929
2930         * test/glib/test-profile.c (write_junk): initialize the junk
2931         buffer so valgrind doesn't have a breakdown
2932
2933 2005-07-29  Havoc Pennington  <hp@redhat.com>
2934
2935         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2936         (match_rule_matches): remove unused arg
2937         (test_matching): add tests for match_rule_matches()
2938
2939         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2940         do arg0='foo' arg5='bar' in the match rules
2941         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2942
2943         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2944
2945 2005-07-29  Ross Burton  <ross@openedhand.com>
2946
2947         * dbus/dbus-connection.c:
2948         Don't create a DBusCondVar which is never used.
2949
2950 2005-07-27  Ross Burton  <ross@openedhand.com>
2951
2952         * dbus/dbus-message.c:
2953         Reduce the size of the maximum cached message to 10K.
2954
2955 2005-07-25  Ross Burton  <ross@openedhand.com>
2956
2957         * glib/dbus-gproxy.c:
2958         Remove matches when all proxies are unregistered.
2959
2960 2005-07-24  Colin Walters  <walters@verbum.org>
2961
2962         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2963         typedata; recursive arrays won't have it.
2964
2965         * test/glib/test-dbus-glib.c:
2966         * test/glib/test-service-glib.c:
2967         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2968         
2969 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2970
2971         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2972         proxies.py, service.py: Cleanup of code after running it through the
2973         pyflakes code checker mostly dealing with undefined names.  
2974         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2975
2976 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2977
2978         * NEWS: Update to 0.35.2
2979
2980 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2981
2982         * python/_dbus.py: Remove import of the dbus.services
2983         module as it no longer exists (patch from Dimitur Kirov)
2984
2985         * python/service.py (Object::__init__): Fixed typo
2986         s/name/bus_name (patch from Dimitur Kirov)
2987
2988         * python/examples/example-signal-emitter.py: import dbus.glib
2989         to get the main loop and use glib mainloop instead of gtk so
2990         X doesn't have to be running.
2991
2992         * python/examples/example-signal-recipient.py: import dbus.glib
2993         to get the main loop and use glib mainloop instead of gtk so
2994         X doesn't have to be running. Import the decorators module
2995         directly.
2996
2997         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2998         didn't pick up on but are needed to build
2999
3000         * configure.in: upped version to 0.35.2
3001
3002         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3003         added Colin Walters' SELinux API rename patch from head 
3004         s/unix sercurity context/selinux security context/
3005
3006 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3007
3008         * python/Makefile.am: dbus_binding.pxd.in should be included 
3009         in EXTRA_DIST not dbus_binding.pxd
3010         fix up $(srcdir) hopefully for the last time
3011
3012         * NEWS: Update to 0.35.1
3013
3014 2005-07-16  Colin Walters  <walters@verbum.org>
3015
3016         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3017         from bus_driver_handle_get_connection_unix_security_context.  Update for
3018         error usage.
3019         (message_handlers): Update for renames.
3020
3021         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3022         _dbus_string_init failure correctly.
3023         (bus_selinux_append_context): Convert SID to context.  Append it
3024         as a byte array.
3025         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3026         hasn't been called.
3027
3028         * bus/selinux.h: Update prototype.
3029
3030         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3031         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3032
3033 2005-07-15  Colin Walters  <walters@verbum.org>
3034
3035         * doc/TODO: Add note about convenience wrappers.
3036
3037 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3038
3039         * NEWS: Update to 0.35
3040
3041 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3042
3043         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3044         so distcheck doesn't fail
3045
3046         * glib/examples/Makefile.am: Add example-service.xml and 
3047         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3048
3049         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3050         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3051
3052         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3053         compiler looks in the right places during distcheck
3054
3055 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3056
3057         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3058         to fail
3059
3060 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3061
3062         * python/examples/example-service.py,
3063         python/examples/example-signal-emitter.py: Fixed up examples
3064         for API changes
3065
3066 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3067
3068         * python/__init__.py: Upped to version (0,42,0) because of
3069         the API change
3070
3071 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3072
3073         * ChangeLog: fix date in last entry
3074
3075         * configure.in, bus/system.conf.in: add the ability to configure 
3076         the system bus user at compiletime with the --with-dbus-user flag
3077         (patch from Kristof Vansant)
3078
3079 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3080
3081         * bus/dispatch.c, test/test-service.c: Add testcase
3082         for sending messages to oneself (TODO item).
3083
3084         * python/service.py (class Object): Swap ordering of bus_name 
3085         and object_path parameters to better support inheritance.
3086
3087         * doc/dbus-tutorial.xml: change Python docs to reflect change
3088         in parameter ordering and fix the inheritance section.
3089
3090         * doc/TODO: remove sending message to oneself TODO item
3091
3092 2005-07-15  Ross Burton  <ross@openedhand.com>
3093
3094         * glib/dbus-gproxy.c:
3095         Fix a leak when calling methods via the proxy.
3096
3097 2005-07-15  Colin Walters  <walters@verbum.org>
3098
3099         * bus/selinux.c (bus_selinux_append_context): Wrap in
3100         HAVE_SELINUX.
3101
3102 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3103
3104         * python/_dbus.py (Bus::remove_signal_receiver):
3105         don't add a callback to the match if none has been passed in
3106         
3107         * python/matchrules.py (SignalMatchTree::remove): if the rule
3108         being matched does not have a callback treat it as a wildcard
3109         fix matching logic
3110
3111         * doc/dbus-tutorial.xml: Add Python tutorial
3112
3113 2005-07-14  Colin Walters  <walters@verbum.org>
3114
3115         * bus/driver.c
3116         (bus_driver_handle_get_connection_unix_security_context): New function.
3117         (message_handlers): Add.
3118
3119         * bus/selinux.c (bus_selinux_append_context): New function; appends
3120         security context to message.
3121
3122         * bus/selinux.h: Prototype.
3123
3124         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3125
3126 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3127
3128         * bus/activation.c: clean up all tabs to be 8 spaces 
3129         (bus_activation_activate_service): make sure we clean up
3130         if activation fails
3131
3132         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3133         (check_shell_fail_service_auto_start): New function
3134         tests to make sure we get fail properly when trying to auto start a service
3135         with a faulty command line
3136         (check_shell_service_success_auto_start): New function tests to make sure
3137         auto started services get the arguments on the command line
3138
3139         * test/test-shell-service.c: Added service for testing auto-starting with 
3140         command line arguments
3141
3142         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3143         test/data/valid-service-files/debug-shell-echo-success.service.in:
3144         Added service files for testing auto-starting with command line arguments
3145
3146         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3147
3148 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3149
3150         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3151         
3152         * dbus/Makefile.am: added new files to build.
3153
3154         * bus/activation.c (bus_activation_activate_service): support
3155         activation commands with parameters.
3156
3157         * test/shell-test.c: added test program for the shell parsing
3158         code.
3159
3160 2005-07-13  David Zeuthen  <davidz@redhat.com>
3161
3162         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3163         64 bit signed and unsigned parameters
3164
3165 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3166
3167         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3168
3169         * python/service.py (class Name): renamed BusName to make it clearer
3170         what the object is for (a name on the bus)
3171
3172         * python/examples/example-service.py,
3173         python/examples/example-signal-emitter.py: change the Name object to
3174         BusName
3175
3176 2005-07-12  Colin Walters  <walters@verbum.org>
3177
3178         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3179
3180         * tools/dbus-launch.c: Include sys/select.h.
3181
3182 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3183         * python/dbus_bindings.pyx.in: removed
3184
3185         * python/dbus_bindings.pyx: Added.
3186         - Fixed some memleaks (patch from 
3187         Sean Meiners <sean.meiners@linspireinc.com>)
3188         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3189         own pxd file (Pyrex definition)
3190         - Broke out glib dependancies into its own pyx module
3191         
3192         * python/dbus_bindings.pdx: Added.
3193         - Defines C class Connection for exporting to other modules
3194
3195         * python/dbus_glib_bindings.pyx: Added.
3196         - New module to handle lowlevel dbus-glib mainloop integration
3197
3198         * python/glib.py: Added.
3199         - Registers the glib mainloop when you import this module
3200
3201         * python/services.py: Removed (renamed to service.py)
3202         
3203         * python/service.py: Added.
3204         - (class Server): renamed Name
3205
3206         * python/__init__.py: Bump ro version (0,41,0)
3207         -don't import the decorators or service module
3208         by default.  These now reside in the dbus.service namespace
3209
3210         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3211         setup function on creation 
3212
3213         * python/examples/example-service.py,
3214         python/examples/example-signal-emitter.py: update examples
3215
3216         * python/examples/gconf-proxy-service.py,
3217         python/examples/gconf-proxy-service2.py: TODO fix these up
3218
3219         * doc/TODO: Addition
3220         - Added a Python Bindings 1.0 section
3221         - added "Add match on args or match on details to match rules"
3222
3223
3224 2005-07-12  Colin Walters  <walters@verbum.org>
3225
3226         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3227         (statemachine-glue.h): 
3228         * glib/examples/Makefile.am (example-service-glue.h) 
3229         (example-signal-emitter-glue.h): 
3230         * glib/Makefile.am (dbus-glib-error-switch.h): 
3231         Add libtool --mode=execute so we use the built library instead
3232         of any installed one.
3233
3234 2005-07-11  Colin Walters  <walters@verbum.org>
3235
3236         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3237         (dbus_g_value_types_init): Remove assertion.
3238         (dbus_g_value_get_g_type, dbus_g_value_open)
3239         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3240         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3241         functions related to DBusGValue.  Now we marshal/demarshal
3242         structures as GValueArray.
3243         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3244         structures.
3245         (signature_iter_to_g_type_array): Don't call
3246         signature_iter_to_g_type_struct.
3247         (signature_iter_to_g_type_struct): Delete.
3248         (dbus_gvalue_to_signature): Delete.
3249         (dbus_gvalue_to_signature): New function with same name as other
3250         one; we can convert structures to signatures.
3251         (demarshal_valuearray): New function.
3252         (get_type_demarshaller): Use it.
3253         (demarshal_recurse): Delete.
3254         (marshal_proxy): New function.
3255         (marshal_map): Warn if we can't determine signature from type.
3256         (marshal_collection_ptrarray): Ditto.
3257         (marshal_collection_array): Ditto.
3258         (get_type_marshaller): Use marshal_valuearray.
3259         (marshal_recurse): Delete.
3260         (_dbus_gvalue_test): Add some tests.
3261
3262         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3263         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3264         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3265         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3266         (dbus_g_value_free): Remove prototypes.
3267
3268         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3269         G_TYPE_VALUE_ARRAY.
3270
3271         * glib/examples/example-service.c:
3272         * glib/examples/example-client.c: Implement GetTuple.
3273
3274         * test/glib/test-dbus-glib.c:
3275         * test/glib/test-service-glib.c:
3276         * test/glib/test-service-glib.xml: Add structure tests.
3277
3278 2005-07-10  Colin Walters  <walters@verbum.org>
3279
3280         * doc/TODO: Knock off some GLib items with this patch.
3281
3282         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3283         (_dbus_gvalue_signals_error): New functions.
3284
3285         * glib/dbus-gvalue-utils.h: Prototype them.
3286
3287         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3288         and change to not output const/retval flags for input args.  All
3289         callers updated.
3290         (invoke_object_method): Refactor to handle return values.  Add
3291         some more comments in various places.  Remove debug g_print.
3292
3293         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3294
3295         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3296         Handle G_TYPE_NONE.
3297         (compute_gsignature): New function; refactored from code from
3298         compute_marshaller and compute_marshaller_name.  Enhance to
3299         handle return values and async ops more cleanly.  Update for
3300         async ops returning NONE instead of BOOLEAN.
3301         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3302         and output appropriate string.
3303         (generate_glue): Handle return value annotation.  Also don't dump
3304         constness flag for input arguments.
3305
3306         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3307         files shared between installed library and utilities.
3308         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3309         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3310         binding tool can access gtype utility functions.
3311
3312         * test/glib/test-service-glib.c: 
3313         * test/glib/test-service-glib.xml: 
3314         * test/glib/test-dbus-glib.c: Add some tests for return values.
3315
3316 2005-07-09  Colin Walters  <walters@verbum.org>
3317
3318         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3319         argument if available, not method.
3320
3321         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3322         (invoke_object_method): First, remove some redundant
3323         GValues (object_value, error_value) in favor of working on
3324         array directly.  Second, rework constness to be less buggy.
3325         Now we iterate directly over the argument metadata instead
3326         of parallel iterating over output signature and metadata.
3327
3328         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3329
3330         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3331         annotation on input args.
3332         
3333 2005-07-09  Colin Walters  <walters@verbum.org>
3334
3335         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3336         Define.
3337
3338         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3339         annotation.
3340
3341         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3342         (method_dir_signature_from_object_info): Handle arg_iterate change.
3343         (write_interface): Ditto.
3344         (lookup_object_info): Don't barf if format_version is > 0.
3345         (invoke_object_method): Handle arg constness.
3346
3347         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3348         (arg_info_new): Create.
3349         (arg_info_unref): Destroy.
3350         (arg_info_get_annotations, arg_info_get_annotation) 
3351         (arg_info_add_annotation): New functions.
3352
3353         * glib/dbus-gidl.h: Prototype them.
3354
3355         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3356         args, disallow them in properties.
3357         (parse_annotation): Handle arg annotations.
3358
3359         * test/glib/test-service-glib.xml: 
3360         * test/glib/test-service-glib.c: Update to make some methods
3361         const.
3362
3363 2005-07-08  Colin Walters  <walters@verbum.org>
3364
3365         * test/glib/test-service-glib.xml: 
3366         * test/glib/test-service-glib.c:
3367         * test/glib/test-dbus-glib.c: Test a{sv}.
3368
3369         * glib/examples/statemachine/statemachine.c:
3370         * glib/examples/statemachine/statemachine-server.c:
3371         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3372         add progress bar, etc.
3373
3374         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3375         needed anymore due to generic array/map marshalling.
3376         (dbus_g_value_types_init): Don't register basic arrays or the
3377         string/string hash.
3378         (dbus_gtype_from_signature_iter): Don't try to recurse into
3379         variants.
3380         (dbus_gtype_to_signature): Check collection/map before type
3381         metadata.
3382         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3383         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3384         generic map creation/append functions instead of hash table
3385         specifically.
3386         (get_type_demarshaller): Handle maps.
3387         (demarshal_collection): Dispatch on collection type to either
3388         demarshal_collection_ptrarray or demarshal_collection_array.
3389         (get_type_marshaller): Handle maps.
3390         (marshal_collection): Dispatch collection type to either
3391         marshal_collection_ptrarray or marshal_collection_array.
3392         (_dbus_gvalue_test): New test.
3393
3394         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3395         (hash_free_from_gtype): Use it to free GValues.
3396         (hashtable_append): New function.
3397         (ptrarray_append): Fix prototype.
3398         (slist_append): Ditto.
3399         (_dbus_gvalue_utils_test): Extend tests.
3400
3401         * glib/dbus-gtype-specialized.c
3402         (dbus_g_type_specialized_init_append): Renamed from
3403         dbus_g_type_specialized_collection_init_append.  Remove const from
3404         value, since we steal it.
3405         (dbus_g_type_specialized_map_append): New function.
3406
3407         * glib/dbus-gtype-specialized.h: Update prototypes.
3408         Add DBusGTypeSpecializedMapAppendFunc.
3409
3410         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3411         _dbus_gvalue_test.
3412         
3413         * glib/dbus-gtest.h: Prototype it.
3414
3415 2005-07-08  Ross Burton  <ross@openedhand.com>
3416
3417         * dbus/dbus-glib.h:
3418         Add DBysGAsyncData for the async bindings.
3419
3420         * glib/dbus-binding-tool-glib.c:
3421         Re-enable the async bindings.
3422
3423         * test/glib/test-dbus-glib.c:
3424         Add a test for the generated async bindings.
3425
3426 2005-07-08  Colin Walters  <walters@verbum.org>
3427
3428         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3429         connection concept.
3430         
3431 2005-07-08  Colin Walters  <walters@verbum.org>
3432         
3433         * tools/Makefile.am: Kill of print-introspect in favor of using
3434         dbus-send --print-reply=literal.
3435
3436         * test/glib/test-service-glib.xml: 
3437         * test/glib/test-service-glib.c (my_object_get_objs): New test
3438         for "ao".
3439
3440         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3441         (main): Test GetObjs.
3442
3443         * glib/examples/statemachine/Makefile.am:
3444         * glib/examples/statemachine/sm-marshal.list:
3445         * glib/examples/statemachine/statemachine-client.c:
3446         * glib/examples/statemachine/statemachine-server.c:
3447         * glib/examples/statemachine/statemachine-server.xml:
3448         * glib/examples/statemachine/statemachine.c:
3449         * glib/examples/statemachine/statemachine.h:
3450         * glib/examples/statemachine/statemachine.xml:
3451
3452         New example.
3453
3454         * glib/examples/example-service.c (main): Move invocation
3455         of dbus_g_object_type_install_info earlier, to emphasize it
3456         should only be done once.
3457
3458         * glib/examples/example-signal-emitter.c (main): Ditto.
3459
3460         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3461
3462         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3463         (dbus_gvalue_marshal): Update prototypes.
3464
3465         * glib/dbus-gvalue.c: Update all marshalling functions to take
3466         const GValue instead of GValue.
3467         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3468         types.
3469         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3470         change.
3471         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3472         Return a newly-allocated string.
3473         (demarshal_proxy, demarshal_object_path, demarshal_object)
3474         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3475         we get the wrong types from message.
3476         (get_type_demarshaller): New function, extracted from
3477         dbus_gvalue_demarshal.
3478         (demarshal_collection): New function, demarshals generic
3479         collection.
3480         (dbus_gvalue_demarshal): Just invoke result of
3481         get_type_demarshaller.  Throw error if we don't have one.
3482         (marshal_garray_basic): Abort on OOM.
3483         (get_type_marshaller): New function, extracted from
3484         dbus_gvalue_marshal.
3485         (collection_marshal_iterator, marshal_collection): New functions;
3486         implements generic marshalling for an iteratable specialized
3487         collection.
3488         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3489
3490         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3491         G_TYPE_STRING.
3492         (ptrarray_value_from_gvalue): Ditto.
3493         (ptrarray_append, ptrarray_free): New functions.
3494         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3495         (slist_append, slist_end_append, slist_free): New functions.
3496         (dbus_g_type_specialized_builtins_init): Add append fuctions
3497         for GPtrArray and GSList.  Register GSList.
3498         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3499
3500         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3501         New.
3502         (dbus_g_type_specialized_collection_init_append)
3503         (dbus_g_type_specialized_collection_append)
3504         (dbus_g_type_specialized_collection_end_append): Prototype.
3505         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3506         end_append_func.
3507
3508         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3509         (dbus_g_type_specialized_collection_append) 
3510         (dbus_g_type_specialized_collection_end_append): New functions.
3511         (dbus_g_type_map_value_iterate): Take const GValue.
3512         (dbus_g_type_collection_value_iterate): Ditto.
3513
3514         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3515         _dbus_gvalue_utils_test.
3516         
3517         * glib/dbus-gtest.h: Prototype it.
3518
3519         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3520         using uninitialized owner_list.
3521         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3522         public API.
3523         (dbus_g_proxy_end_call_internal): Update to use error set
3524         from dbus_gvalue_demarshal instead of setting it here.
3525         (dbus_g_proxy_begin_call): Move return_if_fail here.
3526
3527         * glib/dbus-gobject.c (write_interface): Update for
3528         dbus_gtype_to_signature returning new string.
3529
3530         * configure.in: Add glib/examples/statemachine.
3531
3532 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3533
3534         * configure.in: Add a configure option, --with-console-auth-dir
3535         
3536         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3537         new setting.  Patch from Kay Sievers.
3538
3539 2005-07-06  Colin Walters  <walters@verbum.org>
3540
3541         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3542         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3543         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3544         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3545         Delete in favor of dbus_g_proxy_begin_call and
3546         dbus_g_proxy_cancel_call.
3547         (DBusGProxyCall, DBusGProxyCallNotify): New.
3548         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3549         data, and destroy function.  This replaces
3550         dbus_g_pending_call_set_notify.
3551         (dbus_g_proxy_cancel_call): Prototype.
3552         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3553
3554         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3555         pending_calls map.
3556         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3557         internal proxy for calls to the bus. Remove
3558         pending_nameowner_calls, now the internal proxy keeps track.
3559         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3560         pending_nameowner_calls.
3561         (got_name_owner_cb): Update prototype, and use
3562         dbus_g_proxy_end_call.
3563         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3564         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3565         favor of using internal proxy.
3566         (dbus_g_proxy_manager_unregister): Update to use
3567         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3568         (dbus_g_proxy_init): Initialize pending calls map.
3569         (dbus_g_proxy_constructor): New.
3570         (dbus_g_proxy_class_init): Add get/set property functions,
3571         constructor, and add NAME, PATH, and INTERFACE properties.
3572         (cancel_pending_call): New function.
3573         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3574         cancel them.
3575         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3576         (GPendingNotifyClosure): New structure.
3577         (d_pending_call_notify, d_pending_call_free): Moved here from
3578         dbus-glib.c.
3579         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3580         ordering.
3581         (manager_begin_bus_call): New internal function for talking to
3582         internal bus proxy.
3583         (dbus_g_proxy_new): Construct object using GObjet properties.
3584         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3585         Create closure of same, and insert call into map of pending calls.
3586         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3587         call.  Look up pending call in current set.  Remove it when we've
3588         completed.
3589         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3590         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3591         and destroy function directly.
3592         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3593         (dbus_g_proxy_call): Invoke with NULL callback.
3594         (dbus_g_proxy_cancel_call): New function, replaces
3595         dbus_g_pending_call_cancel.
3596
3597         * glib/dbus-gparser.c (validate_signature): Fix call to
3598         dbus_set_g_error.
3599
3600         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3601         New quark for attaching metadata to GType.
3602         (info_hash): Delete.
3603         (lookup_object_info): Look up using quark.
3604         (dbus_g_object_type_install_info): Check that a type is classed,
3605         not that it's an object.  Also just install type data using quark
3606         instead of using global hash.
3607
3608         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3609         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3610         (GPendingNotifyClosure): Delete.
3611         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3612         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3613
3614         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3615         client method generation until we can fix it...
3616         
3617         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3618         (load_from_service_thread_func): Ditto.
3619
3620         * tools/dbus-names-model.c (struct NamesModel): Hold
3621         DBusGProxyCall.
3622         (have_names_notify): Update prototype, use
3623         dbus_g_proxy_cancel_call.
3624         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3625
3626         * tools/dbus-monitor.c (filter_func): Update for print_message
3627         API change.
3628
3629         * test/glib/test-dbus-glib.c: Add more tests for async
3630         invocations.  Update many begin_call/end_call pairs to just use
3631         dbus_g_proxy_call.
3632
3633         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3634         allows us to dump print-introspect.c.
3635
3636         * tools/dbus-print-message.h (print_message): Add literal argument
3637         to print_message which is intended to allow printing arguments without
3638         metadata like "string=".
3639
3640         * tools/dbus-print-message.c (print_iter): Add literal argument.
3641         (print_message): Allow printing string messages literally.
3642
3643 2005-07-05  Colin Walters  <walters@verbum.org>
3644
3645         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3646         Remove value refcount leak, original patch from Jorn Baayen
3647         <jorn@openedhand.com>.  Also remove useless extra value in favor
3648         of prepending to value array directly.
3649
3650 2005-07-02  Colin Walters  <walters@verbum.org>
3651
3652         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3653
3654 2005-07-01  Colin Walters  <walters@verbum.org>
3655
3656         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3657         
3658         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3659         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3660         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3661         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3662
3663 2005-06-30  Colin Walters  <walters@verbum.org>
3664
3665         * test/glib/test-dbus-glib.c:
3666         * test/glib/test-service-glib.c:
3667         * test/glib/test-service-glib.xml: Update tests for new error
3668         setting bits, also add async tests (patch from Ross Burton).
3669
3670         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3671         DBUS_GLIB_THREADS_LIBS.
3672
3673         * glib/dbus-gproxy.c (get_name_owner)
3674         (dbus_g_pending_call_end_valist): Ditto.
3675
3676         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3677         domain (GQuark) to DBusGErrorInfo.  
3678         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3679         quark in error_metadata.  Take message interface as default
3680         error message interface.
3681         (gerror_to_dbus_error_message): Pass message interface.
3682         (dbus_set_g_error): Resurrected.
3683         (dbus_g_error_info_free): New function.
3684         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3685         of _peek to actually create the object class if it hasn't been
3686         created yet.
3687         (dbus_g_error_domain_register): New function.
3688
3689         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3690
3691         * glib/dbus-gparser.c (validate_signature): Ditto.
3692
3693         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3694         (dbus_g_error_domain_register): Prototype.
3695
3696         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3697         Update tests.
3698
3699 2005-06-29  Colin Walters  <walters@verbum.org>
3700
3701         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3702         DBUS_TYPE_G_OBJECT_PATH.
3703
3704         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3705         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3706         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3707         (dbus_g_object_path_get_g_type): New function.
3708         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3709         to DBUS_TYPE_G_OBJECT_PATH by default.
3710         (demarshal_proxy): Remove unused name variable.
3711         (demarshal_object_path, marshal_object_path): New functions.
3712         (demarshal_proxy_array, marshal_proxy_array): Delete.
3713         
3714         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3715         DBUS_TYPE_G_OBJECT_PATH to char *.
3716         (dbus_g_type_get_lookup_function): Map builtin
3717         DBUS_TYPE_G_OBJECT_PATH.
3718
3719         * test/glib/test-dbus-glib.c
3720         * test/glib/test-service-glib.c (my_object_objpath): 
3721         Adapt tests to new object path marshalling.
3722
3723 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3724
3725         * configure.in: force check for Python >= 2.4
3726
3727 2005-06-29  Colin Walters  <walters@verbum.org>
3728         
3729         Patch from Ross Burton <ross@openedhand.com>
3730         
3731         * glib/dbus-gobject.c (invoke_object_method): Unset object
3732         value in all cases, not only in async case.
3733
3734 2005-06-29  Colin Walters  <walters@verbum.org>
3735
3736         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3737         name_call for keeping track of any outgoing GetNameOwner call.
3738         Also add for_owner and associated.
3739         (struct _DBusGProxyManager): Add owner_names, which is hash table
3740         that maps a base name to a list of names it owns (that we're
3741         interested in).  Add pending_nameowner_calls which is a list of
3742         all outstanding GetNameOwner; avoids us having to iterate over
3743         every proxy.  Add unassociated_proxies which keeps track of name
3744         proxies with no associated name owner.
3745         (dbus_g_proxy_manager_unref): Destroy owner_names.
3746         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3747         name refcounts.
3748         (find_name_in_info, name_owner_foreach)
3749         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3750         (dbus_g_proxy_manager_monitor_name_owner)
3751         (dbus_g_proxy_manager_unmonitor_name_owner)
3752         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3753         New functions; they manipulate the owner_names mapping.
3754         (got_name_owner_cb): New function.
3755         (get_name_owner): New function, extracted from
3756         dbus_g_proxy_new_for_name_owner.
3757         (dbus_g_proxy_manager_register): For now we need to keep track of
3758         all NameOwnerChanged.  Also if the proxy is for a name, if we
3759         don't already know the name owner, queue a new GetNameOwner
3760         request and add it to our list of unassociated proxies.  Otherwise
3761         inc the refcount.
3762         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3763         cancel any pending GetNameOwner call, etc.
3764         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3765         the owner_names mapping to look up the current names for the
3766         signal source, and dispatch to any proxies for that name.
3767         (dbus_g_proxy_new): Initialize new members.
3768         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3769         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3770         (dbus_g_pending_call_end_valist): New function, extracted from
3771         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3772         but want to use the GLib infrastructure.  Also note how many
3773         arguments in reply were over.
3774         (dbus_g_pending_call_end): New function, just call
3775         dbus_g_pending_call_end_valist.
3776         (dbus_g_proxy_end_call_internal): Just call
3777         dbus_g_pending_call_end_valist.
3778
3779         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3780         of builtin marshaller for STRING_STRING_STRING.
3781
3782         * test/glib/test-dbus-glib.c: 
3783         * test/glib/test-service-glib.c:
3784         * test/glib/test-service-glib.xml:
3785         Extend tests to cover name proxies, destruction of owner proxies,
3786         etc.
3787         
3788         * glib/examples/example-signal-recipient.c
3789         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3790         
3791         * tools/dbus-send.c (main): Print D-BUS error name in addition
3792         to message.
3793
3794 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3795
3796         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3797         cmessage_function_handler): Patch from 
3798         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3799         by using the Py_GILState_Ensure/Release to synchronize with the
3800         python runtime.
3801         
3802 2005-06-28  Ray Strode  <rstrode@redhat.com>
3803
3804         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3805         babysitter helper process on last unref, bug #2813.
3806
3807 2005-06-27  Colin Walters  <walters@verbum.org>
3808
3809         * test/glib/test-dbus-glib.c: 
3810         * test/glib/test-service-glib.c:
3811         * test/glib/test-service-glib.xml:
3812         Test hash table signal emitting.
3813
3814         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3815         types to their fundamental basis types, since this is what
3816         marshallers operate on.  Also add an entry for VOID__BOXED.
3817         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3818
3819 2005-06-26  Havoc Pennington  <hp@redhat.com>
3820
3821         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3822         from Don Park
3823
3824 2005-06-26  Colin Walters  <walters@verbum.org>
3825
3826         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3827         (dbus_g_error_set): New public function from its ashes; used by
3828         both service-side method implementation and GLib bindings
3829         internals.
3830         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3831         (_dbus_glib_test): Add some tests.
3832
3833         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3834
3835         * test/glib/test-service-glib.c (my_object_throw_error): Use
3836         dbus_g_error_set.
3837
3838         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3839         errors thrown by dbus_g_error_set.
3840
3841         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3842
3843         * glib/dbus-gparser.c (validate_signature): Ditto.
3844
3845         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3846         (dbus_g_proxy_end_call_internal): Ditto.
3847
3848         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3849         converts DBUS_ERROR_x to DBUS_GERROR_x.
3850         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3851
3852         * doc/TODO: Remove error TODO.
3853
3854         * doc/dbus-tutorial.xml: Update with documentation about error
3855         handling.
3856
3857         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3858         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3859         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3860
3861 2005-06-22  Colin Walters  <walters@verbum.org>
3862         
3863         Patch from Ross Burton <ross@openedhand.com>
3864
3865         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3866
3867 2005-06-20  Colin Walters  <walters@verbum.org>
3868
3869         * configure.in: Add glib/examples.
3870
3871         * glib/Makefile.am: Add examples/
3872
3873         * glib/examples/.cvsignore
3874         * glib/examples/Makefile.am
3875         * glib/examples/example-client.c
3876         * glib/examples/example-service.c
3877         * glib/examples/example-service.xml
3878         * glib/examples/example-signal-emitter.c
3879         * glib/examples/example-signal-emitter.xml
3880         * glib/examples/example-signal-recipient.c:
3881         New files; GLib binding examples, ported from
3882         python/examples.
3883
3884 2005-06-20  Colin Walters  <walters@verbum.org>
3885
3886         * dbus/dbus-glib.h: 
3887         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3888         dbus_g_proxy_call.
3889
3890         * glib/dbus-binding-tool-glib.c: 
3891         * doc/dbus-tutorial.xml: 
3892         * test/glib/test-dbus-glib.c: Update for rename.
3893         
3894 2005-06-20  Colin Walters  <walters@verbum.org>
3895
3896         Patch suggested by Ross Burton <ross@openedhand.com>
3897
3898         * glib/dbus-gobject.c (export_signals): Free signal name.
3899         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3900         memory leak.  Add a bit of documentation.
3901         (dbus_g_method_return_error): Free context, and note we do
3902         so.
3903
3904 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3905
3906         * dbus/dbus-glib.h:
3907         * glib/dbus-gobject.c:
3908         * glib/dbus-gproxy.c:
3909         * glib/dbus-gvalue.c: Predeclare structs as 
3910         typedef struct _Something Something instead of 
3911         typedef struct Something Something, so we can 
3912         redeclare the prototypes. Other GNOME libraries 
3913         do this already.
3914
3915 2005-06-17  Colin Walters  <walters@verbum.org>
3916
3917         * tools/dbus-names-model.c (have_names_notify): Fix call
3918         to dbus_g_proxy_end_call.
3919         
3920 2005-06-17  Colin Walters  <walters@verbum.org>
3921
3922         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3923         spew warnings if we get malformed remote signals.
3924
3925         * glib/dbus-gobject.c (propsig_iterate): New function.
3926         (lookup_object_info): New function, extracted from
3927         lookup_object_and_method.
3928         (introspect_properties, introspect_signals): Delete; these
3929         are merged into write_interface.
3930         (write_interface): Write out signals and properties here;
3931         dump the org.gtk.object stuff and use the interface given
3932         in the introspection data blob.  Also fix up property XML.
3933         (lookup_values): New function.
3934         (introspect_interfaces): Gather a mapping from interface to a
3935         list of its methods, signals, and properties, then write out
3936         each interface.
3937         (lookup_object_and_method): Use lookup_object_info.
3938         (struct DBusGSignalClosure): Add interface.
3939         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3940         we can just use the constant data.
3941         (dbus_g_signal_closure_finalize): Don't free signal name.
3942         (signal_emitter_marshaller): Use interface from signal closure.
3943         (export_signals): Only export signals mentioned in introspection
3944         blob.
3945         (dbus_g_connection_register_g_object): Warn if we have no
3946         introspection data for an object.
3947         (funcsig_equal): Remove unused variable.
3948         (dbus_g_object_register_marshaller): Take varargs instead of
3949         list.
3950         (dbus_g_object_register_marshaller_array): New function,
3951         extracted from old dbus_g_object_register_marshaller.
3952
3953         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3954         signals and property data.
3955         (write_quoted_string): New function, extracted from generate_glue.
3956         (generate_glue): Write signals and properties to introspection
3957         blob.
3958
3959         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3960         exported_signals and exported_properties.
3961         (dbus_g_object_register_marshaller): Update prototype.
3962         (dbus_g_object_register_marshaller_array): Prototype.
3963         
3964         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3965
3966         * test/glib/test-service-glib.c: Add new test signals and method
3967         to emit them.
3968
3969         * test/glib/test-service-glib.xml: Add some test signals.
3970
3971         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3972         and my-object-marshal.h
3973         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3974         my-object-marshal.c.
3975         (my-object-marshal.c, my-object-marshal.h): Implement.
3976
3977         * test/glib/.cvsignore: Update.
3978
3979         * doc/TODO: Remove two GLib TODO items fixed by this
3980         patch.
3981
3982 2005-06-16  Colin Walters  <walters@verbum.org>
3983
3984         * doc/TODO: Update for GLib bindings.
3985         
3986 2005-06-16  Colin Walters  <walters@verbum.org>
3987
3988         * glib/dbus-binding-tool-glib.c:
3989         * glib/dbus-gobject.c:
3990         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3991         from Ross Burton, for his GLib bindings work.
3992
3993 2005-06-16  Colin Walters  <walters@verbum.org>
3994
3995         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3996         to iterate instead of walking to G_TYPE_INVALID.
3997
3998         Patch based on a patch from Ryan Gammon.
3999
4000 2005-06-16  Colin Walters  <walters@verbum.org>
4001
4002         * bus/bus.c (bus_context_new): Set parser to NULL
4003         after we unref it (Patch from Chris Boscolo, #2174).
4004         
4005 2005-06-16  Colin Walters  <walters@verbum.org>
4006
4007         * python/dbus_bindings.pyx.in: Import size_t,
4008         __int64_t, __uint64_t, and __signed.
4009
4010         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4011         Define cmsg struct, output it.
4012         (_dbus_read_credentials_unix_socket):
4013         Use cmsg struct.
4014         
4015         Patch from Joe Markus Clarke for FreeBSD support.
4016         
4017 2005-06-16  Colin Walters  <walters@verbum.org>
4018
4019         * tools/dbus-send.c (append_array): Use strtok.
4020         (append_dict): New function.
4021         (type_from_name): New function, extracted from main.
4022         (main): Handle sending dicts.
4023
4024         * tools/dbus-print-message.c (print_iter): Print dict
4025         entries.
4026         
4027 2005-06-16  Colin Walters  <walters@verbum.org>
4028
4029         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4030         values as the empty string (#2948).
4031         
4032 2005-06-16  Colin Walters  <walters@verbum.org>
4033
4034         * dbus/Makefile.am:
4035         * mono/doc/Makefile.am:
4036         * test/glib/Makefile.am:
4037
4038         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4039
4040 2005-06-16  Colin Walters  <walters@verbum.org>
4041
4042         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4043         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4044
4045         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4046         Increment pointer after swapping fixed array.  Add assertion
4047         for array length.
4048                 
4049 2005-06-15  Colin Walters  <walters@verbum.org>
4050
4051         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4052         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4053         
4054 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4055
4056         * NEWS: Update to 0.34
4057
4058 2005-06-15  David Zeuthen  <davidz@redhat.com>
4059
4060         * configure.in (LT_CURRENT): Revert back to 1 as the library
4061         hasn't changed and we've certainly not committed to protocol
4062         stability yet.  All this does is to break ABI. See commit note
4063         from hp@redhat.com 2005-05-05 for details.
4064         
4065 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4066
4067         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4068         (_dbus_connection_run_builtin_filters): New method
4069         (dbus_connection_dispatch): Run the builtin filters which in turn
4070         runs the peer filter which handles Ping messages.
4071
4072         * doc/TODO: 
4073          - Ping isn't handled: This patch fixes it
4074          
4075          - Add a test case for the Ping message: added TODO item
4076
4077 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4078
4079         * dbus/dbus-message.c:
4080         (dbus_message_has_path): New method
4081         (dbus_message_has_interface): New method
4082         (dbus_message_has_member): New method
4083
4084         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4085         New method
4086
4087         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4088         the keyring directory is private to the user
4089
4090         * doc/TODO:
4091          - The convenience functions in dbus-bus.h should perhaps have
4092          the signatures that they would have if they were autogenerated
4093          stubs. e.g. the acquire service function. We should also evaluate
4094          which of these functions to include, in light of the fact that
4095          GLib/Qt native stubs will probably also exist.: Punted
4096
4097          - add dbus_message_has_path(), maybe has_member/interface:
4098          fixed in this patch
4099
4100          - in dbus-keyring.c, enforce that the keyring dir is not
4101          world readable/writable: Fixed in this patch
4102
4103 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4104
4105         * dbus/dbus-marshal-validate.h: Added a new validation
4106         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4107         out of memory errors when validating signitures
4108
4109         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4110         in places where we previously used DBUS_VALID and a FALSE return 
4111         value to indicate OOM
4112         
4113         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4114         Use a stack to track the number of elements inside containers.  The 
4115         stack values are then used to validate that dict entries have only two
4116         elements within them.
4117         (validate_body_helper): check the reason for failure when validating
4118         varients
4119         
4120         * dbus/dbus-message.c (load_message): use 
4121         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4122         DBUS_VALID and a FALSE return value to indicate OOM
4123
4124         * doc/TODO: remove "- validate dict entry number of fields" as this
4125         patch fixes it
4126
4127 2005-06-14  David Zeuthen  <davidz@redhat.com>
4128
4129         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4130         watches (if applicable) and add new watches
4131
4132         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4133         (main): Setup SIGIO signal handler if using D_NOTIFY
4134
4135         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4136
4137         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4138         (merge_included): Also merge conf_dirs list
4139         (bus_config_parser_unref): Clear conf_dirs list
4140         (include_dir): Add directory to conf_dirs list
4141         (bus_config_parser_get_conf_dirs): New function
4142
4143         * bus/dir-watch.[ch]: New files
4144
4145         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4146
4147         * configure.in: Add checks for D_NOTIFY on Linux
4148
4149 2005-06-14  Colin Walters  <walters@verbum.org>
4150
4151         * glib/dbus-binding-tool-glib.c:
4152         * glib/dbus-gobject.c:
4153         * glib/dbus-gvalue.c: Fix indentation and brace style.
4154         
4155 2005-06-14  Ross Burton <ross@openedhand.com>.
4156
4157         * glib/dbus-glib.h: Make DBusGMethodInvocation
4158         a private structure.  Rearrange prototypes a bit.
4159         
4160         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4161         documentation for first_arg_type.
4162         
4163         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4164         here, add documentation.  Move dbus_g_method_return
4165         and dbus_g_method_return_error into public API
4166         section.
4167
4168 2005-06-14  Colin Walters  <walters@verbum.org>
4169
4170         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4171         Add missing return statements, noticed by Ross Burton.
4172         
4173 2005-06-13  Ross Burton <ross@openedhand.com>.
4174
4175         * glib/dbus-gobject.c: Handle errors on message
4176         demarshalling by sending error message back.
4177         * glib/dbus-gvalue.c: Initialize return variables.
4178
4179 2005-06-13  Colin Walters  <walters@verbum.org>
4180
4181         * glib/Makefile.am: Fix thinko in last patch.
4182
4183 2005-06-13  Colin Walters  <walters@verbum.org>
4184
4185         * glib/Makefile.am: Move dbus-gtype-specialized.c
4186         and dbus-gtype-specialized.h into a _HEADERS variable,
4187         install them.
4188
4189 2005-06-12  Colin Walters  <walters@verbum.org>
4190
4191         Async signals and various bugfixes and testing by
4192         Ross Burton <ross@openedhand.com>.
4193
4194         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4195         (dbus_gvalue_genmarshal_name_from_type)
4196         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4197         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4198         (dbus_g_value_types_init, dbus_gtype_from_signature)
4199         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4200         (dbus_gtypes_from_arg_signature): New function prototypes.
4201         (dbus_gvalue_demarshal): Take context and error arguments.
4202         (dbus_gvalue_demarshal_variant): New function.
4203         (dbus_gvalue_demarshal_message): New function.
4204         (dbus_gvalue_store): Delete.
4205
4206         * glib/dbus-gvalue.c:
4207
4208         File has been almost entirely rewritten; now we special-case
4209         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4210         hash tables correctly, etc.  Full support for recursive values
4211         is not yet complete.
4212
4213         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4214         argument of signal to G_TYPE_POINTER since we now pass a
4215         structure.
4216         (lookup_g_marshaller): Delete in favor of
4217         _dbus_gobject_lookup_marshaller.
4218         (marshal_dbus_message_to_g_marshaller): Use
4219         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4220         to handle remote signal callbacks.
4221         (dbus_g_proxy_new_from_proxy): New function; creates a new
4222         DBusGProxy by copying an existing one.
4223         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4224         (dbus_g_proxy_get_path): New functions.
4225         (dbus_g_proxy_marshal_args_to_message): New function;
4226         factored out of existing code.
4227         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4228         from a varargs array.
4229         (dbus_g_proxy_begin_call_internal): New function.
4230         (dbus_g_proxy_end_call_internal): New function.
4231         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4232         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4233         after collecting args into value array.
4234         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4235         invoke dbus_g_proxy_end_call_internal.
4236         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4237         end_call_internal.
4238         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4239         types.
4240         (array_free_all): New function.
4241         (dbus_g_proxy_add_signal): Take GTypes.
4242
4243         * glib/dbus-gobject.h:
4244         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4245         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4246         Prototype.
4247
4248         * glib/dbus-gobject.c: Add a global marshal_table hash which
4249         stores mappings from type signatures to marshallers.  Change lots
4250         of invocations of dbus_gtype_to_dbus_type to
4251         dbus_gtype_to_signature.
4252         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4253         (introspect_signals): Fix test for query.return_type.
4254         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4255         (invoke_object_method): Many changes.  Handle asynchronous
4256         invocations.  Convert arguments with
4257         dbus_gvalue_demarshal_message.  Handle errors.  Use
4258         DBusSignatureIter instead of strlen on args. Handle all arguments
4259         generically.  Special-case variants.
4260         (dbus_g_method_return, dbus_g_method_return_error): New function.
4261         (DBusGSignalClosure): New structure, closes over signal
4262         information.
4263         (dbus_g_signal_closure_new): New function.
4264         (dbus_g_signal_closure_finalize): New function.
4265         (signal_emitter_marshaller): New function; is special marshaller
4266         which emits signals on bus.
4267         (export_signals): New function; introspects object signals and
4268         connects to them.
4269         (dbus_g_object_type_install_info): Take GType instead of
4270         GObjectClass.
4271         (dbus_g_connection_register_g_object): Invoke export_signals.
4272         (dbus_g_connection_lookup_g_object): New function.
4273         (DBusGFuncSignature) New structure; used for mapping type
4274         signatures to marshallers.
4275         (funcsig_hash): New function; hashes DBusGFuncSignature.
4276         (funcsig_equal): New function; compares DBusGFuncSignature.
4277         (_dbus_gobject_lookup_marshaller): New function.
4278         (dbus_g_object_register_marshaller): New function; used to
4279         register a marshaller at runtime for a particular signature.
4280
4281         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4282
4283         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4284         which notes a server method implementation should be
4285         asynchronous.
4286
4287         * glib/dbus-binding-tool-glib.c
4288         (dbus_binding_tool_output_glib_server): Call
4289         dbus_g_value_types_init.
4290         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4291         variants specially.
4292         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4293         of a lookup function.
4294         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4295         (write_untyped_out_args): New method; write output arguments.
4296         (write_formal_declarations_for_direction): Function for
4297         writing prototypes.
4298         (write_formal_parameters_for_direction): Function for
4299         writing implementations.
4300         (write_typed_args_for_direction): Function for writing
4301         arguments prefixed with GTypes.
4302         (write_async_method_client): Write out async version
4303         of method.
4304
4305         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4306         (dbus_g_type_get_marshal_name): Move mapping from GType
4307         to marshal name into here.
4308         (dbus_g_type_get_c_name): Move into here.
4309         (compute_marshaller): Convert signature to type with
4310         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4311         (compute_marshaller_name): Ditto.
4312         (compute_marshaller): Handle async signal annotations.
4313         (gather_marshallers): Return if we don't have a known
4314         prefix.
4315         (generate_glue): Collect introspection blob here, and
4316         write all of the blob at the end.  This allows an object
4317         with multiple interfaces to work.
4318         Mark async methods in introspection blob.
4319
4320         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4321         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4322         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4323
4324         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4325         avoids people accidentally using DBUS_TYPE_* which should
4326         not be necessary anymore.
4327         Do include dbus-gtype-specialized.h, which are utilities
4328         for GLib container types.
4329         Add various #defines for types such as
4330         DBUS_TYPE_G_BOOLEAN_ARRAY.
4331         (DBusGValueIterator, DBusGValue): Define, not fully used
4332         yet.
4333         (dbus_g_value_get_g_type): Type for recursive value.
4334         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4335         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4336         (dbus_g_value_free): Prototypes.
4337         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4338         (dbus_g_proxy_set_interface): Prototype.
4339         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4340         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4341         types.
4342         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4343         Accessors.
4344         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4345         doing async invocations.
4346         (dbus_g_method_return, dbus_g_method_return_error):
4347         Prototypes.
4348         * doc/dbus-tutorial.xml: Update GLib section.
4349         
4350         * tools/dbus-viewer.c (load_child_nodes): Update
4351         for new invocation type of dbus_g_proxy_end_call.
4352         (load_from_service_thread_func): Ditto.
4353
4354         * tools/print-introspect.c (main): Ditto.
4355
4356         * tools/dbus-names-model.c (have_names_notify)
4357         (names_model_reload, names_model_set_connection)
4358         Use GTypes.
4359
4360         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4361         needed since Python bindings use GLib bindings.
4362
4363         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4364         Add --prefix argument.
4365
4366         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4367         unneeded --ignore-unsupported arg.
4368         
4369         * test/glib/test-service-glib.c: 
4370         * test/glib/test-service-glib.xml:
4371         * test/glib/test-dbus-glib.c: Add many more tests.
4372
4373 2005-06-06  David Zeuthen  <davidz@redhat.com>
4374
4375         * doc/TODO: Add item about need to remove deprecated functions.
4376
4377         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4378
4379         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4380         to repair the ABI which was broken with the last commit.
4381
4382 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4383
4384         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4385         (dbus_connection_disconnect): renamed to dbus_connection_close 
4386         for API symmetry with dbus_connection_open
4387         (_dbus_connection_open_internal): 
4388         s/dbus_connection_disconnect/dbus_connection_close
4389
4390         * dbus/dbus-bus.c (dbus_bus_get):
4391         s/dbus_connection_disconnect/dbus_connection_close
4392
4393         * bus/connection.c (bus_connections_unref, 
4394         bus_connections_setup_connection, bus_connections_expire_incomplete):
4395         s/dbus_connection_disconnect/dbus_connection_close
4396
4397         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4398         kill_client_connection_unchecked, check_hello_connection):
4399         s/dbus_connection_disconnect/dbus_connection_close
4400
4401         * bus/bus.c (new_connection_callback):
4402         s/dbus_connection_disconnect/dbus_connection_close
4403
4404         * tools/dbus-send.c (main):
4405         s/dbus_connection_disconnect/dbus_connection_close
4406
4407         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4408         s/dbus_connection_disconnect/dbus_connection_close
4409         
4410         * test/test-service.c (path_message_func, filter_func):
4411         s/dbus_connection_disconnect/dbus_connection_close
4412         
4413         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4414         
4415 2005-05-25  Colin Walters  <walters@verbum.org>
4416
4417         * dbus/dbus-protocol.h: Move various bus service #defines such
4418           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4419           dbus/dbus-shared.h.
4420         * dbus/dbus-shared.h: Various defines moved here.
4421         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4422
4423 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4424
4425         * python/__init__.py: Python bindings deserve a minor version
4426         update.  Upped to (0, 40, 2)
4427
4428 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4429
4430         * python/decorators.py: add explicitly_pass_message decorator
4431         for passing in the dbus message as keyword for edge case signal
4432         handling
4433
4434         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4435         to conform with what dbus expects for match rules
4436         (SignalMatchRule.execute): add the dbus message as a keyword
4437         if the signal handler has requested it
4438
4439         * python/examples/example/signal-recipient.py: added some more
4440         examples on how to hook up to signals
4441
4442 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4443
4444         * python/decorators.py: import dbus_bindings
4445
4446         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4447         SignalMatchNode): new classes that implement wildcard signal
4448         callback matching using a tree lookup. Heavily modified from a
4449         patch sent by Celso Pinto (fd.o bug #3241)
4450
4451         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4452         use new match classes to handle signals.
4453
4454 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4455         
4456         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4457
4458 2005-05-18  Havoc Pennington  <hp@redhat.com>
4459
4460         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4461         gettext. Not really worth requiring yet perhaps, but any
4462         production quality 1.0 would require it so we should go ahead and
4463         get things set up. We do have a couple token calls to
4464         bindtextdomain in the code already.
4465
4466 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4467
4468         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4469         when using recursive g_main_loops
4470
4471         * python/_dbus.py (class Bus): add the ProxyObjectClass
4472         alias for ProxyObject to make it easier for the Twisted 
4473         networking framework to integrate dbus.
4474
4475         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4476         alias for ProxyMethod to make it easier for the Twisted 
4477         networking framework to integrate dbus. 
4478
4479 2005-05-11  Ross Burton  <ross@openedhand.com>
4480
4481         * glib/dbus-glib-tool.c: Add --prefix argument.
4482         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4483         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4484         Add prefix argument.
4485         (generate_glue): Pass prefix argument down.
4486         (dbus_binding_tool_output_glib_server): Pass prefix to
4487         glib-genmarshal.
4488         
4489 2005-05-11  Colin Walters  <walters@verbum.org>
4490
4491         * tools/dbus-send.c (append_array): New function.
4492         (append_arg): Broken out from main.
4493         (main): Add cheesy hack to send arrays and variants.
4494         (usage): Update.
4495         * tools/dbus-print-message.c (print_iter): Broken out
4496         from main.
4497
4498 2005-05-11  Colin Walters  <walters@verbum.org>
4499
4500         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4501         New function, returns signature string for signature iter.
4502         * dbus/dbus-signature.h: Prototype it.
4503         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4504         New function, returns signature string for message iter.
4505         (dbus_message_iter_get_array_len): New function, returns
4506         length of array.
4507         (dbus_message_iter_get_fixed_array): Fix assertion; this
4508         function should be used when the iter is pointing to the
4509         contents of an array
4510         * dbus/dbus-message.h: Prototypes.
4511         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4512         New function; returns length of an array.
4513         * dbus/dbus-marshal-recursive.h: Prototype it.
4514         
4515 2005-05-11  Colin Walters  <walters@verbum.org>
4516
4517         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4518         compilation error.
4519         
4520 2005-05-08  Havoc Pennington  <hp@redhat.com>
4521
4522         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4523         daemon's pid, not the parent's pid, to the file descriptor.
4524         Reported by Taj Morton.
4525
4526 2005-05-05  Havoc Pennington  <hp@redhat.com>
4527
4528         * configure.in (LT_*): add notes on how the libtool versioning
4529         works to save thinking. Increment soname to indicate protocol
4530         breakage (though really the library interface hasn't changed I
4531         guess)
4532
4533         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4534         verify the GUID received from server matches what we were
4535         expecting, if we had an expectation
4536
4537         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4538         (_dbus_auth_get_guid_from_server): new function
4539         (send_begin): parse the OK args
4540
4541         * doc/dbus-specification.xml: add GUID to the auth protocol
4542
4543 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4544
4545         * Fix my name in previous changelog ;)
4546
4547         * python/proxies.py (ProxyObject.__getattr__): add further patch
4548         from Anthony Baxter to throw an AttributeError when python 
4549         __special__ functions are called instead of marshling them over 
4550         the bus (Bug#1685 comment 3).
4551
4552 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4553
4554         * python/Makefile.am: changed to use pyexecdir for the binding
4555         shared libraries (Bug#2494)
4556
4557         * python/exceptions.py: bring exceptions over from the bindings
4558         so they can be used in applications (Bug#2036)
4559         Make all exceptions derive from DBusException
4560
4561         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4562         of classes so that print obj doesn't throw an exception (Bug #1685)
4563
4564 2005-05-03  Ross Burton  <ross@openedhand.com>
4565
4566         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4567         Return if we get an error during registration.  Set up a
4568         weak reference on object to unregister if object is destroyed.
4569         (unregister_gobject): New function.
4570         
4571 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4572
4573         * python/dbus_bindings.pyx.in: 
4574         - added new type classes for hinting to the marashaler what type 
4575         to send over the wire
4576         - added int16 and uint16 marshalers
4577         - Fixed a bug in the type constants that caused int32 to go out
4578         as uint16 over the wire
4579         * python/dbus.py: split up into different files and renamed _dbus.py
4580         * python/__init__.py, python/_util.py, python/decorators.py, 
4581         python/exceptions.py, python/proxies.py, python/services.py,
4582         python/types.py: new files split off from dbus.py
4583         * python/Makefile.am: Add new files, remove dbus.py and 
4584         install all python files to <python module dir>/dbus
4585         * python/examples/*: Added #!/usr/bin/env python to the top of
4586         every example.  Patch provided by Tatavarty Kalyan
4587
4588 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4589
4590         * NEWS: Update to 0.33
4591
4592 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4593
4594         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4595         method for doing async calls
4596         (_pending_call_notification): New C function for handling pendning call
4597         callbacks
4598         (set_notify): New method for setting pending call notification
4599         
4600         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4601         Async capabilities added to remote method calls
4602         (Sender): class removed
4603         (RemoteService): class removed
4604         (ObjectTree): class removed for now
4605         (RemoteObject): Renamed to ProxyObject
4606         (RemoteMethod): Renamed to ProxyMethod
4607         (method): Decorator added for decorating python methods as dbus methods
4608         (signal): Decorator added for decorating python methods as signal emitters
4609         (ObjectType): Metaclass added for generating introspection data and the
4610         method callback vtable
4611         (Interface): Wrapper class added to wrap objects in a dbus interface
4612         (Object): Uses ObjectType as its metaclass and exports Introspect
4613         of the org.freedesktop.DBus.Introspectable interface
4614         (ValidationException, UnknownMethodException): new exceptions
4615
4616         * python/examples/*: Modified to fit with the new bindings
4617
4618 2005-04-23  Havoc Pennington  <hp@redhat.com>
4619
4620         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4621         reported by Tony Houghton
4622
4623         * test/test-service.c (main): test
4624         dbus_connection_get_object_path_data()
4625
4626         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4627         the exact_match
4628         (_dbus_object_tree_get_user_data_unlocked): new function used by
4629         dbus_connection_get_object_path_data()
4630         (do_register): add assertion test for get_user_data_unlocked
4631         (object_tree_test_iteration): more tests
4632
4633         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4634         new function from Dan Reed to let you get the user data from 
4635         dbus_connection_register_object_path()
4636
4637 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4638
4639         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4640         in numerous places that did not account for the NULL terminator
4641         (signature_from_seed): changed the manual string copy loop to 
4642         just use strcpy instead
4643         make check should now pass
4644
4645 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4646
4647         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4648         so that it allows messages that are not signals to pass in 
4649         NULL as the interface.
4650
4651 2005-04-18  David Zeuthen  <davidz@redhat.com>
4652
4653         * glib/dbus-gmain.c (io_handler_destroy_source): 
4654         (timeout_handler_destroy_source, connection_setup_free): 
4655         Also unref the source to avoid memory leaks.
4656
4657 2005-04-13  David Zeuthen  <davidz@redhat.com>
4658
4659         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4660         more reasonable, yet still totally arbitrary, value :-). 
4661
4662 2005-04-13  David Zeuthen  <davidz@redhat.com>
4663
4664         * doc/TODO: Added an "important for 1.0" item about selinux
4665         allow/deny messages
4666
4667 2005-04-13  David Zeuthen  <davidz@redhat.com>
4668
4669         * bus/selinux.c: Add c-file-style to top of file
4670         (log_audit_callback): Don't free the data here anymore
4671         (bus_selinux_check): Don't take spid and tpid since appending
4672         that to auxdata may OOM.
4673         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4674         to the caller if we are OOM by taking an error object.
4675         (bus_selinux_allows_send): -do-
4676
4677         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4678         and bus_selinux_allows_send
4679
4680         * bus/bus.c (bus_context_check_security_policy): Pass error and
4681         pass on OOM thrown by bus_selinux_allows_send()
4682
4683         * bus/services.c (bus_registry_acquire_service): Pass error and
4684         pass on OOM thrown by bus_selinux_allows_acquire_service()
4685
4686 2005-04-13  Havoc Pennington  <hp@redhat.com>
4687
4688         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4689         message at a time to avoid monopolizing the main loop, bug 
4690         #2953 from Benjamin Otte
4691
4692 2005-04-09  Havoc Pennington  <hp@redhat.com>
4693
4694         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4695         possible overlap, fix from Daniel Reed
4696         (fixup_alignment): fix signedness warnings
4697         (_dbus_string_append_unichar): ditto
4698
4699 2005-04-09  Havoc Pennington  <hp@redhat.com>
4700
4701         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4702
4703         * glib/dbus-glib-tool.c (main): fix warning
4704
4705         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4706
4707         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4708         add a new function that can be used in simple applications that
4709         don't have a main loop and are willing to block
4710
4711 2005-04-05  David Zeuthen  <davidz@redhat.com>
4712
4713         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4714
4715         * glib/dbus-gmain.c:
4716         (io_handler_destroy_source): Remove from list of IO handlers
4717         of the ConnectionSetup object
4718         (timeout_handler_destroy_source): -do- for timeout handlers
4719         (io_handler_source_finalized): Don't remove from list since
4720         we now do that in io_handler_destroy_source(). Renamed from
4721         io_handler_source_destroyed
4722         (timeout_handler_source_destroyed): -do- for timeout handlers
4723         (connection_setup_free): It is now safe to iterate over all
4724         IO and timeout handlers as the _destroy_source removes them
4725         from the list synchronously
4726
4727 2005-03-30  Havoc Pennington  <hp@redhat.com>
4728
4729         * configure.in: change check to gtk 2.4
4730
4731         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4732         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4733         to 2.4
4734
4735 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4736
4737         * News: Update 0.32
4738
4739         * HACKING: Fixed realease instructions.  configure.in should be updated to
4740           the next release by the person who made the last release.
4741
4742 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4743
4744         * python/lvalue_cast_post_process.py - removed.  Patch has been
4745           submitted to Pyrex maintainers that fixes gcc4.0 errors
4746
4747         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4748
4749 2005-03-24  Daniel Reed  <n@ml.org>
4750
4751         * tools/Makefile.am: Make print-introspect and
4752         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4753
4754 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4755
4756         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4757
4758         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4759           had in Red Hat packages for a while but for some reason never 
4760           got merged upstream
4761           (_dbus_is_a_number): New checks if a string
4762           can be converted to a number and does the conversion if it can
4763           (_dbus_user_database_lookup): Add check to see if the given username
4764           is a udi.  This allows udi's to be used instead of usernames in the
4765           config file.
4766           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4767           is a gdi.  This allows gdi's to be used instead of groupnames in the
4768           config file.
4769
4770 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4771
4772         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4773           code so that it compiles with gcc4.0
4774
4775         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4776           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4777           results back to dbus_binding.c
4778
4779 2005-03-20  Colin Walters  <walters@verbum.org>
4780
4781         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4782
4783         * configure.in: Require GTK+ 2.6.
4784         
4785 2005-03-20  Colin Walters  <walters@verbum.org>
4786
4787         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4788
4789 2005-03-17  Tom Parker  <palfrey@tevp.net>
4790
4791         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4792         print DBUS_UID_UNSET; instead print passed username.  Also
4793         be sure to actually use gid looked up in cache.
4794         
4795         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4796         for DBUS_GID_UNSET and groupname.
4797
4798 2005-03-17  Colin Walters  <walters@verbum.org>
4799
4800         * bus/print-introspect.c: Move to tools/.
4801         * bus/run-with-tmp-session-bus.sh: Ditto.
4802         
4803         * glib/Makefile.am (dbus-glib-bindings.h): Move
4804         generation to tools/Makefile.am.
4805
4806         * test/glib/run-test.sh: Update to handle move
4807         of run-with-tmp-session-bus.sh.
4808
4809         * test/glib/test-service-glib.c: Update to handle
4810         move of dbus-glib-bindings.h.
4811
4812         * tools/print-introspect.c: Moved here
4813         from bus/, and ported to GLib bindings.
4814
4815         * tools/run-with-tmp-session-bus.sh: Moved here
4816         from bus/.
4817
4818         * tools/Makefile.am: Generate dbus-glib-bindings.h
4819         and dbus-bus-introspect.xml here.
4820
4821         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4822         Update.
4823
4824 2005-03-17  Colin Walters  <walters@verbum.org>
4825
4826         * bus/driver.c (write_args_for_direction): Use
4827         _dbus_string_get_const_data to retrieve string;
4828         _dbus_string_get_const_data_len doesn't actually return
4829         a NULL-terminated substring.
4830
4831         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4832         (main): Change to use org_freedesktop_DBus_request_name
4833         instead of using g_proxy_begin_call/end_call.
4834
4835 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4836
4837         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4838         generating the finalizer.  Fixes from Ben Maurer.
4839
4840 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4841
4842         * mono/BusDriver.cs: Update method names: ListServices
4843         becomes ListNames; GetOwner becomes GetNameOwner.
4844
4845         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4846         onto the eval stack when removing the delegate.
4847
4848 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4849
4850         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4851         LT_CURRENT.  Set it to the autoconf variable.
4852                                                                                 
4853         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4854         classes that disconnects the signal handler delegate from the
4855         service object.  Fixes a big leak of proxy objects on the
4856         client side of things.  Patch from Ben Maurer
4857         <bmaurer@ximian.com>
4858
4859 2005-03-12  Colin Walters  <walters@verbum.org>
4860
4861         * bus/driver.c (write_args_for_direction): New function,
4862         parses a type signature into arguments and outputs to
4863         XML.
4864         (bus_driver_handle_introspect): Use it instead of
4865         hardcoding XML for certain signatures.
4866         
4867         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4868         dependency on dbus-daemon.
4869
4870         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4871         argument, pass it to dbus_binding_tool_output_glib_client.
4872
4873         * glib/dbus-binding-tool-glib.c
4874         (generate_client_glue): Protect against multiple inclusion.
4875         (dbus_binding_tool_output_glib_client): Add
4876         G_BEGIN_DECLS/G_END_DECLS.
4877
4878         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4879         Change to just take iface prefix directly.
4880         (write_formal_parameters): Clarify error message.
4881         (check_supported_parameters): New function; checks to see type
4882         signatures of method parameters are supported.
4883         (generate_client_glue): Handle ignore_unsupported flag.
4884         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4885         parameter.
4886
4887         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4888         --ignore-unsupported by default until glib bindings
4889         support arrays.
4890
4891 2005-03-11  Colin Walters  <walters@verbum.org>
4892
4893         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4894         install it.
4895
4896         * bus/print-introspect.c: New file; prints introspection
4897         data for a given name and object path.
4898
4899         * bus/run-with-tmp-session-bus.sh: New file, refactored
4900         from test/glib/run-test.sh.  Creates a temporary session
4901         bus and runs another program.
4902
4903         * test/glib/run-test.sh: Refactor to invoke
4904         run-with-tmp-session-bus.sh.
4905
4906         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4907         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4908         macros instead of hardcoding.
4909
4910         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4911
4912 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4913
4914         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4915         this unref; it doesn't match up evenly in some codepaths.
4916         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4917         this evenly matches with the ref near the top of this function.
4918
4919 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4920
4921         * dbus/dbus-object-tree.c
4922         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4923         and we try to unregister a path that's not registered, still go
4924         through the process of unlocking and don't just return.
4925
4926 2005-03-09  Colin Walters  <walters@verbum.org>
4927
4928         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4929         to this are generated for client-side wrappers.  Invokes a
4930         D-BUS method and returns reply values.  
4931
4932         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4933         function; writes signature string for argument direction.
4934         (write_args_for_direction): Change to pass input values directly
4935         instead of via address, and fix indentation.
4936         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4937         make generated wrappers inlineable.
4938
4939         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4940         note about using dbus_type_is_fixed.
4941
4942         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4943         dbus/dbus-signature.c as dbus_type_is_fixed.
4944
4945         All callers updated.
4946
4947         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4948         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4949
4950         * dbus/dbus-signature.h: Prototype.
4951
4952         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4953         error printf code.
4954
4955         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4956         appropriate instead of just freeing it.
4957         (main): Free returned strings using g_free.
4958
4959         * test/glib/Makefile.am (test-service-glib-glue.h)
4960         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4961
4962         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4963         simply maps a simple D-BUS type to GType.
4964         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4965         GType.
4966         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4967         initialize the value with it.
4968         (dbus_gvalue_binding_type_from_type): Unused, delete.
4969         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4970         various types instead of unmarshalling to value data directly.
4971         Remove can_convert boolean.
4972         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4973         returning directly instead of using can_convert boolean.
4974         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4975         Stores a GValue in a pointer to a value of its corresponding C
4976         type.
4977
4978         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4979         add dbus_gvalue_store.
4980
4981 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4982
4983         Fix a bunch of lifecycle and memory management problems
4984         in the mono bindings.
4985
4986         * mono/Arguments.cs (Arguments): Implement IDisposable
4987
4988         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4989         strictly a static class.
4990
4991         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4992         delegates into this file.
4993         (Connection): Implement IDisposable.
4994         (Dispose): Disconnect the connection and set the raw connection
4995         pointer to IntPtr.Zero.
4996         (~Connection): Call Dispose().
4997         (RegisterObjectPath): Added.  Manages the registration of object
4998         paths so we can cleanly disconnect them at dispose/finalize time.
4999         (UnregisterObjectPath): Ditto.
5000         (set_RawConnection): Unregister all of the object paths when
5001         changing the underlying DBusConnection.  Add them back onto the
5002         new connection, if any.
5003
5004         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5005         more unmanaged resources anymore, so it's not necessary.  Move all
5006         the DBusObjectPathVTable stuff out of here.
5007         (Handler): Save references to our delegates so that they don't get
5008         finalized.  Call Connection.RegisterObjectPath() instead of
5009         dbus_connection_register_object_path() directly.
5010         (Message_Called): Dispose the message after we're finished with
5011         it.
5012
5013         * mono/Message.cs (Message): Implement IDisposable.
5014         (Dispose): Dispose the Arguments, and set the RawMessage to
5015         IntPtr.Zero.
5016         (SendWithReplyAndBlock): We own the ref to the reply that comes
5017         back from dbus_connection_send_with_reply_and_block() so add a
5018         comment about that and unref it after we've constructed a managed
5019         MethodReturn class around it.  Fixes a big, big leak.
5020
5021         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5022         method.
5023         (BuildSignalHandler): After we've sent the Signal message, dispose
5024         of it.
5025         (BuildMethod): Dispose of the method call and reply messages after
5026         we've sent the message and extracted the data we want from the
5027         reply.
5028
5029         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5030         anymore.
5031         (Service_FilterCalled): Dispose of the message after we're
5032         finished with it.
5033
5034 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5035
5036         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5037         After we attach our pending call to the connection, unref
5038         it.  Fixes a leak.
5039  
5040         * mono/Connection.cs (set_RawConnection): Disconnect our
5041         filter and match callbacks from the old connection and
5042         reconnect them to the new connection, if any.
5043
5044         * mono/DBusType/Array.cs: "Code" is a static member, so
5045         don't use "this" to refer to it.  Fix for stricter checking
5046         in Mono 1.1.4.
5047  
5048         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5049         object path that we pass into unmanaged code.
5050  
5051         * mono/DBusType/String.cs (Append): Don't leak the string
5052         that we pass into unmanged code.
5053
5054 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5055         * NEWS: Update for 0.31
5056
5057         * configure.in: Release 0.31
5058         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5059
5060         * qt/Makefile.am: fixed build
5061
5062         * dbus/Makefile.am: soname bump for libdbus
5063
5064         * glib/Makefile.am: soname bump for libdbus-glib
5065
5066 2005-03-05  Havoc Pennington  <hp@redhat.com>
5067
5068         * dbus/dbus-sysdeps.c:
5069         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5070         value
5071         (_dbus_generate_random_bytes_buffer): fix return value
5072
5073         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5074         checks actually work, from Tom Parker <fdo@tevp.net>
5075
5076 2005-03-01  Colin Walters  <walters@verbum.org>
5077
5078         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5079         functions copied from dbus-glib-tool.c.
5080         (main): Convert lots of error code to use them.
5081         Also add some testing for introspection bits.
5082
5083 2005-03-01  Colin Walters  <walters@verbum.org>
5084         
5085         * doc/TODO: Remove introspection signature TODO.
5086
5087 2005-02-27  Colin Walters  <walters@verbum.org>
5088
5089         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5090         Change return value to const char * instead of int so we can do
5091         full signatures.
5092         (struct PropertyInfo, struct ArgInfo): Store char *.
5093         (property_info_new, arg_info_new): Update parameters, strdup.
5094         (property_info_unref, arg_info_unref): Free.
5095
5096         * glib/dbus-gidl.h: Update prototypes.
5097
5098         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5099         (validate_signature): New function, just validates signature and
5100         sets GError.
5101         (parse_property, parse_arg): Invoke validate_signature.  Store
5102         signature instead of just type code.
5103
5104         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5105         function to return a primary type for a signature, dropping
5106         information about types in container types.
5107         (dbus_gvalue_genmarshal_name_from_type)
5108         (dbus_gvalue_binding_type_from_type)
5109         (dbus_gvalue_ctype_from_type): Update to take full signature
5110          instead of type code.
5111         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5112
5113         * glib/dbus-gvalue.h: Update prototypes for above.
5114
5115         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5116         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5117         (introspect_properties, introspect_signals, write_interface):
5118         Update to handle signatures, and remove usage of
5119         _dbus_gutils_type_to_string.
5120         (handle_introspect): Print out type codes instead of e.g. "string"
5121         in hardcoded introspection XML; also use x_AS_STRING constants
5122         instead of hardcoding in string.
5123
5124         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5125         to string.  Remove usage of _dbus_gutils_type_to_string.
5126
5127         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5128
5129         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5130         deletion.
5131         
5132         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5133         (compute_marshaller_name, generate_glue): Handle signature change
5134         to string.
5135         (write_formal_parameters, write_args_for_direction): Ditto, and
5136         remove FIXME.
5137
5138         * tools/dbus-tree-view.c (type_to_string): Delete.
5139         (info_set_func_text): Update to print full signatures.
5140
5141         * test/glib/test-service-glib.xml: Change types to new
5142         introspection format.
5143
5144 2005-02-26  Havoc Pennington  <hp@redhat.com>
5145
5146         * doc/TODO: remove the "guid" item
5147
5148         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5149         (with_bus_thread_func): use open_private
5150
5151         * dbus/dbus-connection.c (dbus_connection_open_private): new
5152         function that works like the old dbus_connection_open()
5153         (dbus_connection_open): now returns an existing connection if
5154         possible
5155
5156         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5157         through the GUID to the transport
5158
5159         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5160         GUID in hex-encoded form.
5161
5162         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5163         pass GUID argument in to the transport
5164
5165         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5166         guid argument
5167
5168         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5169
5170         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5171
5172 2005-02-25  Havoc Pennington  <hp@redhat.com>
5173
5174         * doc/dbus-specification.xml: document the GUID thing
5175
5176         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5177         globally unique ID for the server, and put a "guid=hexencoded"
5178         field in the address
5179
5180         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5181
5182         * dbus/dbus-message.c: ditto
5183
5184         * dbus/dbus-dataslot.c: ditto
5185
5186         * dbus/dbus-list.c: ditto
5187
5188         * dbus/dbus-internals.h: wait, just include
5189         dbus-threads-internal.h here
5190         
5191         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5192         use in main library
5193
5194         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5195
5196 2005-02-24  Colin Walters  <walters@verbum.org>
5197
5198         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5199
5200 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5201
5202         * glib/Makefile.am: added dbus-gobject.h to sources list
5203         so distcheck doesn't fail
5204         
5205 2005-02-24  Havoc Pennington  <hp@redhat.com>
5206
5207         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5208         you must disconnect before unref, since locking and other things
5209         are screwed up otherwise. Fix assorted other locking stuff.
5210
5211         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5212         fix compilation
5213
5214         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5215         into a private header and don't export from the library
5216
5217         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5218
5219 2005-02-24  Colin Walters  <walters@verbum.org>
5220         
5221         * dbus/dbus-signature.c: New file; implements various functions
5222         related to type signatures.  Includes an interator for parsing,
5223         validation functions.
5224         (dbus_type_is_basic): Moved here from
5225         dbus-marshal-basic.c:_dbus_type_is_basic.
5226         (dbus_type_is_container): Moved here from
5227         dbus-marshal-basic.c:_dbus_type_is_container.
5228
5229         All callers of _dbus_type_is_container and _dbus_type_is_basic
5230         updated, and include dbus-signature.h.
5231
5232         * dbus/dbus-signature.h: New file; prototypes for the above.
5233
5234         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5235         dbus-signature.h.
5236
5237         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5238         function factored out of _dbus_first_type_in_signature.
5239         (_dbus_first_type_in_signature_c_str): New function; returns first
5240         type code for a type signature character.
5241
5242         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5243         handle function moves.
5244
5245         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5246
5247         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5248         function; skips to next complete type in type signature.
5249         Implemented using previous skip_one_complete_type.  Now
5250         skip_one_complete_type just delegates to
5251         _dbus_type_signature_next.
5252
5253         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5254         to dbus-signature.c
5255         (_dbus_type_is_container): Ditto.
5256
5257         * doc/dbus-specification.xml: Update introspection sample to
5258         use real type signatures.
5259
5260         * dbus/dbus-test.h: Prototype signature test.
5261
5262         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5263         signature tests.
5264
5265         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5266
5267 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5268
5269         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5270         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5271
5272 2005-02-21  Colin Walters  <walters@verbum.org>
5273
5274         * dbus/dbus-test-main.c (main): Take optional specific test
5275         argument.
5276
5277         * dbus/dbus-test.c (run_test): New function, runs a test function
5278         with no data directory.
5279         (run_data_test): Like above, but takes data directory.
5280         (dbus_internal_do_not_use_run_tests): Take
5281         specific test argument.  Replace lots of cut n' paste code
5282         with run_test and run_data_test.
5283
5284         * dbus/dbus-test.h: Update prototype for
5285         dbus_internal_do_not_use_run_tests.
5286
5287 2005-02-20  Havoc Pennington  <hp@redhat.com>
5288
5289         Fix bugs reported by Daniel P. Berrange
5290         
5291         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5292         (protected_change_watch): new function
5293         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5294         (_dbus_server_add_watch): change to work like the
5295         dbus-connection.c equivalents; like those, probably kind of
5296         busted, but should at least mostly work for now
5297         (dbus_server_disconnect): drop the lock if we were already
5298         disconnected, patch from Daniel P. Berrange
5299
5300         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5301         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5302         same stuff
5303
5304         * doc/TODO: todo about unscrewing this mess
5305
5306 2005-02-19  Colin Walters  <walters@verbum.org>
5307
5308         * glib/dbus-binding-tool-glib.c
5309         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5310
5311         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5312         as errno.h and sys/stat.h.
5313         (lose): New function, prints error with
5314         newline and exits.
5315         (lose_gerror): Similar, but takes GError for message.
5316         (main): Add --output argument to specify output file to write to,
5317         instead of always printing to stdout.  In this mode, determine
5318         timestamps on source files to see whether any are newer than the
5319         target file.  If not, exit.  Also convert a number of error
5320         messages to use lose (since it's shorter), and switch to using
5321         g_io_channel_shutdown.
5322
5323 2005-02-19  Havoc Pennington  <hp@redhat.com>
5324
5325         * glib/dbus-gobject.c
5326         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5327
5328         * glib/dbus-glib.c: fix doxygen warnings
5329
5330         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5331         is found on an <arg>
5332
5333 2005-02-17  Colin Walters  <walters@verbum.org>
5334
5335         * glib/dbus-gobject.h: Don't export
5336         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5337         
5338         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5339         (invoke_object_method): Handle it.
5340
5341         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5342         Handle rename.
5343         
5344 2005-02-17  Colin Walters  <walters@verbum.org>
5345
5346         * bus/.cvsignore, doc/.cvsignore
5347         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5348         Update.
5349
5350 2005-02-17  Colin Walters  <walters@verbum.org>
5351         
5352         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5353         Rename to DBUS_SERVICE_DBUS.
5354         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5355         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5356         Change the value from "org.freedesktop.Local"
5357         to "org.freedesktop.DBus.Local".
5358         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5359         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5360         DBUS_INTERFACE_INTROSPECTABLE.
5361         Change the value from "org.freedesktop.Introspectable"
5362         to "org.freedesktop.DBus.Introspectable".
5363         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5364         DBUS_INTERFACE_PROPERTIES.
5365         Change the value from "org.freedesktop.Properties"
5366         to "org.freedesktop.DBus.Properties".
5367         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5368         DBUS_INTERFACE_PEER.
5369         Change the value from "org.freedesktop.Peer"
5370         to "org.freedesktop.DBus.Peer".
5371         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5372         DBUS_INTERFACE_LOCAL.
5373         Change the value from "org.freedesktop.Local"
5374         to "org.freedesktop.DBus.Local".
5375
5376         All other users of those constants have been changed.
5377
5378         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5379
5380         * glib/dbus-gobject.c (handle_introspect): Use constants.
5381
5382         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5383
5384 2005-02-17  Colin Walters  <walters@verbum.org>
5385
5386         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5387         (parse_node, parse_interface, parse_method, parse_signal)
5388         (parse_property, parse_annotation): Lose if we're currently in an
5389         annotation.
5390         (parse_annotation): New function.
5391         (parser_start_element, parser_end_element): Handle annotation.
5392         (parse_method, parse_interface): Remove support for c_name attribute,
5393         switch to annotations.
5394
5395         * glib/dbus-gidl.h (interface_info_get_binding_names)
5396         (method_info_get_binding_names)
5397         (interface_info_get_binding_name, method_info_get_binding_name)
5398         (interface_info_set_binding_name, method_info_set_binding_name):
5399         Remove.
5400         (interface_info_get_annotations, method_info_get_annotations)
5401         (interface_info_get_annotation, method_info_get_annotation)
5402         (interface_info_add_annotation, method_info_add_annotation):
5403         Prototype.
5404
5405         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5406         for "bindings".
5407         (struct MethodInfo): Ditto.
5408         Straightfoward conversion of binding methods into annotation methods
5409         as prototyped.
5410
5411         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5412
5413         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5414
5415         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5416         Use new annotation API.
5417
5418         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5419         annotation element.
5420         
5421         * doc/dbus-specification.xml: Discuss introspection annotations,
5422         include list of well-known annotations.
5423
5424         * test/glib/test-service-glib.xml: Make validate against new DTD.
5425
5426 2005-02-17  Colin Walters  <walters@verbum.org>
5427
5428         This patch is based on initial work from
5429         Paul Kuliniewicz <kuliniew@purdue.edu>.
5430
5431         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5432         initialization of GValue from dbus type to here.
5433         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5434         for the "glib-genmarshal" program from a DBus type.
5435         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5436         into the C name for it we use in the glib bindings.
5437         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5438         glib C type (not GValue).
5439         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5440
5441         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5442         from dbus-gobject.c.
5443
5444         * glib/dbus-gutils.h: Prototype it.
5445
5446         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5447         (marshal_dbus_message_to_g_marshaller): Use new shared function
5448         dbus_glib_marshal_dbus_message_to_gvalue_array.
5449
5450         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5451         Will be changed once we have annotations.
5452
5453         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5454         GStaticRWLock.  Callers updated.
5455         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5456         (string_table_next): New function for iterating over zero-terminated
5457         string value array.
5458         (string_table_lookup): New function; retrieves specific entry in
5459         array.
5460         (get_method_data): New function; look up method data in object data chunk.
5461         (object_error_domain_prefix_from_object_info)
5462         (object_error_code_from_object_info): New functions, but not implemented yet.
5463         (method_interface_from_object_info): New function; retrieve interface name.
5464         (method_name_from_object_info): New function; retrieve method name.
5465         (method_arg_info_from_object_info): New function; retrieve argument data.
5466         (arg_iterate): New function; iterates over serialized argument data.
5467         (method_dir_signature_from_object_info): New function; returns a
5468         GString holding type signature for arguments for just one
5469         direction (input or output).
5470         (method_input_signature_from_object_info)
5471         (method_output_signature_from_object_info): New functions.
5472         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5473         converts dbus message arguments into a GValue array.  Used for both
5474         signal handling and method invocation.
5475         (struct DBusGlibWriteIterfaceData): New utility structure.
5476         (write_interface): New function; generate introspection XML for
5477         an interface.
5478         (introspect_interfaces): New function; gathers all interface->methods,
5479         generates introspection XML for them.
5480         (handle_introspect): Invoke introspect_interfaces.
5481         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5482         (lookup_object_and_method): New function; examines an incoming message
5483         and attempts to match it up (via interface, method name, and argument
5484         signature) with a known object and method.
5485         (gerror_domaincode_to_dbus_error_name): New function; converts a
5486         GError domain and code into a DBus error name.  Needs GError data
5487         added to object introspection to work well.
5488         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5489         GError.
5490         (invoke_object_method): New function to invoke an object method
5491         looked up via lookup_object_and_method.  Parses the incoming
5492         message, turns it into a GValue array, then invokes the marshaller
5493         specified in the DBusGMethodInfo.  Creates a new message with
5494         either return values or error message as appropriate.
5495         (gobject_message_function): Invoke lookup_object_and_method and
5496         invoke_object_method.
5497
5498         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5499         (enum DBusBindingOutputMode): New enum for binding output modes.
5500         (pretty_print): Print binding names.
5501         (dbus_binding_tool_error_quark): GError bits.
5502         (version): Fix typo.
5503         (main): Create GIOChannel for output.  Parse new --mode argument,
5504         possible values are "pretty-print", "glib-server", "glib-client".
5505         Use mode to invoke appropriate function.
5506         
5507         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5508
5509         * glib/dbus-glib-tool.h: New header, just includes GError bits
5510         for now.
5511
5512         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5513         maps binding style to name.
5514         (struct MethodInfo): Ditto.
5515         (get_hash_keys, get_hash_key): Utility function, returns keys for
5516         a GHashTable.
5517         (interface_info_new, method_info_new): Initialize bindings.
5518         (interface_info_unref, method_info_unref): Destroy bindings.
5519         (method_info_get_binding_names, method_info_get_binding_name)
5520         (interface_info_get_binding_names, interface_info_get_binding_name):
5521         Functions for retrieving binding names.
5522         (method_info_set_binding_name, interface_info_set_binding_name):
5523         Functions for setting binding names.
5524
5525         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5526         for glib binding generation.
5527
5528         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5529         and client-side glib glue generation.
5530
5531         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5532         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5533         dbus-glib-tool.h.
5534
5535         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5536         of using GClosureMarshal directly.
5537         (struct DBusGObjectInfo): Add n_infos member.
5538
5539         * test/glib/test-service-glib.xml: New file; contains introspection data
5540         for MyTestObject used in test-service-glib.c.
5541
5542         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5543         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5544         (my_object_uppercase, my_object_many_args): New test methods.
5545         (main): Use dbus_g_object_class_install_info to include generated object
5546         info.
5547
5548         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5549         as well as client-side bindings.
5550
5551         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5552         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5553         using both the dbus_gproxy stuff directly as well as the generated bindings.
5554
5555 2005-02-15  Havoc Pennington  <hp@redhat.com>
5556
5557         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5558         complete a pending call, don't run filters first.
5559
5560         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5561         dbus_pending_call_steal_reply
5562
5563         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5564         _dbus_connection_block_pending_call
5565         (dbus_pending_call_get_reply): change to steal_reply and return a
5566         ref
5567
5568         * dbus/dbus-connection.c
5569         (dbus_connection_send_with_reply_and_block): port to work in terms
5570         of DBusPendingCall
5571         (_dbus_connection_block_pending_call): replace block_for_reply
5572         with this
5573
5574 2005-02-14  Havoc Pennington  <hp@redhat.com>
5575
5576         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5577         properly handle looking up group information by name; fix 
5578         from j@bootlab.org
5579
5580 2005-02-13  Havoc Pennington  <hp@redhat.com>
5581
5582         * dbus/dbus-connection.c (dbus_connection_return_message) 
5583         (dbus_connection_borrow_message): hold dispatch lock while message
5584         is outstanding
5585         (_dbus_connection_block_for_reply): hold dispatch lock while we
5586         block for the reply, so nobody steals our reply
5587         (dbus_connection_pop_message): hold the dispatch lock while we
5588         pluck the message
5589
5590 2005-02-13  Havoc Pennington  <hp@redhat.com>
5591
5592         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5593         (_dbus_connection_release_dispatch)
5594         (_dbus_connection_acquire_io_path)
5595         (_dbus_connection_release_io_path): make the mutex and condvar
5596         control access to the "acquired" flag. Drop the connection lock
5597         while waiting on the condvar. Hopefully these are baby steps in
5598         roughly the right direction.
5599
5600 2005-02-13  Havoc Pennington  <hp@redhat.com>
5601
5602         * dbus/dbus-connection.c: use separate mutexes for the condition
5603         variables; this is some kind of baseline for sanity, but the
5604         condition variables still aren't used correctly afaict
5605
5606 2005-02-13  Havoc Pennington  <hp@redhat.com>
5607
5608         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5609         fix a double-unlock
5610
5611         * dbus/dbus-connection.c
5612         (_dbus_connection_detach_pending_call_unlocked): add this
5613
5614         Initial semi-correct pass through to fix thread locking; there are
5615         still some issues with the condition variable paths I'm pretty
5616         sure
5617         
5618         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5619         lock/unlock calls
5620
5621         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5622         rename to add _unlocked
5623         (struct DBusConnection): move "dispatch_acquired" and
5624         "io_path_acquired" to use only one bit each.
5625         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5626         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5627         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5628         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5629         (_dbus_connection_remove_timeout) 
5630         (_dbus_connection_toggle_timeout): drop lock when calling out to
5631         user functions; done in a hacky/bad way.
5632         (_dbus_connection_send_and_unlock): add a missing unlock
5633         (_dbus_connection_block_for_reply): add a missing unlock
5634
5635         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5636         drop lock in a hacky probably unsafe way to call out to user
5637         function
5638
5639 2005-02-12  Havoc Pennington  <hp@redhat.com>
5640
5641         * tools/dbus-tree-view.c (info_set_func_text): display more
5642         details on args
5643
5644         * bus/driver.c (bus_driver_handle_list_services): list the bus
5645         driver
5646
5647         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5648
5649         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5650         (method_info_get_n_args): new function
5651
5652 2005-02-12  Havoc Pennington  <hp@redhat.com>
5653
5654         * bus/driver.c (bus_driver_handle_introspect): add introspection
5655         for bus driver
5656
5657 2005-02-12  Havoc Pennington  <hp@redhat.com>
5658
5659         * bus/driver.c: put the signature of each bus driver method in the
5660         table of handlers and check it on incoming calls; this isn't
5661         really useful, but going to add introspect support in a minute.
5662
5663 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5664
5665         * mono/Connection.cs: The unpredictability of finalizers in mono
5666         prevents us from deterministically disconnecting the filters from
5667         the Service class's finalizer, so move tracking of filters and
5668         matches here.  Add API for that.
5669
5670         * mono/Service.cs: Remove the code, add code which calls the
5671         methods now on the Connection class.
5672
5673 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5674
5675         * python/dbus.py (class Sender): added to support dbus signals better
5676         (Bus::add_signal_receiver): added expand_args parameter which defaults
5677         to True.  When expand args is True the signal handler will pass the 
5678         message arguments as parameters to the signal handler.  If False
5679         revert to previous behavior where the signal handler must get the
5680         argument list from the message.  This is to help port applications
5681         like HAL that have a tendancy to send variable length argument lists.
5682         self._match_rule_to_receivers is now a dict of dicts.
5683         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5684         removing it from a list
5685         (Bus::_signal_func): change signal handlers so that interface,
5686         signal_name, service, path and message are packed into a Sender
5687         object and that is passed to the handler.  If expand_args is True
5688         extract the args list from the message and append it to the parameter
5689         list
5690         
5691         * python/dbus_bindings.pyx.in (class Signature): added to support 
5692         signiature types
5693         (MessageIter::__init__): changed iteration limit to match D-BUS
5694         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5695         STRUCT and VARIENT type support
5696         (MessageIter::python_value_to_dbus_sig): made recursive to support
5697         recursive types
5698         (MessageIter::append*): added Signature, dict, tuple 
5699         support
5700
5701         * python/examples/example-client.py: added examples of getting tuples
5702         and dicts
5703
5704         * python/examples/example-service.py: added examples of sending tuples
5705         and dicts
5706
5707         * python/examples/example-signal-recipient.py: Fixed to handle new
5708         signal callback format
5709
5710 2005-02-10  Havoc Pennington  <hp@redhat.com>
5711
5712         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5713         (call dbus_g_proxy_add_signal)
5714
5715         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5716         escape the hostname
5717         (_dbus_server_new_for_domain_socket): escape the path
5718
5719         * dbus/dbus-address.c (dbus_address_escape_value): new
5720         (dbus_address_unescape_value): new
5721         (dbus_parse_address): unescape values
5722
5723         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5724
5725         * doc/dbus-specification.xml: explain how to escape values in
5726         addresses
5727
5728 2005-02-10  Havoc Pennington  <hp@redhat.com>
5729
5730         * dbus/dbus-message-factory.c (generate_special): modify test to
5731         avoid using a non-basic dict key
5732
5733         * dbus/dbus-marshal-validate-util.c: add test for the below
5734
5735         * doc/dbus-specification.xml: require that dict keys are a basic
5736         type
5737
5738         * dbus/dbus-marshal-validate.c
5739         (_dbus_validate_signature_with_reason): require that dict key is a
5740         basic type
5741
5742 2005-02-10  Havoc Pennington  <hp@redhat.com>
5743
5744         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5745         change to be _and_unlock instead of _unlocked
5746
5747         * dbus/dbus-connection.c
5748         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5749         have no_update so we can find this bug quickly in future
5750
5751 2005-02-10  Havoc Pennington  <hp@redhat.com>
5752
5753         * dbus/dbus-message-util.c (verify_test_message): tests for string
5754         array
5755
5756         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5757         support for arrays of string/signature/path
5758
5759 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5760
5761         * dbus/dbus-connection.c
5762         (_dbus_connection_queue_received_message_link,
5763         _dbus_connection_message_sent): Add the path to
5764         the verbose output.
5765         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5766         _dbus_connection_send_preallocated_unlocked(), updated the
5767         dispatch status, and unlocks.  Fixes a bug where certain
5768         situations (like a broken pipe) could cause a Disconnect message
5769         to not be sent, tricking the bus into thinking a service was still
5770         there when the process had quit.
5771         (_dbus_connection_send_preallocated): Call
5772         _dbus_connection_send_preallocated_and_unlock().
5773         (_dbus_connection_send_and_unlock): Added.  Calls
5774         _dbus_connection_send_preallocated_and_unlock().
5775         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5776         (dbus_connection_send_with_reply): Update the dispatch status and
5777         unlock.
5778
5779         * mono/Service.cs (~Service): Added.  Removes the filter so that
5780         we don't get unmanaged code calling back into a GCed delegate.
5781         (RemoveFilter); Added.
5782
5783 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5784
5785         * dbus/dbus-message.c (dbus_message_iter_open_container):
5786         - Removed check for iterator type being an array because
5787         get_arg_type does not work with writer iterators
5788         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5789
5790 2005-02-07  Havoc Pennington  <hp@redhat.com>
5791
5792         * doc/dbus-specification.xml: some more language cleanups; add
5793         stuff about how to deal with invalid protocol and extension
5794         points; add _ to allowed chars in auth commands; add EXTENSION_
5795         auth command prefix
5796
5797 2005-02-06  Havoc Pennington  <hp@redhat.com>
5798
5799         * s/expected/required/ in a couple places for clarity
5800
5801 2005-02-07  Colin Walters  <walters@verbum.org>
5802
5803         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5804         sender or proposed_recipient.
5805
5806 2005-02-06  Havoc Pennington  <hp@redhat.com>
5807
5808         * dbus/dbus-message-factory.c (generate_special): more tests
5809
5810         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5811         array length that exceeds the maximum
5812
5813 2005-02-05  Havoc Pennington  <hp@redhat.com>
5814
5815         * dbus/dbus-message-factory.c (generate_special): more test cases,
5816         increasing coverage
5817
5818         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5819         reason why a signature was invalid
5820
5821         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5822         skip the length of the string before we look at it in validation
5823
5824         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5825         equal_substring
5826
5827         * dbus/dbus-message.c (_dbus_message_loader_new): default
5828         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5829
5830 2005-02-05  Havoc Pennington  <hp@redhat.com>
5831
5832         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5833         if the signature of a variant was empty
5834         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5835         struct with no element type)
5836
5837         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5838         mangled messages to break things
5839
5840 2005-02-04  Havoc Pennington  <hp@redhat.com>
5841
5842         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5843         g_quark_try_string() so it actually can return 0
5844         (dbus_g_proxy_connect_signal): ditto
5845
5846 2005-02-04  Havoc Pennington  <hp@redhat.com>
5847
5848         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5849         bogus warning
5850         (tristring_from_message): assert cleanly on null path/interface
5851         (should not be possible though I decided later)
5852         (dbus_g_proxy_dispose): move proxy manager unregistration here
5853         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5854         g_return_if_fail() checks
5855
5856 2005-02-04  Havoc Pennington  <hp@redhat.com>
5857
5858         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5859
5860         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5861         (with some minor changes)
5862
5863         * doc/dbus-specification.xml: add deprecated attribute to
5864         introspection format
5865
5866 2005-01-31  Havoc Pennington  <hp@redhat.com>
5867
5868         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5869         think it's sort of right
5870
5871 2005-01-30  Havoc Pennington  <hp@redhat.com>
5872
5873         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5874
5875 2005-01-30  Havoc Pennington  <hp@redhat.com>
5876
5877         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5878
5879         * autogen.sh: change to autotools 1.9
5880
5881         * glib/dbus-gproxy.c: completely change how signals work
5882         (dbus_g_proxy_add_signal): new function to specify signature of a
5883         signal
5884         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5885         and g_warning if the incoming message has the wrong signature.
5886
5887 2005-01-30  Havoc Pennington  <hp@redhat.com>
5888
5889         * tools/dbus-names-model.c (have_names_notify): fix this
5890
5891         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5892         up the string array handling a bit 
5893
5894 2005-01-30  Havoc Pennington  <hp@redhat.com>
5895
5896         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5897         (dbus_g_pending_call_cancel): new function
5898
5899         * dbus/dbus-glib.h: move GType decls for connection/message here;
5900         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5901         here, just kind of rationalizing how we handle all that
5902
5903         * tools/dbus-names-model.c: new file for a tree model listing the
5904         services on a bus
5905
5906         * tools/dbus-tree-view.c (model_new): use proper typing on the
5907         model rows
5908
5909 2005-01-30  Havoc Pennington  <hp@redhat.com>
5910
5911         * glib/dbus-gmain.c: add a custom GSource back that just checks
5912         whether the message queue has anything in it; otherwise, there are 
5913         cases where we won't see messages in the queue since there was no 
5914         IO visible to the glib main loop
5915
5916         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5917         increase default message timeout to 25 seconds
5918
5919 2005-01-30  Havoc Pennington  <hp@redhat.com>
5920
5921         * test/glib/test-profile.c (no_bus_stop_server): remove the
5922         warning about the g_warning that I just fixed
5923
5924         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5925         custom source, seems to be a lot easier to understand and work
5926         better.
5927
5928 2005-01-30  Havoc Pennington  <hp@redhat.com>
5929
5930         I think this main loop thing is conceptually broken, but here are 
5931         some band aids. I'll maybe rewrite it in a minute.
5932         
5933         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5934         custom GSource, so don't pass it in; confusing
5935         (gsource_server_finalize, gsource_connection_finalize): add
5936         finalize handlers that remove all the watches.  
5937
5938 2005-01-30  Havoc Pennington  <hp@redhat.com>
5939
5940         * glib/dbus-gobject.c (introspect_properties): fix the XML
5941         generated
5942
5943         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5944         which effectively detects the use of freed messages
5945
5946         * glib/dbus-gobject.c (handle_introspect): modify and return the
5947         reply message instead of the incoming message
5948
5949         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5950         gee, maybe it should SEND THE XML instead of just making a string
5951         and freeing it again ;-)
5952
5953         * tools/dbus-print-message.c (print_message): improve printing of
5954         messages
5955
5956         * configure.in: add debug-glib.service to the output
5957
5958 2005-01-30  Havoc Pennington  <hp@redhat.com>
5959
5960         dbus-viewer introspected and displayed the bus driver
5961         
5962         * dbus/dbus-object-tree.c 
5963         (object_tree_test_iteration): add tests for a handler registered on "/"
5964
5965         * dbus/dbus-object-tree.c
5966         (_dbus_decompose_path): fix to handle path "/" properly
5967         (run_decompose_tests): add tests for path decomposition
5968         
5969         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5970         properly
5971
5972         * glib/dbus-gobject.c (handle_introspect): fix quotes
5973
5974         * test/glib/run-test.sh: support launching the bus, then running
5975         dbus-viewer
5976
5977         * test/glib/test-service-glib.c (main): put in a trivial gobject
5978         subclass and register it on the connection
5979
5980         * bus/driver.c (bus_driver_handle_introspect): implement
5981         introspection of the bus driver service
5982
5983         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5984         identifiers, doctype decl
5985
5986         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5987         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5988         returning the service unchanged.
5989         (bus_driver_handle_message): remove old check for reply_serial in
5990         method calls, now the message type deals with that
5991         (bus_driver_handle_message): handle NULL interface
5992
5993         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5994
5995         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5996         -1 for len
5997
5998         * tools/dbus-viewer.c: add support for introspecting a service on
5999         a bus
6000
6001         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6002         (dbus_g_pending_call_unref): add
6003
6004 2005-01-29  Havoc Pennington  <hp@redhat.com>
6005
6006         * tools/dbus-tree-view.c: add support for displaying properties.
6007         (run dbus-viewer with an introspect xml file as arg, then resize
6008         the window so the tree elements show up, not sure what that is)
6009
6010         * glib/dbus-gobject.c (handle_introspect): return
6011         org.freedesktop.Properties and org.freedesktop.Introspectable
6012         interfaces when we are introspected.
6013
6014         * doc/dbus-specification.xml: allow empty interface name when 
6015         Get/Set a property
6016
6017 2005-01-29  Havoc Pennington  <hp@redhat.com>
6018
6019         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6020         though it uses glib, it could be extended for any binding in
6021         principle
6022
6023         * glib/dbus-gobject.c (gobject_message_function): change to the
6024         new way properties work
6025
6026         * dbus/dbus-protocol.h: add the new interfaces
6027
6028         * doc/dbus-specification.xml: document the introspection format,
6029         Introspectable interface, and add an org.freedesktop.Properties
6030         interface.
6031
6032         * glib/dbus-gparser.c: add support for a <property> element
6033
6034         * glib/dbus-gidl.c: add PropertyInfo
6035
6036         * glib/dbus-gobject.c (handle_introspect): put the outermost
6037         <node> outside the signal and property descriptions.
6038         (introspect_properties): export properties as <property> rather
6039         than as method calls
6040
6041 2005-01-28  Havoc Pennington  <hp@redhat.com>
6042
6043         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6044         related to authentication protocol
6045
6046 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6047
6048         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6049                 - BUS_ACTIVATION -> BUS_STARTER
6050                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6051                 - class MessageIter (__init__): Added recursion checking 
6052                 so we throw a nice error instead of just disconnecting from the
6053                 bus.
6054                 (get): Added arg_type parameter for recursion.
6055                 Removed the nil type
6056                 Added signiture type placeholder (not implemented)
6057                 Added struct type placeholder (not implemented)
6058                 Added varient type placeholder (not implemented)
6059                 Commented out dict type for now     
6060                 (get_element_type): renamed from get_array_type
6061                 (get_*): changed to use the dbus_message_iter_get_basic API
6062                 (get_*_array): removed in favor of recursive get_array method
6063                 (get_array): new recursive method which calls get to marshal
6064                 the elements of the array
6065                 (value_to_dbus_sig): New method returns the corrasponding
6066                 dbus signiture to a python value
6067                 (append): Comment out dict handling for now
6068                 Handle lists with the new recursive API
6069                 Comment out None handling for now
6070                 (append_nil): removed
6071                 (append_*): changed to use dbus_message_iter_append_basic API
6072                 (append_*_array): removed in favor of recursive append_array 
6073                 method
6074                 (__str__): Make it easier to print out recursive iterators
6075                 for debugging
6076                 - class Message (__str__): moved type inspection to the
6077                 MessageIter class' __str__ method
6078                 (get_iter): Added an append parameter wich defaults to False
6079                 If True use the new API's to create an append iterator
6080
6081         * python/dbus.py: Update to use new bindings API
6082                 - TYPE_ACTIVATION -> TYPE_STARTER
6083                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6084                 - class ActivationBus -> class StarterBus
6085                 - class RemoteObject (__call__): get an append iterator
6086                 - (_dispatch_dbus_method_call): get an append iterator
6087                 - class Object (emit_signal): get an append iterator
6088
6089         * python/examples/: Fixed up the examples to work with the new API
6090                 
6091 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6092
6093         * configure.in: Bump version up to 0.30.
6094
6095         * HACKING: Add a release item to bump the version number up after 
6096         a release.
6097
6098 2005-01-28  Havoc Pennington  <hp@redhat.com>
6099
6100         * doc/dbus-specification.xml: update to describe 16-bit types and
6101         dict entries
6102
6103         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6104         assertion
6105
6106         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6107         type
6108
6109         * dbus/dbus-marshal-recursive.c: implement
6110
6111 2005-01-27  Havoc Pennington  <hp@redhat.com>
6112
6113         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6114
6115         * configure.in: find the right type for 16 and 32 bit ints as well
6116         as 64
6117
6118         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6119         the 16-bit types so people don't have to stuff them in 32-bit or
6120         byte arrays.
6121
6122 2005-01-27  Havoc Pennington  <hp@redhat.com>
6123
6124         * dbus/dbus-message.c: byteswap the message if you init an
6125         iterator to read/write from it
6126         
6127         * dbus/dbus-marshal-byteswap.c: new file implementing 
6128         _dbus_marshal_byteswap()
6129
6130         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6131
6132 2005-01-26  Havoc Pennington  <hp@redhat.com>
6133         
6134         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6135         build, apparently - nobody noticed?)
6136         
6137 2005-01-26  Havoc Pennington  <hp@redhat.com>
6138
6139         * dbus/dbus-marshal-recursive.h: remove todo comment
6140
6141 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6142
6143         * Land the mono binding changes to conform to the new APIs.
6144
6145         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6146         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6147
6148         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6149         type code as a string.
6150         (InitAppending): Rename dbus_message_append_iter_init() to
6151         dbus_message_iter_init_append().
6152
6153         * mono/BusDriver.cs: Rename ServiceEventHandler to
6154         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6155         Rename ServiceOwnerChanged to NameOwnerChanged.
6156
6157         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6158         underlying C call.
6159
6160         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6161
6162         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6163         dbus_bus_acquire_service() to dbus_bus_request_name().
6164
6165         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6166         of Type.UnderlyingSystemType to get the correct element type for
6167         the array.
6168         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6169         dbus_message_get_{element|arg}_type() instead of
6170         dbus_message_iter_init_array_iterator().
6171         (Append): Replace dbus_message_iter_append_array() with
6172         dbus_message_iter_open_container() and
6173         dbus_message_iter_close_container().
6174
6175         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6176         types have been removed.
6177         
6178         * mono/DBusType/*.cs: Replace calls of
6179         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6180         but specify the type in the DllImport extern declaration.  Ditto
6181         for dbus_message_iter_append_[type]() ->
6182         dbus_message_iter_append_basic().
6183
6184         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6185         NameOwnerChangedHandler.
6186
6187 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6188
6189         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6190                 - get_base_service -> get_unique_name
6191                 - bus_get_base_service -> bus_get_unique_name
6192                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6193                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6194                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6195                 - bus_activate_service -> bus_start_service_by_name
6196                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6197                 - bus_acquire_service -> bus_request_name
6198                 - dbus_bus_acquire_service -> dbus_bus_request_name
6199                 - bus_service_exists -> bus_name_has_owner
6200                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6201
6202         * python/dbus.py: Rename of methods
6203                 - activate_service -> start_service_by_name
6204                 - bus_acquire_service -> bus_request_name
6205                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6206                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6207
6208         
6209 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6210
6211         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6212         signature for the method that can't be found.
6213
6214         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6215         the message has any arguments, we need to call
6216         _dbus_type_reader_get_current_type(), not
6217         _dbus_type_reader_has_next().
6218
6219 2005-01-24  Havoc Pennington  <hp@redhat.com>
6220
6221         * dbus/dbus-message-factory.c: more testing of message validation
6222
6223         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6224         header
6225
6226 2005-01-23  Havoc Pennington  <hp@redhat.com>
6227
6228         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6229         get this all working, not many tests in the framework yet though
6230
6231 2005-01-22  Havoc Pennington  <hp@redhat.com>
6232
6233         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6234         tutorial, based on work from David Wheeler.
6235
6236 2005-01-21  Havoc Pennington  <hp@redhat.com>
6237
6238         * dbus/dbus-bus.c: add more return_if_fail checks
6239
6240         * dbus/dbus-message.c (load_message): have the "no validation"
6241         mode (have to edit the code to toggle the mode for now though)
6242
6243         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6244         skips all validation; I want to use this at least for benchmark
6245         baseline, I'm not sure if it should be a publicly-available switch.
6246
6247 2005-01-21  Havoc Pennington  <hp@redhat.com>
6248
6249         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6250         toplevel doxygen group as the low-level API stuff
6251
6252         * dbus/dbus.h: note that libdbus is the low-level API
6253
6254 2005-01-20  Havoc Pennington  <hp@redhat.com>
6255
6256         * update-dbus-docs.sh: script to update docs on the web site, only
6257         works for me though. neener.
6258
6259 2005-01-20  Havoc Pennington  <hp@redhat.com>
6260
6261         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6262         code can reveal bugs in it
6263
6264 2005-01-20  Havoc Pennington  <hp@redhat.com>
6265
6266         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6267         select() version, patches from Tor Lillqvist
6268
6269 2005-01-20  Havoc Pennington  <hp@redhat.com>
6270
6271         * doc/dbus-tutorial.xml: replace > with &gt;
6272
6273         * bus/services.c (bus_registry_acquire_service): validate the name
6274         and return a better error if it's no good.
6275
6276         * doc/dbus-specification.xml: note NO_AUTO_START change
6277
6278         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6279         from AUTO_START, we're toggling the default
6280
6281         * bus/dispatch.c: adapt the tests to change of auto-start default
6282
6283 2005-01-18  Havoc Pennington  <hp@redhat.com>
6284
6285         * rename dbus-daemon-1 to dbus-daemon throughout
6286
6287 2005-01-18  Havoc Pennington  <hp@redhat.com>
6288
6289         * Throughout, grand renaming to strip out the use of "service",
6290         just say "name" instead (or "bus name" when ambiguous).  Did not
6291         change the internal code of the message bus itself, only the
6292         programmer-facing API and messages.
6293         
6294         * doc/dbus-specification.xml: further update the message bus section
6295         
6296         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6297         in error case
6298
6299 2005-01-17  Havoc Pennington  <hp@redhat.com>
6300
6301         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6302         ever
6303
6304         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6305         "invalid name character" not only non-ASCII
6306
6307         * doc/dbus-specification.xml: further update spec, message bus 
6308         parts are still out-of-date but the marshaling etc. stuff is now
6309         accurate-ish
6310
6311 2005-01-17  Havoc Pennington  <hp@redhat.com>
6312
6313         * doc/dbus-specification.xml: partially update spec
6314
6315 2005-01-17  Havoc Pennington  <hp@redhat.com>
6316
6317         * Throughout, align variant bodies according to the contained
6318         type, rather than always to 8. Should save a fair bit of space in
6319         message headers.
6320         
6321         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6322         fix handling of case where p == end
6323
6324         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6325
6326 2005-01-17  Havoc Pennington  <hp@redhat.com>
6327
6328         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6329
6330         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6331         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6332         are marshaling/unmarshaling a boolean.
6333
6334 2005-01-16  Havoc Pennington  <hp@redhat.com>
6335
6336         This is about it on what can be disabled/deleted from libdbus
6337         easily, back below 150K anyhow. Deeper cuts are more work than 
6338         just turning the code off as I've done here.
6339         
6340         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6341         signed int convenience funcs
6342
6343         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6344         verbose mode
6345
6346         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6347         things out of libdbus
6348
6349         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6350         
6351         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6352         tests-enabled-only, though it should probably be deleted)
6353
6354         * dbus/dbus-message-util.c: same stuff
6355
6356         * dbus/dbus-auth-util.c: same stuff
6357
6358 2005-01-16  Havoc Pennington  <hp@redhat.com>
6359
6360         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6361
6362         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6363         way for stripping down dbus-userdb.c stuff included in libdbus.
6364         Rename _dbus_parse_uid for consistency.
6365
6366 2005-01-16  Havoc Pennington  <hp@redhat.com>
6367
6368         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6369         name the assertion failed in
6370
6371         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6372         (_dbus_return_val_if_fail): assert that the name of the function
6373         containing the check doesn't start with '_', since we only want to 
6374         use checks on public functions
6375         
6376         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6377         checks to assertions
6378
6379         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6380         change checks to asserts for private function
6381
6382         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6383         to asserts for private function
6384
6385         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6386         broken assertion that was breaking make check
6387         (_dbus_type_reader_array_is_empty): remove this rather than fix
6388         it, was only used in assertions
6389
6390 2005-01-16  Havoc Pennington  <hp@redhat.com>
6391
6392         * test/unused-code-gc.py: hacky script to find code that's used
6393         only by the bus (not libdbus) or used only by tests or not used at
6394         all. It has some false alarms, but looks like we can clean up a
6395         lot of size from libdbus.
6396
6397         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6398         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6399         
6400 2005-01-16  Havoc Pennington  <hp@redhat.com>
6401
6402         * Add and fix docs according to Doxygen warnings throughout
6403         source.
6404         
6405         * dbus/dbus-marshal-recursive.c
6406         (_dbus_type_reader_array_is_empty): change this to just call
6407         array_reader_get_array_len() and make it static
6408
6409         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6410         from get_array_type
6411         (dbus_message_iter_init_append): rename from append_iter_init
6412
6413         * dbus/dbus-marshal-recursive.c
6414         (_dbus_type_reader_get_element_type): rename from
6415         _dbus_type_reader_get_array_type
6416
6417 2005-01-15  Havoc Pennington  <hp@redhat.com>
6418
6419         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6420
6421         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6422         when DBUS_DISABLE_ASSERT
6423         (_dbus_marshal_set_basic): be sure we align for the string length
6424
6425         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6426         this look faster
6427
6428         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6429         inline macro version
6430         (_dbus_string_set_byte): provide inline macro version
6431
6432 2005-01-15  Havoc Pennington  <hp@redhat.com>
6433
6434         * Land the new message args API and type system.
6435
6436         This patch is huge, but the public API change is not 
6437         really large. The set of D-BUS types has changed somewhat, 
6438         and the arg "getters" are more geared toward language bindings;
6439         they don't make a copy, etc.
6440
6441         There are also some known issues. See these emails for details
6442         on this huge patch:
6443         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6444         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6445         
6446         * dbus/dbus-marshal-*: all the new stuff
6447
6448         * dbus/dbus-message.c: basically rewritten
6449
6450         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6451         freed blocks to be all non-nul bytes so using freed memory is less
6452         likely to work right
6453
6454         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6455         DBUS_FAIL_MALLOC=N environment variable, so you can do
6456         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6457         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6458         thorough.
6459
6460         * qt/message.cpp: port to the new message args API
6461         (operator<<): use str.utf8() rather than str.unicode()
6462         (pretty sure this is right from the Qt docs?)
6463
6464         * glib/dbus-gvalue.c: port to the new message args API
6465
6466         * bus/dispatch.c, bus/driver.c: port to the new message args API
6467
6468         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6469         "locked" flag to TRUE and align_offset to 0; I guess we never
6470         looked at these anyhow, but seems cleaner.
6471
6472         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6473         move allocation padding macro to this header; use it to implement
6474         (_DBUS_STRING_STATIC): ability to declare a static string.
6475
6476         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6477         change to return TRUE if the interface is not set.
6478
6479         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6480         to dbus-marshal-validate.[hc]
6481
6482         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6483         dbus-internals.c
6484
6485         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6486         to dbus-marshal-*.[hc]
6487
6488         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6489         function here from dbus-marshal.c
6490
6491 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6492
6493         * NEWS: Update for 0.23.
6494
6495         * configure.in: Release 0.23.
6496
6497 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6498
6499         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6500         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6501         behind.
6502
6503         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6504         uninstall"
6505
6506         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6507         is an enum, get the enum's underlying type.  Another mono
6508         1.1.3 fix.
6509
6510 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6511
6512         Patch from Sjoerd Simons <sjoerd@luon.net>
6513
6514         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6515         DESTDIR.  It breaks stuff.
6516
6517 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6518
6519         Patch from Tambet Ingo <tambet@ximian.com>
6520
6521         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6522         calling type.GetElementType().  The code previously depended on
6523         broken Mono behavior, which was fixed in Mono 1.1.3.
6524
6525         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6526         Activator.CreateInstance() so that the class's constructor is
6527         called with the right parameters.
6528
6529 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6530
6531         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6532
6533         * dbus/dbus-connection.c
6534         (_dbus_connection_queue_received_message_link): Call
6535         _dbus_connection_remove_timeout() instead of the _locked()
6536         variant, since it's always called from
6537         _dbus_connection_handle_watch(), which handles the locking.
6538         Removed the _locked() variant since it's no longer used.
6539
6540 2005-01-03  Havoc Pennington  <hp@redhat.com>
6541
6542         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6543         return
6544         
6545 2004-12-26  Havoc Pennington  <hp@redhat.com>
6546
6547         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6548
6549 2005-01-03  Havoc Pennington  <hp@redhat.com>
6550
6551         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6552         floating point
6553
6554         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6555
6556 2005-01-02  Havoc Pennington  <hp@redhat.com>
6557
6558         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6559
6560 2005-01-01  Havoc Pennington  <hp@redhat.com>
6561
6562         * configure.in: add -Wfloat-equal
6563
6564 2005-01-01  Havoc Pennington  <hp@redhat.com>
6565
6566         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6567         for a variety of reasons '==' doesn't do this.
6568
6569 2004-12-31  Havoc Pennington  <hp@redhat.com>
6570
6571         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6572         I keep wishing I had
6573
6574 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6575
6576         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6577
6578 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6579
6580         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6581         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6582         dbus-protocol.h.  Because they are defines and not enums they are not
6583         autogenerated.
6584
6585 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6586
6587         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6588         dbus_bus_activate_service
6589
6590         * python/dbus.py (Bus.activate_service): activate a service on the
6591         bus.
6592
6593 2004-12-24  Havoc Pennington  <hp@redhat.com>
6594
6595         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6596         file format has also changed and I haven't adapted to that yet
6597         
6598         * Makefile.am: load .gcno files from latest gcc
6599
6600 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6601         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6602
6603         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6604         lowlevel binding
6605
6606         * python/dbus.py (get_unix_user): Added binding to 
6607         call dbus_bindings.bus_get_unix_user
6608
6609         * python/extract.py: Modified the proto_pat regex to
6610         handle unsigned long
6611
6612 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6613
6614         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6615         better POSIX compliance.
6616
6617 2004-12-19  Havoc Pennington  <hp@redhat.com>
6618
6619         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6620         (_dbus_string_insert_8_aligned): new functions
6621
6622         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6623
6624 2004-12-18  Havoc Pennington  <hp@redhat.com>
6625
6626         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6627         macro
6628
6629         * dbus/dbus-message.c: fix a comment, and add a still-unused
6630         not-implemented function
6631
6632         * dbus/dbus-marshal.h: fix comment
6633
6634         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6635
6636 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6637
6638         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6639         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6640         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6641         Type.UnderlyingSystemType to get the actual system type
6642         underneath.  This code previously depended on the broken Mono
6643         behavior, which was fixed in 1.1.3.
6644
6645 2004-11-27  Havoc Pennington  <hp@redhat.com>
6646
6647         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6648         are disabled
6649         (_dbus_string_get_const_data): inline when asserts are disabled
6650
6651         * dbus/dbus-message.c: record the _dbus_current_generation of
6652         creation so we can complain if dbus_shutdown() is used improperly.
6653         Do this only if checks are enabled.
6654
6655         * dbus/dbus-connection.c: ditto
6656         
6657 2004-11-26  Havoc Pennington  <hp@redhat.com>
6658
6659         * test/glib/test-profile.c: add with_bus mode to profile echoes
6660         that go through the bus.
6661
6662         * test/glib/run-test.sh: add ability to run test-profile
6663
6664         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6665         config file reload.
6666
6667 2004-11-26  Havoc Pennington  <hp@redhat.com>
6668
6669         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6670         thing was implemented
6671
6672 2004-11-26  Havoc Pennington  <hp@redhat.com>
6673
6674         * test/glib/test-profile.c: tweak a bit, add support for some
6675         made-up minimal malloc overhead with plain sockets, since in 
6676         real life some sort of buffers are unavoidable thus we could 
6677         count them in the theoretical best case
6678
6679 2004-11-26  Havoc Pennington  <hp@redhat.com>
6680
6681         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6682         where I was trying to cache one too many messages
6683
6684 2004-11-26  Havoc Pennington  <hp@redhat.com>
6685
6686         * dbus/dbus-message.c: reimplement message cache as an array which 
6687         makes the cache about twice as fast and saves maybe 1.5% overall
6688
6689 2004-11-26  Havoc Pennington  <hp@redhat.com>
6690
6691         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6692         message cache lock here
6693
6694 2004-11-26  Havoc Pennington  <hp@redhat.com>
6695
6696         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6697         the "char byte_order" next to each other to save 4 bytes
6698         (dbus_message_new_empty_header): reduce preallocation, since the
6699         message cache should achieve a similar effect
6700         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6701         message cache that keeps a few DBusMessage around in a pool,
6702         another 8% speedup or so.
6703
6704         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6705
6706 2004-11-25  Havoc Pennington  <hp@redhat.com>
6707
6708         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6709         to write, without reading or blocking, try it before the poll()
6710         and skip the poll() if nothing remains to write. This is about a
6711         3% speedup in the echo client/server
6712
6713 2004-11-25  Havoc Pennington  <hp@redhat.com>
6714
6715         The primary change here is to always write() once before adding
6716         the write watch, which gives us about a 10% performance increase.
6717         
6718         * dbus/dbus-transport-unix.c: a number of modifications to cope
6719         with removing messages_pending
6720         (check_write_watch): properly handle
6721         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6722         messages_pending stuff
6723         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6724         AUTHENTICATED cases
6725         (unix_handle_watch): after writing, see if the write watch can be
6726         removed
6727         (unix_do_iteration): assert that write_watch/read_watch are
6728         non-NULL rather than testing that they aren't, since they 
6729         aren't allowed to be NULL. check_write_watch() at the end so 
6730         we add the watch if we did not finish writing (e.g. got EAGAIN)
6731
6732         * dbus/dbus-transport-protected.h: remove messages_pending call,
6733         since it resulted in too much inefficient watch adding/removing; 
6734         instead we now require that the transport user does an iteration 
6735         after queueing outgoing messages, and after trying the first
6736         write() we add a write watch if we got EAGAIN or exceeded our 
6737         max bytes to write per iteration setting
6738
6739         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6740         function
6741
6742         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6743         freed and then accessed, valgrind flagged this bug, fix it
6744
6745         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6746         as the last valid field plus 1, where really it is equal to the
6747         last valid field. Corrects some message corruption issues.
6748
6749         * dbus/dbus-mainloop.c: verbosity changes
6750
6751         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6752         instead of aborting in one of the test codepaths
6753
6754         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6755         caused not printing the pid ever again if a verbose was missing
6756         the newline at the end
6757         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6758
6759         * dbus/dbus-connection.c: verbosity changes; 
6760         (dbus_connection_has_messages_to_send): new function
6761         (_dbus_connection_message_sent): no longer call transport->messages_pending
6762         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6763         try to write() immediately, so we can avoid the write watch. This
6764         is the core purpose of this patchset
6765         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6766         dump the outgoing message queue, so nobody will get confused
6767         trying to send them or thinking stuff is pending to be sent
6768
6769         * bus/test.c: verbosity changes
6770
6771         * bus/driver.c: verbosity/assertion changes
6772
6773         * bus/dispatch.c: a bunch of little tweaks to get it working again
6774         because this patchset changes when/where you need to block.
6775
6776 2004-11-23  Havoc Pennington  <hp@redhat.com>
6777
6778         * test/glib/test-profile.c: modify to accept a plain_sockets
6779         argument in which case it will bench plain sockets instead of
6780         libdbus, for comparison purposes.
6781
6782 2004-11-22  Havoc Pennington  <hp@redhat.com>
6783
6784         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6785         threads for more time, so sysprof can get a grip on it.
6786
6787         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6788         pointless variable
6789
6790 2004-11-13  Havoc Pennington  <hp@redhat.com>
6791
6792         * test/glib/test-profile.c: fix this thing up a bit
6793
6794         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6795         preallocation sizes by a fair bit; not sure if this will be an
6796         overall performance win or not, but it does reduce reallocs.
6797
6798         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6799         the test hack that forced constant realloc if asserts are
6800         disabled, so we can profile sanely. Sprinkle in some
6801         _DBUS_UNLIKELY() which are probably pointless, but before I
6802         noticed the real performance problem I put them in.
6803         (_dbus_string_validate_utf8): micro-optimize this thing a little
6804         bit, though callgrind says it didn't help; then special-case
6805         ascii, which did help a lot; then be sure we detect nul bytes as
6806         invalid, which is a bugfix.
6807         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6808         superstition; use memset to nul the padding instead of a manual
6809         loop.
6810         (_dbus_string_get_length): inline this as a
6811         macro; it showed up in the profile because it's used for loop
6812         tests and so forth
6813
6814 2004-11-10  Colin Walters  <walters@verbum.org>
6815
6816         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6817         for extra paranoia.
6818
6819 2004-11-09  Colin Walters  <walters@verbum.org>
6820
6821         * dbus/dbus-string.c (_dbus_string_get_length): New
6822         function, writes DBusString to C buffer.
6823
6824         * dbus/dbus-string.h: Prototype it.
6825
6826         * dbus/dbus-message.c (dbus_message_type_to_string): New
6827         function, converts message type into C string.
6828
6829         * dbus/dbus-message.h: Prototype it.
6830
6831         * bus/selinux.c (bus_selinux_check): Take source pid,
6832         target pid, and audit data.  Pass audit data to
6833         avc_has_perm.
6834         (log_audit_callback): New function, appends extra
6835         audit information.
6836         (bus_selinux_allows_acquire_service): Also take
6837         service name, add it to audit data.
6838         (bus_selinux_allows_send): Also take message
6839         type, interface, method member, error name,
6840         and destination, and add them to audit data.
6841         (log_cb): Initialize func_audit.
6842         
6843         * bus/selinux.h (bus_selinux_allows_acquire_service)
6844         (bus_selinux_allows_send): Update prototypes 
6845
6846         * bus/services.c (bus_registry_acquire_service): Pass
6847         service name to bus_selinux_allows_acquire_service.
6848
6849         * bus/bus.c (bus_context_check_security_policy): Pass
6850         additional audit data.  Move assignment of dest
6851         to its own line.
6852
6853 2004-11-07  Colin Walters  <walters@verbum.org>
6854
6855         * dbus/dbus-transport-unix.c (do_authentication): Always
6856         initialize auth_completed.
6857         
6858 2004-11-07  Colin Walters  <walters@verbum.org>
6859
6860         * bus/bus.c (load_config): Break into three
6861         separate functions: process_config_first_time_only,
6862         process_config_every_time, and process_config_postinit.
6863         (process_config_every_time): Move call of
6864         bus_registry_set_service_context_table into
6865         process_config_postinit.
6866         (process_config_postinit): New function, does
6867         any processing that needs to happen late
6868         in initialization (and also on reload).
6869         (bus_context_new): Instead of calling load_config,
6870         open config parser here and call process_config_first_time_only
6871         and process_config_every_time directly.  Later, after
6872         we have forked but before changing UID,
6873         invoke bus_selinux_full_init, and then call
6874         process_config_postinit.
6875         (bus_context_reload_config): As in bus_context_new,
6876         load parse file inside here, and call process_config_every_time
6877         and process_config_postinit.
6878
6879         * bus/services.h, bus/services.c
6880         (bus_registry_set_service_context_table): Rename
6881         from bus_registry_set_sid_table.  Take string hash from config
6882         parser, and convert them here into SIDs.
6883
6884         * bus/config-parser.c (struct BusConfigParser): Have
6885         config parser only store a mapping of service->context
6886         string.
6887         (merge_service_context_hash): New function.
6888         (merge_included): Merge context string hashes instead
6889         of using bus_selinux_id_table_union.
6890         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6891         simply create a new string hash.
6892         (bus_config_parser_unref): Unref it.
6893         (start_selinux_child): Simply insert strings into hash,
6894         don't call bus_selinux_id_table_copy_over.
6895
6896         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6897         (bus_selinux_id_table_copy_over): Delete.
6898
6899 2004-11-03  Colin Walters  <walters@verbum.org>
6900
6901         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6902         variables.
6903         
6904 2004-11-03  Colin Walters  <walters@verbum.org>
6905
6906         * bus/test-main.c (test_pre_hook): Fix test logic,
6907         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6908
6909 2004-11-02  Colin Walters  <walters@redhat.com>
6910
6911         * bus/selinux.c (bus_selinux_init): Split into two functions,
6912         bus_selinux_pre_init and bus_selinux_post_init.
6913         (bus_selinux_pre_init): Just determine whether SELinux is
6914         enabled.
6915         (bus_selinux_post_init): Do everything else.
6916
6917         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6918         config file, and bus_selinux_post_init after.  This ensures that
6919         we don't lose the policyreload notification thread that
6920         bus_selinux_init created before forking previously.
6921         
6922         * bus/test-main.c (test_pre_hook): Update for split.
6923
6924 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6925
6926         Patch from Johan Fischer <linux@fischaz.com>
6927         
6928         * mono/doc/Makefile.am (install-data-local): Added directory
6929         install for DESTDIR
6930
6931 2004-10-29  Colin Walters  <walters@redhat.com>
6932
6933         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6934         parameter for fd to write pid to.       
6935
6936         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6937         
6938         * bus/bus.c (bus_context_new): Pass print_pid_fd
6939         to _dbus_become_daemon (bug #1720)
6940
6941 2004-10-29  Colin Walters  <walters@redhat.com>
6942
6943         Patch from Ed Catmur <ed@catmur.co.uk>
6944
6945         * mono/doc/Makefile.am (install-data-local): Handle
6946         DESTDIR.
6947
6948 2004-10-29  Colin Walters  <walters@redhat.com>
6949
6950         * bus/.cvsignore, qt/.cvsignore: Update.
6951
6952 2004-10-29  Colin Walters  <walters@redhat.com>
6953
6954         Patch from Kristof Vansant <de_lupus@pandora.be>
6955
6956         * configure.in: Detect Slackware.
6957         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6958         * bus/rc.messagebus.in: New file.
6959
6960 2004-10-29  Colin Walters  <walters@redhat.com>
6961
6962         * tools/dbus-monitor.c (filter_func): Return
6963         DBUS_HANDLER_RESULT_HANDLED in filter function
6964         for now.  See:
6965         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6966
6967 2004-10-29  Colin Walters  <walters@redhat.com>
6968
6969         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6970
6971         * bus/services.c (bus_registry_acquire_service): 
6972         Correctly retrieve service name from DBusString
6973         for printing.
6974
6975 2004-10-29  Colin Walters  <walters@redhat.com>
6976
6977         * dbus/dbus-glib.h: Update documentation to not
6978         refer to internal APIs.
6979
6980 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6981
6982         * mono/Arguments.cs (GetDBusTypeConstructor):
6983         type.UnderlyingSystemType will return "System.Byte" if you do it
6984         on "byte[]", which is not what we want.  So check the type.IsArray
6985         property and use System.Array instead.
6986
6987 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6988
6989         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6990         the DBusUserInfo structure since this is passed into the function.
6991         This would cause a double free when the function that allocated
6992         the structure would try to free it when an error occured.
6993
6994         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6995         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6996         for service activation to avoid 32bit/64bit parallel install issues
6997
6998 2004-10-21  Colin Walters  <walters@verbum.org>
6999
7000         * AUTHORS: Fix my email address, the @gnu.org one
7001         has been bouncing for some time.  Also add J5.
7002         
7003 2004-10-21  Colin Walters  <walters@verbum.org>
7004
7005         * dbus/dbus-transport-unix.c (do_authentication): Return
7006         authentication status to callers.
7007         (unix_handle_watch): If we completed authentication this round,
7008         don't do another read.  Instead wait until the next iteration,
7009         after we've read any pending data in the auth buffer.
7010         (unix_do_iteration): Ditto.
7011         (unix_handle_watch): Updated for new do_authentication prototype.
7012
7013 2004-10-18  Colin Walters  <walters@verbum.org>
7014
7015         * bus/selinux.c (bus_selinux_enabled): Handle
7016         --disable-selinux case.
7017         
7018 2004-10-18  Colin Walters  <walters@verbum.org>
7019
7020         * bus/selinux.h: Add bus_selinux_enabled.
7021         
7022         * bus/selinux.c (bus_selinux_enabled): Implement it.
7023         
7024         * bus/config-parser.c (struct include): Add
7025         if_selinux_enabled member.
7026         (start_busconfig_child): Parse if_selinux_enabled
7027         attribute for include.
7028         (bus_config_parser_content): Handle it.
7029
7030         * bus/session.conf.in, bus/system.conf.in: Add
7031         inclusion of context mapping to default config files;
7032         conditional on SELinux being enabled.
7033         
7034         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7035         
7036         * test/data/invalid-config-files/badselinux-1.conf, 
7037         test/data/invalid-config-files/badselinux-2.conf:
7038         Test files for bad syntax.
7039         
7040 2004-10-17  Colin Walters  <walters@verbum.org>
7041
7042         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7043         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7044         format specifier mismatches.
7045
7046 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7047
7048         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7049         format string.
7050
7051         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7052         pointer (bug #1540, Leonardo Boiko).
7053
7054 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7055
7056         * mono/BusDriver.cs: Changed BusDriver struct to remove
7057         the ServiceCreated and ServiceDeleted events and replace them
7058         with the new ServiceOwnerChanged event.
7059
7060         * mono/example/BusListener.cs: Added a new example program,
7061         which listens for and reports any ServiceOwnerChanged events
7062         on the bus driver.
7063
7064         * mono/example/Makefile.am (DESTDIR): Build changes for the
7065         new BusListener.cs example.
7066
7067 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7068
7069         * bus/signals.c (bus_match_rule_parse): validate the components of
7070         match rules (bug #1439).
7071
7072         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7073
7074 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7075
7076         * doc/dbus-specification.xml: document ServiceOwnerChanged
7077         signal.
7078         
7079         * bus/driver.c, bus/driver.h, bus/services.c: Use
7080         ServiceOwnerChanged signal instead of ServiceCreated and
7081         ServiceDeleted.
7082         
7083         * bus/dispatch.c: update testcase for the new signal.
7084
7085 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7086
7087         Patch from Nat Friedman <nat@novell.com>
7088
7089         * mono/Makefile.am: A number of small build fixes to allow "make
7090         distcheck" to succeed.
7091
7092         * mono/example/Makefile.am: "make distcheck" fixes.
7093
7094         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7095         key in @srcdir@.
7096
7097         * test/Makefile.am: "make distcheck" fixes.
7098
7099 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7100
7101         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7102
7103         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7104
7105         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7106         messages after the first one (bug #1389).
7107         
7108         * bus/dispatch.c (check_double_hello_message): add a test case for
7109         the double hello message bug.
7110         (check_existent_service_activation): fix check of spawning error.
7111         
7112 2004-09-16  David Zeuthen  <david@fubar.dk>
7113
7114         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7115
7116 2004-09-12  David Zeuthen  <david@fubar.dk>
7117
7118         Patch from Kay Sievers <kay.sievers@vrfy.org>
7119
7120         * bus/bus.c (bus_context_new):
7121         * bus/bus.h:
7122         * bus/main.c (usage)
7123         (main):
7124         Add commandline option --nofork to override configuration file
7125         setting.
7126
7127 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7128
7129         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7130         compilers don't like it (bug #974).
7131
7132 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7133
7134         * qt/connection.*: Applied patch by Jérôme Lodewyck
7135         <lodewyck@clipper.ens.fr> to integrate an existing
7136         connection into the Qt eventloop
7137
7138 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7139
7140         * mono/BusDriver.cs: Added.  This is a class for interacting with
7141         the org.freedesktop.DBus service.
7142
7143         * mono/Message.cs: Added a mechanism to expose the message that is
7144         currently being dispatched via the static Message.Current
7145         property.  Added Message.Sender and Message.Destination
7146         properties.
7147
7148         * mono/Handler.cs: Expose the dispatched message via
7149         Message.Current when handling method calls.
7150
7151         * mono/Service.cs: Expose the dispatched message via
7152         Message.Current when handling signal emissions.
7153         
7154         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7155         Connection.BaseService property.
7156
7157 2004-08-28  Havoc Pennington  <hp@redhat.com>
7158
7159         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7160
7161         More fixes from Steve Grubb
7162         
7163         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7164         (_dbus_listen_tcp_socket): fix fd leak
7165
7166         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7167         EINTR to a bit lower in the code
7168
7169 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7170
7171         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7172         TRUE if we are inquiring about the existence of the built-in
7173         org.freedesktop.DBus service.
7174
7175 2004-08-25  John Palmieri  <johnp@redhat.com>
7176         * bus/config-parser.c:
7177         (struct PolicyType): Add POLICY_CONSOLE
7178         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7179         (start_busconfig_child): Sets up console element when
7180         <policy at_console=""> is encountered in a policy file
7181         (append_rule_from_element): Convert console elements to console
7182         rules.
7183
7184         * bus/policy.c: 
7185         (bus_policy_create_client_policy): Add console rules to the client
7186         policy based on if the client is at the console
7187         (bus_policy_append_console_rule): New function for adding a
7188         console rule to a policy
7189         (bus_policy_merge): Handle console rule merging
7190
7191         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7192         where we check for console user files
7193         
7194         * dbus/dbus-sysdeps.c:
7195         (_dbus_file_exists): New function which checks if the given
7196         file exists
7197         (_dbus_user_at_console): New function which does the system
7198         specific process of checking if the user is at the console
7199
7200         * dbus/dbus-userdb.c:
7201         (_dbus_is_console_user): New function converts a UID to user name
7202         and then calls the system specific _dbus_user_at_console to 
7203         see if the user is at the console and therefor a console user
7204
7205 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7206
7207         * bus/config-parser.c (set_limit):
7208         * bus/dbus-daemon-1.1.in:
7209         * test/data/valid-config-files/many-rules.conf: set the
7210         max_match_rules_per_connection limt from the config file. 
7211
7212         * doc/busconfig.dtd: update the DTD.
7213
7214         * bus/driver.c: remove some unused variables.
7215
7216 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7217
7218         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7219         it's been replaced by dbus_g_bus_get
7220
7221 2004-08-23  Colin Walters  <walters@redhat.com>
7222
7223         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7224
7225         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7226
7227         * bus/selinux.c: Create a thread for policy reload notification.
7228         (bus_selinux_get_policy_root): Implement.
7229
7230         * bus/config-parser.c (start_busconfig_child)
7231         (bus_config_parser_content): Support SELinux-root relative
7232         inclusion.
7233
7234         * configure.in <HAVE_SELINUX>: Add -lpthread.
7235         
7236         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7237         (test_post_hook): Move memory checking into here.
7238         (test_pre_hook, test_post_hook): Move SELinux checks in
7239         here, but conditional on a DBUS_TEST_SELINUX environment
7240         variable.  Unfortunately we can't run the SELinux checks
7241         as a normal user, since they won't have any permissions
7242         for /selinux.  So this will have to be tested manually
7243         for now, until we have virtualization for most of
7244         libselinux.
7245         
7246 2004-08-23  Havoc Pennington  <hp@redhat.com>
7247
7248         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7249         drop supplementary groups, suggested by Steve Grubb
7250
7251 2004-08-20  Colin Walters  <walters@redhat.com>
7252
7253         * bus/config-parser.c (start_busconfig_child): Remove some unused
7254         variables.
7255         
7256         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7257         warning.
7258
7259 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7260
7261         * configure.in: If --enable-mono is passed in, if we can't find
7262         mono error out.
7263
7264         * mono/Makefile.am: Use /gacutil to install assemblies into the
7265         GAC and not /root.
7266
7267 2004-08-12  Havoc Pennington  <hp@redhat.com>
7268
7269         * NEWS: update for 0.22
7270
7271         * configure.in: release 0.22
7272
7273 2004-08-11  Colin Walters  <walters@redhat.com>
7274
7275         * tools/dbus-send.c (main, usage): Add --reply-timeout
7276         argument.
7277
7278 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7279
7280         * bus/bus.c (process_config_first_time_only): get rid of an unused
7281         DBusError that was causing a memoy leak (bug #989).
7282
7283         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7284         fix compilation on Solaris/Forte C (bug #974)
7285
7286         * bus/main.c (main): plug two minuscule memleaks.
7287
7288 2004-08-10  Havoc Pennington  <hp@redhat.com>
7289
7290         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7291
7292 2004-08-09  Havoc Pennington  <hp@redhat.com>
7293
7294         * COPYING: switch to Academic Free License version 2.1 instead of
7295         2.0, to resolve complaints about patent termination clause.
7296
7297 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7298
7299         * README: added documentation for the --enable-python 
7300         configure switch.
7301
7302 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7303
7304         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7305         _unref in the SELinux support.
7306
7307         * doc/busconfig.dtd: update DTD for SELinux support.
7308
7309         * bus/config-loader-libxml.c: fix error handler and parser
7310         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7311
7312         * configure.in: remove the warning about libxml2.
7313
7314         * dbus/dbus-bus.c: silence doxygen warning.
7315
7316 2004-07-31  Colin Walters  <walters@redhat.com>
7317
7318         * configure.in: Move #error in SELinux check to its own line.
7319
7320 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7321
7322         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7323         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7324         dbus_error_set.
7325
7326         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7327         broken by the change in the _SET_OOM macros.
7328
7329 2004-07-31  Colin Walters  <walters@redhat.com>
7330
7331         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7332         BUS_SET_OOM.
7333
7334 2004-07-31  Colin Walters  <walters@redhat.com>
7335
7336         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7337         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7338         AC_MSG_CHECKING.
7339
7340 2004-07-24  Havoc Pennington  <hp@redhat.com>
7341
7342         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7343
7344         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7345         functionality
7346
7347         * configure.in: add --enable-selinux
7348         
7349         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7350
7351         * bus/main.c (main): initialize and shut down selinux
7352
7353         * bus/connection.c: store SELinux ID on each connection, to avoid 
7354         repeated getting of the string context and converting it into 
7355         an ID
7356
7357         * bus/bus.c (bus_context_get_policy): new accessor, though it
7358         isn't used
7359         (bus_context_check_security_policy): check whether the security
7360         context of sender connection can send to the security context of
7361         recipient connection
7362
7363         * bus/config-parser.c: add parsing for <selinux> and <associate>
7364         
7365         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7366         implement dbus_connection_get_unix_fd()
7367
7368         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7369         function, used by the selinux stuff
7370         
7371 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7372
7373         * bus/config-loader-libxml.c: complete the implementation of
7374         libxml backend for config file loader. Doesn't work with full OOM
7375         test yet. 
7376         
7377         * configure.in: change error when selecting libxml into a warning.
7378         
7379         * test/data/invalid-config-files: add two non-well-formed XML
7380         files. 
7381         
7382         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7383         
7384         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7385         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7386         be necessary to read all the buffer. (bug #894)
7387
7388         * bus/activation.c (bus_activation_activate_service): fix a
7389         potential assertion failure (bug #896). Small optimization in the
7390         case of auto-activation messages.
7391
7392         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7393         add test case for byte-through-vararg bug (#901). patch by Kimmo
7394         Hämäläinen. 
7395
7396 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7397
7398         * python/dbus.py:
7399         * python/dbus_bindings.pyx.in:
7400         Add dbus.init_gthreads (), allow emit_signal to pass
7401         arguments to the signal.
7402         
7403 2004-07-24  Havoc Pennington  <hp@redhat.com>
7404
7405         * AUTHORS: add some people, not really comprehensively, let me
7406         know if I missed you
7407
7408 2004-07-24  Havoc Pennington  <hp@redhat.com>
7409
7410         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7411         Owen
7412
7413         * test/Makefile.am (DIST_SUBDIRS): here also
7414
7415 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7416
7417         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7418         breaking build on Solaris, reported by Farhad Saberi on the ML.
7419
7420         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7421         va_arg invocation to account for integer promotion in the case of
7422         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7423
7424         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7425         _dbus_list_get_first_link, not _dbus_list_get_first.
7426
7427         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7428
7429         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7430         handler functions so that the asserts in _dbus_object_subtree_unref
7431         do not fail.
7432
7433         * dbus/dbus-transport-unix.c (do_reading):
7434         _dbus_transport_queue_messages return value is of type
7435         dbus_bool_t, not DBusDispatchStatus.
7436         
7437 2004-07-19  David Zeuthen  <david@fubar.dk>
7438
7439         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7440
7441         * bus/dispatch.c:
7442         (check_get_connection_unix_user): Debug says GetProperty; but the
7443         method is called GetConnectionUnixUser
7444         (check_get_connection_unix_process_id): New function
7445         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7446         also call check_get_connection_unix_process_id()
7447         
7448         * bus/driver.c:
7449         (bus_driver_handle_get_connection_unix_process_id): New function,
7450         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7451         interface
7452         
7453         * dbus/dbus-auth.c:
7454         (handle_server_data_external_mech): Set pid from the credentials
7455         obtained from the socket
7456         
7457         * dbus/dbus-connection.c:
7458         (dbus_connection_get_unix_process_id): New function
7459         
7460         * dbus/dbus-connection.h: 
7461         Add prototype for dbus_connection_get_unix_process_id
7462         
7463         * dbus/dbus-transport.c:
7464         (_dbus_transport_get_unix_process_id): New function
7465         
7466         * dbus/dbus-transport.h:
7467         Add prototype for _dbus_transport_get_unix_process_id
7468         
7469 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7470
7471         * dbus/dbus-message.c: Message counter fix, patch by Christian
7472         Hammond <chipx86@gnupdate.org>
7473
7474 2004-07-18  Seth Nickell  <seth@gnome.org>
7475
7476         * python/dbus.py:
7477         * python/dbus_bindings.pyx.in:
7478         * python/tests/test-client.py:
7479
7480         Add dbus.ByteArray and dbus_bindings.ByteArray
7481         types so that byte streams can be passed back.
7482
7483         Give jdahlin the heaps of credit that are so
7484         rightfully his.
7485         
7486 2004-07-12  Seth Nickell  <seth@gnome.org>
7487
7488         * python/dbus.py:
7489
7490         Add message argument to the default object_method_handler
7491         function.
7492         
7493         * python/dbus_bindings.pyx.in:
7494
7495         Automatically return NIL when passed an empty list
7496         (we can't pass back a list since lists are typed
7497         and we don't have any idea what type the the client
7498         intended the list to be... :-( )
7499         
7500 2004-07-10  Seth Nickell  <seth@gnome.org>
7501
7502         * python/examples/Makefile.am:
7503
7504         Fix distcheck breakage caused by new examples.
7505
7506 2004-07-10  Seth Nickell  <seth@gnome.org>
7507
7508         * python/dbus.py:
7509
7510         Add "message" argument to service-side dbus.Object
7511         methods. This will break existing services written
7512         using the python bindings, but will allow extraction
7513         of all the message information (e.g. who its from).
7514
7515         Add improved "object oriented" signal handling/emission.
7516         
7517         * python/examples/example-service.py:
7518
7519         Nix this example.
7520         
7521         * python/examples/example-signal-emitter.py:
7522         * python/examples/example-signal-recipient.py:
7523
7524         Two new examples that show how to emit and receive
7525         signals using the new APIs.
7526         
7527         * python/examples/example-signals.py:
7528         * python/examples/gconf-proxy-service.py:
7529         * python/examples/gconf-proxy-service2.py:
7530
7531         Add "message" argument to service methods.
7532
7533 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7534
7535         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7536         * dbus/bus.c (dbus_bus_get_unix_user)
7537         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7538         method of org.freedesktop.DBus interface.
7539
7540         * bus/dispatch.c: test case
7541
7542 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7543
7544         * python/Makefile.am: switched include directory from glib/ to dbus/
7545         since dbus-glib.h moved
7546  
7547 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7548
7549         * configure.in: prevent building the gcj stuff and libxml loader
7550         since they are broken.
7551
7552 2004-06-20  Havoc Pennington  <hp@redhat.com>
7553
7554         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7555         codes from the dbus error names
7556         
7557         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7558         as dbus/dbus-glib.h and that breakage is now visible due to 
7559         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7560         
7561         * glib/dbus-glib.h: s/gproxy/g_proxy/
7562
7563         * dbus/dbus-shared.h: new header to hold stuff shared with
7564         binding APIs
7565         
7566         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7567         than dbus-errors.h
7568
7569         * glib/dbus-glib.h (dbus_set_g_error): move to
7570         dbus-glib-lowlevel.h
7571
7572         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7573         of stuff to enable this
7574
7575         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7576
7577         * a bunch of other changes with the same basic "separate glib 
7578         bindings from dbus.h" theme
7579         
7580 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7581
7582         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7583
7584         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7585
7586 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7587
7588         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7589         the reply value of the ServiceExists message.
7590
7591 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7592
7593         * python/dbus_bindings.pyx.in: No longer need to parse path
7594         elements and pass them as arrays of strings.  The C API now
7595         accepts plain path strings.
7596         (_build_parsed_path): removed 
7597
7598 2004-06-07  Havoc Pennington  <hp@redhat.com>
7599
7600         * doc/TODO: remove auto-activation item since it's done; sort
7601         items by importance/milestone
7602
7603 2004-06-07  Havoc Pennington  <hp@redhat.com>
7604
7605         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7606         random signature when using REQUIRED_FIELDS (this hack won't work
7607         in the long term)
7608
7609         * dbus/dbus-message.c: change the signature to be a header field,
7610         instead of message->signature special-case string. Incremental
7611         step forward. Then we can fix up code to send the signature in the
7612         message, then fix up code to validate said signature, then fix up
7613         code to not put the typecodes inline, etc.
7614         (load_one_message): don't make up the signature after the fact
7615         (decode_header_data): require signature field for the known
7616         message types
7617
7618         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7619
7620         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7621
7622 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7623
7624         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7625
7626         * mono/Handler.cs: Updated to follow new path argument for
7627         (un-)registering objects.
7628
7629         * mono/example/Makefile.am:
7630         * mono/Makefile.am:
7631         * configure.in: Bumped required version for mono and use new -pkg
7632         syntax for deps
7633
7634 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7635
7636         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7637         registration functions take the path argument as char* instead of
7638         char**.
7639
7640         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7641         split off the path decompostion part of
7642         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7643         warnings. 
7644
7645         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7646         
7647 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7648  
7649         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7650         machine approach.  A state is implemented as a function that
7651         handles incoming events as specified for that state.
7652         
7653         * doc/dbus-specification.xml: Update auth protocol state machine
7654         specification to match implementation.  Remove some leftover
7655         base64 examples.
7656
7657 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7658
7659         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7660         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7661         quiet doxygen.
7662
7663         * Doxyfile.in: remove deprecated options.
7664
7665         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7666         glib/test-thread.h, glib/test-thread-client.c,
7667         glib/test-thread-server.c, glib/test-profile.c,
7668         glib/test-dbus-glib.c: remove these unused files.
7669
7670 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7671
7672         * dbus/dbus-object-tree.c
7673         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7674         non-fallback handlers (bug #684).
7675         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7676         (find_subtree_recurse): report wether the returned subtree is an
7677         exact match or a "fallback" match higher up in the tree.
7678         (object_tree_test_iteration): update test case.
7679
7680 2004-06-01  Seth Nickell  <seth@gnome.org>
7681
7682         * python/dbus_bindings.pyx.in:
7683         * python/tests/test-client.py:
7684
7685         Round off basic type support. Add dicts (yay!), and 
7686         remaining array types.
7687
7688         Make MessageIter more general so it works for dicts too.
7689
7690         Mark all loop variables as C integers.
7691         
7692 2004-05-31  Havoc Pennington  <hp@redhat.com>
7693
7694         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7695         "in" before "out"
7696
7697         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7698
7699         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7700         option that runs the tests, and start filling in some code
7701         including for starters just dumping the interfaces to stdout
7702
7703         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7704
7705         * test/data/valid-introspection-files/lots-of-types.xml: test of
7706         an example introspection file
7707
7708         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7709         "node" (I think...)
7710
7711 2004-05-31  Seth Nickell  <seth@gnome.org>
7712
7713         * python/dbus_bindings.pyx.in:
7714         * python/tests/test-client.py:
7715
7716         Test Suite: 1
7717         Python Bindings: 0
7718
7719         Fix string array memory trashing bug... oops...
7720
7721 2004-05-30  Seth Nickell  <seth@gnome.org>
7722
7723         * python/dbus.py:
7724
7725         Add a nicer-but-less-flexible alternate API for handling 
7726         calls to virtual objects in dbus.ObjectTree.
7727
7728         Screw up the argument order to the dbus.Object constructor
7729         for consistency with dbus.ObjectTree (and to make dbus_methods
7730         optional for future extension)
7731         
7732         * python/examples/Makefile.am:
7733         * python/examples/gconf-proxy-service.py:
7734         * python/examples/gconf-proxy-service2.py:
7735
7736         Alternate implementation of gconf-proxy-service using the
7737         nicer dbus.ObjectTree API.
7738         
7739         * python/examples/example-service.py:
7740         * python/tests/test-server.py
7741
7742         Reverse the argument order to deal with dbus.Object constructor
7743         changes.
7744         
7745 2004-05-30  Seth Nickell  <seth@gnome.org>
7746
7747         * python/examples/example-client.py:
7748         * python/examples/example-service.py:
7749
7750         Take it back. Lists seem to work but they're broken
7751         in the test suite. Make the base examples use
7752         lists (works fine).
7753
7754 2004-05-30  Seth Nickell  <seth@gnome.org>
7755
7756         * python/dbus_bindings.pyx.in:
7757         * python/tests/test-client.py:
7758
7759         Add some more tests and fix errors that crop up.
7760         Unfortunately, currently it seems like marshalling
7761         and unmarshalling of lists is completely broken :-(
7762
7763 2004-05-30  Seth Nickell  <seth@gnome.org>
7764
7765         * python/dbus_bindings.pyx.in:
7766
7767         Add support for ObjectPath type.
7768
7769         * python/dbus.py:
7770
7771         Refactor message handling code to a common function.
7772         
7773         * python/tests/test-client.py:
7774         * python/tests/test-server.py:
7775
7776         Add tests that check to make sure values of all types
7777         can be echoed from a service w/o mangling.
7778         
7779 2004-05-29  Seth Nickell  <seth@gnome.org>
7780
7781         * python/dbus.py:
7782
7783         Add ObjectTree class which allows implementation
7784         of trees of "virtual" objects. Basically the python
7785         wrapper for "register_fallback".
7786         
7787         * python/examples/Makefile.am
7788         * python/examples/gconf-proxy-client.py:
7789         * python/examples/gconf-proxy-service.py:
7790
7791         Implement a simple GConf proxy service that supports
7792         get/set on string and int GConf keys using the ObjectTree.
7793         
7794 2004-05-29  Seth Nickell  <seth@gnome.org>
7795
7796         * python/dbus.py:
7797         * python/examples/example-client.py:
7798         * python/examples/example-service.py:
7799         * python/examples/list-system-services.py:
7800
7801         Add SessionBus, SystemBus and ActivationBus classes
7802         so you don't need to know the special little BUS_TYPE
7803         flag.
7804         
7805 2004-05-29  Havoc Pennington  <hp@redhat.com>
7806
7807         * bus/config-parser.c (process_test_valid_subdir): temporarily
7808         stop testing config parser OOM handling, since expat has issues
7809         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7810
7811         * bus/dbus-daemon-1.1.in: change requested_reply to
7812         send_requested_reply/receive_requested_reply so we can send the
7813         replies, not just receive them.
7814
7815         * bus/config-parser.c: parse the new
7816         send_requested_reply/receive_requested_reply
7817
7818         * bus/policy.c (bus_client_policy_check_can_send): add
7819         requested_reply argument and use it
7820
7821         * bus/bus.c (bus_context_check_security_policy): pass through
7822         requested_reply status to message send check
7823
7824         * bus/system.conf.in: adapt to requested_reply change
7825         
7826 2004-05-28  Havoc Pennington  <hp@redhat.com>
7827
7828         * test/glib/test-service-glib.c (main): remove unused variable
7829
7830         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7831
7832         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7833         from the enum, no longer in use.
7834
7835         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7836         works right.
7837
7838         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7839         whether error_name passed in is a valid error name.
7840
7841 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7842
7843         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7844         OBJECT_PATH and OBJECT_PATH_ARRAY
7845
7846 2004-05-28  Seth Nickell  <seth@gnome.org>
7847
7848         * python/examples/Makefile.am:
7849
7850         Forget to add Makefile.am. Do not pass go.
7851
7852 2004-05-28  Michael Meeks  <michael@ximian.com>
7853
7854         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7855         fix no int64 case.
7856
7857         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7858
7859         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7860         (_dbus_message_iter_get_basic_type_array): impl.
7861         drastically simplify ~all relevant _get methods to use these.
7862         (_dbus_message_iter_append_basic_array),
7863         (dbus_message_iter_append_basic): impl
7864         drastically simplify ~all relevant _append methods to use these.
7865
7866         * dbus/dbus-message-builder.c (parse_basic_type) 
7867         (parse_basic_array, lookup_basic_type): impl.
7868         (_dbus_message_data_load): prune scads of duplicate /
7869         cut & paste coding.
7870
7871         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7872         (_dbus_demarshal_basic_type): implement,
7873         (demarshal_and_validate_len/arg): beef up debug.
7874         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7875
7876 2004-05-27  Seth Nickell  <seth@gnome.org>
7877
7878         * configure.in:
7879         * python/Makefile.am:
7880
7881         Include the example python apps in the tarball.
7882         
7883         * python/examples/list-system-services.py
7884
7885         Add a python new example that fetches the list of services
7886         from the system bus.
7887         
7888 2004-05-27  Seth Nickell  <seth@gnome.org>
7889
7890         * python/dbus.py:
7891         * python/dbus_bindings.pyx.in:
7892
7893         Fix failure to notify that a signal was not handled,
7894         resulted in hung functions.
7895         
7896 2004-05-25  Colin Walters  <walters@redhat.com>
7897
7898         * tools/dbus-monitor.c (main): Monitor all types of messages.
7899
7900 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7901
7902         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7903         which unregisters the object path and disposes the handler.
7904
7905 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7906  
7907         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7908          
7909         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7910         operands to && so we call dbus_message_iter_next () for the last
7911         argument also.
7912
7913 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7914
7915         * dbus/dbus-object-tree.c
7916         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7917         children even if the requested path isn't registered.
7918         (object_tree_test_iteration): test object_tree_list_registered.
7919
7920         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7921         it to 0.
7922         
7923 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7924
7925         * doc/TODO: Remove resolved items.
7926
7927         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7928         field.
7929         
7930         * bus/connection.c (bus_connections_expect_reply): Enforce the
7931         per-connection limit on pending replies.
7932         
7933         Patch from Jon Trowbridge <trow@ximian.com>:
7934  
7935         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7936         up a watch that triggers a config reload when one end of the pipe
7937         becomes readable.
7938         (signal_handler): Instead of doing the config reload in our SIGHUP
7939         handler, just write to the reload pipe and let the associated
7940         watch handle the reload when control returns to the main loop.
7941  
7942         * bus/driver.c (bus_driver_handle_reload_config): Added.
7943         Implements a ReloadConfig method for requesting a configuration
7944         file reload via the bus driver.
7945  
7946 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7947
7948         * HACKING: Updated release instructions concerning the wiki page.
7949
7950 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7951
7952         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7953         filter against auth->allowed_mechs; we only add allowed mechs in
7954         record_mechanisms().
7955  
7956         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7957         ALLOWED_MECHS to auth-script format so we can set the list of
7958         allowed mechanisms.
7959  
7960         * data/auth/client-out-of-mechanisms.auth-script: New test to
7961         check client disconnects when it is out of mechanisms to try.
7962  
7963         * dbus/dbus-auth.c (process_command): Remove check for lines
7964         longer that 1 MB; we only buffer up maximum 16 kB.
7965  
7966         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7967         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7968         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7969         assume there might be unused bytes.
7970  
7971         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7972         client-out-of-mechs, it is handled in process_reject(). Move check
7973         for max failures to send_rejected(), as it's a server-only thing.
7974
7975         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7976         send_auth(), send_data(), send_rejected(), send_error(),
7977         send_ok(), send_begin() and send_cancel().
7978
7979 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7980
7981         Remove base64 encoding, replace with hex encoding. Original patch
7982         from trow@ximian.com, added error handling.
7983
7984         * dbus/dbus-string.c (_dbus_string_base64_encode)
7985         (_dbus_string_base64_decode): Remove.
7986         (_dbus_string_hex_decode): Add end_return argument so we can
7987         distinguish between OOM and invalid hex encoding.
7988         (_dbus_string_test): Remove base64 tests and add test case for
7989         invalid hex.
7990
7991         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7992         Replace base64 with hex.
7993
7994         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7995         for invalid hex encoded data in auth protocol.
7996
7997 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7998
7999         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8000         leak.
8001
8002 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8003
8004         * mono/dbus-sharp.dll.config.in: Added for GAC
8005         * mono/dbus-sharp.snk: Added for GAC
8006         * mono/Assembly.cs.in: Added for GAC
8007         * mono/Makefile.am: Changes for GAC installation        
8008         * configure.in: Added refs for dbus-sharp.dll.config.in and
8009         Assembly.cs.in. More fixes for mono testing
8010         * mono/example/Makefile.am: Changed var to CSC
8011         * Makefile.am: Changed flag name to DBUS_USE_CSC
8012
8013 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8014
8015         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8016         * mono/doc/*: Added documentation framework
8017         * configure.in: Added monodoc check
8018         * README: Added description of mono configure flags
8019
8020 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8021
8022         * doc/dbus-specification.xml: Added a "Required" column to the 
8023         header fields table and changed the "zero or more" verbage in
8024         the above paragraph to read "The header must contain the required 
8025         named header fields and zero or more of the optional named header 
8026         fields".
8027         * test/data/invalid-messages/*.message: Added the required PATH 
8028         named header field to the tests so that they don't fail on 
8029         'Missing path field'
8030
8031 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8032
8033         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8034         the stack by implicitly defining variable and parameter types and
8035         removing the hack of defining C pointers as python objects and later
8036         casting them.
8037
8038 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8039
8040         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8041
8042 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8043
8044         * mono/DBusType/Dict.cs: Handle empty dicts
8045         * mono/DBusType/Array.cs: Handle empty arrays
8046         * mono/Arguments.cs: Handle empty arguments
8047
8048 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8049
8050         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8051         field
8052
8053 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8054
8055         * test/data/valid-messages/standard-*.message: Update message
8056         test scripts to new header field names.
8057
8058 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8059
8060         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8061         overflow to times_we_did_each_thing array which would chop off the
8062         first character of the failure_dir string. Increased the size of
8063         the array to 7 to reflect the number of random mutation functions
8064         we have.
8065
8066 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8067
8068         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8069         unix_server->watch here, it is unreffed in disconnect.
8070         (_dbus_server_new_for_tcp_socket): convert NULL host to
8071         "localhost" here so we don't append NULL to address.
8072         
8073         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8074         various addresses, including tcp with no explicit host.
8075
8076 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8077
8078         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8079         fix incorrect setting of .name_offset in the HeaderField (it was
8080         off by two bytes, positioned right after the name and typecode)
8081
8082         * bus/bus.c (bus_context_new, bus_context_unref): test before
8083         calling dbus_server_free_data_slot and _dbus_user_database_unref
8084         in case of an error.
8085
8086         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8087         by libdbus-gtool.
8088
8089 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8090
8091         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8092         _dbus_poll() instead of select().
8093
8094 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8095
8096         * bus/main.c (signal_handler): Reload the configuration files
8097         on SIGHUP.
8098         (main): Set up our SIGHUP handler.
8099
8100         * bus/bus.c (struct BusContext): Store the config file, user and
8101         fork flag in the BusContext.
8102         (process_config_first_time_only): Added.  Contains the code
8103         (previously in bus_context_new) for setting up the BusContext from
8104         the BusConfigParser that should only be run the first time the
8105         config files are read.
8106         (process_config_every_time): Added.  Contains the code (previously
8107         in bus_context_new) for setting up the BusContext from the
8108         BusConfigParser that should be run every time the config files are
8109         read.
8110         (load_config): Added.  Builds a BusConfigParser from the config
8111         files and passes the resulting structure off to
8112         process_config_first_time_only (assuming this is the first time)
8113         and process_config_every_time.
8114         (bus_context_new): All of the config-related code has been moved
8115         to process_config_first_time_only and process_config_every_time.
8116         Now this function just does the non-config-related initializations
8117         and calls load_config.
8118         (bus_context_reload_config): Added.
8119
8120 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8121
8122         * bus/driver.c (bus_driver_handle_get_service_owner):
8123         implement a GetServiceOwner method.
8124         * doc/dbus-specification.xml: document it.
8125         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8126         
8127         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8128         implement, using the bus GetServiceOwner method.
8129
8130         * test/glib/test-dbus-glib.c:
8131         use dbus_gproxy_new_for_service_owner so that we can receive the
8132         signal. 
8133
8134 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8135
8136         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8137         dbus/dbus-message.c, dbus/dbus-protocol.h
8138         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8139
8140         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8141         dbus/dbus-message.c, dbus/dbus-protocol.h
8142         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8143
8144         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8145         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8146         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8147
8148         * doc/dbus-specification.xml (Header Fields Table):
8149         s/SERVICE/DESTINATION
8150         s/SENDER_SERVICE/SENDER
8151
8152
8153 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8154
8155         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8156         a few seconds.
8157
8158 2004-04-13  Michael Meeks  <michael@ximian.com>
8159
8160         * glib/dbus-gobject.c (handle_introspect): split out
8161         (introspect_properties): this.
8162         (handle_introspect): implement this.
8163
8164         * test/glib/Makefile.am: use the absolute path so the bus
8165         daemon's chdir ("/") doesn't kill us dead.
8166
8167         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8168
8169 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8170
8171         * bus/config-parser.c (struct BusConfigParser): Added
8172         included_files field.
8173         (seen_include): Added.  Checks whether or not a file has already
8174         been included by any parent BusConfigParser.
8175         (bus_config_parser_new): Copy the parent's included_files.
8176         (include_file): Track which files have been included, and fail on
8177         circular inclusions.
8178         (process_test_valid_subdir): Changed printf to report if we are
8179         testing valid or invalid conf files.
8180         (all_are_equiv): Changed printf to be a bit clearer about
8181         what we are actually doing.
8182         (bus_config_parser_test): Test invalid configuration files.
8183
8184 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8185
8186         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8187         argument.  If non-null, the newly-constructed BusConfigParser will
8188         be initialized with the parent's BusLimits instead of the default
8189         values.
8190         (include_file): When including a config file, pass in
8191         the current parser as the parent and then copy the BusLimits
8192         from the included BusConfigParser pack to the current parser.
8193         (process_test_valid_subdir): Renamed from process_test_subdir.
8194         (process_test_equiv_subdir): Added.  Walks through a directory,
8195         descending into each subdirectory and loading the config files
8196         it finds there.  If any subdirectory contains two config files
8197         that don't produce identical BusConfigParser structs, fail.
8198         For now, the BusConfigParser's BusPolicies are not compared.
8199         (bus_config_parser_test): Call both process_test_valid_subdir and
8200         process_test_equiv_subdir.
8201
8202         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8203         argument and pass it along to the call to bus_config_parser_new.
8204         Also made a few small changes to allow this code to compile.
8205
8206         * bus/config-loader-expat.c (bus_config_load): Take a parent
8207         argument and pass it along to the call to bus_config_parser_new.
8208
8209         * bus/bus.c (bus_context_new): Load the config file
8210         with a NULL parent argument.
8211
8212 2004-03-29  Michael Meeks  <michael@ximian.com>
8213
8214         * glib/dbus-gobject.c (introspect_properties): split
8215         out, fix mangled 'while' flow control.
8216         (introspect_signals): implement.
8217         (handle_introspect): update.
8218
8219 2004-03-29  Michael Meeks  <michael@ximian.com>
8220
8221         * glib/dbus-gobject.c (set_object_property): split out / 
8222         re-work, use the property type, and not the message type(!)
8223         (get_object_property): ditto.
8224
8225         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8226         (dbus_gvalue_marshal): make this code re-usable, needed
8227         for signals too, also on both proxy and server side.
8228         Re-write for more efficiency / readability.
8229
8230 2004-03-29  Michael Meeks  <michael@ximian.com>
8231
8232         * dbus/dbus-message.c
8233         (dbus_message_new_error_printf): impl.
8234
8235         * dbus/dbus-connection.c
8236         (dbus_connection_unregister_object_path): fix warning.
8237
8238         * configure.in: fix no-mono-installed situation.
8239
8240 2004-03-27  Havoc Pennington  <hp@redhat.com>
8241
8242         Patch from Timo Teräs:
8243         
8244         * tools/dbus-send.c (main): if --print-reply, assume type is
8245         method call; support boolean type args
8246         
8247         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8248         bunch of memleak and logic bugs
8249         
8250 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8251
8252         * mono/Arguments.cs:
8253         * mono/Introspector.cs:
8254         * mono/Handler.cs:
8255         * mono/InterfaceProxy.cs:
8256         * mono/Message.cs
8257         * mono/ProxyBuilder.cs:
8258         * mono/Service.cs:
8259         Added InterfaceProxy class to avoid building proxies for every
8260         object.
8261
8262         * dbus-message.h:
8263         * dbus-message.c (dbus_message_append_args_valist)
8264         (dbus_message_iter_get_object_path)
8265         (dbus_message_iter_get_object_path_array)
8266         (dbus_message_iter_append_object_path)
8267         (dbus_message_iter_append_object_path_array):
8268         Added object_path iter functions to handle OBJECT_PATH arguments
8269         
8270 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8271
8272         First checkin of mono bindings.
8273         * configure.in:
8274         * Makefile.am:
8275         Build stuff for the bindings
8276         * dbus-sharp.pc.in: Added for pkgconfig
8277         
8278 2004-03-21  Havoc Pennington  <hp@redhat.com>
8279
8280         * test/test-service.c (main): remove debug spew
8281
8282 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8283
8284         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8285         arrays
8286
8287         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8288         (dbus_message_iter_init_array_iterator)
8289         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8290         indicate whether the iterator is empty
8291
8292         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8293         warnings
8294
8295 2004-03-19  Havoc Pennington  <hp@redhat.com>
8296
8297         * NEWS: 0.21 updates
8298
8299         * configure.in: 0.21
8300
8301         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8302         
8303         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8304         you don't need pyrex to make dist
8305
8306         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8307         sources; run moc
8308         
8309 2004-03-18  Richard Hult  <richard@imendio.com>
8310
8311         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8312         (dbus_message_set_auto_activation): Add doxygen docs.
8313
8314 2004-03-16  Richard Hult  <richard@imendio.com>
8315
8316         * bus/activation.c: (bus_activation_service_created),
8317         (bus_activation_send_pending_auto_activation_messages),
8318         (bus_activation_activate_service):
8319         * bus/activation.h:
8320         * bus/dispatch.c: (bus_dispatch),
8321         (check_nonexistent_service_auto_activation),
8322         (check_service_auto_activated),
8323         (check_segfault_service_auto_activation),
8324         (check_existent_service_auto_activation), (bus_dispatch_test):
8325         * bus/driver.c: (bus_driver_handle_activate_service):
8326         * bus/services.c: (bus_registry_acquire_service):
8327         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8328         (dbus_message_get_auto_activation):
8329         * dbus/dbus-message.h:
8330         * dbus/dbus-protocol.h: Implement auto-activation.
8331         
8332         * doc/dbus-specification.xml: Add auto-activation to the spec.
8333
8334 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8335
8336         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8337         fix a bug with CUSTOM types.
8338
8339         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8340         a unit test for this bug (used to fail).
8341
8342 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8343
8344         * bus/activation.c:
8345         (babysitter_watch_callback): notify all pending activations waiting for
8346           the same exec that the activation failed.
8347         (bus_activation_activate_service): shortcut the activation if we 
8348           already waiting for the same executable to start up.
8349
8350 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8351
8352         * bus/activation.c: 
8353         - Added service file reloading. 
8354           Each service files directory is kept in an hash table in 
8355           BusActivation and each BusActivationEntry knows what .service-file it
8356           was read from. So when you try to activate a service the bus will 
8357           check if it's been updated, removed or if new .service-files has 
8358           been installed.
8359         - Test code at the bottom for the service file reloading.
8360         * bus/test-main.c: (main):
8361         * bus/test.h:
8362         - added service reloading test.
8363         * dbus/dbus-sysdeps.c: 
8364         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8365
8366 2004-03-08  Michael Meeks  <michael@ximian.com>
8367
8368         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8369         bail immediately if disconnected, to avoid busy loop.
8370
8371         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8372         cleanup cut/paste/inefficiency.
8373
8374 2004-03-01  David Zeuthen  <david@fubar.dk>
8375
8376         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8377         bug where args were used twice. This bug resulted in a segfault
8378         on a Debian/PPC system when starting the messagebus daemon. Include
8379         dbus-sysdeps.h for DBUS_VA_COPY
8380
8381         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8382
8383         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8384         appropriate va_copy implementation. From GLib
8385         
8386 2004-02-24  Joe Shaw  <joe@ximian.com>
8387
8388         * bus/services.c (bus_registry_acquire_service): We need to pass
8389         in the service name to dbus_set_error() to prevent a crash.
8390
8391 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8392
8393         * AUTHORS: Reveal my True identity.
8394
8395 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8396
8397         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8398         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8399
8400 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8401
8402         * doc/TODO: Added not about better error check of configuration files.
8403
8404 2003-12-02  Richard Hult  <richard@imendio.com>
8405
8406         * Update AFL version to 2.0 throughout the source files to reflect
8407         the update that was done a while ago.
8408
8409 2003-12-02  Richard Hult  <richard@imendio.com>
8410
8411         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8412         wrote_dict_key to FALSE on the iter that the dict is appended to,
8413         just like when appending other types. Fixes a bug where a dict
8414         couldn't be put inside a dict.
8415         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8416         (message_iter_test, _dbus_message_test): Add test case for dict
8417         inside dict.
8418
8419 2003-12-01  David Zeuthen  <david@fubar.dk>
8420
8421         * python/dbus.py: Add the actual message when calling the reciever
8422         of a signal such that parameters can be inspected. Add the method
8423         remove_signal_receiver
8424         
8425 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8426
8427         * bus/*.[ch]:
8428         * dbus/*.[ch]:
8429         * glib/*.[ch]: Made ref functions return the pointer
8430
8431 2003-11-25  Zack Rusin  <zack@kde.org>
8432
8433         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8434
8435         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8436         wrappers,
8437
8438         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8439         the Integrator and to better fit with the server,
8440
8441 2003-11-24  Zack Rusin  <zack@kde.org>
8442
8443         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8444         the integrator handles it now
8445
8446         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8447         since QTimer wasn't really meant to be used the way DBusTimeout is
8448
8449 2003-11-24  Zack Rusin  <zack@kde.org>
8450
8451         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8452         Integrator class which integrates D-BUS with the Qt event loop,
8453
8454         * qt/connection.h, qt/connection.cpp: Move all the code which
8455         was dealing with D-BUS integration to the Integrator class,
8456         and start using Integrator,
8457
8458 2003-11-23  Zack Rusin  <zack@kde.org>
8459
8460         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8461         wrapper
8462
8463         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8464         switching namespaces to DBusQt, reworking the class,
8465
8466         * Makefile.cvs: switching dependencies so that it matches KDE 
8467         schematics,
8468         
8469         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8470         the library
8471
8472 2003-11-19  Havoc Pennington  <hp@redhat.com>
8473
8474         * NEWS: update
8475
8476         * configure.in: bump version to 0.20
8477
8478         * configure.in (have_qt): add yet another place to look for qt
8479         (someone hand trolltech a .pc file...)
8480
8481 2003-11-01  Havoc Pennington  <hp@redhat.com>
8482
8483         * doc/dbus-specification.xml: add state machine docs on the auth
8484         protocol; just a first draft, I'm sure it's wrong.      
8485
8486 2003-10-28  David Zeuthen  <david@fubar.dk>
8487
8488         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8489         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8490         
8491 2003-10-28  Havoc Pennington  <hp@redhat.com>
8492
8493         * dbus/dbus-message.c (get_next_field): delete unused function
8494
8495 2003-10-28  Havoc Pennington  <hp@redhat.com>
8496
8497         * bus/expirelist.c (do_expiration_with_current_time): detect
8498         failure of the expire_func due to OOM
8499
8500         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8501
8502         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8503         NoReply error that's now created by the bus when the service exits
8504
8505 2003-10-28  Havoc Pennington  <hp@redhat.com>
8506
8507         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8508         tests for set_path, set_interface, set_member, etc.
8509
8510         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8511
8512         * dbus/dbus-message.c (set_string_field): always just delete and
8513         re-append the field; accept NULL for deletion
8514         (re_align_fields_recurse): reimplement
8515         
8516 2003-10-26  Havoc Pennington  <hp@redhat.com>
8517
8518         * dbus/dbus-connection.c: fix docs to properly describe the
8519         disconnected message
8520         (_dbus_connection_notify_disconnected): remove this function; 
8521         we can't synchronously add the disconnected message, we have to 
8522         do it after we've queued any remaining real messages
8523         (_dbus_connection_get_dispatch_status_unlocked): queue the
8524         disconnect message only if the transport has finished queueing all
8525         its real messages and is disconnected.
8526         (dbus_connection_disconnect): update the dispatch status here
8527
8528 2003-10-22  Havoc Pennington  <hp@redhat.com>
8529
8530         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8531
8532         * bus/connection.c (bus_transaction_send_from_driver): set the
8533         destination to the connection's base service
8534
8535 2003-10-20  Havoc Pennington  <hp@redhat.com>
8536
8537         hmm, make check is currently not passing.
8538         
8539         * doc/dbus-specification.xml: add requirement that custom type
8540         names follow the same rules as interface names.
8541
8542         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8543         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8544         'map'
8545
8546         * doc/dbus-specification.xml: update type codes to match
8547         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8548         CUSTOM. Add type OBJECT_PATH to the spec.
8549
8550 2003-10-17  Havoc Pennington  <hp@redhat.com>
8551
8552         * bus/driver.c (create_unique_client_name): use "." as separator
8553         in base service names instead of '-'
8554
8555         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8556         byte at the end of the string
8557
8558         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8559         optimization macros since string validation seems to be a slow
8560         point.
8561         
8562         * doc/dbus-specification.xml: restrict valid
8563         service/interface/member/error names. Add test suite code for the
8564         name validation.
8565
8566         * dbus/dbus-string.c: limit service/interface/member/error names 
8567         to [0-9][A-Z][a-z]_
8568
8569         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8570         format arg to verbose spew
8571
8572         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8573         memory, return instead of g_error
8574
8575         * test/test-service.c (path_message_func): support emitting a
8576         signal on request
8577
8578         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8579         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8580         assuming the activation bus was the session bus so that services
8581         started manually will still register.
8582         (init_connections_unlocked): fix so that in OOM situation we get
8583         the same semantics when retrying the function
8584         
8585         * test/test-service.c (main): change to use path registration, to
8586         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8587         than DBUS_BUS_SESSION
8588
8589 2003-10-16  Havoc Pennington  <hp@redhat.com>
8590
8591         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8592
8593         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8594         coverage of the tests
8595         (coverage-report.txt): don't move the .da and .bbg files around
8596
8597 2003-10-16  Havoc Pennington  <hp@redhat.com>
8598
8599         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8600         to put there
8601
8602 2003-10-16  Havoc Pennington  <hp@redhat.com>
8603
8604         * bus/connection.c (bus_pending_reply_expired): either cancel or
8605         execute, not both
8606         (bus_connections_check_reply): use unlink, not remove_link, as we
8607         don't want to free the link; fixes double free mess
8608
8609         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8610         where no reply was received
8611
8612         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8613         fix a refcount leak
8614
8615         * bus/signals.c (match_rule_matches): add special cases for the
8616         bus driver, so you can match on sender/destination for it.
8617
8618         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8619         DBUS_PRINT_BACKTRACE is set
8620
8621         * dbus/dbus-internals.c: add pid to assertion failure messages
8622
8623         * dbus/dbus-connection.c: add message type code to the debug spew
8624
8625         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8626         sender=foo not service=foo
8627
8628         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8629         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8630         DBUS_ACTIVATION_ADDRESS instead
8631
8632         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8633         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8634
8635         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8636         context struct
8637
8638         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8639         (dbus_message_iter_get_object_path_array): new function (half
8640         finished, disabled for the moment)
8641         
8642         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8643         DBUS_MESSAGE_TYPE_ERROR
8644
8645         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8646         avoid redirecting stderr to /dev/null
8647         (babysit): close stdin if not doing the "exit_with_session" thing
8648
8649         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8650         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8651         stdout/stdin, so things don't get confused
8652         
8653         * bus/system.conf.in: fix to allow replies, I modified .conf
8654         instead of .conf.in again.
8655
8656 2003-10-14  David Zeuthen  <david@fubar.dk>
8657
8658         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8659         argtype to arg_type when raising unknown arg type exception.
8660         Changed type list to reflect the changes in dbus-protocol.h so 
8661         the bindings actually work.
8662
8663 2003-10-14  Havoc Pennington  <hp@redhat.com>
8664
8665         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8666         to have a bug keeping it from outputting the .da files sometimes
8667         (string_get_string): don't append garbage nul bytes to the string.
8668
8669 2003-10-15  Seth Nickell  <seth@gnome.org>
8670
8671         * python/Makefile.am:
8672
8673         Include dbus_h_wrapper.h in the dist tarball.
8674
8675 2003-10-14  Havoc Pennington  <hp@redhat.com>
8676
8677         * bus/bus.c (bus_context_check_security_policy): revamp this to
8678         work more sanely with new policy-based requested reply setup
8679
8680         * bus/connection.c (bus_transaction_send_from_driver): set bus
8681         driver messages as no reply
8682
8683         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8684         requested_reply attribute on allow/deny rules
8685
8686         * bus/system.conf: add <allow requested_reply="true"/>
8687
8688         * bus/driver.c (bus_driver_handle_message): fix check for replies
8689         sent to the bus driver, which was backward. How did this ever work
8690         at all though? I think I'm missing something.
8691
8692         * dbus/dbus-message.c (decode_header_data): require error and
8693         method return messages to have a reply serial field to be valid
8694         (_dbus_message_loader_queue_messages): break up this function;
8695         validate that reply serial and plain serial are nonzero; 
8696         clean up the OOM/error handling.
8697         (get_uint_field): don't return -1 from this
8698         (dbus_message_create_header): fix signed/unsigned bug
8699
8700         * bus/connection.c (bus_connections_expect_reply): save serial of
8701         the incoming message, not reply serial
8702
8703 2003-10-14  Havoc Pennington  <hp@redhat.com>
8704
8705         * bus/connection.c: implement pending reply tracking using
8706         BusExpireList
8707
8708         * bus/bus.c (bus_context_check_security_policy): verify that a
8709         reply is pending in order to allow a reply to be sent. Deny 
8710         messages of unknown type.
8711
8712         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8713
8714         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8715         (bus_context_get_reply_timeout): new
8716
8717 2003-10-13  Seth Nickell  <seth@gnome.org>
8718
8719         * python/Makefile.am:
8720
8721         Pass "make distcheck": remove a couple files from DIST_FILES
8722         that weren't included in the final version.
8723
8724 2003-10-12  Havoc Pennington  <hp@pobox.com>
8725
8726         Added test code that 1) starts an actual bus daemon and 2) uses
8727         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8728         more testing possible, but this is the basic framework.
8729         
8730         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8731         empty proxy lists from the proxy list hash
8732
8733         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8734         couple of return_if_fail checks
8735
8736         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8737         to allocate, so everything is cleared to NULL as it should be.
8738
8739         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8740         source as data to dbus_connection_set_timeout_functions() as the 
8741         timeout functions expected
8742
8743         * test/glib/run-test.sh: add a little script to start up a message
8744         bus and run tests using it
8745
8746         * tools/dbus-launch.1: updates
8747
8748         * tools/dbus-launch.c (main): add --config-file option
8749
8750         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8751         that could never be reached.
8752
8753         * dbus/dbus-message.c (dbus_message_new_method_return) 
8754         (dbus_message_new_error, dbus_message_new_signal): set the
8755         no-reply-expected flag on all these. Redundant, but may
8756         as well be consistent.
8757
8758 2003-10-11  Havoc Pennington  <hp@pobox.com>
8759
8760         * test/decode-gcov.c (function_solve_graph): make broken block
8761         graph a nonfatal error since it seems to be broken. Need to debug
8762         this.
8763
8764         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8765         can't just check type > INVALID < LAST anymore
8766
8767         * dbus/dbus-message.c (dbus_message_get_signature): new function
8768         (dbus_message_has_signature): new function
8769         (struct DBusMessage): add signature field (right now it isn't sent
8770         over the wire, just generated on the fly)
8771         (dbus_message_copy): copy the signature, and init strings to
8772         proper length to avoid some reallocs
8773         (dbus_message_iter_init_array_iterator): return void, since it
8774         can't fail
8775         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8776         (_dbus_message_loader_queue_messages): add silly temporary hack to
8777         fill in message->signature on load
8778
8779         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8780         characters, so they are relatively human-readable.
8781
8782 2003-10-11  Havoc Pennington  <hp@pobox.com>
8783
8784         * dbus/dbus-message.c (_dbus_message_test): add more test
8785         coverage, but #if 0 for now since they uncover a bug 
8786         not fixed yet; I think in re_align_field_recurse()
8787         (re_align_field_recurse): add FIXME about broken assertion
8788
8789         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8790
8791         * bus/connection.c: share a couple code bits with expirelist.c
8792
8793         * bus/expirelist.h, bus/expirelist.c: implement a generic
8794         expire-items-after-N-seconds facility, was going to share between
8795         expiring connections and replies, decided not to use for expiring
8796         connections for now.
8797
8798         * COPYING: include AFL 2.0 (still need to change all the file headers)
8799
8800 2003-10-09  Havoc Pennington  <hp@redhat.com>
8801
8802         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8803         gcc 3.3. Not that we do anything about it yet.
8804
8805         * bus/signals.c (bus_match_rule_parse): impose max length on the
8806         match rule text
8807
8808         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8809
8810 2003-10-09  Havoc Pennington  <hp@redhat.com>
8811
8812         Make matching rules theoretically work (add parser).
8813         
8814         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8815         the case where destination is explicitly specified as bus driver
8816         and someone else is eavesdropping.
8817         
8818         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8819         definition of eavesdropping and assertion
8820
8821         * tools/dbus-send.c (main): use dbus_message_type_from_string
8822
8823         * bus/signals.c (bus_match_rule_parse): implement
8824
8825         * dbus/dbus-message.c (dbus_message_type_from_string): new
8826
8827         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8828
8829 2003-10-02  Havoc Pennington  <hp@pobox.com>
8830
8831         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8832         dbus_gproxy_oneway_call
8833
8834         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8835         (dbus_server_setup_with_g_main): fix to allow calling them more
8836         than once on the same args
8837         (dbus_bus_get_with_g_main): new function
8838
8839 2003-10-02  Havoc Pennington  <hp@redhat.com>
8840
8841         * doc/dbus-tutorial.xml: write some stuff
8842
8843 2003-09-29  Havoc Pennington  <hp@pobox.com>
8844
8845         * configure.in: split checks for Doxygen from XML docs, check for
8846         xmlto
8847
8848         * doc/Makefile.am: XML-ify all the docs, and add a blank
8849         dbus-tutorial.xml
8850
8851 2003-09-29  Havoc Pennington  <hp@pobox.com>
8852
8853         * Merge dbus-object-names branch. To see the entire patch 
8854         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8855         it's huuuuge though.
8856         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8857         
8858 2003-09-28  Havoc Pennington  <hp@pobox.com>
8859
8860         * HACKING: update to reflect new server
8861
8862 2003-09-26  Seth Nickell  <seth@gnome.org>
8863
8864         * python/dbus.py:
8865         * python/examples/example-signals.py:
8866
8867         Start implementing some notions of signals. The API
8868         is really terrible, but they sort of work (with the
8869         exception of being able to filter by service, and to
8870         transmit signals *as* a particular service). Need to
8871         figure out how to make messages come from the service
8872         we registered :-(
8873         
8874         * python/dbus_bindings.pyx.in:
8875
8876         Removed duplicate message_handler callbacks.
8877         
8878 2003-09-25  Havoc Pennington  <hp@redhat.com>
8879
8880         * bus/session.conf.in: fix my mess
8881
8882 2003-09-25  Havoc Pennington  <hp@pobox.com>
8883
8884         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8885
8886 2003-09-25  Seth Nickell  <seth@gnome.org>
8887
8888         * python/examples/example-service.py:
8889
8890         Johan notices complete wrong code in example-service, but
8891         completely wrong in a way that works exactly the same (!).
8892         Johan is confused, how could this possibly work? Example
8893         code fails to serve purpose of making things clear.
8894         Seth fixes.
8895
8896 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8897
8898         * doc/dbus-specification.sgml: don't require header fields
8899         to be 4-byte aligned and specify that fields should be
8900         distinguished from padding by the fact that zero is not
8901         a valid field name.
8902         
8903         * doc/TODO: remove re-alignment item and add item to doc
8904         the OBJECT_PATH type.
8905         
8906         * dbus/dbus-message.c:
8907         (HeaderField): rename the original member to value_offset
8908         and introduce a name_offset member to keep track of where
8909         the field actually begins.
8910         (adjust_field_offsets): remove.
8911         (append_int_field), (append_uint_field),
8912         (append_string_field): don't align the start of the header
8913         field to a 4-byte boundary.
8914         (get_next_field): impl finding the next marhsalled field
8915         after a given field.
8916         (re_align_field_recurse): impl re-aligning a number of
8917         already marshalled fields.
8918         (delete_field): impl deleting a field of any type and
8919         re-aligning any following fields.
8920         (delete_int_or_uint_field), (delete_string_field): remove.
8921         (set_int_field), (set_uint_field): no need to re-check
8922         that we have the correct type for the field.
8923         (set_string_field): ditto and impl re-aligning any
8924         following fields.
8925         (decode_header_data): update to take into account that
8926         the fields aren't 4-byte aligned any more and the new
8927         way to distinguish padding from header fields. Also,
8928         don't exit when there is too much header padding.
8929         (process_test_subdir): print the directory.
8930         (_dbus_message_test): add test to make sure a following
8931         field is re-aligned correctly after field deletion.
8932         
8933         * dbus/dbus-string.[ch]:
8934         (_dbus_string_insert_bytes): rename from insert_byte and
8935         allow the insert of multiple bytes.
8936         (_dbus_string_test): test inserting multiple bytes.
8937
8938         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8939         warning note to docs about having to re-align any
8940         marshalled values following the string.
8941         
8942         * dbus/dbus-message-builder.c:
8943         (append_string_field), (_dbus_message_data_load):
8944         don't align the header field.
8945         
8946         * dbus/dbus-auth.c: (process_test_subdir): print the
8947         directory.
8948         
8949         * test/break-loader.c: (randomly_add_one_byte): upd. for
8950         insert_byte change.
8951         
8952         * test/data/invalid-messages/bad-header-field-alignment.message:
8953         new test case.
8954         
8955         * test/data/valid-messages/unknown-header-field.message: shove
8956         a dict in the unknown field.
8957
8958 2003-09-25  Seth Nickell  <seth@gnome.org>
8959
8960         * python/dbus.py:
8961         * python/dbus_bindings.pyx.in:
8962
8963         Handle return values.
8964         
8965         * python/examples/example-client.py:
8966         * python/examples/example-service.py:
8967
8968         Pass back return values from the service to the client.
8969         
8970 2003-09-24  Seth Nickell  <seth@gnome.org>
8971
8972         * python/dbus.py:
8973
8974         Connect Object methods (when you are sharing an object) up... pass
8975         in a list of methods to be shared. Sharing all the methods just
8976         worked out too weird. You can now create nice Services over the
8977         DBus in Python. :-)
8978         
8979         * python/dbus_bindings.pyx.in:
8980
8981         Keep references to user_data tuples passed into C functions so 
8982         Python doesn't garbage collect on us.
8983
8984         Implement MethodReturn and Error subclasses of Message for creating
8985         DBusMessage's of those types.
8986         
8987         * python/examples/example-client.py:
8988         * python/examples/example-service.py:
8989
8990         Simple example code showing both how create DBus services and objects,
8991         and how to use them.
8992
8993 2003-09-23  Havoc Pennington  <hp@pobox.com>
8994
8995         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8996
8997 2003-09-23  Havoc Pennington  <hp@redhat.com>
8998
8999         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9000         (dbus_gproxy_disconnect_signal): implement
9001         (dbus_gproxy_manager_remove_signal_match): implement
9002         (dbus_gproxy_manager_add_signal_match): implement
9003         (dbus_gproxy_oneway_call): implement
9004
9005 2003-09-23  Havoc Pennington  <hp@pobox.com>
9006
9007         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9008         subclass. This means dropping the transparent thread safety of the
9009         proxy; you now need a separate proxy per-thread, or your own
9010         locking on the proxy. Probably right anyway.
9011         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9012
9013 2003-09-22  Havoc Pennington  <hp@redhat.com>
9014
9015         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9016
9017 2003-09-21  Seth Nickell  <seth@gnome.org>
9018
9019         First checkin of the Python bindings.
9020         
9021         * python/.cvsignore:
9022         * python/Makefile.am:
9023         * python/dbus_bindings.pyx.in:
9024         * python/dbus_h_wrapper.h:
9025
9026         Pieces for Pyrex to operate on, building a dbus_bindings.so
9027         python module for low-level access to the DBus APIs.
9028         
9029         * python/dbus.py:
9030
9031         High-level Python module for accessing DBus objects.
9032
9033         * configure.in:
9034         * Makefile.am:
9035
9036         Build stuff for the python bindings.
9037
9038         * acinclude.m4:
9039
9040         Extra macro needed for finding the Python C header files.
9041
9042 2003-09-21  Havoc Pennington  <hp@pobox.com>
9043
9044         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9045         implementing the proxy manager, didn't get very far.
9046
9047         * dbus/dbus-bus.c (dbus_bus_add_match): new
9048         (dbus_bus_remove_match): new
9049
9050         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9051         path_name argument; adjust the other not-yet-implemented 
9052         gproxy constructors to be what I think they should be.
9053
9054 2003-09-21  Havoc Pennington  <hp@pobox.com>
9055
9056         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9057         by default for message bus connections.
9058
9059         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9060         exit_on_disconnect flag is set and we process the disconnected
9061         signal.
9062         (dbus_connection_set_exit_on_disconnect): new function
9063
9064 2003-09-21  Havoc Pennington  <hp@pobox.com>
9065
9066         Get matching rules mostly working in the bus; only actually
9067         parsing the rule text remains. However, the client side of
9068         "signal connections" hasn't been started, this patch is only the
9069         bus side.
9070         
9071         * dbus/dispatch.c: fix for the matching rules changes
9072         
9073         * bus/driver.c (bus_driver_handle_remove_match)
9074         (bus_driver_handle_add_match): send an ack reply from these
9075         method calls
9076
9077         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9078         arguments, reported by Seth Nickell
9079
9080         * bus/config-parser.c (append_rule_from_element): support
9081         eavesdrop=true|false attribute on policies so match rules 
9082         can be prevented from snooping on the system bus.
9083
9084         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9085         and "destination" in attribute names; fix some docs bugs; 
9086         add eavesdrop=true|false attribute
9087
9088         * bus/driver.c (bus_driver_handle_add_match)
9089         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9090         messages
9091
9092         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9093         rid of broadcast service concept, signals are just always broadcast
9094
9095         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9096         mostly implement matching rules stuff (currently only exposed as signal
9097         connections)
9098
9099 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9100
9101         * doc/dbus-specification.sgml: Change the header field name
9102         to be an enum and update the rest of the spec to reference
9103         the fields using the conventinal name.
9104
9105         * dbus/dbus-protocol.h: update to reflect the spec.
9106
9107         * doc/TODO: add item to remove the 4 byte alignment requirement.
9108         
9109         * dbus/dbus-message.c: Remove the code to generalise the
9110         header/body length and serial number header fields as named
9111         header fields so we can reference field names using the 
9112         protocol values.
9113         (append_int_field), (append_uint_field), (append_string_field):
9114         Append the field name as a byte rather than four chars.
9115         (delete_int_or_uint_field), (delete_string_field): reflect the
9116         fact that the field name and typecode now occupy 4 bytes instead
9117         of 8.
9118         (decode_string_field), (decode_header_data): update to reflect
9119         protocol changes and move the field specific encoding from
9120         decode_string_field() back into decode_header_data().
9121         
9122         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9123         Add utility to aid debugging.
9124         
9125         * dbus/dbus-message-builder.c:
9126         (append_string_field), (_dbus_message_data_load): Update to
9127         reflect protocol changes; Change the FIELD_NAME directive
9128         to HEADER_FIELD and allow it to take the field's conventional
9129         name rather than the actual value.
9130         
9131         * test/data/*/*.message: Update to use HEADER_FIELD instead
9132         of FIELD_NAME; Always align the header on an 8 byte boundary
9133         *before* updating the header length.
9134
9135 2003-09-15  Havoc Pennington  <hp@pobox.com>
9136
9137         * dbus/dbus-pending-call.c: add the get/set object data
9138         boilerplate as for DBusConnection, etc. Use generic object data
9139         for the notify callback.
9140
9141         * glib/dbus-gparser.c (parse_node): parse child nodes
9142
9143         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9144         
9145         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9146         contain functions shared between the convenience lib and the
9147         installed lib
9148
9149         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9150         -export-symbols-regex to the GLib library
9151
9152         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9153         fix the locking in here, and add a default handler for
9154         Introspect() that just returns sub-nodes.
9155
9156 2003-09-14  Havoc Pennington  <hp@pobox.com>
9157
9158         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9159         rather than gfoo consistent
9160
9161         * glib/dbus-gproxy.h: delete for now, move contents to
9162         dbus-glib.h, because the include files don't work right since we
9163         aren't in the dbus/ subdir.
9164         
9165         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9166         (dbus_gproxy_end_call): finish
9167         (dbus_gproxy_begin_call): finish
9168
9169         * glib/dbus-gmain.c (dbus_set_g_error): new
9170
9171         * glib/dbus-gobject.c (handle_introspect): include information
9172         about child nodes in the introspection
9173
9174         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9175         function to help in implementation of introspection
9176
9177         * dbus/dbus-object-tree.c
9178         (_dbus_object_tree_list_registered_and_unlock): new function
9179
9180 2003-09-12  Havoc Pennington  <hp@pobox.com>
9181
9182         * glib/dbus-gidl.h: add common base class for all the foo_info
9183         types
9184
9185         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9186         similar to kdcop
9187
9188         * test/Makefile.am: try test srcdir -ef . in addition to test
9189         srcdir = ., one of them should work (yeah lame)
9190         
9191         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9192         library
9193         
9194         * glib/dbus-gparser.h: make description_load routines return
9195         NodeInfo* not Parser*
9196
9197         * Makefile.am (SUBDIRS): build test dir after all library dirs
9198
9199         * configure.in: add GTK+ detection
9200
9201 2003-09-07  Havoc Pennington  <hp@pobox.com>
9202
9203         * Make Doxygen contented.
9204
9205 2003-09-07  Havoc Pennington  <hp@pobox.com>
9206
9207         * doc/dbus-specification.sgml: more updates
9208
9209 2003-09-06  Havoc Pennington  <hp@pobox.com>
9210
9211         * doc/dbus-specification.sgml: partial updates
9212
9213         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9214         zillionth time; hopefully I edited the right file this time.
9215
9216         * bus/config-parser.c (append_rule_from_element): support
9217         send_type, send_path, receive_type, receive_path
9218
9219         * bus/policy.c: add message type and path to the list of things
9220         that can be "firewalled"
9221
9222 2003-09-06  Havoc Pennington  <hp@pobox.com>
9223
9224         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9225         (dbus_connection_register_object_path): make this not handle
9226         messages to paths below the given path
9227
9228 2003-09-03  Havoc Pennington  <hp@pobox.com>
9229
9230         * test/glib/Makefile.am: add this with random glib-linked test
9231         programs
9232
9233         * glib/Makefile.am: remove the random test programs from here,
9234         leave only the unit tests
9235
9236         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9237         uscore/javacaps conversion, and fix     
9238         (get_object_property, set_object_property): change to .NET
9239         convention for mapping props to methods, set_FooBar/get_FooBar, 
9240         since one language has such a convention we may as well copy it. 
9241         Plus real methods in either getFooBar or get_foo_bar style won't 
9242         collide with this convention.
9243
9244 2003-09-01  Havoc Pennington  <hp@pobox.com>
9245
9246         * glib/dbus-gparser.c: implement
9247
9248         * glib/dbus-gobject.c: start implementing skeletons support
9249
9250         * configure.in: when disabling checks/assert, also define
9251         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9252
9253 2003-09-01  Havoc Pennington  <hp@pobox.com>
9254
9255         * glib/Makefile.am: rearrange a bunch of files and get "make
9256         check" framework set up
9257
9258 2003-08-31  Havoc Pennington  <hp@pobox.com>
9259
9260         * fix build with --disable-tests
9261
9262 2003-08-30  Havoc Pennington  <hp@pobox.com>
9263
9264         * dbus/dbus-connection.c: purge DBusMessageHandler
9265
9266         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9267         use callbacks everywhere
9268
9269 2003-08-30  Havoc Pennington  <hp@pobox.com>
9270
9271         * test/data/valid-config-files/system.d/test.conf: change to 
9272         root for the user so warnings don't get printed
9273
9274         * dbus/dbus-message.c: add dbus_message_get_path,
9275         dbus_message_set_path
9276         
9277         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9278         dispatching to a path
9279
9280         * dbus/dbus-string.c (_dbus_string_validate_path): add
9281
9282         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9283         (_dbus_marshal_object_path): implement
9284
9285         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9286         to contain the path to the target object
9287         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9288         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9289
9290 2003-08-30  Havoc Pennington  <hp@pobox.com>
9291
9292         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9293
9294 2003-08-29  Havoc Pennington  <hp@pobox.com>
9295
9296         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9297         registered
9298         (struct DBusObjectSubtree): shrink this
9299         a lot, since we may have a lot of them
9300         (_dbus_object_tree_free_all_unlocked): implement
9301         (_dbus_object_tree_dispatch_and_unlock): implement
9302
9303 2003-08-29  Havoc Pennington  <hp@pobox.com>
9304
9305         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9306
9307 2003-08-28  Havoc Pennington  <hp@pobox.com>
9308
9309         purge DBusObjectID
9310         
9311         * dbus/dbus-connection.c: port to no ObjectID, create a
9312         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9313
9314         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9315         everything except UnregisterFunction and MessageFunction
9316         
9317         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9318         add DBUS_TYPE_OBJECT_PATH
9319         
9320         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9321         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9322         path-based object IDs
9323
9324 2003-08-25  Havoc Pennington  <hp@pobox.com>
9325
9326         Just noticed that dbus_message_test is hosed, I wonder when I
9327         broke that. I thought make check was passing earlier...
9328         
9329         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9330         container tree, will replace most of dbus-object-registry
9331
9332         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9333         screwup
9334
9335 2003-08-19  Havoc Pennington  <hp@pobox.com>
9336
9337         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9338         (dbus_message_is_error): fix this function
9339
9340         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9341         match
9342
9343         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9344         reflect clarified man page
9345         (bus_client_policy_check_can_send): ditto
9346         
9347         * bus/session.conf.in: fixup
9348
9349         * bus/system.conf.in: fixup
9350
9351 2003-08-18  Havoc Pennington  <hp@redhat.com>
9352
9353         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9354
9355         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9356         dumb bug created earlier (wrong order of args to
9357         decode_header_data())
9358         
9359         * tools/dbus-send.c: port
9360
9361         * tools/dbus-print-message.c (print_message): port
9362
9363         * test/data/*messages: port all messages over
9364         
9365         * dbus/dbus-message-builder.c: support including 
9366         message type
9367         
9368         * bus/driver.c: port over
9369         
9370         * bus/dispatch.c: port over to new stuff
9371
9372         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9373         rename disconnect signal to "Disconnected"
9374
9375 2003-08-17  Havoc Pennington  <hp@pobox.com>
9376
9377         This doesn't compile yet, but syncing up so I can hack on it from
9378         work. What are branches for if not broken code? ;-)
9379         
9380         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9381         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9382         DBUS_HEADER_FIELD_ERROR_NAME
9383         
9384         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9385         for the interface+member pairs
9386         (string_hash): change to use g_str_hash algorithm
9387         (find_direct_function, find_string_function): refactor these to
9388         share most code.
9389         
9390         * dbus/dbus-message.c: port all of this over to support 
9391         interface/member fields instead of name field
9392
9393         * dbus/dbus-object-registry.c: port over
9394         
9395         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9396         from _dbus_string_validate_name
9397
9398         * bus/dbus-daemon-1.1: change file format for the 
9399         <deny>/<allow> stuff to match new message naming scheme
9400
9401         * bus/policy.c: port over
9402
9403         * bus/config-parser.c: parse new format
9404         
9405 2003-08-16  Havoc Pennington  <hp@pobox.com>
9406
9407         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9408         broken assertion
9409
9410         * glib/dbus-gproxy.c: some hacking
9411
9412 2003-08-15  Havoc Pennington  <hp@redhat.com>
9413
9414         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9415
9416         * dbus/dbus-connection.c
9417         (dbus_connection_send_with_reply_and_block): factor out internals;
9418         change to convert any error replies to DBusError instead of 
9419         returning them as a message
9420
9421 2003-08-15  Havoc Pennington  <hp@pobox.com>
9422
9423         * dbus/dbus-connection.c, 
9424         dbus/dbus-pending-call.c: Finish the pending call stuff
9425
9426 2003-08-14  Havoc Pennington  <hp@redhat.com>
9427
9428         * dbus/dbus-pending-call.c: start on new object that will replace
9429         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9430         replies
9431
9432         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9433         with remote interfaces
9434
9435         * dbus/dbus-gidl.c: do the boring boilerplate in here
9436         
9437 2003-08-12  Havoc Pennington  <hp@pobox.com>
9438
9439         * bus/dispatch.c (bus_dispatch): make this return proper 
9440         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9441
9442         * dbus/dbus-errors.c (dbus_set_error): use
9443         _dbus_string_append_printf_valist
9444
9445         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9446         (_dbus_string_append_printf): new
9447
9448         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9449         UNKNOWN_METHOD
9450
9451         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9452         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9453         message is unhandled.
9454
9455 2003-08-11  Havoc Pennington  <hp@pobox.com>
9456
9457         * bus/test.c (client_disconnect_handler): change to return
9458         HANDLED (would have been REMOVE_MESSAGE)
9459
9460         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9461         HANDLED/NOT_YET_HANDLED instead of
9462         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9463         should be used.
9464
9465 2003-08-10  Havoc Pennington  <hp@pobox.com>
9466
9467         * tools/dbus-send.c (main): add --type argument, for now
9468         supporting only method_call and signal types.
9469
9470         * tools/dbus-print-message.c: print message type
9471
9472         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9473         init connection->objects
9474
9475         * doc/dbus-specification.sgml: fix sgml
9476
9477         * bus/*.c: port over to object-instance API changes
9478
9479         * test/test-service.c: ditto
9480         
9481         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9482         name, we will have to fix up the rest of the code to also handle
9483         this
9484         (dbus_message_new): generic message-creation call
9485         (set_string_field): allow appending name field
9486
9487 2003-08-06  Havoc Pennington  <hp@pobox.com>
9488
9489         * dbus/dbus-object-registry.c: implement signal connection 
9490         and dispatch
9491
9492         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9493
9494         * dbus/dbus-internals.c (_dbus_memdup): new function
9495
9496 2003-08-02  Havoc Pennington  <hp@pobox.com>
9497
9498         * dbus/dbus-message.c (dbus_message_get_no_reply)
9499         (dbus_message_set_no_reply): add these and remove
9500         set_is_error/get_is_error
9501
9502         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9503         remove the ERROR flag, since there's now an ERROR type
9504
9505 2003-08-01  Havoc Pennington  <hp@pobox.com>
9506
9507         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9508         implement
9509
9510         * dbus/dbus-message.c (dbus_message_get_type): new function
9511
9512         * doc/dbus-specification.sgml: add "type" byte to messages
9513
9514 2003-08-01  Havoc Pennington  <hp@pobox.com>
9515
9516         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9517         a message type enum to distinguish kinds of message
9518         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9519         that need not be replied to
9520
9521 2003-08-01  Havoc Pennington  <hp@pobox.com>
9522
9523         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9524         (unpack_8_octets): fix no-64-bit-int bug
9525
9526         * dbus/dbus-object-registry.c (validate_id): validate the 
9527         connection ID bits, not just the instance ID.
9528
9529         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9530         the connection-global 33 bits of the object ID
9531
9532         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9533         object ID in the new way
9534
9535         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9536         define server/client/instance bits.
9537
9538 2003-07-30  Havoc Pennington  <hp@pobox.com>
9539
9540         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9541         build
9542
9543 2003-07-13  Havoc Pennington  <hp@pobox.com>
9544
9545         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9546         fields to DBusObjectVTable and DBusObjectInfo
9547
9548 2003-07-12  Havoc Pennington  <hp@pobox.com>
9549
9550         * dbus/dbus-object-registry.c: implement unit test,
9551         fix bugs discovered in process
9552
9553         * dbus/dbus-connection.c: remove handler_table and
9554         register_handler(), add DBusObjectRegistry usage
9555
9556         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9557         (dbus_object_id_set_null): new functions
9558
9559 2003-07-08  Havoc Pennington  <hp@pobox.com>
9560
9561         * dbus/dbus-object.c: implement some of this
9562
9563         * dbus/dbus-object-registry.c
9564         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9565         param
9566         (_dbus_object_registry_new): handle OOM
9567
9568 2003-07-08  Havoc Pennington  <hp@pobox.com>
9569
9570         * dbus/dbus-object.h: sketch out an API for registering objects
9571         with a connection, that allows us to use as little as 24 bytes
9572         per object and lets application code represent an object in 
9573         any conceivable way.
9574
9575         * dbus/dbus-object-registry.c: implement the hard bits of the
9576         DBusConnection aspect of object API. Not yet wired up.
9577         
9578 2003-07-06  Havoc Pennington  <hp@pobox.com>
9579
9580         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9581         (_dbus_marshal_object_id): new
9582         (_dbus_demarshal_object_id): new
9583         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9584         consolidate identical switch cases. Don't conditionalize handling
9585         of DBUS_TYPE_UINT64, need to handle the type always.
9586         (_dbus_marshal_validate_arg): consolidate identical cases, and
9587         handle DBUS_TYPE_OBJECT_ID
9588
9589         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9590
9591         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9592
9593 2003-09-28  Havoc Pennington  <hp@pobox.com>
9594
9595         * real 0.13 release
9596
9597 2003-09-28  Havoc Pennington  <hp@pobox.com>
9598
9599         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9600         to work with Debian db2html
9601
9602 2003-09-28  Havoc Pennington  <hp@pobox.com>
9603
9604         * configure.in: 0.13
9605
9606         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9607         stylesheet-images for benefit of Debian
9608         
9609         Change back to using filesystem-linked sockets for the system
9610         bus, so only root can create the default system bus address.
9611         
9612         * bus/system.conf.in: change to use
9613         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9614
9615         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9616         from here.
9617
9618         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9619         here, and AC_DEFINE DBUS_SYSTEM_PATH
9620
9621 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9622
9623         * doc/TODO:
9624         * doc/busconfig.dtd:
9625         Add busconfig DTD.
9626         
9627 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9628
9629         * doc/dbus-specification.sgml:
9630         Add activation reply values.
9631         
9632 2003-08-05  Havoc Pennington  <hp@redhat.com>
9633
9634         * configure.in: 0.12
9635
9636 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9637
9638         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9639         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9640         (add_watch), (remove_watch), (create_source):
9641         Refcount fds, fixes some reentrancy issues.
9642         
9643 2003-07-30  Havoc Pennington  <hp@redhat.com>
9644
9645         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9646         bus address to be abstract if we have abstract sockets
9647
9648         * NEWS: update
9649
9650 2003-07-28  Havoc Pennington  <hp@redhat.com>
9651
9652         * bus/messagebus.in: fix to avoid processname/servicename 
9653         confusion, from Michael Kearey
9654         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9655         
9656 2003-07-23  Havoc Pennington  <hp@pobox.com>
9657
9658         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9659         fix from Andy Hanton to remove broken "+1"
9660
9661 2003-07-16  Havoc Pennington  <hp@pobox.com>
9662
9663         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9664         babysitter process, as suggested by Thomas Leonard, so 
9665         an "eval `dbus-launch --exit-with-session`" will actually 
9666         return
9667
9668 2003-07-16  Havoc Pennington  <hp@pobox.com>
9669
9670         * configure.in: print out EXPANDED_* variables in the summary at
9671         the end; clean up the code that computes EXPANDED_ variables and
9672         get the ones using exec_prefix right. Should make things work
9673         when you build without --prefix
9674
9675 2003-06-29  Havoc Pennington  <hp@pobox.com>
9676
9677         * mono/Test.cs (class Test): fire up a main loop and run it
9678
9679         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9680         done once, the app has to do it
9681
9682 2003-06-26  Havoc Pennington  <hp@pobox.com>
9683
9684         * mono/Connection.cs: set up connection with the glib main loop
9685
9686 2003-07-01  Havoc Pennington  <hp@redhat.com>
9687
9688         * doc/dbus-specification.sgml: clarify the format of a type code,
9689         change suggested by Jim Blandy
9690
9691 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9692
9693         * doc/Makefile.am:
9694         * tools/Makefile.am: Don't assume srcdir == builddir.
9695
9696         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9697         the allocated block.
9698         (_dbus_memory_test): New function.
9699         * dbus/dbus-test.h: Add _dbus_memory_test ().
9700         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9701
9702         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9703         of %c%c%c%c.
9704         (dbus_message_new): Remove obsolete @todo.
9705
9706         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9707         (_dbus_marshal_set_uint64): Fix comment.
9708
9709         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9710         hardcode FIELD_REPLY_SERIAL.
9711
9712         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9713         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9714
9715         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9716         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9717
9718 2003-06-24  Havoc Pennington  <hp@pobox.com>
9719
9720         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9721
9722 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9723
9724         * configure.in:
9725         * gcj/.cvsignore:
9726         * gcj/Hello.java:
9727         * gcj/Makefile.am:
9728         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9729         * gcj/org/.cvsignore:
9730         * gcj/org/Makefile.am:
9731         * gcj/org/freedesktop/.cvsignore:
9732         * gcj/org/freedesktop/Makefile.am:
9733         * gcj/org/freedesktop/dbus/.cvsignore:
9734         * gcj/org/freedesktop/dbus/Makefile.am:
9735         * gcj/org/freedesktop/dbus/Message.java: (Message),
9736         (Message.Message):
9737         * gcj/org/freedesktop/dbus/natMessage.cc:
9738         Fix the build system.
9739
9740 2003-06-22  Havoc Pennington  <hp@pobox.com>
9741
9742         * mono/Connection.cs: add more bindings
9743
9744         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9745         more than once.
9746
9747 2003-06-22  Havoc Pennington  <hp@pobox.com>
9748
9749         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9750         Start wrapping more stuff.
9751
9752 2003-06-22  Havoc Pennington  <hp@pobox.com>
9753
9754         * mono/Message.cs: implement Message.Wrap() that ensures we only
9755         have a single C# wrapper per DBusMessage, assuming it works which
9756         it probably doesn't.
9757
9758         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9759         (dbus_message_free_data_slot): new
9760         (dbus_message_set_data): new
9761         (dbus_message_get_data): new
9762
9763 2003-06-22  Havoc Pennington  <hp@pobox.com>
9764
9765         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9766         (_dbus_data_slot_allocator_alloc): rework these to keep a
9767         reference count on each slot and automatically manage a global
9768         slot ID variable passed in by address
9769
9770         * bus/bus.c: convert to new dataslot API
9771
9772         * dbus/dbus-bus.c: convert to new dataslot API
9773
9774         * dbus/dbus-connection.c: convert to new dataslot API
9775
9776         * dbus/dbus-server.c: convert to new dataslot API
9777
9778         * glib/dbus-gmain.c: ditto
9779
9780         * bus/test.c: ditto
9781
9782         * bus/connection.c: ditto
9783
9784 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9785
9786         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9787         after the gcj checks so that the correct configuration tags
9788         will be added to libtool.
9789
9790         * dbus-glib-1.pc.in: No need to specify any includes since
9791         dbus-1.pc.in has those.
9792
9793 2003-06-22  Havoc Pennington  <hp@pobox.com>
9794
9795         * mono/*, gcj/*, configure.in, Makefile.am:
9796         Check in makefiles and subdirs for mono and gcj bindings.
9797         Neither binding actually exists, just trying to get through
9798         all the build and other boring bits.
9799
9800 2003-06-21  Philip Blundell  <philb@gnu.org>
9801
9802         * tools/dbus-monitor.1: Updated.
9803
9804         * tools/dbus-send.1: Likewise.
9805
9806 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9807
9808         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9809         for hangup and error after checking read so we won't discard
9810         pending data if both hangup and read are set.
9811
9812 2003-06-19  Philip Blundell  <philb@gnu.org>
9813
9814         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9815
9816         * tools/dbus-send.c: Accept both --system and --session.
9817
9818         * tools/dbus-monitor.c: Same here.
9819
9820 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9821
9822         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9823         from C++ (Patch by Miloslav Trmac).
9824
9825 2003-06-15  Joe Shaw  <joe@assbarn.com>
9826
9827         * configure.in: Check for socklen_t.
9828
9829         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9830
9831         * test/test-segfault.c: Add #include <sys/time.h>
9832
9833         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9834         dbus-launch needs it.
9835
9836 2003-06-09  Havoc Pennington  <hp@redhat.com>
9837
9838         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9839         SUN_LEN, it breaks abstract socket usage
9840
9841         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9842         starts of lines.
9843
9844 2003-06-04  Havoc Pennington  <hp@pobox.com>
9845
9846         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9847         using unix:abstract=/foo, and when listening in a tmpdir
9848         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9849
9850         * dbus/dbus-transport.c (_dbus_transport_open): support
9851         unix:abstract=/foo
9852
9853         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9854         support abstract sockets
9855
9856         * dbus/dbus-transport-unix.c
9857         (_dbus_transport_new_for_domain_socket): support abstract sockets
9858
9859         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9860         toggle as an argument, implement abstract namespace support
9861         (_dbus_listen_unix_socket): ditto
9862
9863         * configure.in: add --enable-abstract-sockets and implement
9864         a configure check for autodetection of the right value.
9865
9866 2003-06-01  Havoc Pennington  <hp@pobox.com>
9867
9868         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9869         in /tmp (though on Linux this will end up being useless,
9870         when we add abstract namespace support)
9871
9872         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9873         subst'ing it
9874
9875 2003-05-28  Colin Walters  <walters@verbum.org>
9876
9877         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9878
9879 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9880
9881         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9882
9883 2003-05-17  Colin Walters  <walters@gnu.org>
9884
9885         * tools/dbus-send.c: Don't exit with an error code if --help was
9886         passed.  Default to using the session bus instead of the system
9887         one.
9888
9889         * tools/dbus-launch.c: Ditto.
9890
9891         * tools/dbus-monitor.c: Ditto.
9892
9893         * tools/dbus-send.1: Update with new arguments.
9894
9895         * tools/dbus-launch.c: Emit code to export variables.  New
9896         arguments -s and -c to specify shell syntax, and a bit of code to
9897         autodetect syntax.  Also, allow specifying a program to run.
9898
9899         * tools/dbus-launch.1: Update with new arguments.
9900
9901         * tools/dbus-send.1: Ditto.
9902
9903         * tools/dbus-monitor.1: Ditto.
9904
9905 2003-05-17  Havoc Pennington  <hp@pobox.com>
9906
9907         * bus/config-parser.c (merge_included): merge in policies from
9908         child configuration file.
9909
9910         * bus/policy.c (bus_policy_merge): function to merge two policies
9911         together
9912
9913 2003-05-16  Havoc Pennington  <hp@redhat.com>
9914
9915         * dbus/dbus-connection.c: disable verbose lock spew
9916
9917         * tools/dbus-send.c: add --print-reply command line option
9918
9919         * tools/dbus-print-message.h (print_message): new util function
9920         shared by dbus-send and dbus-monitor
9921
9922         * tools/dbus-monitor.c (handler_func): exit on disconnect
9923
9924         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9925         disconnected, don't try to use the read_watch
9926
9927         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9928         so we can find this bug more easily
9929
9930 2003-05-16  Havoc Pennington  <hp@redhat.com>
9931
9932         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9933         NULL as DBusHashTable is annoyingly likely to do.
9934
9935 2003-05-16  Colin Walters  <walters@verbum.org>
9936
9937         * tools/dbus-monitor.c: Add --session argument and usage()
9938         function.
9939
9940         * tools/dbus-monitor.1: Update with new --session arg.
9941
9942         * bus/Makefile.am (install-data-hook): Create
9943         $(libdir)/dbus-1.0/services so that the session bus is happy.
9944
9945 2003-05-15  Havoc Pennington  <hp@redhat.com>
9946
9947         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9948         on non-x86. ifdef's are evil.
9949
9950 2003-05-15  Havoc Pennington  <hp@redhat.com>
9951
9952         * configure.in: 0.11
9953
9954         * NEWS: update
9955
9956         * bus/Makefile.am (initddir): apparently we are supposed to put
9957         init scripts in /etc/rc.d/init.d not /etc/init.d
9958
9959         * bus/Makefile.am: remove the "you must --enable-tests to make
9960         check" as it broke distcheck
9961
9962         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9963
9964 2003-05-13  James Willcox  <jwillcox@gnome.org>
9965
9966         * configure.in:
9967         * bus/activation.c: (bus_activation_service_created),
9968         (bus_activation_activate_service):
9969         * bus/driver.c: (bus_driver_send_service_deleted),
9970         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9971         (bus_driver_send_service_acquired),
9972         (bus_driver_send_welcome_message),
9973         (bus_driver_handle_list_services):
9974         * bus/session.conf.in:
9975         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9976         (dbus_bus_service_exists), (dbus_bus_activate_service):
9977         * dbus/dbus-bus.h:
9978
9979         Add some convenience API which lets you activate a service, and did a
9980         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9981         and dbus_message_get_args()
9982
9983 2003-05-11  Havoc Pennington  <hp@pobox.com>
9984
9985         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9986         calling _dbus_marshal_validate_arg() for every byte in a byte
9987         array, etc.
9988
9989         * dbus/dbus-message-handler.c: use atomic reference counting to
9990         reduce number of locks slightly; the global lock in here sucks
9991
9992         * dbus/dbus-connection.c
9993         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9994         update_dispatch_status that can be called with lock held; then use
9995         in a couple places to reduce locking/unlocking
9996         (dbus_connection_send): hold the lock over the whole function
9997         instead of acquiring it twice.
9998
9999         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10000
10001         * bus/connection.c (bus_connections_setup_connection): fix access
10002         to already-freed memory.
10003
10004         * dbus/dbus-connection.c: keep a little cache of linked list
10005         nodes, to avoid using the global linked list alloc lock in the
10006         normal send-message case. Instead we just use the connection lock
10007         that we already have to take.
10008
10009         * dbus/dbus-list.c (_dbus_list_find_last): new function
10010
10011         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10012         change to use a struct for the atomic type; fix docs,
10013         they return value before increment, not after increment.
10014
10015         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10016         (_dbus_string_append_8_aligned): new functions to try to
10017         microoptimize this operation.
10018         (reallocate_for_length): break this out of set_length(), to
10019         improve profile info, and also so we can consider inlining the
10020         set_length() part.
10021
10022         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10023         strings with some preallocation, cuts down on our calls to realloc
10024         a fair bit. Though if we can get the "move entire string to empty
10025         string" optimization below to kick in here, it would be better.
10026
10027         * dbus/dbus-string.c (_dbus_string_move): just call
10028         _dbus_string_move_len
10029         (_dbus_string_move_len): add a special case for moving
10030         an entire string into an empty string; we can just
10031         swap the string data instead of doing any reallocs.
10032         (_dbus_string_init_preallocated): new function
10033
10034 2003-05-11  Havoc Pennington  <hp@pobox.com>
10035
10036         Write a "test-profile" that does echo client-server with threads;
10037         profile reveals lock contention, memcpy/realloc of buffers, and
10038         UTF-8 validation as hot spots. 20% of lock contention eliminated
10039         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10040         contention is global mempool locks for GList and DBusList.
10041
10042         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10043         x86 implementation
10044
10045         * dbus/dbus-connection.c (struct DBusConnection): use
10046         dbus_atomic_t for the reference count
10047
10048         * dbus/dbus-message.c (struct DBusMessage): declare
10049         dbus_atomic_t values as volatile
10050
10051         * configure.in: code to detect ability to use atomic integer
10052         operations in assembly, from GLib patch
10053
10054         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10055         time, tired of it being wrong in threads and forked processes
10056
10057         * glib/test-profile.c: a little program to bounce messages back
10058         and forth between threads and eat CPU
10059
10060         * dbus/dbus-connection.c: add debug spew macros for debugging
10061         thread locks; include config.h at top; fix deadlock in
10062         dbus_connection_flush()
10063
10064 2003-05-08  Havoc Pennington  <hp@pobox.com>
10065
10066         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10067         data from getting written, and there wasn't a good reason to
10068         use _exit really.
10069
10070         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10071         dbus_verbose lines in test coverage
10072         (main): add list of functions sorted by # of untested blocks
10073         to the coverage report
10074
10075         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10076
10077         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10078
10079         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10080         extend test coverage
10081
10082         * test/data/auth/cancel.auth-script: test canceling an
10083         authentication
10084
10085         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10086         aren't used. in CVS history if we end up needing them.
10087
10088 2003-05-04  Havoc Pennington  <hp@pobox.com>
10089
10090         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10091         unit test
10092
10093         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10094         function, which assumed length was in # of strings, not bytes
10095
10096         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10097         missing coverage
10098
10099         * dbus/dbus-connection.c
10100         (_dbus_connection_queue_received_message): disable function for
10101         now, we are only using it in test mode
10102
10103         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10104         remove a mistaken FIXME
10105
10106 2003-05-04  Havoc Pennington  <hp@pobox.com>
10107
10108         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10109         unlock mutex on successful return, patch from Anders Gustafsson
10110
10111 2003-05-04  Havoc Pennington  <hp@pobox.com>
10112
10113         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10114         Anders Gustafsson
10115
10116 2003-05-04  Havoc Pennington  <hp@pobox.com>
10117
10118         * tools/dbus-launch.c: implement
10119
10120         * bus/main.c (main), bus/bus.c (bus_context_new):
10121         implement --print-pid and --fork
10122
10123 2003-05-03  Havoc Pennington  <hp@redhat.com>
10124
10125         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10126         the address had no value, and add to test suite. Fix and
10127         regression test from Miloslav Trmac
10128
10129 2003-05-03  Havoc Pennington  <hp@pobox.com>
10130
10131         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10132         watch is invalid when handled
10133
10134         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10135         dbus-launch utility to launch the bus from a shell script.  Didn't
10136         actually implement dbus-launch yet, it's just a placeholder still.
10137
10138 2003-05-03  Havoc Pennington  <hp@pobox.com>
10139
10140         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10141         daemon; also documents daemon config file, so replaces
10142         doc/config-file.txt. Corrected some stuff from config-file.txt in
10143         the process of moving it.
10144
10145 2003-05-03  Havoc Pennington  <hp@pobox.com>
10146
10147         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10148         add some man pages
10149
10150 2003-05-03  Colin Walters  <walters@verbum.org>
10151
10152         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10153         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10154
10155         * Makefile.am: Update to use new .pc versioning scheme.
10156
10157 2003-05-02  Havoc Pennington  <hp@redhat.com>
10158
10159         * bus/system.conf.in: allow send/receive to/from message bus
10160         service
10161
10162 2003-04-30  Havoc Pennington  <hp@redhat.com>
10163
10164         * configure.in: print a note when building with unit tests and
10165         without assertions
10166
10167 2003-04-30  Havoc Pennington  <hp@redhat.com>
10168
10169         * Makefile.am: add a check-local that complains if you didn't
10170         configure with --enable-tests
10171
10172 2003-04-29  Havoc Pennington  <hp@redhat.com>
10173
10174         * glib/dbus-gmain.c: docs cleanups
10175
10176         * dbus/dbus-types.h: add docs on int64 types
10177
10178         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10179         public API docs section
10180
10181 2003-04-29  Havoc Pennington  <hp@redhat.com>
10182
10183         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10184         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10185         parallel install API version, not with the D-BUS package version.
10186
10187         * HACKING: move some of README over here
10188
10189         * README: updates, and document API/ABI policy
10190
10191         * configure.in: reindentation
10192
10193 2003-04-29  Havoc Pennington  <hp@redhat.com>
10194
10195         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10196         to use this library" to be sure people have the right
10197         expectations.
10198
10199 2003-04-28  Havoc Pennington  <hp@redhat.com>
10200
10201         * configure.in: add --enable-docs which by default is auto yes if
10202         doxygen and db2html found, no otherwise; but can be forced on/off
10203
10204         * doc/Makefile.am: conditionalize whether to build docs on
10205         --enable-docs
10206
10207 2003-04-28  Havoc Pennington  <hp@redhat.com>
10208
10209         * configure.in: 0.10
10210
10211         * NEWS: update
10212
10213         * bus/system.conf.in: add <includedir>system.d</includedir>
10214
10215         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10216         username was provided but not uid
10217
10218         * bus/config-parser.c (struct BusConfigParser): keep track of
10219         whether the parser is toplevel or was included; change some
10220         of the error handling if it's included.
10221
10222 2003-04-27  Havoc Pennington  <hp@pobox.com>
10223
10224         Unbreak my code...
10225
10226         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10227         report correct status if we finish processing authentication
10228         inside this function.
10229
10230         * bus/activation.c (try_send_activation_failure): use
10231         bus_transaction_send_error_reply
10232
10233         * bus/connection.c (bus_connection_get_groups): return an error
10234         explaining the problem
10235
10236         * bus/bus.c (bus_context_check_security_policy): implement
10237         restriction here that inactive connections can only send the
10238         hello message. Also, allow bus driver to send anything to
10239         any recipient.
10240
10241         * bus/connection.c (bus_connection_complete): create the
10242         BusClientPolicy here instead of on-demand.
10243         (bus_connection_get_policy): don't return an error
10244
10245         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10246         sender field in message being replied to
10247
10248         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10249         causing it to return FALSE always
10250
10251         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10252         we checked sender rather than destination
10253
10254 2003-04-25  Havoc Pennington  <hp@redhat.com>
10255
10256         test suite is slightly hosed at the moment, will fix soon
10257
10258         * bus/connection.c (bus_connections_expire_incomplete): fix to
10259         properly disable the timeout when required
10260         (bus_connection_set_name): check whether we can remove incomplete
10261         connections timeout after we complete each connection.
10262
10263         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10264         probably still broken.
10265
10266         * bus/services.c (bus_registry_acquire_service): implement max
10267         number of services owned, and honor allow/deny rules on which
10268         services a connection can own.
10269
10270         * bus/connection.c (bus_connection_get_policy): report errors here
10271
10272         * bus/activation.c: implement limit on number of pending
10273         activations
10274
10275 2003-04-25  Havoc Pennington  <hp@redhat.com>
10276
10277         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10278         where we used >= 0 instead of != DBUS_UID_UNSET.
10279
10280 2003-04-25  Havoc Pennington  <hp@redhat.com>
10281
10282         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10283         were toggled without add/remove, fix from Anders Gustafsson
10284
10285 2003-04-24  Havoc Pennington  <hp@redhat.com>
10286
10287         * test/data/valid-config-files/basic.conf: add <limit> tags to
10288         this test
10289
10290         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10291         <limit> tag in configuration file.
10292
10293 2003-04-24  Havoc Pennington  <hp@redhat.com>
10294
10295         * bus/dispatch.c: somehow missed some name_is
10296
10297         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10298         (_dbus_timeout_set_interval): new
10299
10300         * bus/connection.c (bus_connections_setup_connection): record time
10301         when each connection is first set up, and expire them after the
10302         auth timeout passes.
10303
10304 2003-04-24  Havoc Pennington  <hp@redhat.com>
10305
10306         * dbus/dbus-message.c (dbus_message_name_is): rename
10307         (dbus_message_service_is): rename
10308         (dbus_message_sender_is): rename
10309         (dbus_message_get_service): rename
10310
10311 2003-04-24  Havoc Pennington  <hp@redhat.com>
10312
10313         * configure.in: add --enable-checks
10314
10315         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10316
10317         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10318         to use thread locks.
10319         (_dbus_connection_handler_destroyed_locked): move some private
10320         functions into proper docs group
10321
10322         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10323         _dbus_return_val_if_fail
10324
10325         Throughout: use dbus_return_if_fail
10326
10327 2003-04-23  James Willcox  <jwillcox@gnome.org>
10328
10329         * glib/dbus-glib.h:
10330         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10331         (dbus_connection_setup_with_g_main),
10332         (dbus_server_setup_with_g_main):
10333         * glib/test-dbus-glib.c: (main):
10334         * glib/test-thread-client.c: (main):
10335         * glib/test-thread-server.c: (new_connection_callback), (main):
10336         * tools/dbus-monitor.c: (main):
10337
10338         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10339         and dbus_server_setup_with_g_main().
10340
10341 2003-04-20  Havoc Pennington  <hp@pobox.com>
10342
10343         * doc/dbus-specification.sgml: document the restrictions on
10344         message and service names
10345
10346 2003-04-22  Havoc Pennington  <hp@redhat.com>
10347
10348         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10349         support, and do some code cleanups to share more code and
10350         speed up array marshal/demarshal.
10351
10352         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10353
10354         * configure.in: generate dbus-arch-deps.h
10355
10356         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10357         64-bit typecodes
10358
10359 2003-04-22  Havoc Pennington  <hp@redhat.com>
10360
10361         * test/data/valid-messages/opposite-endian.message: fix test
10362         to use proper type for rply field
10363
10364         * test/data/invalid-messages: add tests for below validation
10365
10366         * dbus/dbus-message.c (decode_header_data): validate field types,
10367         and validate that named fields are valid names
10368         (decode_name_field): consider messages in the
10369         org.freedesktop.Local. namespace to be invalid.
10370
10371         * dbus/dbus-string.c (_dbus_string_validate_name): new
10372
10373 2003-04-19  Havoc Pennington  <hp@pobox.com>
10374
10375         * bus/driver.c (bus_driver_handle_hello): check limits and
10376         return an error if they are exceeded.
10377
10378         * bus/connection.c: maintain separate lists of active and inactive
10379         connections, and a count of each. Maintain count of completed
10380         connections per user. Implement code to check connection limits.
10381
10382         * dbus/dbus-list.c (_dbus_list_unlink): export
10383
10384         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10385         number of bytes in the message queue for a connection
10386
10387 2003-04-18  Havoc Pennington  <hp@pobox.com>
10388
10389         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10390
10391         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10392         memleaks
10393
10394         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10395         on realloc be sure to update the pointer in the keyring
10396
10397         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10398         offset to avoid writing to unallocated memory
10399
10400         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10401         try the next mechanism, so we properly handle OOM
10402
10403         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10404         on OOM.
10405         (_dbus_keyring_new): fix OOM bug
10406         (_dbus_keyring_new_homedir): always set error; impose a maximum
10407         number of keys we'll load from the file, mostly to speed up the
10408         test suite and make its OOM checks more useful, but also for
10409         general sanity.
10410
10411         * dbus/dbus-auth.c (process_error_server): reject authentication
10412         if we get an error from the client
10413         (process_cancel): on cancel, send REJECTED, per the spec
10414         (process_error_client): send CANCEL if we get an error from the
10415         server.
10416
10417 2003-04-18  Havoc Pennington  <hp@pobox.com>
10418
10419         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10420         debug spew
10421
10422         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10423         handling problem
10424
10425         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10426         about DBUS_TEST_HOMEDIR once
10427
10428         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10429         the environment
10430
10431         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10432         config file so we test the right thing
10433
10434         Throughout: assorted docs improvements
10435
10436 2003-04-18  Havoc Pennington  <hp@pobox.com>
10437
10438         * glib/dbus-gmain.c: adapt to watch changes
10439
10440         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10441
10442         * dbus/dbus-server.h: remove dbus_server_handle_watch
10443
10444         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10445
10446         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10447         like DBusTimeout, so we don't need dbus_connection_handle_watch
10448         etc.
10449
10450 2003-04-17  Havoc Pennington  <hp@redhat.com>
10451
10452         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10453         database usage so it all goes via the DBusUserDatabase cache.
10454
10455 2003-04-17  Havoc Pennington  <hp@redhat.com>
10456
10457         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10458         there was an OOM watch we skipped, we always return TRUE so we
10459         iterate again to have a look at it again. Fixes test suite hang.
10460         Code rearrangement also lets us lose some memset and only iterate
10461         over callbacks once.
10462
10463         * bus/driver.c (bus_driver_handle_message): sense of test for
10464         reply was backward
10465
10466 2003-04-16  Havoc Pennington  <hp@pobox.com>
10467
10468         * doc/dbus-specification.sgml: make spec say serials are unsigned
10469
10470         * dbus/dbus-message.h: change message serials to unsigned
10471
10472         * dbus/dbus-connection.c: adapt to message serials being unsigned
10473
10474 2003-04-15  Havoc Pennington  <hp@pobox.com>
10475
10476         * bus/bus.c: create and keep around a shared DBusUserDatabase
10477         object.
10478
10479         * bus/connection.c (bus_connection_get_groups): don't cache
10480         groups for user in the connection object, since user database
10481         object now does that.
10482
10483 2003-04-16  Havoc Pennington  <hp@redhat.com>
10484
10485         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10486         list of size counters
10487         (_dbus_message_loader_putback_message_link): put back a popped link
10488
10489         * dbus/dbus-connection.c
10490         (dbus_connection_set_max_live_messages_size): rename
10491         max_received_size
10492         (dbus_connection_get_outgoing_size): get size of outgoing
10493         queue
10494         (_dbus_connection_set_connection_counter): remove this cruft
10495
10496 2003-04-14  Havoc Pennington  <hp@redhat.com>
10497
10498         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10499         caching, but at some point we might want to be able to use a
10500         different database.
10501
10502         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10503         SHA1 conf file to test the sha1 auth mechanism, since the regular
10504         test always uses EXTERNAL when available.
10505
10506         * configure.in,
10507         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10508         add conf file that requires use of sha1 auth
10509
10510 2003-04-13  Havoc Pennington  <hp@pobox.com>
10511
10512         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10513         from Philip Blundell to send messages and monitor them.
10514
10515 2003-04-13  Havoc Pennington  <hp@pobox.com>
10516
10517         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10518         callbacks
10519
10520         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10521         users
10522
10523         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10524         fix to only recover unused bytes if we're already authenticated
10525         (_dbus_transport_get_is_authenticated): fix to still mark us
10526         authenticated if there are unused bytes.
10527
10528         * bus/dispatch.c: implement security policy checking
10529
10530         * bus/connection.c (bus_transaction_send_from_driver): new
10531
10532         * bus/bus.c (bus_context_check_security_policy): new
10533
10534         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10535         now we just set the DBusError and it gets converted to an error
10536         reply.
10537
10538         * bus/connection.c (allow_user_function): enable code using actual
10539         data from the config file
10540
10541         * bus/policy.c (list_allows_user): handle wildcard rules for
10542         user/group connection perms
10543
10544 2003-04-13  Havoc Pennington  <hp@pobox.com>
10545
10546         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10547
10548         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10549
10550         * bus/policy.c (bus_policy_append_mandatory_rule)
10551         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10552         (bus_policy_append_group_rule): new functions
10553
10554 2003-04-12  Havoc Pennington  <hp@pobox.com>
10555
10556         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10557
10558         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10559         the pid/gid/uid, just for paranoia.
10560
10561         * test/break-loader.c (randomly_do_n_things): find a byte
10562         containing a type code, and randomly change it to a different
10563         type code.
10564
10565 2003-04-12  Havoc Pennington  <hp@pobox.com>
10566
10567         * bus/policy.h: change BusPolicy to be the thing from the config
10568         file, and rename old BusPolicy to BusClientPolicy
10569
10570         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10571         match change in how policy works
10572
10573         * dbus/dbus-internals.h: mark assert_not_reached as
10574         __attribute((noreturn))__
10575
10576 2003-04-11  Havoc Pennington  <hp@redhat.com>
10577
10578         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10579         the broadcast service. Use boolean return for ServiceExists.
10580
10581 2003-04-11  Havoc Pennington  <hp@redhat.com>
10582
10583         * configure.in: add another directory to look for qt in.
10584
10585 2003-04-11  Havoc Pennington  <hp@redhat.com>
10586
10587         * AUTHORS: add Colin Walters
10588
10589 2003-04-11  Havoc Pennington  <hp@redhat.com>
10590
10591         * NEWS: update
10592
10593         * configure.in: 0.9
10594
10595 2003-04-11  Havoc Pennington  <hp@redhat.com>
10596
10597         * bus/messagebus.in: remove pid file when stopping the
10598         message bus, since the bus won't have privileges to remove it
10599         itself.
10600
10601 2003-04-11  Havoc Pennington  <hp@redhat.com>
10602
10603         * bus/bus.c (bus_context_new): move credentials change after
10604         creating pidfile
10605
10606 2003-04-11  Havoc Pennington  <hp@pobox.com>
10607
10608         * test/decode-gcov.c: add "below average functions" to the
10609         coverage report, and change how some of the code works.
10610
10611         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10612         not in the coverage stats.
10613
10614         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10615         couple places so running the test suite doesn't result in megaspam.
10616
10617 2003-04-11  Havoc Pennington  <hp@pobox.com>
10618
10619         * bus/dispatch.c (check_existent_service_activation): accept a no
10620         memory error in a place we didn't before
10621
10622         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10623         in case the first one failed," since the test suite is less
10624         broken now.
10625
10626 2003-04-10  Havoc Pennington  <hp@pobox.com>
10627
10628         * bus/dispatch.c (check_segfault_service_activation): add test
10629         for launching an executable that just crashes.
10630
10631         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10632         don't leave a million cores. We'll see how portable this is.
10633
10634 2003-04-10  Havoc Pennington  <hp@pobox.com>
10635
10636         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10637         the possible parent failures before we fork, so that we don't
10638         fail to create a babysitter after creating the child.
10639
10640         * bus/activation.c (bus_activation_activate_service): kill child
10641         if we don't successfully complete the activation.
10642
10643 2003-04-10  Havoc Pennington  <hp@redhat.com>
10644
10645         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10646         the connection if it's disconnected
10647
10648         * bus/activation.c (bus_activation_service_created): use new
10649         transaction features to roll back removal of pending activation if
10650         we don't successfully create the service after all. Don't remove
10651         pending activation if the function fails.
10652
10653         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10654         (_dbus_list_insert_after_link): new code to facilitate
10655         services.c fixes
10656
10657         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10658         new functionality, so we can preallocate the ability to insert
10659         into a hash table.
10660
10661         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10662         allowing us to put custom hooks in a transaction to be used for
10663         cancelling said transaction
10664
10665         * doc/dbus-specification.sgml: add some discussion of secondary
10666         service owners, and disallow zero-length service names
10667
10668         * bus/services.c (bus_registry_acquire_service): new function,
10669         splits out part of bus_driver_handle_acquire_service() and fixes
10670         a bug where we didn't remove the service doing the acquiring
10671         from the secondary queue if we failed to remove the current owner
10672         from the front of the queue.
10673
10674 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10675
10676         * doc/dbus-specification.sgml:
10677         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10678
10679 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10680
10681         * bus/.cvsignore:
10682         * glib/.cvsignore:
10683         * test/.cvsignore:
10684         Added files to cvsignore
10685
10686         * dbus/dbus-message.h:
10687         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10688         Make get_named() take two out argument and return a boolean.
10689         (dbus_message_iter_get_args_valist):
10690         Update usage of get_named().
10691         (dbus_message_iter_append_byte):
10692         Fix typo
10693         (dbus_message_iter_append_named)
10694         Fix typo
10695         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10696         More tests.
10697
10698 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10699
10700         * dbus/dbus-marshal.[ch]:
10701         Add array_type_pos argument to _dbus_marshal_validate_arg.
10702         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10703
10704         * dbus/dbus-message.[ch]:
10705         Multi-dimensional arrays have full type specification in the
10706         outermost array. Iter code re-arranged to handle this.
10707         Added some more iter tests.
10708
10709         * doc/dbus-specification.sgml:
10710         Add me to authors.
10711         Remove old FIXME.
10712         Update new array encoding description.
10713         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10714
10715         * test/data/invalid-messages/array-with-mixed-types.message:
10716         * test/data/valid-messages/array-of-array-of-uint32.message:
10717         Change to the new array format.
10718
10719         * test/data/invalid-messages/too-short-dict.message:
10720         Fix bug in test.
10721
10722         * test/data/valid-messages/recursive-types.message:
10723         Fix up and extend test.
10724
10725 2003-04-10  Havoc Pennington  <hp@pobox.com>
10726
10727         * bus/dispatch.c: lots of fixes
10728
10729         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10730         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10731         that was crack, broke the test service.
10732
10733         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10734         handling to avoid piling up errors if we get a failure on the
10735         first address.
10736
10737         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10738         pid in assertion failures.
10739
10740         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10741         to some fixed size of file descriptor array. Don't return TRUE
10742         anytime a timeout exists, that led to lots of busy loop silliness
10743         in the tests.
10744
10745 2003-04-09  Havoc Pennington  <hp@redhat.com>
10746
10747         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10748         I'd checked this in earlier but hadn't.
10749
10750 2003-04-09  Havoc Pennington  <hp@redhat.com>
10751
10752         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10753         the activation test (man this is getting old!)
10754
10755 2003-04-09  Havoc Pennington  <hp@redhat.com>
10756
10757         * test/test-utils.c: use dispatch status function to fix this up
10758
10759         * bus/connection.c (connection_watch_callback): don't dispatch
10760         from here
10761         (connection_timeout_callback): don't dispatch from here
10762         (bus_connections_setup_connection): set the dispatch status function
10763         (bus_connection_disconnected): unset it
10764
10765         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10766         used to add a connection to be dispatched
10767         (_dbus_loop_iterate): do the dispatching at the end of each
10768         iteration
10769
10770         * dbus/dbus-connection.c
10771         (dbus_connection_set_dispatch_status_function): new function
10772         allowing us to fix up main loop usage
10773         (_dbus_connection_last_unref): free all the various function
10774         user data
10775         (dbus_connection_dispatch): call the DispatchStatusFunction
10776         whenever this function returns
10777         (dbus_connection_handle_watch): call DispatchStatusFunction
10778         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10779         (reply_handler_timeout): call DispatchStatusFunction
10780         (dbus_connection_flush): call DispatchStatusFunction
10781
10782 2003-04-09  Havoc Pennington  <hp@redhat.com>
10783
10784         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10785         a memory leak
10786
10787         * bus/dispatch.c (check_service_activated): fix bug in test
10788
10789         * dbus/dbus-mainloop.c (check_timeout): fix this up
10790
10791         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10792         verbose output so we can sort out output from different processes,
10793         e.g. in the activation case.
10794
10795 2003-04-08  Colin Walters  <walters@gnu.org>
10796
10797         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10798         the pid file.
10799         (bus_context_new): Set it.
10800         (bus_context_unref): Use it to delete the pid file.
10801
10802 2003-04-08  Havoc Pennington  <hp@redhat.com>
10803
10804         * test/data/invalid-messages/array-with-mixed-types.message:
10805         regression test that fails for the moment
10806
10807         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10808         tests for convenience
10809
10810         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10811         array of nil, it broke things.
10812
10813         * test/data/invalid-messages/array-of-nil.message: regression test
10814
10815         * test/data/valid-messages/array-of-array-of-uint32.message:
10816         happened to write this so added it to suite
10817
10818 2003-04-08  Havoc Pennington  <hp@redhat.com>
10819
10820         * bus/driver.c (bus_driver_handle_acquire_service): init
10821         retval/reply before checking name
10822
10823         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10824         recursion depth argument
10825
10826         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10827         in the public struct for future extension
10828
10829         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10830         typo
10831
10832         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10833         message
10834
10835         * doc/dbus-specification.sgml: fix typo
10836
10837 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10838
10839         Implemented recursive types, named types and new-style iters
10840
10841         * bus/driver.c:
10842         * glib/test-thread-client.c: (thread_func):
10843         * glib/test-thread-server.c: (handle_test_message):
10844         * test/test-service.c: (handle_echo):
10845         Update to new api
10846
10847         * dbus/Makefile.am:
10848         * dbus/dbus-dict.c:
10849         * dbus/dbus-dict.h:
10850         * dbus/dbus.h
10851         Remove DBusDict
10852
10853         * dbus/dbus-internals.c: (_dbus_type_to_string):
10854         Update for new types.
10855
10856         * dbus/dbus-marshal.[ch]:
10857         Implement recursive types and the new marshalling format.
10858         Remove hardcoded dict marshalling.
10859         Marshal named types.
10860
10861         * dbus/dbus-message-builder.c:
10862         Add BYTE_ARRAY.
10863         Remove references to old types
10864
10865         * dbus/dbus-message.[ch]:
10866         New non-refcounted iter API that supports recursive iters.
10867         Use iters for appending, including support for recursive
10868         iters.
10869         Add byte and named type support.
10870         Update everything to new marshalling formats.
10871         Add tests for new API.
10872
10873         * dbus/dbus-protocol.h:
10874         Remove old array types.
10875         Add types: BYTE, ARRAY, DICT, NAMED
10876
10877         * dbus/dbus-string.c:
10878         * dbus/dbus-sysdeps.c:
10879         Make parse_double locale safe.
10880
10881         * dbus/dbus-test-main.c:
10882         Call setlocale.
10883
10884         * dbus/dbus-test.c:
10885         Kill dict test
10886
10887         * doc/dbus-specification.sgml:
10888         Update spec
10889
10890         * test/data/incomplete-messages/missing-body.message:
10891         * test/data/invalid-messages/bad-boolean.message:
10892         * test/data/invalid-messages/bad-boolean-array.message:
10893         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10894         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10895         * test/data/invalid-messages/too-short-dict.message:
10896         * test/data/valid-messages/dict-simple.message:
10897         * test/data/valid-messages/dict.message:
10898         * test/data/valid-messages/emptiness.message:
10899         * test/data/valid-messages/lots-of-arguments.message:
10900         * test/data/valid-messages/no-padding.message:
10901         * test/data/valid-messages/recursive-types.message:
10902         Add missing NAME fields
10903         Fix up dicts & arrays
10904
10905         * test/data/invalid-messages/dict-with-nil-value.message:
10906         Removed, this is not invalid anymore.
10907
10908         * test/data/valid-messages/recursive-types.message:
10909         Add new test for deeply recursive types.
10910
10911 2003-04-07  Havoc Pennington  <hp@pobox.com>
10912
10913         * bus/driver.c (bus_driver_handle_acquire_service): return an
10914         error if you try to acquire a service that starts with ':'
10915
10916 2003-04-07  Havoc Pennington  <hp@redhat.com>
10917
10918         * doc/dbus-specification.sgml: require that base service names
10919         start with ':' and that the base service is created/deleted
10920         as first and last things a connection does on the bus
10921
10922         * bus/dispatch.c (check_existent_service_activation): lots more
10923         work on the activation test; it doesn't fully pass yet...
10924
10925         * test/test-service.c (main): fix so we don't memleak the
10926         connection to the message bus
10927         (filter_func): accept a message asking us to exit
10928
10929 2003-04-06  Havoc Pennington  <hp@pobox.com>
10930
10931         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10932         from Colin Walters
10933
10934         * configure.in: fixes to Qt detection from Colin Walters
10935
10936         * doc/Makefile.am: Only remove generated docbook dirs if they
10937         exist, from Colin Walters
10938
10939         * dbus/dbus-bus.c: change how we set well-known connections to
10940         NULL, so that it works if a single connection is stored in
10941         two well-known array slots.
10942
10943         * test/Makefile.am: remove a lot of stuff that isn't immediately
10944         useful, it's in CVS history if we want it.
10945
10946         * test/test-service.c: use dbus-mainloop instead of that
10947         watch.[hc] crack
10948
10949 2003-04-06  Havoc Pennington  <hp@pobox.com>
10950
10951         * dbus/Makefile.am: split lists of sources into stuff that goes in
10952         the library, util functions that go in the lib and are also used
10953         elsewhere, and util functions that are used in tests/daemon but
10954         don't go in the lib.
10955
10956         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10957         here so it can be used in test binaries also
10958
10959 2003-04-06  Havoc Pennington  <hp@pobox.com>
10960
10961         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10962         here in the parent process, so we can return an error if it
10963         fails. Also, move some of the code into the child so the parent
10964         is less hosed if we fail midway through.
10965
10966         * bus/bus.c (bus_context_new): move pidfile detection further up
10967         in the function, before we start overwriting sockets and such.
10968
10969         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10970
10971         * configure.in: add --with-system-pid-file and --with-system-socket
10972
10973 2003-04-06  Colin Walters  <walters@verbum.org>
10974
10975         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10976
10977         * bus/system.conf.in: Declare a pidfile.
10978
10979         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10980         create one (if appropriate).
10981
10982         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10983         (struct BusConfigParser) [pidfile]: New.
10984         (element_type_to_name, merge_included, start_busconfig_child)
10985         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10986         (bus_config_parser_unref): Free it.
10987         (bus_config_parser_get_pidfile): New function.
10988
10989         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10990
10991         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10992
10993         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10994
10995         * dbus/dbus-sysdeps.h: Prototype it.
10996
10997 2003-04-06  Havoc Pennington  <hp@pobox.com>
10998
10999         * bus/bus.c (bus_context_new): print the address in here, rather
11000         than in main(), because we need to do it before forking the daemon
11001
11002         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11003         on the service nonexistent error
11004
11005         * bus/driver.c (bus_driver_handle_acquire_service): set the
11006         sender on the AcquireService reply
11007
11008         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11009         server also listen on a UNIX socket so services can connect to it.
11010
11011 2003-04-06  Havoc Pennington  <hp@pobox.com>
11012
11013         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11014         so it detects deadlocks and also we actually init threads when
11015         debugging.
11016
11017 2003-04-06  Havoc Pennington  <hp@pobox.com>
11018
11019         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11020         save the domain socket name, and unlink it when we disconnect the
11021         server. Means that at least when we exit normally, we won't leave
11022         a bunch of junk in /tmp
11023
11024         * dbus/dbus-transport-unix.c
11025         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11026         memory management). (I was making a real change here but then
11027         didn't)
11028
11029 2003-04-06  Havoc Pennington  <hp@pobox.com>
11030
11031         * bus/bus.c (bus_context_new): fix wrong handling of
11032         server_data_slot_unref() in the error case.
11033
11034         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11035         "(condition) != 0" to _dbus_real_assert so that
11036         "_dbus_assert (pointer)" doesn't cause a warning
11037
11038         * bus/main.c (main): accept --print-address option to print out
11039         the message bus address
11040
11041         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11042
11043         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11044         "tmpdir" option to unix: address on client side
11045
11046         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11047         to unix: address
11048
11049         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11050         we can use to create sockets in the test suite.
11051
11052         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11053         cleanly. To be used for testing.
11054
11055         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11056
11057         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11058
11059         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11060         handle trying to call this when there's no servers active
11061
11062 2003-04-05  Havoc Pennington  <hp@pobox.com>
11063
11064         * NEWS: update
11065
11066         * configure.in: 0.8
11067
11068 2003-04-05  Havoc Pennington  <hp@pobox.com>
11069
11070         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11071         crash on startup. Need to get "try starting the daemon"
11072         in the test suite I guess. ;-)
11073
11074         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11075         tracked the number of open connections; it's better done in
11076         application-specific code as you want it to span all servers etc.
11077
11078 2003-04-05  Havoc Pennington  <hp@pobox.com>
11079
11080         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11081         patch from Colin Walters
11082
11083 2003-04-05  Havoc Pennington  <hp@pobox.com>
11084
11085         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11086         reality; in fact multiple mechanisms are allowed.
11087
11088         * dbus/dbus-internals.c (_dbus_real_assert)
11089         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11090         _dbus_assert_not_reached() into functions, so that they don't show
11091         up in basic block counts for test coverage, and don't use up as
11092         much disk space. Does mean slower execution speed though, so
11093         assumes --disable-asserts is the normal production case.
11094
11095 2003-04-05  Havoc Pennington  <hp@pobox.com>
11096
11097         * test/Makefile.am (dist-hook): also dist *.in files
11098
11099         * NEWS: update
11100
11101         * configure.in: 0.7
11102
11103 2003-04-05  Havoc Pennington  <hp@pobox.com>
11104
11105         * dbus/dbus-string.c: docs warning
11106
11107         * dbus/dbus-spawn.c: missing docs
11108
11109         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11110
11111 2003-04-05  Havoc Pennington  <hp@pobox.com>
11112
11113         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11114         magic from GLib
11115
11116         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11117         to -1 once we've reaped the babysitter
11118         (_dbus_babysitter_handle_watch): do as much work as we can, not
11119         just one go of it
11120
11121         * bus/activation.c: add code using DBusBabysitter so that we
11122         handle it when a service fails to start up properly.
11123         (bus_activation_service_created): don't remove the activation
11124         entries as we go, just let them get removed when we free the pending
11125         activation. Unref reply messages after sending them.
11126
11127 2003-04-05  Havoc Pennington  <hp@pobox.com>
11128
11129         * test/decode-gcov.c (main): print per-directory stats in the report
11130
11131         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11132
11133 2003-04-05  Havoc Pennington  <hp@pobox.com>
11134
11135         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11136
11137         * test/decode-gcov.c: hack up a little program to suck data
11138         out of gcov files. Yes this is sort of silly.
11139
11140         * configure.in: define something in config.h and do an
11141         AM_CONDITIONAL when gcov is enabled
11142
11143 2003-04-04  Havoc Pennington  <hp@redhat.com>
11144
11145         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11146         return a "babysitter" object that is used to monitor the status of
11147         the spawned process and reap it when required.
11148
11149         * test/test-segfault.c, test/test-exit.c,
11150         test/test-sleep-forever.c: binaries that do various lame things,
11151         used in the test suite.
11152
11153         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11154
11155 2003-04-03  Havoc Pennington  <hp@pobox.com>
11156
11157         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11158         in preparation for modifying it, dbus-sysdeps is getting
11159         a bit unmanageable.
11160
11161 2003-04-03  Havoc Pennington  <hp@redhat.com>
11162
11163         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11164         have multiple ones
11165
11166         * bus/*.[hc]: adapt to mainloop change
11167
11168 2003-04-03  Havoc Pennington  <hp@redhat.com>
11169
11170         * bus/activation.c (load_directory): fix up memleaks
11171         (bus_activation_entry_free): free the entry
11172
11173         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11174         we get one from the message bus; fix memleaks.
11175
11176         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11177
11178 2003-04-03  Havoc Pennington  <hp@pobox.com>
11179
11180         * bus/config-parser.c (bus_config_parser_unref): free
11181         list of mechanisms, bug discovered by test suite enhancements
11182         (putting system.conf and session.conf into suite)
11183
11184         * test/Makefile.am, test/test-service.c: add placeholder for a
11185         test service that we'll activate as part of test suite. Doesn't
11186         do anything yet.
11187
11188         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11189         setting NULL value, and use system malloc not dbus_malloc()
11190         when we have unavoidable memleakage.
11191
11192         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11193         didn't work, and support DBUS_BUS_ACTIVATION.
11194
11195         * bus/activation.c (child_setup): pass our well-known bus type to
11196         the child
11197
11198         * bus/config-parser.c: support <type> to specify well-known type
11199
11200         * doc/dbus-specification.sgml: document the env variables to
11201         locate well-known buses and find service activator
11202
11203 2003-04-02  Havoc Pennington  <hp@redhat.com>
11204
11205         * test/Makefile.am (all-local): add a rule to copy tests to
11206         builddir, so we can have generated tests. Use this to remove the
11207         silly hack for testing system.conf and session.conf. Will use this
11208         shortly to generate .service files pointing to test binaries.
11209
11210 2003-04-02  Havoc Pennington  <hp@redhat.com>
11211
11212         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11213         current alloc and needed new length, not max of the doubled
11214         allocation and needed new length. Also, when building tests,
11215         don't do the double-allocation stuff, just realloc every time.
11216
11217 2003-04-02  Havoc Pennington  <hp@redhat.com>
11218
11219         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11220         in error messages
11221         (_dbus_string_get_dirname): new
11222         (_dbus_sysdeps_test): new
11223         (_dbus_directory_open): include dirnames in error messages
11224
11225         * bus/config-parser.c: interpret <include> and <includedir> and
11226         <servicedir> relative to config file location if the given
11227         filename is not absolute.
11228
11229         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11230
11231 2003-04-02  Havoc Pennington  <hp@redhat.com>
11232
11233         * bus/connection.c (bus_transaction_send_error_reply): set sender
11234         service for the error, and unref the reply on success
11235
11236         * bus/activation.c: convert to use BusTransaction so OOM can be
11237         handled correctly
11238         (bus_activation_service_created): set sender of the message
11239
11240 2003-04-01  Havoc Pennington  <hp@redhat.com>
11241
11242         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11243         <includedir> (at least mostly)
11244
11245         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11246         first, then the user ID
11247
11248 2003-04-01  Havoc Pennington  <hp@pobox.com>
11249
11250         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11251         function
11252
11253         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11254
11255         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11256
11257         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11258         socket 0777, and unlink any existing socket.
11259
11260         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11261         the configuration file so specifies; set up auth mechanism
11262         restrictions
11263
11264         * bus/config-parser.c (bus_config_parser_content): add support
11265         for <fork> option and fill in code for <auth>
11266
11267         * bus/system.conf.in: add <fork/> to default configuration,
11268         and limit auth mechanisms to EXTERNAL
11269
11270         * doc/config-file.txt (Elements): add <fork>
11271
11272         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11273         (_dbus_change_identity): new function
11274
11275 2003-03-31  Havoc Pennington  <hp@redhat.com>
11276
11277         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11278         (_dbus_listen_unix_socket): fix off-by-one error in null
11279         termination spotted by Nalin
11280
11281 2003-03-31  Havoc Pennington  <hp@redhat.com>
11282
11283         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11284         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11285         having a real home directory available.
11286
11287 2003-03-31  Havoc Pennington  <hp@redhat.com>
11288
11289         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11290
11291         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11292
11293         * configure.in: add support for specifying a style of init script
11294         to install
11295
11296 2003-03-31  Havoc Pennington  <hp@redhat.com>
11297
11298         Fix some annoying DBusString API and fix all affected code.
11299
11300         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11301         max_length argument
11302         (_dbus_string_get_data): change to return string instead of using
11303         an out param
11304         (_dbus_string_get_const_data): ditto
11305         (_dbus_string_get_data_len): ditto
11306         (_dbus_string_get_const_data_len): ditto
11307
11308 2003-03-31  Havoc Pennington  <hp@redhat.com>
11309
11310         * bus/main.c (main): fix up the command line arguments to be nicer
11311
11312 2003-03-31  Havoc Pennington  <hp@redhat.com>
11313
11314         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11315         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11316         final location that lands in the config file
11317
11318         * bus/config-loader-expat.c (bus_config_load): fix type of
11319         XML_Parser variable
11320
11321         * doc/TODO: remove TODO item for dbus_bus_get()
11322
11323         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11324
11325 2003-03-31  Havoc Pennington  <hp@pobox.com>
11326
11327         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11328         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11329         argument since they are always client side
11330
11331         * dbus/dbus-server.c (dbus_server_get_address): new function
11332
11333         * bus/main.c (main): take the configuration file as an argument.
11334
11335         * test/data/valid-config-files/debug-allow-all.conf: new file to
11336         use with dispatch.c tests for example
11337
11338         * bus/test-main.c (main): require test data dir
11339
11340         * bus/bus.c (bus_context_new): change this to take a
11341         configuration file name as argument
11342
11343         * doc/config-file.txt (Elements): add <servicedir>
11344
11345         * bus/system.conf, bus/session.conf: new files
11346
11347         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11348         well-known socket if none set
11349
11350         * configure.in: create system.conf and session.conf
11351
11352 2003-03-30  Havoc Pennington  <hp@pobox.com>
11353
11354         * bus/config-parser.c: hacking
11355
11356         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11357         to shut down, since it could cause weirdness with the DBusList
11358         lock
11359
11360         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11361         link-oriented stack routines
11362         (alloc_link): free the mempool if the first alloc from it fails
11363
11364         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11365
11366         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11367         from GLib
11368         (_dbus_string_skip_white): new
11369
11370         * doc/config-file.txt (Elements): add <includedir>
11371
11372 2003-03-28  Havoc Pennington  <hp@pobox.com>
11373
11374         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11375         (_dbus_string_copy_data): new functions
11376
11377 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11378
11379         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11380         * dbus/dbus-bus.h:
11381         Add dbus_bus_get.
11382
11383         * dbus/dbus-memory.c:
11384         Fix a doc comment.
11385
11386 2003-03-28  Havoc Pennington  <hp@pobox.com>
11387
11388         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11389         I think it may have just been superstition. Not sure.
11390
11391         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11392         failures that were not being handled.
11393
11394         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11395
11396         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11397         row that will fail on out-of-memory.
11398
11399         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11400         function for testing out-of-memory handling.
11401
11402         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11403         allocation functions, they do map exactly to the expat ones.
11404
11405 2003-03-27  Havoc Pennington  <hp@redhat.com>
11406
11407         * bus/config-loader-libxml.c (bus_config_load): add another error
11408         check
11409
11410 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11411
11412         * doc/TODO:
11413         Add note about automatic service activation.
11414
11415         * doc/dbus-specification.sgml:
11416         Rename the specification and clarify a few things.
11417
11418 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11419
11420         * Doxyfile.in:
11421         * dbus/dbus-address.c:
11422         * dbus/dbus-dict.c:
11423         * dbus/dbus-marshal.c:
11424         * dbus/dbus-server-debug-pipe.c:
11425         * dbus/dbus-transport-unix.c:
11426         Fix documentation warnings.
11427
11428 2003-03-26  Havoc Pennington  <hp@pobox.com>
11429
11430         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11431         after every test so it's quick and easy to see which leaked, and
11432         so we test multiple dbus_shutdown() calls
11433
11434         * configure.in: change configure.in XML stuff to also support
11435         expat
11436
11437         * config-loader-libxml.c: some hacking
11438
11439         * config-loader-expat.c: some hacking
11440
11441         * config-parser.c: some hacking, plus tests
11442
11443 2003-03-25  Havoc Pennington  <hp@redhat.com>
11444
11445         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11446
11447         * configure.in: add --with-xml option to specify XML library,
11448         right now only libxml is supported.
11449
11450         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11451         nonworking code between home and work, still just stubs
11452
11453 2003-03-24  Havoc Pennington  <hp@redhat.com>
11454
11455         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11456         file
11457
11458         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11459         NULL argument for "message" if the error is a well-known one,
11460         fill in a generic message in this case.
11461
11462         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11463         favor of DBusError
11464
11465         * bus/test.c (bus_test_flush_bus): add
11466
11467         * bus/policy.c (bus_policy_test): test code stub
11468
11469 2003-03-24  Havoc Pennington  <hp@pobox.com>
11470
11471         * bus/connection.c (bus_connections_setup_connection): set up
11472         the "can this user connect" function, but it always returns
11473         TRUE until we have a config file parser so we can have a config
11474         file that allows connections.
11475
11476 2003-03-23  Havoc Pennington  <hp@pobox.com>
11477
11478         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11479         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11480         the mutex, so we can check for proper memory management
11481         and OOM handling.
11482
11483         * dbus/dbus-dataslot.c: remove the mutex from
11484         DBusDataSlotAllocator and lock it manually when using it,
11485         to simplify fitting it into the global slots framework.
11486
11487         * dbus/dbus-threads.c (init_static_locks): rework how we're
11488         handling global locks so they are easily shut down.
11489
11490         * bus/policy.c (bus_policy_append_rule): fix
11491
11492         * bus/test-main.c (main): check for memleaks
11493
11494         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11495         test suite check for memleaks
11496
11497         * dbus/dbus-memory.c: add support in test mode for tracking
11498         number of outstanding blocks
11499
11500 2003-03-23  Havoc Pennington  <hp@pobox.com>
11501
11502         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11503         policies code
11504
11505         * dbus/dbus-hash.h: add ULONG hash keys
11506
11507         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11508         (_dbus_get_group_id): new function
11509
11510 2003-03-20  Havoc Pennington  <hp@redhat.com>
11511
11512         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11513         new function
11514         (dbus_connection_get_unix_user): new function
11515
11516 2003-03-20  Havoc Pennington  <hp@pobox.com>
11517
11518         * bus/connection.c (bus_connection_send_oom_error): assert that
11519         message has a sender
11520         (connection_execute_transaction): ditto
11521         (bus_connection_preallocate_oom_error): fix to set the sender, and
11522         set recipient to the destination service, not the bus driver
11523
11524         * bus/policy.c: hacking
11525
11526         * dbus/dbus-message.c (dbus_message_service_is): new function
11527         (dbus_message_sender_is): new
11528
11529 2003-03-19  Havoc Pennington  <hp@redhat.com>
11530
11531         * bus/policy.c: start sketching code for policy restrictions on
11532         what connections can do.
11533
11534 2003-03-18  Havoc Pennington  <hp@redhat.com>
11535
11536         * doc/TODO: some notes on high-level todo items. Little nitpick
11537         stuff is all in @todo, so no need to add it here.
11538
11539         * doc/config-file.txt: some notes on how config file might look
11540
11541 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11542
11543         * configure.in: 0.6
11544
11545         * NEWS: Update.
11546
11547 2003-03-17  Havoc Pennington  <hp@redhat.com>
11548
11549         * dbus/dbus-internals.h: add gcc attributes so that
11550         our printf-style functions warn on bad arguments to
11551         format
11552
11553         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11554         format bug
11555
11556         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11557         printf format bug
11558
11559 2003-03-17  Havoc Pennington  <hp@redhat.com>
11560
11561         * bus/test-main.c (main): make it print something as it runs
11562         so make check doesn't look stuck
11563
11564         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11565         from CVS, now obsolete
11566
11567 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11568
11569         * bus/dispatch.c: (bus_dispatch):
11570         Refetch the service name since it may have been reallocated
11571         when dbus_message_set_sender was called.
11572
11573         * dbus/dbus-sysdeps.c: (_dbus_accept):
11574         Add address and address length variables and use them to stop
11575         valgrind from complaining.
11576
11577 2003-03-17  Havoc Pennington  <hp@pobox.com>
11578
11579         All tests pass, no memleaks, no valgrind complaints.
11580
11581         * bus/test.c: refcount handler_slot
11582
11583         * bus/connection.c (bus_connections_new): refcount
11584         connection_data_slot
11585
11586         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11587         bytes so that auth scripts pass.
11588
11589         * bus/dispatch.c: init message_handler_slot so it gets allocated
11590         properly
11591
11592         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11593
11594         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11595         dealloc server_pipe_hash when no longer used for benefit of
11596         leak checking
11597
11598         * dbus/dbus-auth.c (process_command): memleak fix
11599
11600         * bus/dispatch.c (check_hello_message): memleak fix
11601
11602 2003-03-16  Havoc Pennington  <hp@pobox.com>
11603
11604         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11605
11606 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11607
11608         * bus/activation.c (bus_activation_activate_service): Append
11609         the pending activation entry to the list of pending activations.
11610
11611 2003-03-16  Havoc Pennington  <hp@pobox.com>
11612
11613         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11614         connections
11615
11616         * dbus/dbus-address.c (create_entry): fix OOM handling when
11617         failing to alloc entry->method
11618
11619 2003-03-16  Havoc Pennington  <hp@pobox.com>
11620
11621         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11622         the watch
11623
11624         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11625         add some missing dbus_set_result
11626
11627         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11628         alloc the DBusMessageHandler
11629
11630         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11631         the transport here, since we call this from the finalizer; it
11632         resulted in a double-finalize.
11633
11634         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11635         where we tried to use transport->connection that was NULL,
11636         happened when transport was disconnected early on due to OOM
11637
11638         * bus/*.c: adapt to handle OOM for watches/timeouts
11639
11640         * dbus/dbus-transport-unix.c: port to handle OOM during
11641         watch handling
11642
11643         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11644         reference to unused bytes instead of a copy
11645
11646         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11647         out of memory
11648
11649         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11650         FALSE on OOM
11651
11652         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11653         of memory
11654
11655 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11656
11657         * doc/dbus-specification.sgml:
11658         Document reply message for ActivateService.
11659
11660 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11661
11662         * bus/activation.c: (bus_pending_activation_entry_free),
11663         (bus_pending_activation_free), (bus_activation_new),
11664         (bus_activation_unref), (bus_activation_service_created),
11665         (bus_activation_activate_service):
11666         * bus/activation.h:
11667         * bus/bus.c: (bus_context_new):
11668         * bus/desktop-file.c: (new_section):
11669         * bus/driver.c: (bus_driver_send_service_deleted),
11670         (bus_driver_handle_activate_service):
11671         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11672         * bus/services.h:
11673         * dbus/dbus-connection.c:
11674         (dbus_connection_send_with_reply_and_block):
11675         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11676         * dbus/dbus-protocol.h:
11677         Make activation work better. Now pending activations will be queued
11678         and the daemon won't try to activate services that are already registered.
11679
11680 2003-03-16  Havoc Pennington  <hp@pobox.com>
11681
11682         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11683         connection data
11684
11685         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11686         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11687
11688 2003-03-16  Havoc Pennington  <hp@pobox.com>
11689
11690         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11691         this. always run the test suite before commit...
11692
11693         * bus/*: adapt to DBusConnection API changes
11694
11695         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11696         requires renaming stuff to avoid dbus_connection_dispatch name
11697         conflict.
11698
11699         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11700         function
11701
11702         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11703         separate from _dbus_message_loader_return_buffer()
11704
11705         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11706         this, because it's now always broken to use; the number of
11707         messages in queue vs. the number still buffered by the message
11708         loader is undefined/meaningless. Should use
11709         dbus_connection_get_dispatch_state().
11710         (dbus_connection_dispatch): rename from
11711         dbus_connection_dispatch_message
11712
11713 2003-03-16  Havoc Pennington  <hp@pobox.com>
11714
11715         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11716         implementation
11717
11718 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11719
11720         * dbus/dbus-connection.c:
11721         (dbus_connection_send_with_reply_and_block):
11722         Decrease connection->n_incoming when removing an entry
11723         from the list.
11724         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11725         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11726         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11727         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11728         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11729         (dbus_dict_get_byte_array):
11730         Handle NULL arrays and strings. Also add support for byte arrays.
11731
11732         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11733         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11734         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11735         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11736         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11737         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11738         * dbus/dbus-marshal.h:
11739         Add support for marshalling and demarshalling empty arrays and strings.
11740
11741         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11742         (dbus_message_append_string_array),
11743         (dbus_message_iter_get_boolean),
11744         (dbus_message_iter_get_boolean_array),
11745         (dbus_message_iter_get_int32_array),
11746         (dbus_message_iter_get_uint32_array),
11747         (dbus_message_iter_get_double_array),
11748         (dbus_message_iter_get_byte_array),
11749         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11750         (check_message_handling):
11751         Add support for getting empty arrays and dicts.
11752
11753         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11754         Don't do any validation at all for now, that's better than just checking
11755         for ASCII.
11756
11757         * test/data/valid-messages/emptiness.message:
11758         New test message with lots of empty arrays.
11759
11760 2003-03-16  Havoc Pennington  <hp@pobox.com>
11761
11762         * dbus/dbus-connection.c
11763         (_dbus_connection_queue_received_message_link): new function that
11764         can't fail due to OOM
11765
11766         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11767         new function pops a message together with a list link
11768         containing it.
11769
11770         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11771         message queuing functions to avoid needing to alloc memory
11772
11773 2003-03-16  Havoc Pennington  <hp@pobox.com>
11774
11775         Oops - test code was only testing failure of around 30 of the
11776         mallocs in the test path, but it turns out there are 500+
11777         mallocs. I believe this was due to misguided linking setup such
11778         that there was one copy of dbus_malloc etc. in the daemon and one
11779         in the shared lib, and only daemon mallocs were tested. In any
11780         case, the test case now tests all 500+ mallocs, and doesn't pass
11781         yet, though there are lots of fixes in this patch.
11782
11783         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11784         this so that it doesn't need to allocate memory, since it
11785         has no way of indicating failure due to OOM (and would be
11786         annoying if it did).
11787
11788         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11789
11790         * bus/Makefile.am: rearrange to create two self-contained
11791         libraries, to avoid having libraries with overlapping symbols.
11792         that was resulting in weirdness, e.g. I'm pretty sure there
11793         were two copies of global static variables.
11794
11795         * dbus/dbus-internals.c: move the malloc debug stuff to
11796         dbus-memory.c
11797
11798         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11799         empty.
11800
11801         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11802
11803         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11804         on failure.
11805
11806         * bus/dispatch.c (bus_dispatch_add_connection): free
11807         message_handler_slot when no longer using it, so
11808         memory leak checkers are happy for the test suite.
11809
11810         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11811
11812         * bus/bus.c (new_connection_callback): disconnect in here if
11813         bus_connections_setup_connection fails.
11814
11815         * bus/connection.c (bus_connections_unref): fix to free the
11816         connections
11817         (bus_connections_setup_connection): if this fails, don't
11818         disconnect the connection, just be sure there are no side
11819         effects.
11820
11821         * dbus/dbus-string.c (undo_alignment): unbreak this
11822
11823         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11824         leaking
11825         (_dbus_auth_new): fix the order in which we free strings
11826         on OOM failure
11827
11828         * bus/connection.c (bus_connection_disconnected): fix to
11829         not send ServiceDeleted multiple times in case of memory
11830         allocation failure
11831
11832         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11833         get the base service name
11834         (dbus_bus_register_client): don't return base service name,
11835         instead store it on the DBusConnection and have an accessor
11836         function for it.
11837         (dbus_bus_register_client): rename dbus_bus_register()
11838
11839         * bus/dispatch.c (check_hello_message): verify that other
11840         connections on the bus also got the correct results, not
11841         just the one sending hello
11842
11843 2003-03-15  Havoc Pennington  <hp@pobox.com>
11844
11845         Make it pass the Hello handling test including all OOM codepaths.
11846         Now to do other messages...
11847
11848         * bus/services.c (bus_service_remove_owner): fix crash when
11849         removing owner from an empty list of owners
11850         (bus_registry_ensure): don't leave service in the list of
11851         a connection's owned services if we fail to put the service
11852         in the hash table.
11853
11854         * bus/connection.c (bus_connection_preallocate_oom_error): set
11855         error flag on the OOM error.
11856
11857         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11858         handle _dbus_transport_set_connection failure
11859
11860         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11861         to create watches up front and simply enable/disable them as
11862         needed.
11863         (unix_connection_set): this can now fail on OOM
11864
11865         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11866         of enabling/disabling a watch or timeout.
11867
11868         * bus/loop.c (bus_loop_iterate): don't touch disabled
11869         watches/timeouts
11870
11871         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11872
11873 2003-03-15  Havoc Pennington  <hp@pobox.com>
11874
11875         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11876         write useful test code, after all that futzing around ;-)
11877
11878         Test does not yet pass because we can't handle OOM in
11879         _dbus_transport_messages_pending (basically,
11880         dbus_connection_preallocate_send() does not prealloc the write
11881         watch). To fix this, I think we need to add new stuff to
11882         set_watch_functions, namely a SetEnabled function so we can alloc
11883         the watch earlier, then enable it later.
11884
11885         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11886         dbus-memory.c to the convenience lib
11887
11888         * bus/test.c: rename some static functions to keep them clearly
11889         distinct from stuff in connection.c. Handle client disconnection.
11890
11891 2003-03-14  Havoc Pennington  <hp@pobox.com>
11892
11893         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11894         transport, tests more of the real codepath. Set up clients
11895         with bus_setup_debug_client.
11896
11897         * bus/test.c (bus_setup_debug_client): function to set up debug
11898         "clients" on the main loop
11899
11900         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11901         support
11902
11903         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11904         server type
11905
11906         * dbus/dbus-server-debug.c: support a debug server based on pipes
11907
11908         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11909         (_dbus_close): new function
11910
11911         * configure.in: check for socketpair
11912
11913 2003-03-14  Havoc Pennington  <hp@redhat.com>
11914
11915         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11916         cheesy hack
11917
11918         * dbus/dbus-transport-debug.c: rework this a good bit to be
11919         less complicated. hopefully still works.
11920
11921         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11922         manually
11923
11924         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11925         after running it
11926
11927         * dbus/dbus-message.c (dbus_message_copy): rename from
11928         dbus_message_new_from_message, fix it up to copy
11929         all the message fields, add test case
11930
11931         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11932         not quite passing yet
11933
11934 2003-03-14  Havoc Pennington  <hp@pobox.com>
11935
11936         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11937         until no work remains" in test code. (the large diff here
11938         is just code movement, no actual changes)
11939
11940         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11941         1, no point waiting around for test code.
11942         (_dbus_server_debug_accept_transport): unref the timeout
11943         after adding it (right?)
11944
11945         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11946
11947 2003-03-13  Havoc Pennington  <hp@redhat.com>
11948
11949         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11950         out of memory
11951
11952         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11953         of memory
11954
11955         * dbus/dbus-connection.h: Make AddWatchFunction and
11956         AddTimeoutFunction return a bool so they can fail on out-of-memory
11957
11958         * bus/bus.c (bus_context_new): set up timeout handlers
11959
11960         * bus/connection.c (bus_connections_setup_connection): set up
11961         timeout handlers
11962
11963         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11964         can fail
11965
11966         * bus/bus.c (bus_context_new): adapt to changes
11967
11968         * bus/connection.c: adapt to changes
11969
11970         * test/watch.c: adapt to DBusWatch changes
11971
11972         * bus/dispatch.c (bus_dispatch_test): started adding this but
11973         didn't finish
11974
11975 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11976
11977         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11978
11979 2003-03-13  Havoc Pennington  <hp@pobox.com>
11980
11981         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11982         set up a test framework as for the library
11983
11984 2003-03-12  Havoc Pennington  <hp@pobox.com>
11985
11986         Throughout: purge global variables, introduce BusActivation,
11987         BusConnections, BusRegistry, etc. objects instead.
11988
11989         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11990         message bus object
11991
11992         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11993         going to redo this a bit differently I think
11994
11995 2003-03-12  Havoc Pennington  <hp@redhat.com>
11996
11997         Mega-patch that gets the message bus daemon initially handling
11998         out-of-memory. Work still needed. Also lots of random
11999         moving stuff to DBusError instead of ResultCode.
12000
12001         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12002
12003         * dbus/dbus-connection.c
12004         (dbus_connection_send_with_reply_and_block): use DBusError
12005
12006         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12007         DBusResultCode
12008
12009         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12010         code here, as the only failure possible is OOM.
12011
12012         * bus/connection.c (bus_connection_disconnect):
12013         rename bus_connection_disconnected as it's a notification only
12014
12015         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12016         "name" on get_args failure, should be done by get_args;
12017         don't disconnect client for bad args, just return an error.
12018         (bus_driver_handle_service_exists): ditto
12019
12020         * bus/services.c (bus_services_list): NULL-terminate returned array
12021
12022         * bus/driver.c (bus_driver_send_service_lost)
12023         (bus_driver_send_service_acquired): send messages from driver to a
12024         specific client to the client's unique name, not to the broadcast
12025         service.
12026
12027         * dbus/dbus-message.c (decode_header_data): reject messages that
12028         contain no name field
12029         (_dbus_message_get_client_serial): rename to
12030         dbus_message_get_serial and make public
12031         (_dbus_message_set_serial): rename from set_client_serial
12032         (_dbus_message_set_reply_serial): make public
12033         (_dbus_message_get_reply_serial): make public
12034
12035         * bus/connection.c (bus_connection_foreach): allow stopping
12036         iteration by returning FALSE from foreach function.
12037
12038         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12039         (dbus_connection_free_preallocated_send)
12040         (dbus_connection_preallocate_send): new API for sending a message
12041         without possibility of malloc failure.
12042         (dbus_connection_send_message): rename to just
12043         dbus_connection_send (and same for whole function family)
12044
12045         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12046
12047         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12048
12049         * bus/activation.c: handle/return errors
12050
12051         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12052
12053         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12054         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12055         (_dbus_result_from_errno): move to this file
12056
12057 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12058
12059         * dbus/dbus-marshal.c:
12060         (_dbus_marshal_set_string):
12061         Take a length argument so we can marshal the correct string
12062         length.
12063
12064         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12065         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12066         (_dbus_marshal_test):
12067         * dbus/dbus-marshal.h:
12068         Add support for marshalling and demarshalling dicts.
12069
12070         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12071         Add support for TYPE DICT.
12072
12073         * dbus/dbus-message.c: (set_string_field):
12074         Adjust header padding.
12075
12076         (dbus_message_append_args_valist), (dbus_message_append_dict),
12077         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12078         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12079         (check_message_handling), (check_have_valid_message):
12080         * dbus/dbus-message.h:
12081         Add functions for setting and getting dicts.
12082
12083         * dbus/dbus-protocol.h:
12084         Add DBUS_TYPE_DICT.
12085
12086         * dbus/dbus.h:
12087         Add dbus-dict.h
12088
12089         * doc/dbus-specification.sgml:
12090         Add information about how dicts are marshalled.
12091
12092         * test/data/invalid-messages/dict-with-nil-value.message:
12093         * test/data/invalid-messages/too-short-dict.message:
12094         * test/data/valid-messages/dict-simple.message:
12095         * test/data/valid-messages/dict.message:
12096         Add sample messages containing dicts.
12097
12098 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12099
12100         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12101
12102 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12103
12104         * dbus/Makefile.am:
12105         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12106         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12107         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12108         (dbus_dict_set_double), (dbus_dict_set_string),
12109         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12110         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12111         (dbus_dict_set_string_array), (_dbus_dict_test):
12112         * dbus/dbus-dict.h:
12113         Fix according to comments from Havoc.
12114
12115 2003-03-06  Michael Meeks  <michael@server.home>
12116
12117         * configure.in: if we don't have kde-config, disable have_qt.
12118
12119 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12120
12121         * dbus/Makefile.am:
12122         Add dbus-dict.[ch]
12123
12124         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12125         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12126         (dbus_dict_remove), (dbus_dict_get_value_type),
12127         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12128         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12129         (dbus_dict_put_double), (dbus_dict_put_string),
12130         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12131         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12132         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12133         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12134         (dbus_dict_get_double), (dbus_dict_get_string),
12135         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12136         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12137         (dbus_dict_get_string_array), (_dbus_dict_test):
12138         * dbus/dbus-dict.h:
12139         Add DBusDict implementation
12140
12141         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12142         * dbus/dbus-test.h:
12143         Add _dbus_dict_test
12144
12145 2003-03-04  Havoc Pennington  <hp@pobox.com>
12146
12147         * test/data/auth/*: adapt to changes
12148
12149         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12150         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12151         userid
12152
12153         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12154         more stuff from being in a context name, to make the protocol
12155         simpler to deal with
12156
12157         * dbus/dbus-errors.c (dbus_error_has_name): new function
12158         (dbus_error_is_set): new function
12159
12160         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12161         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12162
12163         * dbus/dbus-connection.c (dbus_connection_flush): also read
12164         messages during a flush operation
12165
12166         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12167
12168 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12169
12170         * configure.in: Check for gethostbyname on Solaris.
12171
12172         * dbus/dbus-transport.c: (_dbus_transport_open):
12173         Remove duplicate "tcp" entry.
12174
12175         * doc/dbus-specification.sgml:
12176         Clarify some things.
12177
12178 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12179
12180         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12181         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12182         (_dbus_keyring_test):
12183         * dbus/dbus-md5.c: (_dbus_md5_compute):
12184         * dbus/dbus-sha.c: (_dbus_sha_compute):
12185         Plug memory leaks.
12186
12187 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12188
12189         * README: Add some things.
12190
12191 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12192
12193         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12194         after case DBUS_TYPE_BOOELAN.
12195
12196 2003-03-02  Havoc Pennington  <hp@pobox.com>
12197
12198         * test/break-loader.c (randomly_set_extreme_ints): add test that
12199         sets really huge and small integers
12200
12201         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12202         that length of boolean array fits in the string, and that
12203         string has room for boolean value in single-bool case.
12204
12205         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12206         optional value to "ALIGN" command which is what to fill the
12207         alignment with.
12208
12209         * test/data/valid-messages/no-padding.message: add regression
12210         test for the message padding problem
12211
12212 2003-03-02  Havoc Pennington  <hp@pobox.com>
12213
12214         * dbus/dbus-message.c (decode_header_data): fix to always init
12215         message_padding, from Benjamin Dauvergne
12216
12217 2003-03-02  Havoc Pennington  <hp@pobox.com>
12218
12219         * configure.in: 0.5
12220
12221         * NEWS: Update.
12222
12223 2003-03-01  Joe Shaw  <joe@assbarn.com>
12224
12225         * configure.in: Check for "struct cmsgcred" and try to access its
12226         members for BSD-like unices.
12227
12228         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12229         _dbus_read_credentials_unix_socket().
12230         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12231         read() for reading the credential byte off the unix socket.  Use
12232         struct cmsgcred on systems that support it.
12233
12234 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12235
12236         * glib/Makefile.am:
12237         * configure.in:
12238         Make gthreads-2.0 dependency optional. Don't build thread test if
12239         its not found.
12240
12241 2003-02-27  Havoc Pennington  <hp@pobox.com>
12242
12243         * dbus/dbus-connection.c
12244         (dbus_connection_send_message_with_reply_and_block): fix doh!
12245         doh! doh! bug that resulted in never removing a reply from the
12246         queue, no wonder we called get_reply_serial so much ;-)
12247
12248         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12249         and client serial instead of demarshaling them every time
12250
12251 2003-02-27  Havoc Pennington  <hp@pobox.com>
12252
12253         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12254         more inlined, using dbus-string-private.h, speeds things up
12255         substantially
12256
12257         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12258         when freeing the string
12259         (_dbus_string_steal_data): fix for align offset
12260         (undo_alignment): new function
12261
12262 2003-02-26  Havoc Pennington  <hp@redhat.com>
12263
12264         All kinds of audit fixes from Owen, plus initial attempt to
12265         handle unaligned memory returned from malloc.
12266
12267         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12268         leave room for align_offset and nul byte
12269         (fixup_alignment): function to track an align_offset and
12270         ensure real->str is aligned
12271         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12272         to allow a nul byte plus align offset
12273         (_dbus_string_lock): fix overflow issue
12274         (_dbus_string_init_const_len): add assertions on sanity of len,
12275         assign allocated to be ALLOCATION_PADDING larger than len
12276         (set_length): fixup the overflow handling
12277         (_dbus_string_get_data_len): fix overflow in assertion
12278         (open_gap): detect overflow in size of gap to be opened
12279         (_dbus_string_lengthen): add overflow check
12280         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12281         (_dbus_string_append): add overflow check
12282         (_dbus_string_append_unichar): overflow
12283         (_dbus_string_delete): fix overflow in assertion
12284         (_dbus_string_copy_len): overflow in assertion
12285         (_dbus_string_replace_len): overflows in assertions
12286         (_dbus_string_find): change to implement in terms of
12287         _dbus_string_find_to
12288         (_dbus_string_find_to): assorted fixage
12289         (_dbus_string_equal_c_str): assert c_str != NULL,
12290         fix logic so the function works
12291         (_dbus_string_ends_with_c_str): fix overflow thingy
12292         (_dbus_string_base64_encode): overflow fix
12293         (_dbus_string_validate_ascii): overflow
12294         (_dbus_string_validate_nul): overflow
12295
12296 2003-02-26  Havoc Pennington  <hp@redhat.com>
12297
12298         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12299
12300 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12301
12302         * configure.in:
12303         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12304
12305         * dbus/dbus-connection.c:
12306         * dbus/dbus-connection.h:
12307         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12308         Add dbus_connection_set_wakeup_main_function and use it when queueing
12309         incoming and outgoing messages.
12310
12311
12312         * dbus/dbus-dataslot.c:
12313         Threadsafe usage of DBusDataSlotAllocator
12314
12315         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12316         dbus_new can fail.
12317
12318         * dbus/dbus-server-unix.c:
12319         Add todo comment
12320
12321         * glib/dbus-gmain.c:
12322         Implement the new wakeup functions for glib.
12323
12324         * glib/Makefile.am:
12325         * glib/test-thread-client.c:
12326         * glib/test-thread-server.c:
12327         * glib/test-thread.h:
12328         Initial cut at some thread test code. Not really done yet.
12329
12330 2003-02-26  Havoc Pennington  <hp@pobox.com>
12331
12332         * dbus/dbus-connection.c
12333         (dbus_connection_send_message_with_reply_and_block): fix crash
12334         where we ref'd the outgoing message instead of the returned reply
12335
12336         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12337         at the end of this function, so if we didn't need to read for
12338         authentication, we reinstall it for receiving messages
12339
12340         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12341         a NULL sender for peer-to-peer case
12342
12343         * dbus/dbus-transport-unix.c (check_read_watch): handle
12344         !authenticated case correctly
12345
12346         * glib/dbus-gmain.c: add support for DBusServer
12347
12348         * dbus/dbus-server.c: add data slot support
12349
12350         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12351         return values and handle errors
12352
12353         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12354         DBusConnection
12355
12356         * Doxyfile.in (INPUT): add glib subdir
12357
12358         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12359         setup_with_g_main instead of hookup_with_g_main; write docs
12360
12361 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12362
12363         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12364         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12365         * dbus/dbus-message.c: (dbus_message_append_boolean),
12366         (dbus_message_append_boolean_array),
12367         (dbus_message_get_args_valist), (_dbus_message_test):
12368         * dbus/dbus-message.h:
12369         * doc/dbus-specification.sgml:
12370         Various fixes as pointed out by Havoc.
12371
12372         * test/data/invalid-messages/bad-boolean-array.message:
12373         * test/data/invalid-messages/bad-boolean.message:
12374         Add invalid boolean value test cases.
12375
12376 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12377
12378         * dbus/dbus-internals.c: (_dbus_type_to_string):
12379         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12380         (_dbus_marshal_validate_arg):
12381         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12382         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12383         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12384         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12385         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12386         (dbus_message_iter_get_double),
12387         (dbus_message_iter_get_boolean_array), (message_iter_test):
12388         * dbus/dbus-message.h:
12389         * dbus/dbus-protocol.h:
12390         * doc/dbus-specification.sgml:
12391         * test/data/valid-messages/lots-of-arguments.message:
12392         Add support for boolean and boolean array types.
12393
12394 2003-02-23  Havoc Pennington  <hp@pobox.com>
12395
12396         * dbus/dbus-keyring.c: finish most of this implementation and
12397         simple unit test
12398
12399         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12400         these barf if the error isn't cleared to NULL
12401
12402         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12403         (_dbus_create_directory): new function
12404
12405         * dbus/dbus-errors.c (dbus_set_error): fix warning
12406
12407         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12408         (_dbus_string_hex_decode): new function
12409         (test_hex_roundtrip): test code
12410
12411         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12412
12413         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12414
12415         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12416         the save-to-temp/rename trick to atomically write the new file
12417         (_dbus_string_parse_uint): new function
12418
12419 2003-02-22  Havoc Pennington  <hp@pobox.com>
12420
12421         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12422
12423 2003-02-22  Havoc Pennington  <hp@pobox.com>
12424
12425         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12426         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12427
12428         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12429
12430         * dbus/test/data/sha-1: add US government test suite for SHA-1
12431
12432 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12433
12434         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12435         Make string arrays NULL-terminated.
12436
12437         * dbus/dbus-memory.c: (dbus_free_string_array):
12438         * dbus/dbus-memory.h:
12439         New function for freeing NULL-terminated string arrays.
12440
12441         * dbus/dbus-message-builder.c: (append_quoted_string),
12442         (_dbus_message_data_load):
12443         Add support for array types.
12444
12445         * dbus/dbus-message.c: (check_message_handling):
12446         Add more types as test cases.
12447
12448         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12449         (_dbus_string_parse_double):
12450         Add the start offset to the end offset.
12451
12452         * test/data/valid-messages/lots-of-arguments.message:
12453         New test message with lots of arguments.
12454
12455 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12456
12457         * dbus/dbus-message.c: (dbus_message_append_nil),
12458         (dbus_message_append_int32), (dbus_message_append_uint32),
12459         (dbus_message_append_double), (dbus_message_append_string),
12460         (dbus_message_append_int32_array),
12461         (dbus_message_append_uint32_array),
12462         (dbus_message_append_double_array),
12463         (dbus_message_append_byte_array),
12464         (dbus_message_append_string_array):
12465         Fix all out-of-memory handling in these functions.
12466
12467 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12468
12469         * dbus/dbus-message.c: (dbus_message_append_nil):
12470         Fix a silly.
12471
12472 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12473
12474         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12475         (dbus_message_append_nil), (dbus_message_append_int32_array),
12476         (dbus_message_append_uint32_array),
12477         (dbus_message_append_double_array),
12478         (dbus_message_append_byte_array),
12479         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12480         (dbus_message_iter_get_int32_array),
12481         (dbus_message_iter_get_uint32_array),
12482         (dbus_message_iter_get_double_array),
12483         (dbus_message_iter_get_byte_array),
12484         (dbus_message_iter_get_string_array):
12485
12486         * dbus/dbus-message.h:
12487         Add functions for appending and getting arrays.
12488
12489 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12490
12491         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12492         element size at least 8 bytes, fixes mempool tests on
12493         64-bit machines.
12494
12495 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12496
12497         * dbus/dbus-transport-unix.c (unix_do_iteration):
12498         Unlock the connection mutex during a blocking select call.
12499         Add todo about how we need a way to wake up the select.
12500
12501         * dbus/dbus-connection-internal.h:
12502         * dbus/dbus-connection.c:
12503         Add _dbus_connection_lock and _dbus_connection_unlock.
12504
12505 2003-02-19  Havoc Pennington  <hp@pobox.com>
12506
12507         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12508         Doxyfile.in, not Doxyfile
12509
12510         * dbus/dbus-keyring.c: do some hacking on this
12511
12512         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12513
12514         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12515         dbus_error_init
12516         (dbus_set_error): remove dbus_error_init, check for message ==
12517         NULL *before* we sprintf into it, and add @todo about including
12518         system headers in this file
12519
12520         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12521
12522         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12523
12524         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12525         get various bits of user information based on either username
12526         or user ID
12527         (_dbus_homedir_from_username): new function
12528
12529 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12530
12531         * configure.in:
12532         Add check for nonposix getpwnam_r
12533
12534         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12535         Align the pool element size to a sizeof (void *) boundary.
12536
12537         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12538         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12539         General Solaris fixes.
12540
12541         * test/data/valid-messages/simplest-manual.message:
12542         Explicitly state that we want little-endian packing.
12543
12544 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12545
12546         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12547
12548         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12549         Added to create a transport connecting using a tcp/ip socket.
12550
12551         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12552         to a tcp socket at given host and port.
12553         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12554         hostname and port.
12555
12556         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12557
12558         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12559         Added to create a server listening on a TCP/IP socket.
12560
12561 2003-02-19  Havoc Pennington  <hp@pobox.com>
12562
12563         Throughout: mop up all the Doxygen warnings and undocumented
12564         stuff.
12565
12566         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12567         to search any paths.
12568
12569         * dbus/dbus-threads.c: move global mutex initializers to
12570         dbus-internals.h, multiple prototypes was confusing doxygen
12571         besides being kind of ugly
12572
12573         * Doxyfile (PREDEFINED): have Doxygen define
12574         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12575         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12576         (do not abuse the feature! it's for stuff like the autogenerated
12577         macros in dbus-md5.c, not just for things you don't feel like
12578         documenting...)
12579
12580 2003-02-18  Havoc Pennington  <hp@pobox.com>
12581
12582         * dbus/dbus-string.c (_dbus_string_zero): new function
12583
12584         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12585         wrap it in some dbus-friendly API
12586
12587         * dbus/dbus-types.h: add 16-bit types
12588
12589 2003-02-18  Joe Shaw  <joe@assbarn.com>
12590
12591         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12592         credentials from our currently running process.
12593         (get_word): Fix a buglet where we were copying the entire length
12594         instead of relative to our position.
12595
12596         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12597         keys on the stack... it's 640k of data.
12598
12599         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12600         read the credentials byte off the socket, even if we don't have
12601         SO_PEERCRED.
12602         (_dbus_poll): Implement poll() using select() for systems which
12603         don't have it.
12604
12605         * glib/test-dbus-glib.c (main): Print out an error if no
12606         parameters are given.
12607
12608         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12609         can fallback to a secondary auth mechanism if the first fails.
12610
12611 2003-02-18  Havoc Pennington  <hp@pobox.com>
12612
12613         * AUTHORS: add Alex
12614
12615 2003-02-17  Havoc Pennington  <hp@pobox.com>
12616
12617         * doc/dbus-specification.sgml: lots of cosmetic
12618         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12619         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12620         s/server/bus/ (except in authentication section). Add a section
12621         "Message Bus Message Routing"
12622
12623 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12624
12625         Release 0.4
12626
12627         * NEWS: Update
12628
12629 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12630
12631         * doc/dbus-specification.sgml:
12632         Specification updates.
12633
12634 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12635
12636         * bus/activation.c: (bus_activation_init), (child_setup),
12637         (bus_activation_activate_service):
12638         * bus/activation.h:
12639         * bus/main.c: (main):
12640         Set DBUS_ADDRESS environment variable.
12641
12642         * dbus/dbus-errors.c: (dbus_set_error):
12643         Don't use va_copy since that's a C99 feature.
12644
12645         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12646         (_dbus_spawn_async):
12647         * dbus/dbus-sysdeps.h:
12648         Add child_setup_func to _dbus_spawn_async.
12649
12650         * doc/dbus-specification.sgml:
12651         Update specification.
12652
12653         * test/spawn-test.c: (setup_func), (main):
12654         Fix test.
12655
12656 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12657
12658         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12659         Added todo.
12660
12661 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12662
12663         * doc/.cvsignore:
12664         * doc/Makefile.am:
12665         * doc/dbus-test-plan.sgml:
12666         Add test plan document.
12667
12668         * test/Makefile.am:
12669         Fix distcheck.
12670
12671 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12672
12673         * dbus/dbus-message.c: (decode_header_data),
12674         (_dbus_message_loader_return_buffer):
12675         Set the header padding amount when loading a message.
12676
12677 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12678
12679         * bus/dispatch.c: (send_one_message):
12680         Only send broadcast messages to registered connections.
12681
12682         * dbus/dbus-message.c: (dbus_message_name_is):
12683         * dbus/dbus-message.h:
12684         New convenience function.
12685
12686         * dbus/dbus-transport-debug.c: (do_reading):
12687         Only dispatch one message per run.
12688
12689         * test/Makefile.am:
12690         * test/bus-test.c: (new_connection_callback), (die),
12691         (test_hello_client1_handler), (test_hello_client2_handler),
12692         (test_hello_replies), (main):
12693
12694         * test/bus-test-loop.[ch]:
12695         Add these.
12696
12697 2003-02-16  Havoc Pennington  <hp@pobox.com>
12698
12699         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12700         backward conditional
12701
12702 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12703
12704         * dbus/dbus-connection.c:
12705         Implement sent_message_with_reply. (with_reply_and block is still
12706         busted).
12707         Made dispatch_message not lose message if OOM.
12708
12709         * dbus/dbus-errors.h:
12710         Add NoReply error (for reply timeouts).
12711
12712 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12713
12714         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12715         Actually free keys and values when destroying hashtable.
12716
12717 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12718
12719         * dbus/dbus-auth.c: (client_try_next_mechanism):
12720         Plug a leak.
12721
12722         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12723         Return TRUE if there's no thread implementation around.
12724
12725         * glib/dbus-gmain.c: (free_source),
12726         (dbus_connection_hookup_with_g_main):
12727         Make sure to remove the GSource when the connection is finalized.
12728
12729 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12730
12731         * bus/dispatch.c: (bus_dispatch_message_handler):
12732         * dbus/dbus-errors.h:
12733         Return an error if someone tries to send a message to a service
12734         that doesn't exist.
12735
12736 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12737
12738         * bus/activation.c: (load_directory), (bus_activation_init),
12739         (bus_activation_activate_service):
12740         * bus/activation.h:
12741         * bus/driver.c:
12742         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12743         More work on the activation handling.
12744
12745         * dbus/dbus-errors.h:
12746         Add some error messages
12747
12748         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12749         * dbus/dbus-message.h:
12750         New function that creates an error message.
12751
12752         * dbus/dbus-protocol.h:
12753         Add ACTIVATE_SERVER message.
12754
12755         * dbus/dbus-server-unix.c: (unix_handle_watch),
12756         (_dbus_server_new_for_domain_socket):
12757         Call _dbus_fd_set_close_on_exec.
12758
12759         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12760         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12761         (_dbus_fd_set_close_on_exec):
12762         * dbus/dbus-sysdeps.h:
12763         Add _dbus_fd_set_close_on exec function. Also add function that checks
12764         that all open fds are set to close-on-exec and warns otherwise.
12765
12766         * dbus/dbus-transport-unix.c:
12767         (_dbus_transport_new_for_domain_socket):
12768         Call _dbus_fd_set_close_on_exec.
12769
12770 2003-02-16  Havoc Pennington  <hp@pobox.com>
12771
12772         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12773         allow people to avoid setting SIGPIPE to SIG_IGN
12774         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12775         we've been asked not to
12776
12777 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12778
12779         * dbus/dbus-list.c: (_dbus_list_append_link),
12780         (_dbus_list_prepend_link):
12781         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12782         (dbus_realloc):
12783         Warning fixes.
12784
12785 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12786
12787         * bus/Makefile.am:
12788         * bus/activation.c: (bus_activation_entry_free),
12789         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12790         * bus/activation.h:
12791         * bus/main.c: (main):
12792         Add simple activation support, doesn't work yet though.
12793
12794 2003-02-15   Zack Rusin  <zack@kde.org>
12795
12796         * qt/dbus-qthread.cpp:  small casting fix
12797
12798 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12799
12800         * dbus/dbus-errors.c: (dbus_set_error):
12801         * dbus/dbus-errors.h:
12802         Add a few errors and make dbus_set_error void.
12803
12804         * dbus/dbus-sysdeps.c:
12805         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12806         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12807         * dbus/dbus-sysdeps.h:
12808         Add _dbus_spawn_async.
12809
12810         * test/spawn-test.c: (main):
12811         Test for _dbus_spawn_async.
12812
12813 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12814
12815         * dbus/dbus-internals.h:
12816         Fix build without tests.
12817
12818         * dbus/dbus-list.c: (alloc_link):
12819         Fix a segfault when a malloc fails.
12820
12821         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12822         (dbus_malloc0), (dbus_realloc):
12823         Add support for malloc debugging.
12824
12825 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12826
12827         * dbus/dbus-threads.c:
12828         * dbus/dbus-threads.h:
12829         Add condvars. Remove static mutext from API.
12830         Implement static mutexes by initializing them from threads_init.
12831
12832         * glib/dbus-gthread.c:
12833         * qt/dbus-qthread.cpp:
12834         Update with the thread api changes.
12835
12836
12837         * dbus/dbus-list.c:
12838         * dbus/dbus-list.h:
12839         Turn StaticMutex into normal mutex + init function.
12840         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12841         _dbus_list_append_link, _dbus_list_prepend_link
12842
12843
12844         * dbus/dbus-sysdeps.c:
12845         * dbus/dbus-sysdeps.h:
12846         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12847         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12848
12849         * dbus/dbus-protocol.h:
12850         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12851
12852         * dbus/dbus-message.c:
12853         Make ref/unref atomic.
12854         Fix some docs.
12855
12856         * dbus/dbus-connection-internal.h:
12857         * dbus/dbus-connection.c:
12858         * dbus/dbus-connection.h:
12859         Make threadsafe.
12860         Change _peek to _borrow,_return & _steal_borrowed.
12861         Change disconnect callback to event.
12862         Make dbus_connection_dispatch_messages reentrant.
12863
12864         * dbus/dbus-transport.c:
12865         Don't ref the connection on calls to the transport
12866         implementation.
12867
12868         * dbus/dbus-message-handler.c:
12869         Make threadsafe.
12870
12871         * glib/dbus-gmain.c:
12872         Don't use peek_message anymore
12873
12874         * test/Makefile.am:
12875         * test/debug-thread.c:
12876         * test/debug-thread.h:
12877         Simple thread implementation that asserts() on deadlocks in
12878         single-threaded code.
12879
12880         * test/bus-test.c:
12881         (main) Call debug_threads_init.
12882
12883         * test/watch.c:
12884         Use disconnect message instead of disconnect callback.
12885
12886         * bus/connection.c:
12887         * bus/connection.h:
12888         Don't call dbus_connection_set_disconnect_function. Instead export
12889         bus_connection_disconnect.
12890
12891         * bus/dispatch.c:
12892         Call bus_connection_disconnect when we get a disconnected message.
12893
12894 2003-02-15  Havoc Pennington  <hp@pobox.com>
12895
12896         * dbus/dbus-message.c (dbus_message_new): fool around with the
12897         docs
12898
12899 2003-02-14  Havoc Pennington  <hp@pobox.com>
12900
12901         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12902
12903         * dbus/dbus-memory.c: fail if the debug functions indicate we
12904         should
12905
12906         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12907         (_dbus_decrement_fail_alloc_counter): debug functions to
12908         simulate memory allocation failures
12909
12910 2003-02-14  Havoc Pennington  <hp@pobox.com>
12911
12912         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12913         to DBusError
12914
12915 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12916
12917         * bus/driver.c: (bus_driver_handle_hello):
12918         * bus/driver.h:
12919         * bus/services.c: (bus_service_lookup):
12920         Reorder message sending so we get a more sane order.
12921
12922         * test/bus-test.c: (message_handler):
12923         Fix tyop.
12924
12925 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12926
12927         * bus/driver.c: (bus_driver_send_service_deleted),
12928         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12929         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12930         (bus_driver_send_welcome_message),
12931         (bus_driver_handle_list_services),
12932         (bus_driver_handle_acquire_service),
12933         (bus_driver_handle_service_exists):
12934         * dbus/dbus-bus.c: (dbus_bus_register_client),
12935         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12936         * dbus/dbus-errors.c: (dbus_result_to_string):
12937         * dbus/dbus-errors.h:
12938         * dbus/dbus-message.c: (dbus_message_append_args),
12939         (dbus_message_append_args_valist), (dbus_message_get_args),
12940         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12941         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12942         (dbus_message_iter_get_byte_array),
12943         (dbus_message_iter_get_string_array), (message_iter_test),
12944         (check_message_handling), (_dbus_message_test):
12945         * dbus/dbus-message.h:
12946         * test/bus-test.c: (main):
12947         Change fields to arguments in messages, so that they won't be
12948         confused with header fields.
12949
12950         * glib/test-dbus-glib.c: (main):
12951         Remove append_fields from hello message.
12952
12953 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12954
12955         * dbus/dbus-errors.c:
12956         * dbus/dbus-message.c:
12957         * dbus/dbus-string.c:
12958         Documentation fixes.
12959
12960 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12961
12962         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12963         (remove_timeout):
12964         Implement support for timeouts in dbus-glib.
12965
12966 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12967
12968         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12969         * dbus/dbus-message.c: (process_test_subdir):
12970         * test/break-loader.c: (find_breaks_based_on):
12971         Plug some memory leaks.
12972
12973 2003-02-13  Richard Hult  <rhult@codefactory.se>
12974
12975         * bus/main.c: Fix build.
12976
12977         * dbus/dbus-errors.h:
12978         * dbus/dbus-errors.c: Fix copyright for Anders.
12979
12980 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12981
12982         * bus/Makefile.am:
12983         Add utils.[ch]
12984
12985         * bus/connection.c: (bus_connection_foreach):
12986         Fix a warning.
12987
12988         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12989         (unescape_string), (new_section), (parse_section_start),
12990         (parse_key_value), (report_error), (bus_desktop_file_load),
12991         (bus_desktop_file_get_string):
12992         * bus/desktop-file.h:
12993         Use DBusError for error reporting.
12994
12995         * bus/dispatch.c: (send_one_message),
12996         (bus_dispatch_message_handler):
12997         * bus/driver.c: (bus_driver_send_service_deleted),
12998         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12999         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13000         (bus_driver_send_welcome_message),
13001         (bus_driver_handle_list_services),
13002         (bus_driver_handle_acquire_service),
13003         (bus_driver_handle_service_exists):
13004         * bus/loop.c: (bus_loop_run):
13005         * bus/main.c:
13006         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13007
13008         * bus/utils.c: (bus_wait_for_memory):
13009         * bus/utils.h:
13010         New files with general utility functions.
13011
13012         * dbus/dbus-internals.h:
13013         Remove _DBUS_HANDLE_OOM.
13014
13015 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13016
13017         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13018         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13019         * dbus/dbus-errors.h:
13020         Add DBusError structure.
13021
13022 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13023
13024         * test/data/valid-messages/standard-acquire-service.message:
13025         * test/data/valid-messages/standard-hello.message:
13026         * test/data/valid-messages/standard-list-services.message:
13027         * test/data/valid-messages/standard-service-exists.message:
13028         Add some standard messages.
13029
13030 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13031
13032         * bus/driver.c: (bus_driver_send_welcome_message),
13033         (bus_driver_handle_list_services),
13034         (bus_driver_handle_acquire_service),
13035         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13036         Update for API changes in libdbus.
13037
13038         * dbus/dbus-message.c: (dbus_message_new_reply):
13039         * dbus/dbus-message.h:
13040         Remove the name argument. The spec states that replies shouldn't
13041         have a name.
13042
13043 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13044
13045         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13046         (report_error), (bus_desktop_file_load), (lookup_section),
13047         (lookup_line), (bus_desktop_file_get_raw),
13048         (bus_desktop_file_get_string):
13049         * bus/desktop-file.h:
13050         Some fixes, and new functions for getting a key value from a section.
13051
13052 2003-02-13  Havoc Pennington  <hp@pobox.com>
13053
13054         * test/data/auth/fail-after-n-attempts.auth-script: new test
13055
13056         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13057         reject the client.
13058
13059 2003-02-13  Havoc Pennington  <hp@pobox.com>
13060
13061         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13062         dbus_credentials_match were backward
13063
13064         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13065         NO_CREDENTIALS and ROOT_CREDENTIALS
13066
13067         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13068         into here. Never process more commands after we've reached an
13069         end state; store further data as unused bytes.
13070
13071         * test/data/auth/*: add more auth tests
13072
13073         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13074         command to match exact string and EXPECT_UNUSED to match unused
13075         bytes
13076
13077         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13078
13079 2003-02-12  Havoc Pennington  <hp@pobox.com>
13080
13081         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13082         \r off of popped lines
13083
13084         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13085         scripts
13086
13087         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13088         SEND, append \r\n
13089
13090 2003-02-12  Havoc Pennington  <hp@pobox.com>
13091
13092         * dbus/Makefile.am: remove break-loader from the build, since it
13093         moved.
13094
13095         * configure.in: add --enable-gcov to turn on coverage profiling
13096         flags and disable optimization
13097
13098 2003-02-10  Havoc Pennington  <hp@pobox.com>
13099
13100         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13101         initial cut at test framework for DBusAuth from laptop.
13102         Doesn't quite work yet but it compiles and I need to get
13103         it off the 266mhz laptop. ;-)
13104
13105         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13106         fix a memleak in error case
13107
13108 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13109
13110         * bus/Makefile.am:
13111         * bus/desktop-file.c:
13112         * bus/desktop-file.h:
13113         Add a desktop file parser.
13114
13115 2003-02-11  Zack Rusin  <zack@kde.org>
13116
13117         * qt/message.[h|cpp]: sample implementation
13118         of the KDE wrapper for DBusMessage
13119
13120 2003-02-09  Zack Rusin  <zack@kde.org>
13121
13122         * test/bus-test.c: make_it_compile
13123         * doc/dbus-specification.sgml: minimal semantic fix
13124
13125 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13126
13127         Release 0.3
13128
13129         * NEWS: Update
13130
13131 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13132
13133         * dbus/Makefile.am:
13134         * dbus/dbus-break-loader.c:
13135         * test/Makefile.am:
13136         * test/break-loader.c:
13137         Move dbus-break-loader to test/ and rename it to break-loader.
13138
13139 2003-02-02  Havoc Pennington  <hp@pobox.com>
13140
13141         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13142         for code to manage cookies in your home directory
13143
13144         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13145
13146         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13147         to authenticate, then disconnect the client.
13148
13149 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13150
13151         * dbus/dbus-message.c (dbus_message_append_fields):
13152         Correct docs.
13153
13154 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13155
13156         * doc/dbus-specification.sgml:
13157         Update address format section.
13158
13159 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13160
13161         * test/Makefile.am:
13162         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13163         (message_handler), (new_connection_callback), (loop_quit),
13164         (loop_run), (main):
13165         Add bus test.
13166
13167 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13168
13169         * bus/driver.c: (bus_driver_handle_service_exists):
13170         Simplify the code a bit.
13171
13172         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13173         Fix a silly.
13174
13175 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13176
13177         * bus/Makefile.am:
13178         Add libdbus-daemon.la and link to it.
13179
13180 2003-02-01  James Willcox  <jwillcox@gnome.org>
13181
13182         * bus/driver.c: (bus_driver_handle_own_service):
13183         Actually include the service reply code in the message.
13184
13185 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13186
13187         * bus/driver.c: (bus_driver_handle_service_exists):
13188         Don't unref the incoming message.
13189
13190 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13191
13192         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13193
13194 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13195
13196         * dbus/dbus-server.c: (dbus_server_listen):
13197         * dbus/dbus-transport.c: (_dbus_transport_open):
13198         ifdef out the calls to the debug transport and server.
13199
13200 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13201
13202         * dbus/dbus-watch.c (dbus_watch_get_flags):
13203         Add note in the docs that ERROR or HANGUP won't be returned
13204         and are assumed always on.
13205
13206         * glib/dbus-gmain.c (add_watch):
13207         Always add IO_ERR | IO_HUP
13208
13209         * dbus/dbus-message.h:
13210         Add semicolon after dbus_message_iter_get_string_array().
13211         Makes qt code build again
13212
13213 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13214
13215         * bus/driver.c: (create_unique_client_name),
13216         (bus_driver_handle_hello):
13217         Don't take a name, just use a numeric id to identify
13218         each client.
13219
13220         * dbus/Makefile.am:
13221         * dbus/dbus-bus.c: (dbus_bus_register_client),
13222         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13223         * dbus/dbus-bus.h:
13224         Add new convenience functions for communicating with the bus.
13225
13226         * dbus/dbus-message.h:
13227
13228         * dbus/dbus-protocol.h:
13229         Fix a typo.
13230
13231 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13232
13233         * dbus/dbus-message.c (dbus_message_append_fields):
13234         Add some more doc comments.
13235
13236 2003-02-01  Havoc Pennington  <hp@pobox.com>
13237
13238         * dbus/dbus-break-loader.c (randomly_modify_length): change
13239         a 4-byte value in the message as if it were a length
13240
13241         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13242         execute bit on saved files
13243
13244 2003-02-01  Havoc Pennington  <hp@pobox.com>
13245
13246         * dbus/dbus-break-loader.c (main): new program to find messages
13247         that break the loader.
13248
13249         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13250         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13251
13252         * dbus/dbus-string.c (_dbus_string_set_byte): new
13253
13254 2003-01-31  Havoc Pennington  <hp@pobox.com>
13255
13256         * dbus/dbus-message.c: refactor the test code to be more general,
13257         in preparation for writing a "randomly permute test cases to
13258         try to break the loader" program.
13259
13260 2003-01-31  Havoc Pennington  <hp@pobox.com>
13261
13262         * doc/dbus-specification.sgml: work on the specification
13263
13264         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13265         the protocol version of the message.
13266
13267         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13268         no longer specifies that.
13269         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13270         1/2/3/4)
13271
13272         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13273         "break" for DBUS_TYPE_NIL, remove @todo
13274
13275 2003-01-31  Havoc Pennington  <hp@pobox.com>
13276
13277         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13278         just set_is_error/get_is_error as this is a commonly-used
13279         function, and write docs.
13280
13281 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13282
13283         * dbus/dbus-address.c: (dbus_address_entry_free):
13284         Free key and value lists.
13285
13286         * dbus/dbus-internals.c: (_dbus_type_to_string):
13287         Add the types we didn't have.
13288
13289         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13290         (_dbus_marshal_validate_arg):
13291         Add NIL types.
13292
13293         * dbus/dbus-message.c: (dbus_message_set_sender):
13294         Remove todo about being able to set sender to NULL.
13295
13296         (dbus_message_set_is_error_reply),
13297         (dbus_message_get_is_error_reply):
13298         * dbus/dbus-message.h:
13299         New functions.
13300
13301         * dbus/dbus-protocol.h:
13302         Add error reply flag.
13303
13304         * test/data/valid-messages/opposite-endian.message:
13305         Add NIL type to test.
13306
13307 2003-01-31  Havoc Pennington  <hp@pobox.com>
13308
13309         * doc/dbus-specification.sgml: fully specify the header.  Add
13310         flags and major protocol version, and change header/body len to
13311         unsigned.
13312
13313         * dbus/dbus-message-builder.c (append_saved_length): append length
13314         as uint32
13315
13316         * dbus/dbus-message.c (dbus_message_create_header): change header
13317         length and body length to unsigned. Add the new fields from the
13318         spec
13319         (_dbus_message_loader_return_buffer): unsigned header/body len
13320
13321 2003-01-30  Havoc Pennington  <hp@pobox.com>
13322
13323         * dbus/dbus-auth.c: rework to use only REJECTED, no
13324         MECHANISMS
13325
13326         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13327         use REJECTED, suggested by Mark McLoughlin
13328
13329 2003-01-30  Havoc Pennington  <hp@pobox.com>
13330
13331         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13332         a better way to report errors here. e.g.  "unix address lacks
13333         path" or something. also "no such file" when the path doesn't
13334         exist, etc.
13335
13336         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13337         leaking list nodes
13338         (dbus_parse_address): add @todo about documenting address format,
13339         and allowing , and ; to be escaped
13340
13341 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13342
13343         * dbus/Makefile.am:
13344         Add dbus-address.[ch]
13345
13346         * dbus/dbus-address.c: (dbus_address_entry_free),
13347         (dbus_address_entries_free), (create_entry),
13348         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13349         (dbus_parse_address), (_dbus_address_test):
13350         * dbus/dbus-address.h:
13351         New files for dealing with address parsing.
13352
13353         * dbus/dbus-connection.c:
13354         Document timeout functions.
13355
13356         * dbus/dbus-message.c:
13357         Document dbus_message_new_from_message.
13358
13359         * dbus/dbus-server-debug.c:
13360         Document.
13361
13362         * dbus/dbus-server.c: (dbus_server_listen):
13363         Parse address and use correct server implementation.
13364
13365         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13366         * dbus/dbus-string.h:
13367         New function with test.
13368
13369         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13370         * dbus/dbus-test.h:
13371         Add address tests.
13372
13373         * dbus/dbus-transport-debug.c:
13374         Document.
13375
13376         * dbus/dbus-transport.c: (_dbus_transport_open):
13377         Parse address and use correct transport implementation.
13378
13379 2003-01-30  Havoc Pennington  <hp@pobox.com>
13380
13381         * dbus/dbus-message.c: use message->byte_order instead of
13382         DBUS_COMPILER_BYTE_ORDER throughout.
13383         (dbus_message_create_header): pad header to align the
13384         start of the body of the message to 8-byte boundary
13385
13386         * dbus/dbus-marshal.h: make all the demarshalers take const
13387         DBusString arguments.
13388
13389         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13390         validate message args here, so we don't have to do slow validation
13391         later, and so we catch bad messages as they are incoming. Also add
13392         better checks on header_len and body_len. Also fill in
13393         message->byte_order
13394
13395         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13396         implemented properly)
13397         (_dbus_string_validate_nul): new function to check all-nul
13398
13399         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13400         get_arg_end_pos and remove all validation
13401         (_dbus_marshal_validate_arg): actually do validation here.
13402
13403 2003-01-29  Havoc Pennington  <hp@pobox.com>
13404
13405         * dbus/dbus-message.c (check_message_handling): fix assertion
13406         failure on set_client_serial
13407
13408 2003-01-28  Havoc Pennington  <hp@pobox.com>
13409
13410         * dbus/dbus-server-debug.c: Add doc section comments
13411
13412         * dbus/dbus-transport-debug.c: add doc section comments
13413
13414 2003-01-28  Havoc Pennington  <hp@redhat.com>
13415
13416         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13417         the reverse order from how I had it
13418         (_dbus_string_base64_encode): reverse encoding order. I was
13419         basically byteswapping everything during encoding.
13420
13421 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13422
13423         * dbus/dbus-connection-internal.h:
13424         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13425         (_dbus_connection_remove_timeout):
13426         Add functions for adding and removing timeouts.
13427
13428         * dbus/dbus-message.c: (dbus_message_new_from_message):
13429         Add new function that takes a message and creates an exact
13430         copy of it, but with the refcount set to 1.
13431         (check_message_handling):
13432         Fix build error.
13433
13434         * dbus/dbus-server-protected.h:
13435         * dbus/dbus-server.c: (_dbus_server_init_base),
13436         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13437         (dbus_server_set_timeout_functions):
13438         (_dbus_server_remove_timeout):
13439         New functions so that a server can add and remove timeouts.
13440
13441         (dbus_server_listen):
13442         Add commented out call to dbus_server_debug_new.
13443
13444         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13445         Actually set the handler, doh.
13446
13447         * dbus/dbus-transport.c: (_dbus_transport_open):
13448         Add commented out call to dbus_transport_debug_client_new.
13449
13450         * dbus/Makefile.am:
13451         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13452
13453 2003-01-28  Havoc Pennington  <hp@pobox.com>
13454
13455         * dbus/dbus-message.c (check_message_handling): function to check
13456         on the loaded message, iterates over it etc.
13457
13458 2003-01-28  Havoc Pennington  <hp@pobox.com>
13459
13460         * test/Makefile.am (dist-hook): fix make distdir
13461
13462         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13463
13464 2003-01-27  Havoc Pennington  <hp@pobox.com>
13465
13466         * dbus/dbus-mempool.c (time_for_size): replace printf with
13467         _dbus_verbose
13468
13469         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13470         empty lines; fix the SAVE_LENGTH stuff to be
13471         START_LENGTH/END_LENGTH so it actually works; couple other
13472         bugfixes
13473
13474         * test/Makefile.am (dist-hook): add dist-hook for .message files
13475
13476         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13477         can be constant or locked.
13478         (_dbus_string_free): allow freeing a const string as
13479         documented/intended
13480
13481         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13482
13483         * dbus/dbus-test-main.c (main): take an argument which is the
13484         directory containing test data
13485
13486         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13487         argument to this and load all the messages in test/data/
13488         checking that they can be loaded or not loaded as appropriate.
13489
13490 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13491
13492         * bus/dispatch.c: (bus_dispatch_message_handler):
13493         Dispatch messages sent to services.
13494
13495         * bus/driver.c: (bus_driver_send_service_deleted),
13496         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13497         (bus_driver_send_service_acquired):
13498         Add helper functions for sending service related messages.
13499
13500         (bus_driver_send_welcome_message):
13501         Send HELLO_REPLY instead of WELCOME.
13502
13503         (bus_driver_handle_list_services):
13504         Send LIST_SERVICES_REPLY instead of SERVICES.
13505
13506         (bus_driver_handle_own_service),
13507         (bus_driver_handle_service_exists):
13508         New message handlers.
13509
13510         (bus_driver_handle_message):
13511         Invoke new message handlers.
13512
13513         (bus_driver_remove_connection):
13514         Don't remove any services here since that's done automatically
13515         by bus_service_remove_owner now.
13516
13517         * bus/driver.h:
13518         New function signatures.
13519
13520         * bus/services.c: (bus_service_add_owner):
13521         Send ServiceAcquired message if we're the only primary owner.
13522
13523         (bus_service_remove_owner):
13524         Send ServiceAcquired/ServiceLost messages.
13525
13526         (bus_service_set_prohibit_replacement),
13527         (bus_service_get_prohibit_replacement):
13528         Functions for setting prohibit replacement.
13529
13530         (bus_service_has_owner):
13531         New function that checks if a connection is in the owner queue of
13532         a certain service.
13533
13534         * bus/services.h:
13535         Add new function signatures.
13536
13537         * dbus/dbus-list.c: (_dbus_list_test):
13538         Add tests for _dbus_list_remove_last and traversing the list backwards.
13539
13540         * dbus/dbus-list.h:
13541         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13542         go any further, so return NULL then.
13543
13544         * dbus/dbus-protocol.h:
13545         Add new messages, service flags and service replies.
13546
13547 2003-01-26  Havoc Pennington  <hp@pobox.com>
13548
13549         * dbus/dbus-message-builder.c: implement, completely untested.
13550
13551         * test/data/*: add data to be used in testing.
13552         ".message" files are our simple loadable text format.
13553         ".message-raw" will be binary dumps of messages.
13554
13555         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13556
13557 2003-01-26  Havoc Pennington  <hp@pobox.com>
13558
13559         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13560
13561         * dbus/dbus-errors.c (dbus_result_to_string): add
13562         file errors
13563
13564         * dbus/dbus-message-builder.c: new file, will contain code to load
13565         up messages from files. Not implemented yet.
13566
13567 2003-01-26  Havoc Pennington  <hp@pobox.com>
13568
13569         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13570         the sender by setting to NULL
13571
13572 2003-01-26  Havoc Pennington  <hp@pobox.com>
13573
13574         The unit tests pass, but otherwise untested.  If it breaks, the
13575         tests should have been better. ;-)
13576
13577         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13578         the connection.
13579
13580         * dbus/dbus-message.c: redo everything so we maintain
13581         message->header as the only copy of the various fields.
13582         This avoids the possibility of out-of-memory in some cases,
13583         for example dbus_message_lock() can't run out of memory anymore,
13584         and avoids extra copying. Figured I may as well go ahead and do
13585         this since it was busted for dbus_message_lock to not return
13586         failure on OOM, and dbus_message_write_header was totally
13587         unchecked for OOM. Also fixed some random other bugs.
13588
13589         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13590         that strings are nul-terminated. Also, end_pos can be equal
13591         to string length just not greater than, I think.
13592         (_dbus_marshal_set_int32): new function
13593         (_dbus_marshal_set_uint32): new function
13594         (_dbus_marshal_set_string): new function
13595
13596         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13597         a warning, init timeout_list to NULL
13598         (dbus_connection_send_message): don't use uninitialized variable
13599         "serial"
13600
13601         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13602
13603 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13604
13605         * bus/driver.c: (bus_driver_handle_hello),
13606         (bus_driver_send_welcome_message):
13607         Plug leaks
13608
13609 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13610
13611         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13612         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13613         (dbus_connection_unref):
13614         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13615         * dbus/dbus-message.c: (dbus_message_unref),
13616         Plug memory leaks.
13617
13618         (dbus_message_get_fields):
13619         Remove debugging printout.
13620
13621         (_dbus_message_loader_return_buffer):
13622         Don't store the header string.
13623
13624         (_dbus_message_test):
13625         Plug leaks.
13626
13627 2003-01-26  Richard Hult  <rhult@codefactory.se>
13628
13629         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13630         the file descriptor list, since it can change under us.
13631
13632 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13633
13634         * glib/dbus-gmain.c: (dbus_connection_prepare),
13635         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13636         (remove_watch), (dbus_connection_hookup_with_g_main):
13637         Rewrite the glib handling to use its own GSource instead of a
13638         GIOChannel so we can catch messages put in the queue while waiting
13639         for a reply.
13640
13641 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13642
13643         * bus/Makefile.am:
13644         * bus/connection.c: (connection_disconnect_handler),
13645         (connection_watch_callback), (bus_connection_setup):
13646         * bus/dispatch.c: (send_one_message),
13647         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13648         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13649         * bus/dispatch.h:
13650         * bus/driver.c: (bus_driver_send_service_deleted),
13651         (bus_driver_send_service_created), (bus_driver_handle_hello),
13652         (bus_driver_send_welcome_message),
13653         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13654         (bus_driver_handle_message):
13655         * bus/driver.h:
13656         Refactor code, put the message dispatching in its own file. Use
13657         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13658         is disconnected.
13659
13660 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13661
13662         * dbus/dbus-internals.h:
13663         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13664
13665         * dbus/dbus-message.c: (dbus_message_get_sender):
13666         * dbus/dbus-message.h:
13667         Implement dbus_message_get_sender.
13668
13669         * dbus/dbus-protocol.h:
13670         Add message and service defines.
13671
13672 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13673
13674         * dbus/dbus-connection.c: (dbus_connection_send_message):
13675         * dbus/dbus-message-internal.h:
13676         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13677         (dbus_message_write_header):
13678         Remove _dbus_messag_unlock and don't set the client serial on a
13679         message if one already exists.
13680
13681 2003-01-24  Havoc Pennington  <hp@pobox.com>
13682
13683         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13684         list_pool
13685
13686         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13687         on OOM
13688
13689 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13690
13691         * dbus/dbus-list.c: (alloc_link), (free_link):
13692         Use a memory pool for the links.
13693
13694 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13695
13696         * bus/connection.c: (bus_connection_foreach):
13697         * bus/connection.h:
13698         Add new bus_connection_foreach function.
13699
13700         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13701         Add function that broadcasts a message to all clients.
13702
13703         (bus_driver_send_service_created), (bus_driver_handle_hello),
13704         (bus_driver_send_welcome_message),
13705         (bus_driver_handle_list_services), (bus_driver_message_handler):
13706         Implement functions that take care of listing services, and notifying
13707         clients when new services are created.
13708
13709         * bus/services.c: (bus_services_list):
13710         * bus/services.h:
13711         Add new function that returns an array of strings with the currently
13712         registered services.
13713
13714         * glib/dbus-glib.h:
13715         * glib/dbus-gmain.c:
13716         Update copyright year.
13717
13718 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13719
13720         * dbus/dbus-connection.c: (dbus_connection_send_message):
13721         Unlock the message in case it was sent earlier.
13722
13723         (dbus_connection_send_message_with_reply_and_block):
13724         Remove the reply message from the list.
13725
13726         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13727         Set array_len and new_pos correctly.
13728
13729         (_dbus_marshal_test):
13730         Remove debug output.
13731
13732         * dbus/dbus-message-internal.h:
13733         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13734         New function that returns the reply serial.
13735
13736         (_dbus_message_unlock):
13737         New function that unlocks a message and resets its header.
13738
13739         (dbus_message_append_string_array),
13740         (dbus_message_get_fields_valist),
13741         (dbus_message_iter_get_field_type),
13742         (dbus_message_iter_get_string_array),
13743         (dbus_message_get_fields),
13744         (dbus_message_append_fields_valist):
13745         Handle string arrays.
13746
13747         (dbus_message_set_sender):
13748         Make this function public since the bus daemon needs it.
13749
13750         (decode_header_data):
13751         Set the reply serial to -1 initially.
13752
13753         * dbus/dbus-message.h:
13754         Add dbus_message_set_sender.
13755
13756 2003-01-24  Havoc Pennington  <hp@pobox.com>
13757
13758         * doc/dbus-specification.sgml: add some stuff
13759
13760 2003-01-22  Havoc Pennington  <hp@pobox.com>
13761
13762         * doc/dbus-specification.sgml: Start to document the protocol.
13763
13764 2003-01-22  Havoc Pennington  <hp@pobox.com>
13765
13766         * dbus/dbus-connection.c
13767         (dbus_connection_send_message_with_reply_and_block): add some @todo
13768
13769         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13770
13771 2003-01-21  Havoc Pennington  <hp@pobox.com>
13772
13773         (patch untested because can't compile)
13774
13775         * bus/driver.c (create_unique_client_name): make this function
13776         never recycle client names. Also, caller should initialize
13777         the DBusString.
13778
13779         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13780
13781 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13782
13783         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13784         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13785         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13786         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13787         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13788         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13789         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13790         * dbus/dbus-marshal.h:
13791         * dbus/dbus-protocol.h:
13792         Add support for marshalling and demarshalling integer, double
13793         and string arrays.
13794
13795 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13796
13797         * bus/Makefile.am:
13798         Add driver.[ch]
13799
13800         * bus/connection.c: (connection_disconnect_handler):
13801         Remove the connection from the bus driver's list.
13802
13803         (connection_watch_callback): Dispatch messages.
13804
13805         (free_connection_data): Free connection name.
13806
13807         (bus_connection_setup): Add connection to the bus driver's list.
13808         (bus_connection_remove_owned_service):
13809         (bus_connection_set_name), (bus_connection_get_name):
13810         Add functions for setting and getting the connection's name.
13811
13812         * bus/connection.h:
13813         Add function headers.
13814
13815         * bus/driver.c: (create_unique_client_name),
13816         (bus_driver_handle_hello_message),
13817         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13818         (bus_driver_add_connection), (bus_driver_remove_connection):
13819         * bus/driver.h:
13820         * bus/main.c:
13821         * bus/services.c: (bus_service_free):
13822         * bus/services.h:
13823         New file that handles communication and registreation with the bus
13824         itself.
13825
13826 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13827
13828         * dbus/dbus-connection.c: (dbus_connection_send_message):
13829         Add a new client_serial parameter.
13830
13831         (dbus_connection_send_message_with_reply):
13832         Remove a @todo since we've implemented the blocking function.
13833
13834         (dbus_connection_send_message_with_reply_and_block):
13835         New function that sends a message and waits for a reply and
13836         then returns the reply.
13837
13838         * dbus/dbus-connection.h:
13839         Add new functions.
13840
13841         * dbus/dbus-errors.c: (dbus_result_to_string):
13842         * dbus/dbus-errors.h:
13843         Add new DBUS_RESULT.
13844
13845         * dbus/dbus-message-internal.h:
13846         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13847         (_dbus_message_set_sender), (dbus_message_write_header),
13848         (dbus_message_new_reply), (decode_header_data),
13849         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13850         * dbus/dbus-message.h:
13851         Add new functions that set the reply serial and sender.
13852         Also marshal and demarshal them correctly and add test.
13853
13854         * dbus/dbus-protocol.h:
13855         Add new DBUS_MESSAGE_TYPE_SENDER.
13856
13857         * glib/dbus-glib.h:
13858         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13859         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13860         (dbus_connection_hookup_with_g_main):
13861         * glib/test-dbus-glib.c: (main):
13862         Rewrite to use GIOChannel and remove the GSource crack.
13863
13864         * test/echo-client.c: (main):
13865         * test/watch.c: (check_messages):
13866         Update for changed APIs
13867
13868 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13869
13870         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13871
13872         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13873         Create a DBusTimeoutList.
13874         (dbus_connection_set_timeout_functions): Add new function to
13875         set timeout callbacks
13876
13877         * dbus/dbus-connection.h: Add public DBusTimeout API.
13878
13879         * dbus/dbus-message.c: (dbus_message_get_service):
13880         * dbus/dbus-message.h:  New function.
13881
13882         * dbus/dbus-server.c: Fix small doc typo.
13883
13884         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13885
13886 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13887
13888         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13889         of the string, just as long as specified.
13890
13891 2003-01-19  Havoc Pennington  <hp@pobox.com>
13892
13893         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13894         new function
13895
13896         * dbus/dbus-server.c (dbus_server_set_max_connections)
13897         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13898         keep track of current number of connections, and add API for
13899         setting a max (but haven't implemented enforcing the max yet)
13900
13901 2003-01-18  Havoc Pennington  <hp@pobox.com>
13902
13903         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13904         reading/writing if read_watch != NULL or write_watch != NULL.
13905
13906         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13907         the message loader code to actually load message->header and
13908         message->body into the newly-created message.
13909
13910         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13911         in OOM case
13912
13913         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13914         (dbus_connection_get_max_message_size)
13915         (dbus_connection_set_max_live_messages_size)
13916         (dbus_connection_get_max_live_messages_size): implement some
13917         resource limitation functions
13918
13919         * dbus/dbus-resources.c: new file implementing some of the
13920         resource limits stuff
13921
13922         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13923         missing docs, add @todo to handle OOM etc.
13924
13925         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13926         docs
13927
13928 2003-01-18  Havoc Pennington  <hp@pobox.com>
13929
13930         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13931         connection if it hasn't been already.
13932
13933         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13934         replace with DisconnectFunction.
13935
13936 2003-01-18  Havoc Pennington  <hp@pobox.com>
13937
13938         Building --disable-verbose-mode --disable-asserts --disable-tests
13939         cuts the library from 112K to 45K or so
13940
13941         * configure.in: check for varargs macro support,
13942         add --enable-verbose-mode, --enable-asserts.
13943
13944         * dbus/dbus-internals.h (_dbus_assert): support
13945         DBUS_DISABLE_ASSERT
13946         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13947
13948 2003-01-18  Havoc Pennington  <hp@pobox.com>
13949
13950         * dbus/dbus-test.c: include config.h so that tests actually run
13951
13952         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13953         so the failure mode when that assumption fails will be plenty
13954         obvious.
13955
13956 2003-01-18  Havoc Pennington  <hp@pobox.com>
13957
13958         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13959
13960         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13961         the distribution
13962
13963         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13964         since we don't want to use those in make check
13965
13966 2003-01-15  Havoc Pennington  <hp@redhat.com>
13967
13968         Release 0.2
13969
13970         * NEWS: update
13971
13972 2003-01-15  Havoc Pennington  <hp@redhat.com>
13973
13974         * test/Makefile.am: fix so that test source code ends up in the
13975         distribution on make distcheck
13976
13977 2003-01-15  Havoc Pennington  <hp@redhat.com>
13978
13979         Release 0.1.
13980
13981         * NEWS: update
13982
13983 2003-01-15  Havoc Pennington  <hp@redhat.com>
13984
13985         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13986         fix build when --disable-tests
13987
13988         * Makefile.am (EXTRA_DIST): put HACKING in here
13989
13990         * HACKING: document procedure for making a tarball release.
13991
13992 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13993
13994         * bus/connection.c: (connection_error_handler),
13995         (bus_connection_setup):
13996         * bus/main.c: (main):
13997         Make sure that the DBusConnectionData struct is NULLed
13998         out to prevent a segfault.
13999
14000         * dbus/dbus-errors.c: (dbus_result_to_string):
14001         * dbus/dbus-errors.h:
14002         * dbus/dbus-message.c: (dbus_message_get_fields),
14003         (dbus_message_get_fields_valist), (_dbus_message_test):
14004         * dbus/dbus-message.h:
14005         Make dbus_message_get_fields return a result code so we can
14006         track invalid fields as well as oom.
14007
14008 2003-01-11  Havoc Pennington  <hp@pobox.com>
14009
14010         * configure.in: change --enable-test/--enable-ansi action-if-given
14011         to enable_foo=$enableval instead of enable_foo=yes
14012
14013 2003-01-08  Havoc Pennington  <hp@pobox.com>
14014
14015         * dbus/dbus-string.c (_dbus_string_align_length): new function
14016
14017         * dbus/dbus-test-main.c: move main() for test app here
14018         * dbus/dbus-test.c
14019         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14020         symbol to run tests, because dbus-test isn't in the main
14021         library
14022
14023         Code review nitpicks.
14024
14025         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14026         for people with narrow emacs ;-). Assert client_serial was filled
14027         in. Assert message->name != NULL.
14028         (dbus_message_append_fields): have "first_field_type" arg separate
14029         from va list, needed for C++ binding that also uses varargs IIRC
14030         and helps with type safety
14031         (dbus_message_new): add @todo about using DBusString to store
14032         service/name internally
14033         (dbus_message_new): don't leak ->service and ->name on OOM later
14034         in the function
14035         (dbus_message_unref): free the service name
14036         (dbus_message_get_fields): same change to varargs
14037         i.e. first_field_type
14038         (_dbus_message_loader_return_buffer): assert that the message data
14039         is aligned (if not it's a bug in our code). Put in verbose griping
14040         about why we set corrupted = TRUE.
14041         (decode_header_data): add FIXME that char* is evil.  Was going to
14042         add FIXME about evil locale-specific string.h strncmp, but just
14043         switched to wacky string-as-uint32 optimization. Move check for
14044         "no room for field name" above get_const_data_len() to avoid
14045         assertion failure in get_const_data_len if we have trailing 2
14046         bytes or the like. Check for service and name fields being
14047         provided twice. Don't leak service/name on error. Require field
14048         names to be aligned to 4 bytes.
14049
14050         * dbus/dbus-marshal.c: move byte swap stuff to header
14051         (_dbus_pack_int32): uscore-prefix
14052         (_dbus_unpack_int32): uscore-prefix
14053         (_dbus_unpack_uint32): export
14054         (_dbus_demarshal_string): add @todo complaining about use of
14055         memcpy()
14056         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14057         handling allowing corrupt data to go unchecked
14058
14059 2003-01-08  Havoc Pennington  <hp@redhat.com>
14060
14061         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14062         to the select() as needed for authentication. (should be using
14063         _dbus_poll() not select, but for another day)
14064
14065         * dbus/dbus.h: include dbus/dbus-protocol.h
14066
14067 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14068
14069         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14070         dbus-connection.h
14071
14072 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14073
14074         * dbus/dbus-internals.c: (_dbus_type_to_string):
14075         New function that returns a string describing a type.
14076
14077         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14078         * dbus/dbus-marshal.h:
14079         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14080         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14081         (dbus_message_iter_get_byte_array):
14082         * dbus/dbus-message.h:
14083         Add new convenience functions for appending and getting message fields.
14084         Also add demarshalling routines for byte arrays.
14085
14086 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14087
14088         * dbus/dbus-connection-internal.h:
14089         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14090         (_dbus_connection_get_next_client_serial),
14091         (dbus_connection_send_message):
14092         * dbus/dbus-internals.h:
14093         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14094         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14095         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14096         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14097         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14098         (_dbus_verbose_bytes), (_dbus_marshal_test):
14099         * dbus/dbus-marshal.h:
14100         * dbus/dbus-message-internal.h:
14101         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14102         (dbus_message_write_header), (_dbus_message_lock),
14103         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14104         (dbus_message_get_name), (dbus_message_append_int32),
14105         (dbus_message_append_uint32), (dbus_message_append_double),
14106         (dbus_message_append_string), (dbus_message_append_byte_array),
14107         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14108         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14109         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14110         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14111         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14112         (decode_header_data), (_dbus_message_loader_return_buffer),
14113         (message_iter_test), (_dbus_message_test):
14114         * dbus/dbus-message.h:
14115         * dbus/dbus-protocol.h:
14116         * dbus/dbus-test.c: (main):
14117         * dbus/dbus-test.h:
14118         * glib/test-dbus-glib.c: (message_handler), (main):
14119         * test/echo-client.c: (main):
14120         * test/watch.c: (check_messages):
14121         Make messages sendable and receivable for real.
14122
14123 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14124
14125         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14126         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14127         * dbus/dbus-message.c: (dbus_message_append_int32),
14128         (dbus_message_append_uint32), (dbus_message_append_double),
14129         (dbus_message_append_string), (dbus_message_append_byte_array):
14130         Handle OOM restoration.
14131
14132 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14133
14134         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14135         (_dbus_demarshal_string), (_dbus_marshal_test):
14136         * dbus/dbus-marshal.h:
14137         * dbus/dbus-message.c: (dbus_message_get_name),
14138         Document these functions.
14139
14140         (dbus_message_append_int32), (dbus_message_append_uint32),
14141         (dbus_message_append_double), (dbus_message_append_string),
14142         (dbus_message_append_byte_array):
14143         * dbus/dbus-message.h:
14144         Add functions for adding message fields of different types.
14145
14146         * dbus/dbus-protocol.h:
14147         Add the different types.
14148
14149 2003-01-05  Havoc Pennington  <hp@pobox.com>
14150
14151         * bus/connection.c: implement routines for handling connections,
14152         first thing is keeping a list of owned services on each connection
14153         and setting up watches etc.
14154
14155         * bus/services.c: implement a mapping from service names to lists
14156         of connections
14157
14158         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14159
14160         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14161         to use static mutexes for global data
14162
14163         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14164         collection of functions to set/get application-specific data
14165         on the DBusConnection.
14166
14167 2003-01-04  Havoc Pennington  <hp@pobox.com>
14168
14169         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14170         (_dbus_poll): new function
14171
14172         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14173         copied from GLib
14174
14175         * bus/loop.c: initial code for the daemon main loop
14176
14177 2003-01-04  Havoc Pennington  <hp@pobox.com>
14178
14179         * test/watch.c (error_handler): make it safe if the error handler
14180         is called multiple times (if we s/error handler/disconnect
14181         handler/ we should just guarantee it's called only once)
14182
14183         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14184         error handler on disconnect (it's quite possible we should
14185         just change the error handler to a "disconnect handler," I'm
14186         not sure we have any other meaningful errors)
14187
14188         * configure.in: check for getpwnam_r
14189
14190         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14191         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14192         mechanism as in SASL spec, using socket credentials
14193
14194         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14195         (_dbus_send_credentials_unix_socket): new function
14196
14197         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14198         dbus_accept()
14199         (_dbus_write): only check errno if <0 returned
14200         (_dbus_write_two): ditto
14201
14202 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14203
14204         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14205         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14206         (_dbus_marshal_test):
14207         * dbus/dbus-marshal.h:
14208         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14209         to _dbus_marshal_utf8_string. Also fix some tests.
14210
14211 2002-12-28  Harri Porten  <porten@kde.org>
14212
14213         * configure.in: added check for C++ compiler and a very cheesy
14214         check for the Qt integration
14215
14216         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14217
14218         * qt/Makefile.am: added
14219
14220         * qt/.cvsignore: added
14221
14222         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14223         latter, added #ifdef QT_THREAD_SUPPORT guard.
14224
14225         * dbus/Makefile.am: added missing headers for make dist
14226
14227 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14228
14229         * dbus/Makefile.am: fixup export-symbols-regex.
14230
14231 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14232
14233         * acinclude.m4: Add this file and put the
14234         PKG_CHECK_MODULE macro in it.
14235
14236 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14237
14238         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14239         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14240         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14241         (_dbus_marshal_test):
14242         Make the demarshalling routines align the pos argument.
14243         Add string marshalling tests and fix the obvious bugs
14244         discovered.
14245
14246 2002-12-26  Havoc Pennington  <hp@pobox.com>
14247
14248         * dbus/dbus-auth.c: fixes fixes fixes
14249
14250         * dbus/dbus-transport-unix.c: wire up support for
14251         encoding/decoding data on the wire
14252
14253         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14254         (_dbus_auth_decode_data): append to target string
14255         instead of nuking it.
14256
14257 2002-12-26  Havoc Pennington  <hp@pobox.com>
14258
14259         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14260         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14261         doh
14262
14263         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14264         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14265         now). Main point is because I wanted unpack_uint32 to implement
14266         _dbus_verbose_bytes
14267         (_dbus_verbose_bytes): new function
14268
14269         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14270
14271         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14272         mechanism to handle a corrupt message stream
14273         (_dbus_message_loader_new): fix preallocation to only prealloc,
14274         not prelengthen
14275
14276         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14277         (_dbus_string_test): enhance tests for copy/move and fix the
14278         functions
14279
14280         * dbus/dbus-transport-unix.c: Hold references in more places to
14281         avoid reentrancy problems
14282
14283         * dbus/dbus-transport.c: ditto
14284
14285         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14286         leak reference count in no-message case
14287
14288         * test/watch.c (do_mainloop): handle adding/removing watches
14289         during iteration over the watches. Also, ref the connection/server
14290         stored on a watch, so we don't try to mangle a destroyed one.
14291
14292         * dbus/dbus-transport-unix.c (do_authentication): perform
14293         authentication
14294
14295         * dbus/dbus-auth.c (get_state): add a state
14296         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14297         (_dbus_auth_get_unused_bytes): append the unused bytes
14298         to the passed in string, rather than prepend
14299
14300         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14301         the auth conversation DBusAuth
14302
14303         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14304         (_dbus_transport_new_for_domain_socket): when creating a
14305         transport, pass in whether it's a client-side or server-side
14306         transport so we know which DBusAuth to create
14307
14308 2002-12-03  Havoc Pennington  <hp@pobox.com>
14309
14310         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14311         _after_ finalizing the derived members
14312         (unix_connection_set): unref watch if we fail to add it
14313
14314         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14315         transport first, so that the connection owned by the
14316         transport will be valid as the transport finalizes.
14317
14318         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14319         if necessary, and remove watches from the connection.
14320
14321         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14322
14323 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14324
14325         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14326         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14327         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14328         (_dbus_marshal_test):
14329         * dbus/dbus-marshal.h:
14330         Add string marshal functions and have the demarshal functions
14331         return the new position.
14332
14333 2002-12-25  Havoc Pennington  <hp@pobox.com>
14334
14335         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14336         it is a simple protocol that just maps directly to SASL.
14337
14338         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14339         initial implementation, not actually used yet.
14340
14341         * dbus/dbus-string.c (_dbus_string_find): new function
14342         (_dbus_string_equal): new function
14343         (_dbus_string_base64_encode): new function
14344         (_dbus_string_base64_decode): new function
14345
14346 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14347
14348         * dbus/Makefile.am:
14349         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14350         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14351         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14352         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14353         * dbus/dbus-marshal.h:
14354         * dbus/dbus-protocol.h:
14355         * dbus/dbus-test.c: (main):
14356         * dbus/dbus-test.h:
14357         Add un-optimized marshalling/demarshalling routines.
14358
14359 2002-12-25  Harri Porten  <porten@kde.org>
14360
14361         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14362
14363 2002-12-24  Zack Rusin  <zack@kde.org>
14364
14365         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14366         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14367         main loop stuff
14368
14369 2002-12-24  Havoc Pennington  <hp@pobox.com>
14370
14371         * glib/dbus-gthread.c: fix include
14372
14373         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14374         I think glib API needs to change, though, as you don't
14375         want to use DBusMessageFunction, you want to use the
14376         DBusMessageHandler object. Probably
14377         dbus_connection_open_with_g_main_loop()
14378         and dbus_connection_setup_g_main_loop() or something like that
14379         (but think of better names...) that just create a connection
14380         that has watch/timeout functions etc. already set up.
14381
14382         * dbus/dbus-connection.c
14383         (dbus_connection_send_message_with_reply): new function just to
14384         show how the message handler helps us deal with replies.
14385
14386         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14387
14388         * dbus/dbus-string.c (_dbus_string_test): free a string that
14389         wasn't
14390
14391         * dbus/dbus-hash.c: use memory pools for the hash entries
14392         (rebuild_table): be more paranoid about overflow, and
14393         shrink table when we can
14394         (_dbus_hash_test): reduce number of sprintfs and write
14395         valid C89. Add tests for case where we grow and then
14396         shrink the hash table.
14397
14398         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14399
14400         * dbus/dbus-connection.c (dbus_connection_register_handler)
14401         (dbus_connection_unregister_handler): new functions
14402
14403         * dbus/dbus-message.c (dbus_message_get_name): new
14404
14405         * dbus/dbus-list.c: fix docs typo
14406
14407         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14408         an object representing a handler for messages.
14409
14410 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14411
14412         * glib/dbus-glib.h:
14413         * glib/dbus-gthread.c: (dbus_gthread_init):
14414         Don't use the gdbus prefix for public functions.
14415
14416 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14417
14418         * Makefile.am:
14419         * configure.in:
14420         Add GLib checks and fixup .pc files
14421
14422         * glib/Makefile.am:
14423         * glib/dbus-glib.h:
14424         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14425         (gdbus_connection_check), (gdbus_connection_dispatch),
14426         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14427         (dbus_connection_gsource_new):
14428         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14429         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14430         * glib/test-dbus-glib.c: (message_handler), (main):
14431         Add GLib support.
14432
14433 2002-12-15  Harri Porten  <porten@kde.org>
14434
14435         * autogen.sh: check for libtoolize before attempting to use it
14436
14437         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14438         struct.
14439
14440         * .cvsignore: ignore more stamp files
14441
14442         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14443
14444         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14445         without make install.
14446
14447 2002-12-15  Havoc Pennington  <hp@pobox.com>
14448
14449         * dbus/dbus-threads.c: add thread stubs that a higher library
14450         layer can fill in. e.g. the GLib wrapper might fill them in with
14451         GThread stuff. We still need to use this thread API to
14452         thread-safe-ize the library.
14453
14454 2002-12-12  Havoc Pennington  <hp@pobox.com>
14455
14456         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14457         below new interfaces and include fewer system headers.
14458
14459         * dbus/dbus-sysdeps.c (_dbus_read): new function
14460         (_dbus_write): new function
14461         (_dbus_write_two): new function
14462         (_dbus_connect_unix_socket): new function
14463         (_dbus_listen_unix_socket): new function
14464
14465         * dbus/dbus-message-internal.h: change interfaces to use
14466         DBusString
14467
14468 2002-12-11  Havoc Pennington  <hp@pobox.com>
14469
14470         * dbus/dbus-types.h: add dbus_unichar
14471
14472         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14473
14474         * dbus/dbus-connection.c (dbus_connection_send_message): return
14475         TRUE on success
14476
14477         * dbus/dbus-transport.c: include dbus-watch.h
14478
14479         * dbus/dbus-connection.c: include dbus-message-internal.h
14480
14481         * HACKING: add file with coding guidelines stuff.
14482
14483         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14484         handling here, for security purposes (as in vsftpd). Not actually
14485         using this class yet.
14486
14487         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14488         system/libc usage here, as in vsftpd, for ease of auditing (and
14489         should also simplify portability). Haven't actually moved all the
14490         system/libc usage into here yet.
14491
14492 2002-11-25  Havoc Pennington  <hp@pobox.com>
14493
14494         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14495         always print the first verbose message.
14496
14497 2002-11-24  Havoc Pennington  <hp@pobox.com>
14498
14499         * test/echo-client.c, test/echo-server.c: cheesy test
14500         clients.
14501
14502         * configure.in (AC_CHECK_FUNCS): check for writev
14503
14504         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14505         function
14506
14507         * dbus/dbus-list.c (_dbus_list_foreach): new function
14508
14509         * dbus/dbus-internals.c (_dbus_verbose): new function
14510
14511         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14512         representing a server that listens for connections.
14513
14514         * dbus/.cvsignore: create
14515
14516         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14517         public API for reporting errors
14518
14519         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14520         public object representing a connection that
14521         sends/receives messages. (Same object used for
14522         both client and server.)
14523
14524         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14525         Basic abstraction for different kinds of stream
14526         that we might read/write messages from.
14527
14528 2002-11-23  Havoc Pennington  <hp@pobox.com>
14529
14530         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14531         _DBUS_INT_MAX
14532
14533         * dbus/dbus-test.c (main): add list test, and include
14534         dbus-test.h as intended
14535
14536         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14537         (_dbus_hash_table_remove_int): return value indicates
14538         whether the entry existed to remove
14539
14540         * dbus/dbus-list.c: add linked list utility class,
14541         with docs and tests
14542
14543         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14544         array sometimes.
14545
14546 2002-11-23  Havoc Pennington  <hp@pobox.com>
14547
14548         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14549         DBUS_END_DECLS to nothing, that should fix this once and for all
14550
14551         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14552
14553         * dbus/dbus-message.c, dbus/dbus-hash.c:
14554         add some missing @brief
14555
14556 2002-11-23  Havoc Pennington  <hp@pobox.com>
14557
14558         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14559         to avoid confusing Doxygen
14560
14561         * dbus/dbus-hash.c: @} not }@
14562
14563         * dbus/dbus-message.c (struct DBusMessage): split out
14564         internals docs
14565
14566 2002-11-23  Havoc Pennington  <hp@pobox.com>
14567
14568         * configure.in: pile on more warning flags if using gcc
14569
14570         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14571         to document static functions
14572
14573         * configure.in: add summary to end of configure so it
14574         looks nice and attractive
14575
14576         * dbus/dbus-hash.c: finish implementation and write unit
14577         tests and docs
14578
14579         * configure.in: add --enable-tests to enable unit tests
14580
14581         * dbus/dbus-test.c: test program to run unit tests
14582         for all files in dbus/*, initially runs a test for
14583         dbus-hash.c
14584
14585         * dbus/dbus-internals.h: file to hold some internal utility stuff
14586
14587 2002-11-22  Havoc Pennington  <hp@redhat.com>
14588
14589         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14590         "ported" away from Tcl
14591
14592         * dbus/dbus-types.h: header for types such as dbus_bool_t
14593
14594 2002-11-22  Havoc Pennington  <hp@redhat.com>
14595
14596         * dbus/dbus.h: fixups for doc warnings
14597
14598         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14599         macros
14600         (QUIET): make it quiet so we can see warnings
14601
14602         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14603
14604 2002-11-22  Havoc Pennington  <hp@redhat.com>
14605
14606         * Makefile.am: include "Doxyfile" target in all-local
14607
14608         * configure.in: generate the Doxyfile
14609
14610         * Doxyfile.in: move Doxyfile here, so we can use
14611         configure to generate a Doxyfile with the right
14612         version number etc.
14613
14614 2002-11-22  Havoc Pennington  <hp@redhat.com>
14615
14616         * dbus/dbus-message.c: move inline docs into .c file
14617
14618         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14619         so all docs are under doc/
14620         (MAN_EXTENSION): generate man pages. Use extension
14621         ".3dbus" which matches ".3qt" on my system,
14622         I guess this is OK, I don't know really.
14623         (FILE_PATTERNS): look for .c files not .h, makes sense
14624         for plain C I think
14625
14626 2002-11-22  Havoc Pennington  <hp@pobox.com>
14627
14628         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14629         because any app can be a server, and any app can be a client,
14630         the bus is a special kind of server.
14631
14632 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14633
14634         * Doxyfile : adding. Still needs Makefile rules to be generated
14635         automatically (just run "doxygen" in the toplevel dir for now to
14636         generate docs)
14637
14638         * dbus/dbus-message.h : Adding sample docs (javadoc since
14639         resembles gtk-doc a little more)
14640
14641         * dbus/dbus.h : Adding sample docs
14642
14643 2002-11-21  Havoc Pennington  <hp@redhat.com>
14644
14645         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14646         so we can allow ourselves to include files directly,
14647         instead of having to use dbus.h
14648
14649         * dbus/dbus.h: fill in
14650
14651         * dbus/dbus-message.h: sketch out a sample header file.
14652         Include griping if you include it directly instead of
14653         via dbus.h
14654
14655         * dbus/dbus-macros.h: new file with macros for extern "C",
14656         TRUE/FALSE, NULL, etc.
14657
14658         * doc/file-boilerplate.c: put include guards in here
14659
14660 2002-11-21  Havoc Pennington  <hp@redhat.com>
14661
14662         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14663
14664         * COPYING: include the GPL as well, and license code
14665         under both AFL and GPL.
14666
14667 2002-11-21  Havoc Pennington  <hp@redhat.com>
14668
14669         * acconfig.h: get rid of this
14670
14671         * autogen.sh (run_configure): add --no-configure option
14672
14673         * configure.in: remove AC_ARG_PROGRAM to make
14674         autoconf complain less. add AC_PREREQ.
14675         add AC_DEFINE third arg.
14676
14677 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14678
14679         * doc/Makefile.am:
14680         Fix references so we can distcheck.
14681
14682 2002-11-21  Havoc Pennington  <hp@redhat.com>
14683
14684         * Initial module creation
14685