2006-10-21 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-10-21  Havoc Pennington  <hp@redhat.com>
2
3         * Clean up Doxygen group markers for public API so Doxygen finds
4         everything (not comprehensively fixed for private API).
5         Means all remaining Doxygen warnings are just about missing docs
6         and thus pretty simple to resolve.
7         
8 2006-10-21  Havoc Pennington  <hp@redhat.com>
9         
10         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
11
12         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
13         as DBUS_GNUC_DEPRECATED
14
15 2006-10-21  Havoc Pennington  <hp@redhat.com>
16
17         * Move all private API into the private Doxygen group sections of
18         the files, so they don't show up in the public API docs
19         
20 2006-10-21  Havoc Pennington  <hp@redhat.com>
21
22         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
23         dbus_message_iter_get_array_len().
24
25         * throughout: documentation improvements.
26
27 2006-10-20  Havoc Pennington  <hp@redhat.com>
28
29         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
30         matter, and the message-loader-breaker thing since nobody is going
31         to do it.  Add an item to 1.0 about supporting recursive locks
32         in dbus_threads_init_default() though, since it should be easy.
33
34         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
35         Fix this in the !dispatch case to avoid busy-looping after
36         disconnection
37
38         * More misc docs improvements
39
40 2006-10-19  Havoc Pennington  <hp@redhat.com>
41
42         * more Doxygen-related fixes (lots of moving things from the
43         public to internal section in dbus-connection.c)
44
45 2006-10-19  Havoc Pennington  <hp@redhat.com>
46
47         * Fix a pile of Doxygen warnings and missing docs
48
49 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
50
51         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
52         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
53         instead of a void *.  kqueue uses this to get the context's loop
54         while the other modules ignore the parameter.  This allows us to
55         avoid platform conditionals
56
57         * bus/bus.c (process_config_postinit): Pass in the context to the 
58         watch
59
60 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
61
62         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
63         when starting the system bus
64
65 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
66
67         * configure.in: More fixups for cross compile (Patch from 
68         Marco Pracucci <development at pracucci dot com>)
69
70 2006-10-17  Havoc Pennington  <hp@redhat.com>
71
72         * tools/dbus-send.c (main): don't close shared connection, fix
73         from Timo Hoenig
74
75 2006-10-17  Havoc Pennington  <hp@redhat.com>
76
77         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
78
79         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
80         since realistically it doesn't look like we'll be changing it
81         anymore.
82
83 2006-10-17  Havoc Pennington  <hp@redhat.com>
84
85         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
86         be used for return_if_fail type warnings; prefixes the pid, and
87         fatal by default.
88
89 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
90
91         * configure.in: Released 1.0 RC 2(0.94)
92         Add check for -fPIC and enable it if available
93
94 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
95
96         * doc/TODO: Remove the check TODO item
97
98 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
99
100         * dbus-transport-socket.c (exchange_credentials):
101         Print out more detailed errors if reading or sending
102         credentials fail (Patch from Julio M. Merino Vidal 
103         <jmmv at NetBSD dot org>)
104
105 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
106
107         * configure.in: when checking for posix getpwnam_r assume true
108         for cross compiles
109
110 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
111
112         * configure.in: Check for gethostbyname first before we check for it
113         in libnsl.  On gnu systems it is implemeneted 
114
115 2006-10-13  Havoc Pennington  <hp@redhat.com>
116
117         * dbus/dbus-connection.c
118         (dbus_connection_send_with_reply_and_block): fix to handle closed
119         connections, from Tambet Ingo bug #8631
120
121 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
122
123         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
124
125 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
126
127         * test/name-test/Makefile.am: don't link against both libdbus and
128         libdbus-convenience
129
130 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
131
132         * configure.in: check for dirfd even if it is a macro
133         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
134
135 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
136
137         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
138         avoid using dirfd on systems that don't have dirfd 
139         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
140
141 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
142
143         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
144         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
145
146         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
147         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
148         macro because _dbus_abort calls it
149
150         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
151         works
152
153 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
154
155         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
156         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
157
158 2006-10-02  Thiago Macieira  <thiago@kde.org>
159
160         * tools/dbus-launch.c (main): make it complain and abort
161         execution in case an unknown option is given. Also, process
162         the '--' argument as the end of arguments.
163
164 2006-10-01  Havoc Pennington  <hp@redhat.com>
165
166         * tools/dbus-launch.c (print_variables): if no syntax is given,
167         don't print something that's sort-of-half-sh-syntax, just print
168         a plain key-value pairs thing.
169
170         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
171         the local machine representation (but still have the hostname in
172         the display). Remove the hostname from the display if it is
173         localhost. Change session files to be named
174         ~/.dbus/session-bus/machine-display. Change X atoms to be
175         underscore-prefixed so nobody whines about ICCCM compliance.
176         Otherwise name them the same as the env variables.
177         Change session file format to include key-value pairs and an
178         explanatory comment. Keys are the same as the env variables.
179         (set_address_in_x11): X property format can't depend on
180         sizeof(pid_t) on a particular machine, fix to always be 32 bits
181
182         * tools/dbus-launch.c: make --autolaunch take a machine id
183         argument. If --autolaunch is used with a program to run, complain
184         for now (but add a FIXME). Also, don't look for existing bus if 
185         there's a program to run (but add a FIXME).
186
187         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
188         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
189         just to get this, and avoids duplicating uuid-reading code).
190
191         * tools/dbus-launch.1: clarify various things
192         
193 2006-10-01  Havoc Pennington  <hp@redhat.com>
194
195         * test/test-service.c (path_message_func): remove broken extra
196         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
197
198         * test/test-shell-service.c (path_message_func): same fix
199         
200         * dbus/dbus-connection.c
201         (_dbus_connection_get_dispatch_status_unlocked): break up the
202         function a little for clarity and fix the notification of
203         dbus-bus.c to not require dispatch to be complete
204
205         * dbus/dbus-connection.c (dbus_connection_unref): improve the
206         warning when you try to finalize an open connection.
207         
208 2006-10-01  Havoc Pennington  <hp@redhat.com>
209
210         * dbus/dbus-bus.c
211         (internal_bus_get): only weak ref the connection; this means 
212         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
213         called safely in any context
214         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
215         unref
216
217         * dbus/dbus-connection.c
218         (_dbus_connection_get_dispatch_status_unlocked): move
219         _dbus_bus_notify_shared_connection_disconnected_unlocked here
220         when queuing Disconnected instead of when the Disconnected message
221         arrives, so dbus_bus_get() won't return closed connections.
222         
223 2006-10-01  Havoc Pennington  <hp@redhat.com>
224
225         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
226         Add a hack to make DBusNewConnectionFunction work right.
227
228         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
229         the hack here. Also, fix the todo about refcount leak.
230         
231         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
232         and use the hack here
233         
234         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
235         "shareable" flag; this was completely broken, since it meant 
236         dbus_connection_open() returned a connection of unknown
237         shared-ness. Now, we always hold a ref on anything opened 
238         as shareable.
239
240         Move the call to notify dbus-bus.c into
241         connection_forget_shared_unlocked, so libdbus consistently forgets
242         all its knowledge of a connection at once. This exposed numerous
243         places where things were totally broken if we dropped a ref inside
244         get_dispatch_status_unlocked where
245         connection_forget_shared_unlocked was previously, so move
246         connection_forget_shared_unlocked into
247         _dbus_connection_update_dispatch_status_and_unlock. Also move the
248         exit_on_disconnect here.
249
250         (shared_connections_shutdown): this assumed weak refs to the
251         shared connections; since we have strong refs now, the assertion 
252         was failing and stuff was left in the hash. Fix it to close
253         still-open shared connections.
254         
255         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
256         debug pipe connections
257         
258         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
259         dbus-bus.c if the closed connection is in fact shared
260         (_dbus_connection_close_possibly_shared): rename from 
261         _dbus_connection_close_internal
262         (dbus_connection_close, dbus_connection_open,
263         dbus_connection_open_private): Improve docs to explain the deal
264         with when you should close or unref or both
265
266         * dbus/dbus-bus.c
267         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
268         from _dbus_bus_check_connection_and_unref_unlocked and modify to
269         loop over all connections
270
271         * test/test-utils.c (test_connection_shutdown): don't try to close
272         shared connections.
273
274         * test/name-test/test-threads-init.c (main): fix warnings in here
275
276         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
277         env variable to cause blocking waiting for gdb; drop
278         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
279         unconditionally.
280
281         * configure.in: add -export-dynamic to libtool flags if assertions enabled
282         so _dbus_print_backtrace works.
283
284         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
285         instead of _dbus_verbose to print the backtrace, and diagnose lack 
286         of -rdynamic/-export-dynamic
287         
288 2006-09-30  Havoc Pennington  <hp@redhat.com>
289
290         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
291         (internal_bus_get): fix screwy code formatting. whoever committed
292         that was not paying attention!
293
294 2006-09-30  Havoc Pennington  <hp@redhat.com>
295
296         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
297         reflect addition of interfaces.
298
299         * doc/dbus-specification.xml: describe a new
300         org.freedesktop.DBus.Peer.GetMachineId method
301
302         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
303         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
304         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
305         at end of skip_white
306         (_dbus_string_chop_white): new function
307
308         * bus/connection.c (bus_connections_setup_connection): call
309         dbus_connection_set_route_peer_messages.
310
311         * dbus/dbus-connection.c
312         (_dbus_connection_peer_filter_unlocked_no_update): modify to
313         support a GetMachineId method.
314
315         Also, support a new flag to let the bus pass peer methods through
316         to apps on the bus, which can be set with
317         dbus_connection_set_route_peer_messages.
318
319         Finally, handle and return an error for anything unknown on the
320         Peer interface, which will allow us to extend the Peer interface
321         in the future without fear that we're now intercepting something
322         apps were wanting to see.
323         
324         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
325         dbus/dbus-uuidgen.c
326
327         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
328         binary here, since most of the code is already in libdbus
329
330         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
331         uuid from the system config file
332
333         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
334         (_dbus_read_uuid_file_without_creating) 
335         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
336         uuid-related functions, partly factored out from dbus-server.c
337
338         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
339         DBUS_ERROR_FILE_EXISTS instead of EEXIST
340
341         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
342
343         * tools/dbus-cleanup-sockets.1: explain what the point of this
344         thing is a bit more
345
346         * autogen.sh (run_configure): add --config-cache to default
347         configure args
348
349         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
350         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
351
352         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
353         don't try to save address, fixes crash in make check
354         
355 2006-09-30  Thiago Macieira  <thiago@kde.org>
356
357         * configure.in: add DBUS_BINDIR as a #define to C source code.
358
359         * tools/dbus-launch.c
360         * tools/dbus-launch.h
361         * tools/dbus-launch-x11.c:
362         * tools/dbus-launch.1: Add the --autolaunch option to
363         dbus-launch, which makes it scan for an existing session
364         started with --autolaunch. With that option, it also creates
365         an X11 window and saves the bus address and PID to it.
366
367         * dbus/dbus-sysdeps.h:
368         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
369         a function that runs "dbus-launch --autolaunch" to retrieve
370         the running D-Bus session address (or start one if none was running)
371
372         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
373         address protocol, which tries to get the running session from
374         dbus-launch.
375
376         * dbus/dbus-bus.c:
377         * dbus/dbus-internals.h: Make "autolaunch:" be the default
378         D-Bus session bus address.
379
380         * dbus/dbus-connection.c: Fix horrible typo in error message.
381
382 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
383
384         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
385
386 2006-09-17  Havoc Pennington  <hp@redhat.com>
387
388         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
389         fix so that if unix_user_function is set on windows, we still
390         do the default check that the auth identity matches the bus identity
391
392 2006-09-16  Havoc Pennington  <hp@redhat.com>
393
394         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
395         to _dbus_transport_open_platform_specific,
396         _dbus_transport_open_socket,
397         and _dbus_transport_open_debug_pipe
398
399         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
400
401 2006-09-16  Havoc Pennington  <hp@redhat.com>
402
403         Attempt auditing public API to remove all cases where a Unix
404         function returns weird emulated goo to Windows. This probably 
405         breaks the bus daemon on Windows, to fix it again we may 
406         need to stop processing unix-specific config options on Windows,
407         and may need to add Windows-specific public API or config options.
408         
409         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
410         to reflect added interfaces; should not break soname.
411         
412         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
413         not invoke unix user function on Windows. Kind of a hacky fix, but 
414         we don't want a "unix uid" leaking out on Windows.
415
416         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
417         to get the socket fd on Windows or UNIX
418         (dbus_connection_get_unix_fd): make this always fail on Windows
419
420 2006-09-16  Havoc Pennington  <hp@redhat.com>
421
422         * dbus/dbus-server.c (dbus_server_listen): change how this works
423         to be able to delegate to a set of handlers that can succeed,
424         fail, or choose not to handle. Allows us to have 
425         dbus_server_listen_platform_specific.
426
427         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
428         factor out the tcp socket stuff to be used on windows, leaving
429         unix domain socket only in dbus-socket-unix.c
430
431         * dbus/dbus-transport-socket.c
432         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
433         stuff to be used on windows, leaving unix domain socket only 
434         in dbus-transport-unix.c
435
436         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
437         temporary hack to be sure this fails on windows
438         (dbus_connection_get_unix_process_id): ditto
439
440 2006-09-16  Havoc Pennington  <hp@redhat.com>
441
442         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
443         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
444         _dbus_open_socket so the domain/type/protocol from system headers
445         are not required. This is kind of pointless though unless we move
446         part of _dbus_connect_tcp_socket into sysdeps.c instead of
447         sysdeps-unix.c, which would mean adding a wrapper around
448         bind/listen/etc.
449         Also, add DBusError to the socket-opening functions so they 
450         don't require use of errno.
451
452 2006-09-16  Havoc Pennington  <hp@redhat.com>
453
454         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
455         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
456
457         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
458         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
459         functions specifically for sockets only, and move generic 
460         read/write/open/close into unix-specific code.
461
462 2006-09-14  Havoc Pennington  <hp@redhat.com>
463
464         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
465         complaint about accessing revents when poll returns 0, from Julian Seward.
466
467 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
468
469         * Released 1.0 RC 1 (0.93) 
470
471 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
472
473         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
474         use _dbus_close instead of close
475
476 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
477
478         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
479         credentials.  Fixes "external" authentication under e.g. NetBSD
480         which does not support any other socket credentials mechanism.
481         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
482
483 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
484
485         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
486         dbus_threads_init and be used by the dbus mutex functions to
487         avoid deadlocks.
488
489         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
490
491 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
492
493         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
494         use threadsafe readdir_r instead of readdir
495
496 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
497
498         * dbus-threads.c (dbus_threads_init_default): New method for
499         initializing the internal thread implementation (Patch from
500         Alexander Larsson <alexl at redhat dot com>)
501
502 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
503
504         * remove a bunch of todo items from the 1.0 list
505
506 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
507
508         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
509         key not found
510
511 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
512
513         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
514         complex debugging code
515
516         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
517         between the test suite ifdefs
518         (_dbus_verbose_bytes): return if verbosity is not enabled 
519
520 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
521
522         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
523         remove DBusMark
524
525 2006-09-10  Havoc Pennington  <hp@redhat.com>
526
527        patch mostly by Peter Kümmel, bug #8211
528         
529         * dbus/dbus-sysdeps-unix.c: new file, which splits out
530         unix-specific stuff in dbus-sysdeps.c
531
532         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
533         and move unix-specific stuff to dbus-sysdeps-unix.c
534
535         * configure.in: check HAVE_ERRNO_H
536         
537 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
538
539         * bus/test-main.c (main): Initialize threading during tests
540
541         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
542         Unlock connection on error
543         (generate_local_error_message): static method for generating
544         an error message when we don't have a message to reply to
545         (_dbus_connection_block_pending_call): Send a disconnect error
546         instead of just a timeout (NULL) when the bus gets disconnected
547         while blocking for a reply.
548         
549 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
550
551         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
552         filters (Patch from Kimmo Hämäläinen 
553         <kimmo dot hamalainen at nokia dot com>)
554
555 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
556
557         * dbus/dbus-connection-internal.h: Add prototype for 
558         _dbus_connection_test_get_locks to remove warning
559
560 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
561
562         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
563         close child_err_report_pipe[WRITE_END] on exec (Patch from 
564         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
565
566 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
567
568         * Clean up close calls to use _dbus_close (Patch from 
569         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
570
571 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
572
573         * doc/TODO:
574         - Remove pending call locking todo item
575         - dbus_connection_open now holds hard ref.  Remove todo item
576         - do proper locking on _dbus_bus_check_connection_and_unref
577           and handle DBUS_BUS_STARTER. Remove todo item
578         - Warn on closing of a shared connection.  Remove todo item
579
580         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
581         dbus/dbus-connection.c: Use the dbus_connection_close_internal
582         so we don't get the warning when closing shared connections
583
584         * test/test-service.c, test/test-shell-service.c: Applications
585         don't close shared connections themselves so we unref instead of
586         close
587
588         * test/test-utils.c (test_connection_shutdown): Close the connection
589
590         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
591         _dbus_bus_check_connection_and_unref_unlocked since we only call this
592         method on a locked connection.  
593         Make sure we call _dbus_connection_unref_unlocked instead of 
594         dbus_connection_unref also.
595         Handle DBUS_BUS_STARTER correctly
596
597         * dbus/dbus-connection.c (connection_record_shared_unlocked):
598         Mark as shared and hard ref the connection
599         (connection_forget_shared_unlocked): Remove the hard ref from the 
600         connection
601         (_dbus_connection_close_internal_and_unlock):  New internal function
602         which takes a locked connection and unlocks it after closing it
603         (_dbus_connection_close_internal): New internal function which acts
604         like the origonal dbus_connection_close method by grabbing a connection
605         lock and calling _dbus_connection_close_internal_and_unlock
606         (dbus_connection_close): Public close method, warns when the app
607         trys to close a shared connection
608
609 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
610
611         * bus/driver.c:
612         (bus_driver_generate_introspect_string): New method for populating
613         a DBusString with the introspect data
614         (bus_driver_handle_introspect): Move introspect generation code to 
615         bus_driver_generate_introspect_string
616
617         * bus/main.c:
618         (introspect): New function which prints out the intropect data and
619         exits
620         (main): Add a --introspect switch
621
622 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
623
624         * doc/TODO: Removed dtd publishing item.  
625         It seems the dtd has already been added at
626         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
627
628 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
629
630         * doc/TODO, various source files: Audited todo's and FIXME's and
631         prepended the ones we should be looking at with 1.0.  Those
632         prepended with 1.0? need clerification or might not be needed
633         for 1.0
634
635 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
636
637         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
638         NULL in the public API (Patch from Kimmo Hämäläinen 
639         <kimmo dot hamalainen at nokia dot com>)
640
641 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
642
643         * configure.in: Fix for OS-X compile time endian issues (patch from
644         Benjamin Reed <ranger at befunk dot com>)
645
646 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
647
648         * configure.in: Check for no-common compiler flag (OS-X fix from
649         Benjamin Reed <ranger at befunk dot com>)
650
651 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
652
653         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
654         <fcrozat at mandriva dot com>)
655
656 2006-08-29  Havoc Pennington  <hp@redhat.com>
657
658         * test/test-service.c (path_message_func): fix lack of return value
659
660         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
661         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
662         any more sense than on anything else in this file.
663         (_dbus_get_tmpdir): add const to return value, and keep the
664         results of the various getenv around in a static variable.
665
666 2006-08-29  Havoc Pennington  <hp@redhat.com>
667
668         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
669         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
670
671 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
672
673         * test/Makefile.am: change find to use syntax that works with non
674         gnu versions of find
675
676 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
677
678         * dbus/dbus-transport.c: fix invalid deref when checking if
679         a vtable method exists (Patch from Christian Ehrlicher 
680         <ch dot ehrlicher at gmx dot de>)
681
682 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
683
684         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
685         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
686         to build with builddir != srcdir (Taken from a patch by Bernard Leak
687         <bernard at brenda-arkle dot demon dot co dot uk>)
688
689 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
690
691         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
692         default case
693
694 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
695
696         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
697         it works on any system providing this interface, not only FreeBSD.
698         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
699
700 2006-08-20  Havoc Pennington  <hp@redhat.com>
701
702         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
703         the docs
704
705 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
706
707         * Released 0.92 
708
709 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
710
711         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
712         to reflect the init late change
713
714         * bus/bus.c (bus_context_new): Check user before we fork so we can
715         print out an error message a user will be able to see
716
717 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
718
719         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
720
721         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
722         Add two more global locks for use on windows platforms.  These are
723         unused on non-windows platforms but are not ifdefed out to avoid
724         potential bugs (i.e. the few bytes lost does not warrent the extra
725         maintanence and complexity that having seperate sets of locks would
726         cause)
727
728 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
729
730         * bus/services.c (bus_registry_acquire_service): Return an error
731         when an application tries to register the org.freedesktop.DBus Bus Name
732
733         * bus/services.c (bus_registry_release_service): Return an error
734         when an application tries to release the org.freedesktop.DBus Bus Name
735
736 2006-08-17  Alp Toker  <alp@atoker.com>
737
738         * doc/dbus-specification.xml: Fix some minor typos.
739
740 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
741
742         * configure.in: use $with_init_scripts instead of $operating_system
743         to determine where to store the pid since the init scripts manipulate 
744         the pid file (patch from Marcelo Ricardo Leitner 
745         <marcelo dot leitner at terra dot com dot br>.  
746
747 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
748
749         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
750         static DBusList *uninitialized_condvar_list to support new late 
751         initialization threading model.  In this model threads can be initialized
752         even after the D-Bus API has been used but still needs to be initialized 
753         before the second thread has been started.  Mutexes and condvar addresses
754         are stored in the two static lists and are replaced with actuall locks
755         when threads are initalized.
756         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
757         the location into the static list
758         (_dbus_mutex_free_at_location): New method for removing a mutex location 
759         from the static list and freeing the mutex
760         (_dbus_condvar_new_at_location): New method for creating a conditional 
761         variable and placing the location into the static list
762         (_dbus_condvar_free_at_location): New method for removing a conditional
763         variable location from the static list and freeing the conditional variable 
764         (init_uninitialized_locks): Atomic method which goes through the static 
765         lists of mutex and condvar location and updates them with actuall locks
766         (init_global_locks): changed to init_locks
767         
768         * dbus/dbus-connection.c:
769         (_dbus_connection_test_get_locks): New method for tests to check connections
770         (_dbus_connection_new_for_transport): Use the new at_location mutex and
771         condvar API
772         (dbus_connection_allocate_data_slot): Pass in the global lock address
773         to _dbus_data_slot_allocator_alloc
774
775         * dbus/dbus-dataslot.c:
776         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
777         instead of the mutex itself
778
779         * dbus/dbus-message.c:
780         (dbus_message_allocate_data_slot): Pass in the global lock address
781         to _dbus_data_slot_allocator_alloc
782
783         * dbus/dbus-pending-call.c:
784         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
785         to _dbus_data_slot_allocator_alloc
786
787         * dbus/dbus-server.c:
788         (_dbus_server_init_base): Use the new at_location mutex API
789         (dbus_server_allocate_data_slot): Pass in the global lock address
790         to _dbus_data_slot_allocator_alloc
791
792         * test/name-test/test-threads-init.c: New test case for late thread
793         initialization
794
795 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
796
797         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
798         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
799         causes compile problems when asserts are turned off
800         Keeping _dbus_warn for printing out the message so even if
801         asserts are turned off the user gets the messages that something is 
802         wrong 
803
804 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
805
806         Patches by Kjartan Maraas <kmaraas at gnome dot org>
807
808         * bus/services.c (bus_service_list_queued_owners):
809         Add a pointer cast to fix compiler warning
810
811         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
812         return a NULL instead of FALSE since the return type
813         is not expecting a boolean
814
815         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
816         Remove unused variable
817
818         * dbus/dbus-marshal-recursive-util.c (node_new):
819         return a NULL instead of FALSE since the return type
820         is not expecting a boolean
821
822         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
823         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
824         because we are expecting a pointer not a boolean
825
826         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
827         add void as the parameter so some compilers
828         don't complain
829
830         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
831           _dbus_transport_new_for_tcp_socket):
832         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
833         because we are expecting a pointer not a boolean
834
835         * test/shell-test.c (test_command_line):
836         cast the second argument to _dbus_list_append to avoid compiler
837         warnings
838
839         * test/test-names.c (main): remove unused variable
840
841         * test/test-service.c (check_hello_from_self_reply):
842         Initialize echo_message and echo_reply to NULL
843         
844         * test/test-shell-service.c (handle_echo):
845         Remove unused variable and cast the third parameter passed to
846         dbus_connection_get_object_path_data to avoid compiler warrnings
847
848         * test/name-test/test-names.c (clear_message_queue):
849         Remove unused function
850
851         * test/name-test/test-pending-call-dispatch.c:
852         Fix format string in printf
853
854
855 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
856
857         * dbus/dbus-bus.c:
858         * test/name-test/test-names.c:
859         Remove test method dbus_bus_connection_get_unique_name because 
860         we already have public method dbus_bus_get_unique_name that 
861         does the exact same thing
862
863 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
864
865         * dbus/dbus-signature.c:
866         fix typos in Julio's previous patch which cause make check to fail
867
868 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
869
870         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
871         In any case it was wrong since this is a test checking to see if
872         address parsing is correct.  There was no need to get the true
873         tmp directory.  
874
875 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
876
877         * dbus/dbus-macros.h: Revert the addition of stddef.h
878         as we should not be adding it to library headers 
879
880 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
881
882         * dbus/dbus-signature.c:
883         Fix the unit tests so that they work if assertions are not enabled.
884         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
885
886 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
887
888         * tools/run-with-tmp-session-bus.sh:
889         * test/name-test/run-test.sh:
890         Remove bashisms (patch from Julio M. Merino Vidal
891         <jmmv at NetBSD dot org>)
892
893 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
894
895         * configure.in: add a version (>= 2.6.0) check for libxml2
896
897 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
898
899         * configure.in: make sure the compiler supports -Wfloat-equal
900         
901         * bus/dir-watch-dnotify.c: move functional code after 
902         variable declerations (C99 fix)  (patches from Jens Granseuer
903         <jensgr at gmx dot net>
904
905 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
906
907         * dbus/dbus-macros.h:
908         add #include <stddef.h> so that Sun compilers don't complain about
909         the defining NULL
910
911 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
912
913         * dbus/dbus-sysdeps.c:
914         * dbus/dbus-address.c:
915         * bus/activation.c:
916         * test/shell-test.c:
917         don't hardcode tmp directory (patch from Dave Meikle 
918         <dmk at davemeikle dot co dot uk>)
919
920 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
921
922         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
923         Change an assert to a detailed warning and abort.  
924         When allocator->lock != mutex it indicates that the user has failed
925         to initalize threads before using the D-Bus library.  This warning
926         helps the user identify the issue and fix their app.
927
928 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
929
930         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
931         with cleanups of bugs found from Coverity reports:
932
933         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
934         close the file on error to avoid a leak
935
936         * bus/expirelist.c (bus_expire_list_test):
937         Check for NULL on dbus_new0
938
939         * bus/activation.c (update_directory):
940         remove dead code
941
942         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
943         Fix some leaks
944
945         * bus/bus.c (process_config_every_time):
946         Fixed a leak
947
948         * bus/desktop-file.c (parse_key_value):
949         Fixed leak
950
951         * bus/selinux.c (bus_selinux_id_table_insert):
952         Fixed leak
953
954 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
955
956         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
957         remove dead code
958
959 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
960
961         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
962         #!/bin/bash
963
964 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
965
966         * Doxyfile.in: fix the INPUT line so we can generate docs 
967         when sourcedir != builddir (patch from Cygwin Ports maintainer
968         <yselkowitz at users dot sourceforge dot net>
969
970 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
971
972         * dbus/dbus-sysdeps.h:
973         * dbus/dbus-sysdeps.c: 
974         * dbus/dbus-string.c: 
975         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
976         GLib's function which does the same thing
977
978         * configure.in:
979         * bus/Makefile.am:
980         * bus/dir-watch-default.c:
981         * bus/dir-watch-dnotify.c:
982         * bus/dir-watch-kqueue.c:
983         Add kqueue directory watching for freebsd and split the directory
984         watching code into seperate files per method/arch
985         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
986
987 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
988
989         * configure.in:
990         * tools/Makefile.am:
991         * tools/dbus-launch.c:
992         * bus/Makefile.am:
993         allow --with-dbus-daemondir switch to be used to make the
994         daemon install to a seperate bindir like /usr/libexec
995         (patch from Brian Cameron <brian dot cameron at sun dot com)
996
997 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
998
999         * bus/Makefile.am (install-data-hook): removed the slash after 
1000         $(DESTDIR) so we don't get the double slash which does not work
1001         in windows (patch from Andras Porjesz 
1002         <andras dot porjesz at siemens dot com>)
1003
1004 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1005
1006         * dbus/dbus-sysdeps.h:
1007         * dbus/dbus-sysdeps.c: 
1008           add _dbus_printf_length (patch from Peter Kümmel 
1009           <syntheticpp at gmx dot net>)
1010
1011 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1012
1013         * dbus/dbus-internals.c: unistd.h is not used 
1014         (_dbus_verbose_real): only enable verbose printing 
1015         if DBUS_VERBOSE environment var is set to '1'
1016         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1017
1018 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1019
1020         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1021         so we still compile on older gcc (patch from Frederic Peters 
1022         <fpeters at 0d dot be>
1023
1024 2006-08-04  Havoc Pennington  <hp@redhat.com>
1025
1026         * configure.in: add -Wdeclaration-after-statement
1027
1028         * dbus/dbus-connection.c: change all the pending call stuff to
1029         reflect the fact that pending call operations use the connection
1030         lock
1031
1032         * dbus/dbus-pending-call.c: add locking here
1033
1034         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1035         field const consistent with how message field is done
1036
1037 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1038
1039         * s/D-BUS/D-Bus/g
1040
1041 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1042
1043         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1044         <in7y118 at public.uni-hamburg dot de> - fix invalid
1045         read/write reported by valgrind
1046
1047 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1048
1049         * Released 0.91
1050
1051 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1052
1053         * dbus/dbus-connection.c:
1054         (_dbus_connection_attach_pending_call_unlocked):
1055         (connection_timeout_and_complete_all_pending_calls_unlocked):
1056         Make sure we set timeout_added on pending calls to FALSE when
1057         we remove the timeout from the connection
1058
1059 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1060
1061         * Removed some extra bindings stuff lingering around (thanks timo)
1062         * dbus-pendingcall.c (_dbus_pending_call_new): 
1063         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1064         when we tried to take a lock on an already locked connection
1065
1066 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1067
1068         * Released 0.90
1069
1070 2006-07-17  Havoc Pennington  <hp@redhat.com>
1071
1072         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1073         ints, reported by Owen Taylor
1074
1075 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1076
1077         * doc/TODO:
1078         * dbus/dbus-bus.c:
1079         * dbus-errors.c:
1080         * dbus/dbus-marshal-validate.c:
1081           Removed TODO items which were fixed or are no longer relevent
1082
1083 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1084
1085         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1086         Remove stray files from the stripped bindings
1087
1088 2006-07-16  Havoc Pennington  <hp@redhat.com>
1089
1090         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1091         Improve the error message on reply timeout
1092
1093 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1094
1095         * Remove all bindings
1096
1097 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1098
1099         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1100         and set pending_reply out arg to NULL is connection is disconnected
1101         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1102         static method for cleaning up pending calls on disconnect
1103         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1104         calls queued timeouts on disconnect 
1105
1106          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1107         Remove 
1108
1109 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1110
1111         * bus/activation.[ch] (bus_activation_list_services): new function to 
1112         get the list of services that can be activated
1113
1114         * bus/dispatch.c: test coverage for the new bus method
1115         ListActivatableNames
1116
1117         * bus/driver.c: new bus method ListActivatableNames to get the list of
1118         services that can be activated
1119
1120         * doc/dbus-specification.xml: ListActivatableNames method documentation
1121
1122 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1123         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1124         source files
1125
1126 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1127         * dbus/dbus-message-factory.c:
1128         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1129
1130 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1131         * dbus/dbus-connection-internal.h:
1132         * dbus/dbus-connection.c:
1133         * file dbus/dbus-pending-call.c:
1134         * dbus/dbus-pending-call.h:
1135         Make DBusPendingCall an opaque type even to D-Bus internals
1136
1137 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1138
1139         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1140         connection_close
1141
1142         * dbus/dbus-connection.c: include dbus-bus.h
1143         (_dbus_connection_read_write_dispatch): make static
1144
1145 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1146
1147         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1148         function
1149         (dbus_connection_dispatch): On disconnect unref any shared connections
1150
1151         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1152         for cleaning up shared connections on disconnect
1153         (internal_bus_get): get a hard refrence to shared connections when
1154         they are created
1155         
1156         * doc/TODO: Remove items which are no longer relevent or have been fixed
1157         Split 1.0 todo items with a 0.90 freeze todo list
1158  
1159 2006-06-14  Ross Burton  <ross@openedhand.com>
1160
1161         * glib/dbus-gobject.c:
1162         Free a leaking GArray (surely not!) in dbus_g_method_return.
1163
1164 2006-06-14  Ross Burton  <ross@openedhand.com>
1165
1166         * tools/Makefile.am:
1167         * tools/dbus-monitor.c:
1168         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1169         Habacker).
1170         
1171 2006-06-14  Ross Burton  <ross@openedhand.com>
1172
1173         * tools/dbus-print-message.c:
1174         Also print the object path when outputting signals or method calls.
1175
1176 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1177
1178         * qt/src/Makefile.am: install the qdbus.h header.
1179         This allows people to actually use the installed code.
1180
1181 2006-06-12  Ross Burton  <ross@openedhand.com>
1182
1183         * glib/dbus-gproxy.c:
1184         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1185
1186 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1187
1188         * Released 0.62
1189
1190 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1191
1192         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1193         break pedantic builds. Closes bug 6043 (patch approved by
1194         Havoc back in February).
1195
1196 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1197
1198         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1199         that took a QDBusMessage parameter.
1200         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1201         * qt/tools/dbus.cpp: Don't use automatic call because we might
1202         be calling an async method: request a reply.
1203
1204 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1205
1206         * test/qt/*: Update the testcases, including testing the new
1207         functionality of sending null QByteArray and QString over the
1208         bus. Add new headertest test and restore the old
1209         qdbusxmlparser test.
1210
1211 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1212
1213         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1214         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1215
1216         * qt/examples/Makefile.am:
1217         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1218         form.
1219
1220         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1221         QByteArray() (nulls) over the bus.
1222         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1223         the one that has the signature suffix stripped.
1224         * qt/src/qdbusreply.h: Make some methods const.
1225
1226 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1227
1228         Patch from Timo Hoenig <thoenig@suse.de>.
1229
1230         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1231         required during build to EXTRA_DIST.
1232         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1233         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1234         * configure.in: Fix "make dist", take care that the Makefile for
1235         qt/dbus is being generated.
1236
1237 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1238
1239         * bus/bus.c: Fix eavesdropping on method calls
1240
1241 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1242
1243         * configure.in:
1244         * dbus/dbus-userdb-util.c:
1245         Add Solaris console owner patch from Artem Kachitchkine
1246
1247 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1248
1249         * qt/Makfile.am:
1250         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1251         reorganisation. Thanks to Timo Hoenig for pointing this out.
1252
1253 2006-06-06  Robert McQueen  <robot101@debian.org>
1254
1255         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1256           call to dbus_g_type_get_struct.
1257
1258 2006-06-06  Robert McQueen  <robot101@debian.org>
1259
1260         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1261           pointers were put into a GPtrArray-based specialised collection, and
1262           then freed along with the array. GValues which you add into
1263           collections or maps which have the NOCOPY flag set are assumed to not
1264           belong to the caller, so rather than the existing pointer-stealing
1265           semantics, they are copied instead. Given that the main consumers of
1266           this abstraction are the bindings themselves, I don't think this is
1267           too bad, but others should watch their choice of take vs set_static.
1268
1269 2006-06-06  Robert McQueen  <robot101@debian.org>
1270
1271         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1272           of g_slist_prepend not being used. Fixed copying of slist-based
1273           specialised collections, then wrote a test case and found that it was
1274           all broken. Went on to fix iterating and appending too. Good thing
1275           nobody uses this code yet.
1276
1277 2006-06-06  Robert McQueen  <robot101@debian.org>
1278
1279         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1280           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1281           are discarded without unsetting, so it makes no difference whether
1282           we take or set_static). Remove cases for G_TYPE_POINTER because
1283           there really is nothing useful we can do with them in our
1284           specialised types - we *need* boxed copy/free functions at the very
1285           least.
1286
1287 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1288
1289         * qt/dbus: Add directory. I had forgotten to add this
1290         yesterday after the move...
1291
1292         * qt/examples/Makefile.am:
1293         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1294
1295         * qt/tools/Makefile.am:
1296         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1297         Added feature to get and set properties.
1298         Added validation of service, object path and interface names.
1299
1300         * qt/tools/dbusidl2cpp.cpp: Two new features:
1301         1) Allow specifying both the header and the source file names,
1302         by separating them with a colon.
1303         2) Don't write an interface output if the -p switch wasn't
1304         given, but the -a was.
1305
1306         * qt/src/*: Fix usage of Iterators and ConstIterators.
1307         Fix shadowing of variables by other variables (-Wshadow).
1308         Fix keyword-cleanliness in headers.
1309         Fix ASCII-cast (QLatin1String, QLatin1Char).
1310         Fix validation of member names.
1311         Add extra checking of introspection data during XML parsing.
1312         Various bug fixes.
1313
1314 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1315
1316         * dbus/Makefile.am:
1317         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1318         qt/dbus/qdbus.h now.
1319
1320 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1321
1322         * configure.in: Make --disable-qt actually do
1323           something. Patch inspired by Zack Rusin.
1324
1325 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1326
1327         * qt/: Update to Subversion r548032.
1328         This includes a big reorganisation of the files inside the
1329         subdir.
1330
1331 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1332
1333         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1334         clear:  
1335         "Failed to connect to socket <host>:<port> <error>" instead of
1336         "Failed to connect to socket <host>: <error>:<port>"
1337
1338         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1339         for a tcp transport. 
1340
1341 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1342
1343         * qt/*: Update the QtDBus bindings up to revision 546310 in
1344         Subversion.
1345         This adds the dbuscpp2xml tool, that parses a C++ header and
1346         outputs a D-BUS Introspection XML.
1347
1348 2006-05-21  Havoc Pennington  <hp@redhat.com>
1349
1350         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1351         is not NULL when it shouldn't be. Also a couple of possible fixes
1352         for #4637 though I don't understand why the bug happens, to be
1353         honest... also the object constructor has an assert name != NULL
1354         and the name is only currently NULL for peer-to-peer proxies that 
1355         I don't think anyone uses? So it should be asserting.
1356         Anyway, for now at least see if we get an earlier assertion failure.
1357
1358         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1359         apparently broken code to be sure the tests fail and someone 
1360         will fix them...
1361
1362 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1363
1364         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1365         and arrays when they had a single element: has_next returns
1366         false, even before you read the element. So, instead, check
1367         the array length.
1368
1369 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1370
1371         * qt/qdbusmessage.cpp:
1372         * qt/qdbustypehelper_p.h:
1373         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1374         the list is a const-reference
1375
1376 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1377
1378         * Adding old doc patch that never got applied
1379         
1380         * dbus/bus.c (dbus_bus_add_match): Add documentation
1381
1382         * doc/dbus-specification.xml: Add documentation for the match rules
1383           and the AddMatch and RemoveMatch methods
1384
1385 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1386
1387         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1388         call (r535506)
1389
1390         * qt/dbusidl2cpp.cpp:
1391         * qt/qdbusabstractadaptor.cpp:
1392         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1393         sibling of the QDBusAbstractAdaptor objects instead of the
1394         parent. (r535848)
1395
1396         * qt/dbusidl2cpp.cpp:
1397         * qt/qdbusabstractinterface.cpp:
1398         * qt/qdbusabstractinterface.h:
1399         * qt/qdbusabstractinterface_p.h:
1400         * qt/qdbusinterface.cpp: Make properties in interfaces
1401         actually work. The code that was generated would not compile,
1402         due to moc calls to functions that did not exist. They now
1403         shall. (r536571)
1404
1405 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1406
1407         * Makefile.am:
1408         * configure.in:
1409         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1410         Thanks to Brad Hards for providing the patch
1411
1412 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1413
1414         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1415         call. (r535506)
1416
1417 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1418
1419         * qt/examples/dbus.cpp: Enhance error messages and use
1420         QDBusInterfacePtr.
1421
1422 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1423
1424         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1425         and disable the copy operators. (r533772, r534746)
1426
1427         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1428
1429         * qt/qdbusabstractinterface.cpp:
1430         * qt/qdbusabstractinterface.h: Change the default call mode to
1431         not use the event loop. Add convenience call() methods that
1432         take a CallMode parameter. (r534042)
1433
1434         * qt/qdbusconnection.h: Change the default call mode to not
1435         use the event loop. (r534042)
1436
1437         * qt/qdbusinterface.cpp:
1438         * qt/qdbusinterface.h: Add a method to tell us if the
1439         interface is valid (since we don't return a null pointer
1440         anymore) (r534099)
1441
1442         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1443         (r534101)
1444
1445         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1446         function in two so taht we get the chance to introspect
1447         without having a QDBusMessage (r534102)
1448
1449         * qt/qdbusbus.h:
1450         * qt/qdbusconnection.cpp:
1451         * qt/qdbusconnection_p.h:
1452         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1453         avoid a round-trip to the server when attempting to introspect
1454         one of our own objects. Also make sure the filter functions
1455         match the empty interface as well. (r534108)
1456         Don't keep the connection names. Instead, trust the unique
1457         connection name (r534111)
1458         Remove event loop usage (r534112)
1459
1460 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1461
1462         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1463         Brad Hards.
1464
1465 2006-04-28  Robert McQueen  <robot101@debian.org>
1466
1467         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1468         any order, making it easier for people who inherit from this
1469         object.
1470
1471 2006-04-28  Robert McQueen  <robot101@debian.org>
1472
1473         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1474         of memory from within pointer arrays and lists. Fixes bug #6300.
1475
1476 2006-04-28  Robert McQueen  <robot101@debian.org>
1477
1478         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1479         generating struct signatures. Fixes bug #6083.
1480
1481 2006-04-28  Robert McQueen  <robot101@debian.org>
1482
1483         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1484         to qdbusconnection_p.moc.
1485
1486 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1487
1488         * README, INSTALL: Doc fixes
1489         Patch from Brad Hards <bradh at frogmouth.net>
1490
1491 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1492
1493         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1494         the dynamic meta object. No need to guess which interface to
1495         call.
1496
1497 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1498
1499         * qt/qdbusconnection_p.h:
1500         * qt/qdbusmetaobject.cpp:
1501         * qt/qdbusmetaobject_p.h:
1502         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1503         for the dynamic meta object. No need to guess which
1504         interface to call.
1505         * qt/qdbusabstractinterface_p.h:
1506         * qt/qdbusconnection.cpp:
1507         * qt/qdbusintegrator.cpp:
1508         * qt/qdbusinterface.cpp:
1509         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1510         Add a QDBusRef that looks and behaves like DCOPRef.
1511
1512 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1513
1514         * dbus/dbus-connection.c: Interfaces are optional in method
1515         calls, so don't give up if the interface parameter is NULL.
1516         Patch reviewed by Havoc Pennington.
1517
1518 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1519
1520         * qt/qdbusreply.h: Add default constructor and operator=
1521           (r532625)
1522         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1523           in public headers (r532952)
1524         * qt/qdbusabstractinterface.cpp:
1525         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1526           make it the default (r532951)
1527
1528 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1529
1530         * dbus/dbus-connection.c: Fix asserts
1531         Patch from Tim Moloney <t.moloney at verizon.net>
1532
1533 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1534
1535         * mono/Connection.cs, mono/Message.cs: Check Target type
1536         Patch from Aaron Bockover (abockover at novell.com)
1537
1538 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1539
1540         * INSTALL: fine-tune the requirements for the Qt4 binding.
1541
1542 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1543
1544         * tools/dbus-print-message.c: Added support for printing of all 
1545           remaining data types. Fixed logic for indentation of compound
1546           data types.
1547         
1548 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1549
1550         * INSTALL: fill out content of file providing DBus specific
1551           build installations, followed by generic Auto* INSTALL file
1552           content
1553         
1554 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1555
1556         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1557           Patch by Stefan Eilers. (r529537)
1558
1559 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1560
1561         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1562           contents (r528208)
1563
1564 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1565
1566         * qt/Makefile.am: fix the dependency for
1567           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1568           not in qdbusconnection.cpp.
1569           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1570           spotting this.
1571
1572 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1573
1574         * qt/examples/listnames.cpp:
1575         * qt/examples/Makefile.am: Three ways to list the names on the
1576           bus.
1577
1578 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1579
1580         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1581           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1582
1583 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1584
1585         Merge from Subversion:
1586         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1587           something that exists (r526315)
1588         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1589           slots/signals (r526316)
1590         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1591           also return an unknown-method error if the parameters don't
1592           match for org.freedesktop.DBus.Properties. (r526842)
1593         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1594         * qt/qdbusintegrator.cpp: Restore the proper order of
1595           delivery: don't make method returns be delivered on priority
1596           (r528150)
1597
1598 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1599
1600         * configure.in qt/Makefile.am: add qt/examples
1601         * qt/examples: Add QtDBus example programs:
1602           - hello: Hello, World
1603           - ping: Simple method-calling program
1604           - pong: Simple object-exporting program (not using adaptors)
1605           - complexping: Interactive method-calling program 
1606                 (also gets and sets properties).
1607           - complexpong: Sample program exporting methods, signals and
1608                 properties, using adaptors.
1609           - dbus: Simple implementation of a generic method-calling
1610                 program, similar to 'dbus-send', but with semantics
1611                 similar to 'dcop'.
1612           - chat: Simplistic chat program, implemented using signals
1613                 and the system bus. Looks like IRC.
1614
1615 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1616
1617         * configure.in: Detect QtGui (necessary for one of the
1618           example programs). Note: this increases the minimum required
1619           version of Qt to 4.1.3.
1620
1621 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1622
1623         * test/qt/*: Sync with KDE Subversion revision 523647.
1624         Update the testcases to the new API. Remove testcases for
1625         classes that are no longer public or have been removed.
1626
1627 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1628
1629         * qt/*: 
1630         * dbus/qdbus.h: Sync with KDE Subversion revision
1631         523647. Hopefully, this will be the last of the
1632         source-incompatible changes. Documentation has been improved;
1633         support for QList<basic-types> has been added; QDBusObject is
1634         gone; QDBus(Abstract)Interface is now a QObject with
1635         auto-generated meta-object; QDBusIntrospection is marked
1636         private, since QMetaObject can be used now; lots of bugfixes.
1637
1638 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1639
1640         Patch from Milosz Derezynski <internalerror at gmail.com>
1641         
1642         * configure.in:
1643         Output the service directory in the configure summary
1644
1645         * dbus-1.pc.in:
1646         Add session_bus_services_dir
1647
1648 2006-03-10  Ross Burton  <ross@openedhand.com>
1649
1650         * tools/dbus-print-message.c:
1651         Add support for object paths and signatures.
1652
1653 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1654
1655         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1656         config reload.
1657         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1658         information caches
1659         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1660         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1661         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1662         * dbus/dbus-userdb.h: Add function to flush all user/group information
1663         caches.
1664
1665 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1666
1667         * qt/dbusidl2cpp.cpp:
1668         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1669         for dcopidl2cpp, found in the KDE installations (or the more
1670         modern kalyptus): generate Qt4 C++ code for the input XML
1671         introspection. Currently no IDL parsing.
1672
1673 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1674
1675         * test/qt/*: Update the self-tests.
1676
1677 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1678
1679         * qt/*: 
1680         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1681         represents the first feature-complete version of the Qt4
1682         bindings since I took ove maintainership.
1683
1684 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1685
1686         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1687         dir. This is C++, so we can't use the DBus ones.
1688
1689 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1690
1691         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1692         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1693
1694 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1695
1696         * dbus/dbus-connection.c: 
1697         (_dbus_connection_block_pending_call):
1698         Check to see if our data has already been read off the connection
1699         by another blocking pending call before we block in poll.
1700         (check_for_reply_and_update_dispatch_unlocked):
1701         Code taken from _dbus_connection_block_pending_call - checks for
1702         an already read reply and updates the dispatch if there is one.
1703
1704         * test/name-test/test-pending-call-dispatch.c:
1705         New test for making sure we don't get stuck polling a 
1706         dbus connection which has no data on the socket when
1707         blocking out of order on two or more pending calls.
1708
1709 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1710
1711         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1712         make/automake don't detect that we're talking about the same
1713         .lo file if I specify the full path to the source files.
1714
1715 2006-02-26  Havoc Pennington  <hp@redhat.com>
1716
1717         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1718
1719         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1720         session bus variable is unset, suggest "man dbus-launch" and "man
1721         dbus-daemon" to figure out how to fix the problem
1722
1723 2006-02-25  Havoc Pennington  <hp@redhat.com>
1724
1725         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1726         should make this thing use the new glib options parser
1727
1728 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1729
1730         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1731         .lo files taking moc sources.
1732
1733 2006-02-25  Havoc Pennington  <hp@redhat.com>
1734
1735         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1736         and install it as a public header
1737
1738 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1739
1740         * Released 0.61
1741
1742 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1743         
1744         * proxies.py: Fix the callchain
1745
1746 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1747         
1748         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1749
1750         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1751         dbus/dbus-sysdeps.c
1752
1753         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1754         call _dbus_group_info_free_allocated which causes infinite loop,
1755         correctly call _dbus_group_info_free
1756
1757 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1758
1759         * qt/qdbusinterface_p.h:
1760         * qt/qdbusinterface.cpp: Use the standard
1761         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1762         calls instead of creating one for us.
1763
1764         * qt/qdbusconnection_p.h:
1765         * qt/qdbusintegrator.cpp: Remove debugging code.
1766
1767         * qt/qdbusintegrator.cpp:
1768         * qt/qdbusmessage.cpp:
1769         * qt/qdbusmessage_p.h:
1770         * qt/qdbusmessage.h: Change the behaviour of automatic
1771         reply-sending: now a reply is always sent, unless the caller
1772         didn't request one or if the user slot has already sent one.
1773
1774 2006-02-16  Robert McQueen  <robot101@debian.org>
1775
1776         * configure.in: Patch from Debian packages by Sjoerd Simons
1777         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1778         arguments so it's possible to build both bindings in the
1779         same tree.
1780
1781         * qt/Makefile.am: Fix truncated value so that make dist works.
1782
1783 2006-02-16  Robert McQueen  <robot101@debian.org>
1784
1785         * acinclude.m4, configure.in: Patch from Brad Hards
1786         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1787         improving quoting, re-ordering a few checks, and a few other
1788         aesthetic tidy-ups.
1789
1790 2006-02-16  Robert McQueen  <robot101@debian.org>
1791
1792         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1793         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1794         assertion that the next element to read from the iter is fixed in
1795         size. This is not the case when you are at the end of the iter,
1796         because the next element type is INVALID.
1797
1798         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1799         a bogus assert which means that you may not initialise a 0-length
1800         string unless you provide a non-NULL pointer. This prevented
1801         you from marshalling messages containing zero-length arrays in
1802         some cases.
1803
1804         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1805         from Rob to correct bogus asserts when trying to demarshal an
1806         array and get_fixed_array got you 0 elements. Append nothing to
1807         the GArray in this case.
1808
1809         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1810         an empty array via the glib bindings. Without all of the above
1811         patches, this new test fails.
1812
1813 2006-02-16  Robert McQueen  <robot101@debian.org>
1814
1815         * glib/dbus-gmain.c: Make the previous commit compile.
1816
1817         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1818         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1819         specify sender_keyword="foo", path_keyword="bar" when adding
1820         a signal listener, so that you can bind to signals generically
1821         but still do something useful in your callback.
1822
1823         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1824         chars so that they're not cast to chars and made negative. Thanks
1825         to Jakub Stachowski for reporting this and testing the fix.
1826
1827 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1828
1829         * dbus/dbus-glib.h:
1830         * glib/dbus-gmain.h:
1831         (dbus_g_connection_open): new method for openning
1832         a connection to an arbitrary address in the glib bindings
1833
1834         * ChangeLog: checkin last entry which doesn't seem to be commited
1835
1836 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1837
1838         * tools/dbus-launch.c: Fixed sh syntax output
1839
1840 2006-02-13  Robert McQueen  <robot101@debian.org>
1841
1842         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1843         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1844         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1845         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1846         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1847         missing piece of the glib bindings jigsaw puzzle. This modifies
1848         the existing specialised types to have N type parameters (rather
1849         than the current 1 or 2 for arrays and dictionaries respectively).
1850         You can then use this to get a glib type to represent any arbitrary
1851         D-Bus struct type using dbus_g_type_get_struct. The only
1852         implementation of these types is with GValueArrays as before,
1853         but it's now possible to store these in arrays, emit them in
1854         signals, etc.
1855
1856 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1857
1858         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1859         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1860         <thiago.macieira at trolltech.com>
1861
1862 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1863
1864         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1865         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1866
1867 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1868
1869         * bus/connection.c (bus_connections_expect_reply): Make
1870         pending reply limit not common to all connections (Bug #5416)
1871         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1872
1873 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1874
1875         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1876
1877 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1878
1879         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1880         patch from Doug Goldstein <cardoe at gentoo.org>
1881
1882 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1883
1884         * mono/Arguments.cs: Fix a magic number in the mono bindings
1885         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1886
1887 2006-01-27  Robert McQueen  <robot101@debian.org>
1888
1889         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1890         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1891         when generating the client-side methods, instead of overloading
1892         CSymbol which broke everything horribly. My apologies.
1893
1894 2006-01-27  Robert McQueen  <robot101@debian.org>
1895
1896         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1897         by me and Rob Taylor to add a simple_free function to D-Bus map
1898         and collection types, which allows those types which can be freed
1899         with a GDestroyNotify (such as GHashTables and GArrays, but not
1900         GPtrArrays) to be stored as the values in hashtables.
1901
1902         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1903         Patch by Rob Taylor to add nested dicts to the glib tests to check
1904         the above code works, and appears not to leak when called repeatedly.
1905
1906 2006-01-27  Robert McQueen  <robot101@debian.org>
1907
1908         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1909         to free a D-Bus allocated string with dbus_free () instead of
1910         g_free ().
1911
1912 2006-01-27  Iain Holmes  <iain@openedhand.com>
1913
1914         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1915         method from being called multiple times.
1916
1917 2006-01-19  Robert McQueen  <robot101@debian.org>
1918
1919         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1920         <rob.taylor@collabora.co.uk> to add support for generating bindings
1921         to arrays that are represented as GPtrArrays rather than GArrays (ie
1922         size-variable things, such as strings, objects, structs, etc).
1923
1924 2006-01-05  Robert McQueen  <robot101@debian.org>
1925
1926         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1927         <ricardo.kekki@movial.fi> to make it possible to inherit from
1928         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1929         a private part, and moving the setting of the DBusGProxyManager into a
1930         connection property, allowing proper GObject construction.
1931
1932 2006-01-05  Robert McQueen  <robot101@debian.org>
1933
1934         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1935         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1936         annotations when generating glib client bindings.
1937
1938 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1939
1940         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1941
1942         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1943
1944 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1945
1946         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1947
1948 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1949
1950         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1951
1952 2005-12-19  Ross Burton  <ross@openedhand.com>
1953
1954         * doc/dbus-tutorial.xml:
1955         Document the Glib client-side bindings, and list all possible annotations.
1956
1957 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1958
1959         * dbus/bus.c (dbus_bus_release_name): Add documentation
1960
1961 2005-12-06  Robert McQueen  <robot101@debian.org>
1962
1963         * python/service.py: s/sucessful/successful/ so we're allocating to
1964         and reading from the same variable. Oops.
1965
1966 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1967
1968         * Released 0.60
1969
1970 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1971
1972         * test/qt/Makefile.am: build from srcdir
1973
1974         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1975         Note - this code is wrong and needs to be fixed by the Qt binding
1976         developers.  The flags should be treated as bitfields and not enums.
1977
1978         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1979
1980 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1981
1982         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1983           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1984           in production code
1985
1986 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1987
1988         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1989         method for getting messages off the bus in the absence of a
1990         mainloop.  This method is much like 
1991         dbus_connection_read_write_dispatch except it does not dispatch
1992         the messages to a registered filter function.  Instead it
1993         allows a developer to process messages by directly popping
1994         them off the bus.
1995
1996 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1997
1998         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1999         the parser to continue instead of returning error
2000         (bus_desktop_file_load): Do not free parser data when
2001         parse_section_start or parse_key_value fails because it was 
2002         already freed by parser_free (patch from Carlos Garcia Campos  
2003         <carlosgc at gnome.org>)
2004
2005 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2006
2007         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2008         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2009         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2010         test/test-segfault.c, test/test-utils.c,
2011         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2012         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2013         Various cleanup of dead code and compiler warnings (patch from
2014         Kjartan Maraas <kmaraas at gnome.org>) 
2015
2016 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2017
2018         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2019         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2020
2021 2005-11-27  Robert McQueen  <robot101@debian.org>
2022
2023         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2024         part of the preceding one. Oops. Merge patch by Johan Hedberg
2025         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2026         on big-endian platforms.
2027
2028         * test/python/test-client.py: Add some 16-bit integers to the test
2029         values.
2030
2031 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2032
2033         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2034         method return message for property getters
2035
2036 2005-11-27  Robert McQueen  <robot101@debian.org>
2037
2038         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2039         with type v of an instance of dbus.Variant(foo, type='x') caused
2040         it to be boxed twice before sending over the bus.
2041
2042         * python/dbus_bindings.pyx, python/service.py,
2043         test/python/test-client.py: Update the constants for the new
2044         request_name flags, and update comments/test cases now that queueing
2045         is the default action.
2046
2047 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2048
2049         * configure.in:
2050         - Change version to 0.60 for impending release
2051         - upped the sonames because of ABI and API breakage
2052
2053 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2054
2055         * configure.in: Add test/name-test/Makefile to the generated
2056         Makefile list
2057
2058         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2059         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2060         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2061         not to queue an ower if it can't be the primary owner
2062
2063         * bus/bus.h: Add new internal BusOwner struct
2064
2065         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2066         to bus_registry_ensure and don't set the prohibit_replacement flag
2067         since they are now set per BusOwner and not per name.
2068         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2069         that returns the list of connections in a name's connection queue
2070         
2071         * bus/services.c (struct BusService): remove prohibit_replacement field
2072         (struct BusOwner): new struct for keeping track of queued connections
2073         and their associated flags for the queue
2074         (struct BusRegistry): add a BusOwner memory pool
2075         (bus_registry_new): initialize the BusOwner memory pool
2076         (bus_registry_unref): free the BusOwner memory pool
2077         (_bus_service_find_owner_link): new internal method for
2078         searching the queue for a specific connection
2079         (bus_owner_set_flags): new method for adding setting the flags on a
2080         bus owner
2081         (bus_owner_new): new method that creates a BusOwner object from the
2082         pool and sets its flags
2083         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2084         (bus_registry_ensure): Add the flags parameter
2085         (bus_registry_acquire_service): Switch from using raw connections to
2086         using the BusOwner struct
2087         Add new state machine for dealing with the new set of flags
2088         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2089         cancel_ownership, free_ownership_cancel_data, 
2090         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2091         restore_ownership, free_ownership_restore_data, 
2092         add_restore_ownership_to_transaction): Switch to using BusOwner 
2093         instead of raw connections
2094         (bus_service_add_owner): Add flags parameter
2095         Switch to using BusOwner instead of raw connections
2096         Add state machine for dealing with the new set of flags
2097         (bus_service_swap_owner): Swaps the first and second owners in the
2098         queue.  Used to make sure proper signals are sent when a service looses 
2099         or gains primary ownership.  We never insert an owner at the top of the
2100         queue.  Instead we insert it in the second position and then swap.
2101         (bus_service_remove_owner): Remove the owner from the queue sending
2102         out the NameLost and NameOwnerChanged signals if the we were the 
2103         primary owner
2104         (bus_service_get_primary_owners_connection): New method that extracts
2105         the connection from the primary owner
2106         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2107         connection
2108         (bus_service_get_allow_replacement): Changed from the old 
2109         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2110         primary owner and returns if it can be replaced or not
2111         (bus_service_set_prohibit_replacement): removed
2112         (bus_service_has_owner): returns TRUE if and owner with
2113         the specified connection exists in the queue
2114         
2115         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2116         method that only compiles if tests are enabled.  Allows us to get the 
2117         unique name of a connection so we can check it against the queue when
2118         doing regression tests
2119
2120         * bus/activation.c (bus_activation_send_pending_auto_activate),
2121         bus/dispatch.c (bus_dispatch),  
2122         bus/driver.c (bus_driver_handle_get_service_owner, 
2123         bus_driver_handle_get_connection_unix_user, 
2124         bus_driver_handle_get_connection_unix_process_id,
2125         bus_driver_handle_get_connection_selinux_security_context),
2126         bus/signals.c (connection_is_primary_owner): 
2127         use bus_service_get_primary_owners_connection instead of
2128         bus_service_get_primary_owner
2129
2130         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2131         _dbus_listen_unix_socket): Calculate the length of the socket
2132         path and use that instead of using a fixed length which was
2133         causing socket names to contain many trailing Nul bytes.
2134
2135         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2136         (dbus_g_method_get_sender): New method for extracting the sender 
2137         from a DBusGMethodInvocation
2138         (dbus_g_method_return_get_reply): changed name to 
2139         dbus_g_method_get_reply
2140         (dbus_g_method_return_send_reply): changed name to
2141         dbus_g_method_send reply
2142
2143         * doc/dbus-specification.xml: New docs that describe how the new
2144         queueing system works and talks about the changes to the how
2145         we specify socket names
2146
2147         * glib/examples/example-service.c, 
2148         glib/examples/example-signal-emitter.c,
2149         glib/examples/statemachine/statemachine-server.c:
2150         Changed the RequestName flags to the new system
2151
2152         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2153         regression test suite for testing various states of the new
2154         queueing system
2155         
2156 2005-11-15  Robert McQueen  <robot101@debian.org>
2157
2158         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2159         Taylor to add two methods, dbus_g_method_return_get_reply and
2160         dbus_g_method_return_send_reply, to allow you to get the reply
2161         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2162         and send it. The GLib bindings can't marshal a return value of
2163         something like a(s) if the array is empty - ultimately they should be
2164         made to heed the signature of the out arguments as the Python bindings
2165         now can, but this is a workable interim solution which might have
2166         other applications.
2167
2168 2005-11-15  Robert McQueen  <robot101@debian.org>
2169
2170         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2171         method to org.freedesktop.DBus to release a bus name or give up
2172         waiting in the queue for it.
2173
2174         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2175         dbus_bus_release_name method to send the ReleaseName method calls.
2176         Add constants for the return values to dbus/dbus-shared.h.
2177
2178         * doc/dbus-specification.xml: Document the new ReleaseName method
2179         in the specification.
2180
2181         * python/dbus_bindings.pyx: Add a low-level python binding for the
2182         release name method.
2183
2184         * python/exceptions.py, python/service.py: Make freeing BusName
2185         objects release the name. Add a NameExistsException, and fix a
2186         bug with creating UnknownMethodException.
2187
2188         * test/python/test-client.py: Add tests for freeing BusName
2189         objects causing names to be released.
2190
2191 2005-11-14  Robert McQueen  <robot101@debian.org>
2192
2193         * python/service.py: Include the traceback in the error reply when we
2194         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2195
2196 2005-11-14  David Zeuthen  <davidz@redhat.com>
2197
2198         Patch from Timo Hoenig <thoenig@suse.de>.
2199
2200         * bus/bus.c: I've recently investigated why the automatic reload
2201         of configuration files does not work as expected.
2202
2203         Currently, reloading configuration files does only work when
2204         running dbus-daemon with --nodaemon.  If we are running as daemon
2205         we're hitting a dnotify bug once we fork the process.
2206
2207         We're initializing the dnotify fds before calling fork().  Once
2208         the child process forked it does still have the fds (and they
2209         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2210         getting SIGIO as changes are made to the configuration files.
2211
2212         The attached patch moves the initialization of the dnotify fds to
2213         process_config_postinit().  This is safe for all current code
2214         paths and solves the dnotify disfunction.  If we're running
2215         dbus-daemon as daemon the fds for dnotify are now being
2216         initialized after fork() for the child process.
2217
2218         * configure.in: The current configure.in check for dnotify probes
2219         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2220         match for 'xlinux', too. Additionally I have adapted the configure
2221         option's style to match with the others.
2222
2223 2005-11-14  Robert McQueen  <robot101@debian.org>
2224
2225         * python/decorators.py, python/service.py: Add a new argument to the
2226         dbus.service.method decorator called sender_keyword, which if set,
2227         specifies the name of an argument which will be provided the bus
2228         name of the method caller.
2229
2230         * test/python/test-client.py, test/python/test-service.py: Add a
2231         method and test to check the sender_keyword functionality.
2232
2233 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2234
2235         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2236         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2237         Simons <sjoerd at luon.net>)
2238
2239         * AUTHORS: Add Robert McQueen for his work on the Python
2240         Bindings and other parts of D-Bus
2241
2242 2005-11-07  Robert McQueen  <robot101@debian.org>
2243
2244         * python/decorators.py: Change emit_signal function to use the
2245         signature annotation of the signal when marhsalling the arguments from
2246         the service. Fix a bug where the code checking signature length
2247         against argument length referenced the wrong variable.
2248
2249         * python/introspect_parser.py: Avoid adding the type signature of
2250         signal arguments to any methods which occur after them in the
2251         introspection data (!) by making the parser a little more careful
2252         about its current state.
2253
2254         * python/service.py: Remove debug prints from last commit (again :D).
2255
2256         * test/python/test-client.py, test/python/test-service.py: Add test
2257         signals with signature decorators to test the strict marshalling code
2258         gives errors at the right time. Could do with checking the signals
2259         actually get emitted too, given that the test does nothing with
2260         signals at the moment...
2261
2262 2005-11-07  Robert McQueen  <robot101@debian.org>
2263
2264         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2265         instances to stop madness of creating new instances representing
2266         the same bus connection all the time, rendering any tracking of
2267         match rules and bus names quite meaningless. Caught a bug where
2268         the private argument to SessionBus() and friends was being passed
2269         in as use_default_mainloop by mistake. Still some problems with
2270         multiple dbus_binding.Connection instances representing the same
2271         low-level connection (eg when you use both SessionBus() and
2272         StarterBus() in same process), but it's a lot better now than it
2273         was.
2274
2275         * python/dbus_bindings.pyx: Add constants with the return values
2276         for bus_request_name().
2277
2278         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2279         and retrieve the same instances for the same name, so deletion can be
2280         done with refcounting. Also now throws some kind of error if you
2281         don't actually get the name you requested, unlike previously...
2282
2283         * test/python/test-client.py: Add tests for instance caching of buses
2284         and bus name objects.
2285
2286 2005-11-04  Robert McQueen  <robot101@debian.org>
2287
2288         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2289         marshalling of boolean values. Add some booleans to the values in
2290         the test client.
2291
2292         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2293         argument to the dbus.service.method decorator, which allows you to
2294         name arguments to take two callback functions for replying with
2295         return values or an exception.
2296
2297         * test/python/test-client.py, test/python/test-service.py: Add test
2298         case using asynchronous method reply functions, both return values and
2299         errors, and from within both the function itself and from a mainloop
2300         callback.
2301
2302         * python/decorators.py, python/service.py: Perform checking that the
2303         number of method/signal arguments matches the number of types in the
2304         signature at class loading time, not when you first introspect the
2305         class.
2306
2307         * python/service.py: Remove debug print left by the last commit.
2308
2309 2005-11-03  Robert McQueen  <robot101@debian.org>
2310
2311         * python/service.py: Heavy refactoring of method invocation, with
2312         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2313         in favour of a new _message_cb that uses seperate functions for
2314         looking up the method to call, marshalling the return values, and
2315         sending exceptions as errors, and is easier to follow as a
2316         consequence.  Fixes some corner cases about returning things that
2317         don't match your declared out_signature, allows exceptions to define
2318         _dbus_error_name and have it be sent over the bus as the error name,
2319         and paves the way for cool stuff like heeding the message no reply
2320         flag, asynchronous method implementations, informing the method of the
2321         sender, and including backtraces in the error messages.
2322
2323         * test/python/test-client.py: Catch and print exceptions thrown in the
2324         async callback tests, rather than passing them to the low-level
2325         bindings to be ignored in a noisy and frustrating manner.
2326
2327 2005-11-03  Robert McQueen  <robot101@debian.org>
2328
2329         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2330         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2331         tweak others to be consistent.
2332
2333         * test/python/test-client.py: Tweak output of testInheritance.
2334
2335 2005-10-29  Robert McQueen  <robot101@debian.org>
2336
2337         * python/service.py: Major changes to allow multiple inheritance
2338         from classes that define D-Bus interfaces:
2339         
2340          1. Create a new Interface class which is the parent class of
2341             Object, and make the ObjectType metaclass into InterfaceType.
2342         
2343          2. Patch written with Rob Taylor to replace use of method_vtable
2344             with code that walks the class's __MRO__ (method resolution order)
2345             to behave like Python does when invoking methods and allow
2346             overriding as you'd expect. Code is quite tricky because
2347             we have to find two methods, the one to invoke which has the
2348             right name and isn't decorated with the /wrong/ interface,
2349             and the one to pick up the signatures from which is decorated
2350             with the right interface.
2351         
2352             The same caveats apply as to normal multiple inheritance -
2353             this has undefined behaviour if you try and inherit from two
2354             classes that define a method with the same name but are
2355             decorated with different interfaces. You should decorate
2356             your overriding method with the interface you want.
2357         
2358          3. Replace grungy introspection XML generation code in the metaclass
2359             with dictionaries that cope correctly with multiple inheritance
2360             and the overriding of methods. This also uses the signature
2361             decorations to provide correct introspection data, including
2362             the debut appearance of the types of your return values. :D
2363
2364         * test/python/test-client.py, test/python/test-service.py: Add a test
2365         case to try invoking an method that overrides one inherited from a
2366         D-Bus interface class.
2367
2368 2005-10-29  Robert McQueen  <robot101@debian.org>
2369
2370         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2371         Add checking for the end of struct character when marshalling a
2372         struct in MessageIter.append_strict.
2373
2374         * python/examples/example-service.py,
2375         python/examples/gconf-proxy-service.py,
2376         python/examples/gconf-proxy-service2.py: Update to use gobject
2377         mainloop directly rather than appearing to depend on gtk.
2378
2379         * python/test/test-client.py, python/test/test-server.py: Remove
2380         obsolete and broken test scripts for old bindings. We have up to date
2381         and working tests in test/python/.
2382
2383 2005-10-29  Robert McQueen  <robot101@debian.org>
2384
2385         * python/decorators.py: Add optional arguments to the method and
2386         signal decorators to allow you to specify the signature of arguments
2387         and return values. Preserve the doc strings of signal functions in the
2388         decorated version, for pydoc and friends.
2389
2390         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2391         parse_signature_block function with an iterable dbus.Signature()
2392         type. Fix a bug in MessageIter.append_strict where you could append
2393         anything by claiming it was a string.
2394
2395         * python/service.py: Use the out_signature decoration on methods to
2396         marshal return values, meaning you no longer require dbus.Array()
2397         or dbus.Dictionary() to indicate the type when returning empty
2398         arrays or dictionaries. Fix a bug where exceptions which are defined
2399         in __main__ are not turned into error replies.
2400
2401         * test/python/test-client.py, test/python/test-service.py: Add test
2402         for correct marshalling of return values according to out_signature.
2403         Fix a bug in the async call test where the error_handler is missing a
2404         self argument.
2405
2406 2005-10-29  Robert McQueen  <robot101@debian.org>
2407
2408         * glib/Makefile.am, glib/examples/Makefile.am,
2409         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2410         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2411
2412         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2413
2414         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2415         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2416         the command line.
2417
2418 2005-10-27  Ross Burton  <ross@openedhand.com>
2419
2420         * dbus/dbus-marshal-header.c:
2421         Remove dead code.
2422
2423         * glib/dbus-gobject.c:
2424         Stop compiler warning.
2425
2426 2005-10-25  Ross Burton  <ross@openedhand.com>
2427
2428         * dbus/dbus-auth.c:
2429         * dbus/dbus-server-unix.c:
2430         * dbus/dbus-transport-unix.c:
2431         * glib/dbus-gmain.c:
2432         * glib/dbus-gobject.c:
2433         Add some const keywords.
2434
2435 2005-10-25  Ross Burton  <ross@openedhand.com>
2436
2437         * doc/dbus-specification.xml:
2438         Document the NoReply annotation.
2439
2440         * glib/dbus-binding-tool-glib.h:
2441         * glib/dbus-binding-tool-glib.c:
2442         Respect the NoReply annotation.
2443
2444 2005-10-24  Robert McQueen <robot101@debian.org>
2445
2446         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2447         derive from unicode instead of str, and encode/decode UTF-8 when
2448         marshalling/unmarshalling bus messages
2449
2450         * python/introspect_parser.py: encode introspection data as UTF-8
2451         before passing the buffer into libxml2
2452
2453         * test/python/test-client.py: add unicode test strings
2454
2455         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2456         ignore generated python test files
2457
2458 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2459
2460         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2461         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2462         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2463
2464         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2465         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2466         when constructing struct signatures
2467
2468         * python/_dbus.py (Bus): handle private connections using the
2469         private keyword in the constructor. defaults to private=False
2470         (Bus::close): new method to close a connection to the bus
2471
2472         * python/dbus_bindings.pyx (Connection::close): renamed method
2473         was previously called disconnect
2474         (bus_get): now supports getting a private connection
2475
2476         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2477         keyword is set to True.  if it is, execute the method without waiting
2478         for a reply
2479         (ProxyObject::_introspect_execute_queue): new method for executing
2480         all the pending methods that were waiting for the introspect to
2481         finish.  this is called when introspect either succeeds or fails
2482         (ProxyObject::_introspect_error_handler): call queued methods
2483
2484 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2485
2486         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2487         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2488
2489         * python/service.py (Object::_message_cb): handle exceptions correctly
2490         by sending them over the wire to the calling app.  This makes sure
2491         the client returns immediately instead of waiting the 15 seconds to
2492         timeout.
2493
2494         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2495         Add a test to benchmark how long it takes to introspect a service and 
2496         call a method which returns a large element (pretty fast)
2497
2498         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2499         method which pushes a lot of data
2500
2501 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2502
2503         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2504         reclaim memory outside of the loop and use del istead of just setting
2505         the key to None
2506
2507 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2508
2509         * python/service.py (ObjectType::_reflect_on_signal): Always close
2510         signal tag even when there are no arguments
2511
2512 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2513
2514         * configure.in: Set mono, mono-docs and Qt3 to default
2515         to no instead of auto when building.  These bindings do not
2516         have full time maintainers and will not be supported for the
2517         1.0 release.
2518
2519 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2520
2521         patches from Michael Krivoruchko <misha at sun.com>: 
2522         
2523         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2524         _dbus_connection_message_sent, 
2525         _dbus_connection_send_preallocated_unlocked_no_update, 
2526         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2527         is NULL when calling _dbus_verbose
2528
2529         * configure.in: check for functions getpeerucred and getpeereid
2530
2531         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2532         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2533         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2534         Patch was only tested on Solaris 10 x86 so it might be issues
2535         with other platforms (i.e. BSDs and MacOSX)
2536         
2537
2538 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2539
2540         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2541         instead of marshal basic so we can handle recursive types in a variant
2542
2543         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2544         in variants
2545
2546         * test/glib/test-service-glib.c, test-service-glib.xml
2547         (my_object_echo_variant [EchoVariant], 
2548         my_object_process_variant_of_array_of_ints123
2549         [ProcessVariantOfArrayOfInts123]): 
2550         Add two test methods
2551
2552         * python/introspect_parser.py: New module for parsing introspect
2553         data.
2554
2555         * python/dbus_bindings.pyx:
2556         (various places): when throwing errors fix to use errormsg instead 
2557         of message local variable because Pyrex can get confused with other 
2558         message variables (initial patch by Robert McQueen 
2559         <robert.mcqueen at collabora.co.uk>)
2560         (MessageIter::parse_signature_block): new method for getting the next
2561         block in a signiture.
2562         (MessageIter::append_strict): new method for appending values strictly
2563         using the passed in signature instead of guessing at the type
2564         (MessageItter:: append_dict, append_struct, append_array): use 
2565         signatures to marshal children if the signature is available
2566         
2567         * python/exceptions.py (IntrospectionParserException): new exception
2568
2569         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2570         introspected signatures if available, else we fall back to the
2571         old way of doing things.
2572         (ProxyObject::_introspect_reply_handler ): parse introspection data
2573         
2574         * python/service.py (ObjectType::_reflect_on_method): Properly
2575         terminate <method> if there are no args in the reflection data
2576
2577         * test/python/test-client.py: add tests for talking with the GLib
2578         test server.  This gives us better coverage for introspection since
2579         python to python will always generate arguments as variants.  It also
2580         allows us to test the robustness of the GLib bindings and interlanguage
2581         communications.
2582
2583         
2584 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2585
2586         * bus/driver.c (bus_driver_handle_introspect): Add signals
2587         to the introspect data. (patch from Daniel P. Berrange 
2588         <dan at berrange.com>)
2589
2590         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2591         
2592         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2593         _dbus_connection_run_builtin_filters): Changed these to
2594         be unlock_no_update functions and call 
2595         _dbus_connection_send_unlocked_no_update instead of
2596         dbus_connection_send to avoid locking errors.
2597         
2598         * doc/TODO: Removed the make Ping test TODO
2599         
2600 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2601
2602         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2603         We now copy the message from a DBusError and then free 
2604         the error object befor throwing the error
2605
2606         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2607         DBusBindingOutputMode enum which was causing a warning.
2608         #include <time.h> so using time_t is explicitly defined
2609
2610 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2611
2612         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2613         - dbus/dbus-bus.c
2614         (internal_bus_get): new method that take over the heavy lifting
2615         of dbus_bus_get and adds the ability to get a private connection
2616         to the bus
2617         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2618         interface as in previous versions
2619         (dbus_bus_get_private): new method that is a wrapper to 
2620         internal_bus_get to get a private connection to the bus
2621
2622         - dbus/dbus-bus.h
2623         (dbus_bus_get_private): add as a public libdbus interface
2624
2625         - dbus-1.pc.in: output system_bus_default_address and 
2626         sysconfdir variables so apps can use them when compiling
2627
2628 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2629         * dbus/qt: New Qt bindings
2630
2631 2005-09-12  Waldo Bastian  <bastian@kde.org>
2632
2633         * dbus/dbus-marshal-validate.c,
2634         doc/dbus-specification.xml, test/Makefile.am,
2635         test/test-names.c: allow hyphens in bus names.
2636
2637 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2638
2639         * test/data/auth/fallback.auth-script: we don't
2640         retry the EXTERNAL method when we know its going
2641         to fail anymore.
2642
2643 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2644
2645         * dbus/dbus-connection-internal.h: rename
2646         (add|remove|toggle)_(watch|timeout) to unlocked()
2647         
2648         * dbus/dbus-connection.c: ditto.
2649         
2650         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2651         Update some callers for the renaming.
2652
2653 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2654
2655         * dbus/dbus-auth.c: (record_mechanisms): don't
2656         retry the first auth mechanism because we know
2657         we're just going to get rejected again.
2658         
2659         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2660         Fix thinko ... and what a nasty little bugger to
2661         track down you were ...
2662
2663         * dbus/dbus-connection.c:
2664         (_dbus_connection_add_watch),
2665         (_dbus_connection_remove_watch): add note about
2666         these needing the connection to be locked.
2667         (_dbus_connection_get_dispatch_status_unlocked):
2668         set status to DATA_REMAINS when we queue the
2669         disconnected message.
2670         
2671         * bus/dispatch.c:
2672         (bus_dispatch): fix warning.
2673         (check_existent_service_no_auto_start):
2674         Expect ChildSignaled error too.
2675         (check_existent_hello_from_self): fix another
2676         couple of warnings.
2677         
2678 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2679
2680         Patches from James Willcox <snorp@snorp.net>
2681
2682         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2683
2684         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2685         support array "out" parameters.
2686
2687         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2688         for 16-bit int support.
2689
2690 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2691
2692         * Released 0.50
2693
2694         * Patch from Steve Grubb:
2695         - bus/activation.c (bus_activation_service_reload_test): clean up
2696         some indentation
2697         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2698         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2699         buffer overflows in the test suite.  This is non critical because
2700         it can not be exploited and this code is only run when doing a 
2701         make check.
2702
2703         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2704         - configure.in: Don't check and link against kdecore, only qt headers
2705         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2706         - gcj/org/freedesktop/dbus/Makefile.am:
2707         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2708         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2709         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2710         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2711         - tools/Makefile.am: Add platform extentions to binaries 
2712         (i.e. .exe on windows)
2713
2714         * configure.in: 
2715         - Make it so if no suitable version of python is found we only 
2716         disable building python instead of exiting the configure script
2717         - Require version 2.4 of glib for glib bindings
2718         - Up version to 0.50
2719
2720         * python/__init__.py: Sync version with libdbus to (0,50,0)
2721         
2722 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2723
2724         * dbus/dbus-object-tree.c (find_subtree_recurse):
2725         a couple of optimizations (bug #710):
2726         - do a binary search in the tree
2727         - insert a new child at the right place directly, no need for
2728           qsort anymore
2729         - do the "double alloc" thing when allocating children
2730
2731 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2732
2733         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2734
2735         * python/dbus_bindings.pyx: Memory management foo
2736         (global): remove hacky _user_data_references global list
2737         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2738         tuples. Unref user_data
2739         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2740         (Connection::__del__): Remove and replace with __dealloc__ method
2741         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2742         to keep tuple from being deallocated instead of the global var hack
2743         (Connection::register_object_path): Stuff user_data into a tuple.
2744         Use Py_INCREF to keep tuple from being deallocated instead of the 
2745         global var hack
2746         (Connection::register_fallback): Stuff user_data into a tuple.
2747         Use Py_INCREF to keep tuple from being deallocated instead of the 
2748         global var hack
2749         (GIL_safe_pending_call_notification): Don't unref the message
2750         because it gets unreffed when going out of scope.  Py_XDECREF
2751         the user_data
2752         (PendingCall::__del__): Remove and replace with __dealloc__ method
2753         (PendingCall::set_notify): ref the pending call because we will
2754         need it to stick around for when the notify callback gets called
2755         (Message::__del__): Remove and replace with __dealloc__ method
2756
2757         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2758         gthreads_init to match up with the dbus call
2759
2760         * python/glib.py (init_threads): Changed to threads_init to match
2761         up with gobject.threads_init().  init_threads is kept for backwards
2762         compat but will most likely be deprecated in the future
2763
2764         * test/python/test-client.py: 
2765         - revamp to use Python's unittest functionality
2766         - add async call tests
2767         - setup threads in glib and dbus so we make sure locks are working
2768         
2769 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2770
2771         * python/dbus_bindings.pyx 
2772         (_pending_call_notification, cunregister_function_handler, 
2773         cmessage_function_handler): All callback functions have been rearranged 
2774         to workaround a bug in Pyrex when working with the GIL which is Python's 
2775         global lock when dealing with threads.  They have been split into
2776         a wrapper function (which assumes the name of the old function) and
2777         a _GIL_safe_<function name> function which contains the functionality
2778         of the old function.  This ensures that Pyrex does not write code
2779         the lock is released.
2780         
2781
2782 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2783
2784         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2785         GIL global lock when calling back into Python
2786
2787 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2788
2789         * Release 0.36.2
2790
2791         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2792
2793         * bus/policy.c (bus_policy_allow_user): change default "user is
2794         allowed" to be "user has same uid as the bus itself"; any
2795         allow/deny rules will override.
2796
2797         * bus/session.conf.in: don't allow all users, since now by default
2798         the user that ran the bus can connect.
2799
2800 2005-08-26  Colin Walters  <walters@verbum.org>
2801
2802         * tools/dbus-print-message.c (print_message): Flush stdout
2803         after printing a message, so that redirecting to a file, then
2804         hitting Ctrl-C works.
2805
2806 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2807
2808         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2809         (EmptyMessage): new class that subclasses Message.  This is a workaround
2810         to a Pyrex bug that fails to call __del__ when the Message object goes out
2811         of scope.  For some reason subclassing Message fixes this bug
2812         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2813         - s/Message(_create=0)/EmptyMessage everywhere else
2814         
2815         * test/python/test-{server|client}.py: add the python/.libs directory
2816         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2817         get picked up from the system
2818
2819 2005-08-25  Colin Walters  <walters@verbum.org>
2820
2821         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2822         to Ryan Lortie for the suggestion.
2823
2824 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2825
2826         * test/python: Add python regression test
2827
2828         * configure.in: Add test/python/Makefile
2829
2830         * test/Makefile.am: Add the python directory to SUBDIRS
2831
2832 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2833
2834         * Release 0.36.1
2835
2836         * python/_dbus.py: 
2837         (Interface::connect_to_signal): propigate keywords for match on args
2838         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2839
2840         * python/proxies.py (ProxyObject::connect_to_signal):
2841         propigate keywords for match on args
2842
2843         * Makefile.am: point everything to pyexecdir since python borks
2844         on multilib
2845
2846 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2847
2848         * Release 0.36
2849
2850 2005-08-23  Colin Walters  <walters@verbum.org>
2851
2852         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2853
2854 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2855
2856         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2857         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2858         of defining DBusConnection ourselves.
2859
2860 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2861
2862         * python/dbus.pth: New path file to fix up problems when installing
2863         c libraries to lib64 and python files to lib.
2864
2865         * python/Makefile.am: install dbus.pth in the correct spot
2866
2867 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2868         * ChangeLog: clean up my last entry a bit
2869
2870         * doc/introspect.xsl: New stylesheet for converting introspection data
2871         into browser renderable xhtml. Contributed by Lennart Poettering.
2872
2873         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2874         Poettering.
2875
2876         * doc/dbus-tutorial.xml: 
2877         - Add Colin Walter to the Authors section for authoring the GLib
2878         section
2879         - Add descriptions of the new signature and type functionality
2880         in the Python complex type mapping section
2881         - Add a sidenote on the new args matching functionality in 
2882         the Python bindings
2883         - Fixed up some of the examples to use the gobject.MainLoop
2884         instead of gtk.main
2885         
2886         * python/_dbus.py:
2887         (Bus::_create_args_dict): New. Converts a hash of arg matches
2888         to a more useable format
2889         (Bus::add_signal_receiver): add a **keywords parameter for catching
2890         arg match parameters
2891         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2892         arg match parameters
2893         
2894         * python/matchrules.py:
2895         (MatchTree::exec_matches): Check for arg matches
2896         (SignalMatchRule::add_args_match): New method
2897         (SignalMatchRule::execute): Added args_list parameter as an optimization
2898         so we don't have to marshal the args more than once
2899         (SignalMatchRule::match_args_from_list): New method that checks to see
2900         if the rule's arg matches match an argument list.  Only arguments
2901         set in the rule are checked.
2902         (SignalMatchRule::match_args_from_rule): New method that checks to see
2903         if the rule's arg matches match another rule's.  All args have to match
2904         in order for this method to return true.  If either rule has more args
2905         then it is not a match.
2906         (SignalMatchRule::is_match): Add args match
2907         (SignalMatchRule::repr): Add args to the final output if they exist
2908
2909 2005-08-17  Ross Burton  <ross@burtonini.com>
2910
2911         * glib/dbus-gproxy.c:
2912         (dbus_g_proxy_call_no_reply): unref the message once sent.
2913         (dbus_g_proxy_call): protect against NULL proxy.
2914
2915 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2916
2917         * python/__init__.py: Version updated (0, 43, 0)
2918         
2919         * python/dbus_bindings.pyx: 
2920         - Fixed type objects to have self passed into __init__
2921         - Added the Variant type
2922         - Add the ability to specify types or signatures for Array, Variant 
2923         and Dictionary
2924         (Connection::send_with_reply_handlers): return a PendingCall object
2925         (_pending_call_notification): handle the case when an error is returned 
2926         without an error message in the body
2927         (MessageIter::get_boolean): return True or False instead of an integer
2928         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2929         and add checks for objects with embeded signatures or types (Array, 
2930         Variant and Dictionary)
2931         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2932         (MessageIter::append_dict): handle embeded types or signatures
2933         (MessageIter::append_array): handle embeded types or signatures
2934         (MessageIter::append_variant): new method
2935         
2936         * python/proxies.py:
2937         (DeferedMethod): New. Dummy executable object used when queuing calls 
2938         blocking on introspection data
2939         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2940         or shorter timeouts for method calls
2941         (ProxyObject): Add first pass at an introspection state machine
2942         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2943         introspection. 
2944         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2945         the usual mechanisms for sending messages.  This is to avoid a deadlock
2946         where the Intospect call would be queued waiting for the Introspect 
2947         call to finish ;-)
2948         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2949         when introspection returns with no error
2950         (ProxyObject::_introspect_error_handler): New.  This method is called 
2951         when introspection encounters an error
2952         (ProxyObject::__getattr__): Code to handle different introspection 
2953         states.  Queue async calls or block blocking calls if we are 
2954         introspecting.  Pass through as normal if we are not or are done with 
2955         introspecting.
2956         
2957         * python/service.py: Import signal and method from decorators.py
2958
2959         * python/types.py: Add Variant type
2960
2961 2005-08-16  Colin Walters  <walters@verbum.org>
2962
2963         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2964         DBusError message is NULL.
2965
2966 2005-08-09  Havoc Pennington  <hp@redhat.com>
2967
2968         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2969         malloc'd copy of the name parameter
2970
2971 2005-08-09  Havoc Pennington  <hp@redhat.com>
2972
2973         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2974         warning if the reply serial is set to 0
2975
2976 2005-08-04  Colin Walters  <walters@verbum.org>
2977
2978         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2979         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2980         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2981         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2982         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2983         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2984         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2985         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2986         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2987         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2988         
2989         Prefix name with _ to ensure they're not exported.  All callers
2990         updated.
2991
2992         * glib/dbus-gvalue.c (typecode_to_gtype)
2993         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2994         (signature_iter_to_g_type_dict)
2995         (signature_iter_to_g_type_array)
2996         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2997         (dbus_gtypes_from_arg_signature):
2998         Move to dbus-gsignature.c.
2999
3000         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3001         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3002         (dbus_binding_tool_output_glib_client): Ditto.
3003
3004         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3005         and dbus-gsignature.h
3006
3007         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3008         unused variable.
3009
3010 2005-08-03  Colin Walters  <walters@verbum.org>
3011
3012         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3013         catch any incompatible changes accidentally made.
3014
3015 2005-08-03  Havoc Pennington  <hp@redhat.com>
3016
3017         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3018         typo, from Julien Puydt
3019
3020         * bus/connection.c (bus_connection_disconnected): we were always
3021         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3022
3023 2005-08-01  Colin Walters  <walters@verbum.org>
3024
3025         Patch from Joe Markus Clarke:   
3026         
3027         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3028         use-after-free.
3029
3030 2005-08-01  Colin Walters  <walters@verbum.org>
3031         
3032         Patch from Joe Markus Clarke:   
3033         
3034         * tools/dbus-send.c (main): 
3035         
3036         Don't use C99 style initializers (bug #3933).
3037         
3038 2005-08-01  Colin Walters  <walters@verbum.org>
3039
3040         Patch from Joe Markus Clarke:   
3041
3042         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3043         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3044         * glib/dbus-gobject.c (write_interface):
3045
3046         Don't use C99 style initializers (bug #3933).
3047
3048 2005-07-31  Havoc Pennington  <hp@redhat.com>
3049
3050         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3051         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3052
3053 2005-07-30  Havoc Pennington  <hp@redhat.com>
3054
3055         * fix a bunch of Doxygen warnings and mistakes
3056
3057 2005-07-30  Havoc Pennington  <hp@redhat.com>
3058
3059         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3060         DBUS_BUILD_TESTS since it's now used in production code
3061
3062 2005-07-29  Havoc Pennington  <hp@redhat.com>
3063
3064         * test/glib/test-profile.c (write_junk): initialize the junk
3065         buffer so valgrind doesn't have a breakdown
3066
3067 2005-07-29  Havoc Pennington  <hp@redhat.com>
3068
3069         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3070         (match_rule_matches): remove unused arg
3071         (test_matching): add tests for match_rule_matches()
3072
3073         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3074         do arg0='foo' arg5='bar' in the match rules
3075         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3076
3077         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3078
3079 2005-07-29  Ross Burton  <ross@openedhand.com>
3080
3081         * dbus/dbus-connection.c:
3082         Don't create a DBusCondVar which is never used.
3083
3084 2005-07-27  Ross Burton  <ross@openedhand.com>
3085
3086         * dbus/dbus-message.c:
3087         Reduce the size of the maximum cached message to 10K.
3088
3089 2005-07-25  Ross Burton  <ross@openedhand.com>
3090
3091         * glib/dbus-gproxy.c:
3092         Remove matches when all proxies are unregistered.
3093
3094 2005-07-24  Colin Walters  <walters@verbum.org>
3095
3096         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3097         typedata; recursive arrays won't have it.
3098
3099         * test/glib/test-dbus-glib.c:
3100         * test/glib/test-service-glib.c:
3101         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3102         
3103 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3104
3105         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3106         proxies.py, service.py: Cleanup of code after running it through the
3107         pyflakes code checker mostly dealing with undefined names.  
3108         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3109
3110 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3111
3112         * NEWS: Update to 0.35.2
3113
3114 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3115
3116         * python/_dbus.py: Remove import of the dbus.services
3117         module as it no longer exists (patch from Dimitur Kirov)
3118
3119         * python/service.py (Object::__init__): Fixed typo
3120         s/name/bus_name (patch from Dimitur Kirov)
3121
3122         * python/examples/example-signal-emitter.py: import dbus.glib
3123         to get the main loop and use glib mainloop instead of gtk so
3124         X doesn't have to be running.
3125
3126         * python/examples/example-signal-recipient.py: import dbus.glib
3127         to get the main loop and use glib mainloop instead of gtk so
3128         X doesn't have to be running. Import the decorators module
3129         directly.
3130
3131         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3132         didn't pick up on but are needed to build
3133
3134         * configure.in: upped version to 0.35.2
3135
3136         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3137         added Colin Walters' SELinux API rename patch from head 
3138         s/unix sercurity context/selinux security context/
3139
3140 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3141
3142         * python/Makefile.am: dbus_binding.pxd.in should be included 
3143         in EXTRA_DIST not dbus_binding.pxd
3144         fix up $(srcdir) hopefully for the last time
3145
3146         * NEWS: Update to 0.35.1
3147
3148 2005-07-16  Colin Walters  <walters@verbum.org>
3149
3150         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3151         from bus_driver_handle_get_connection_unix_security_context.  Update for
3152         error usage.
3153         (message_handlers): Update for renames.
3154
3155         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3156         _dbus_string_init failure correctly.
3157         (bus_selinux_append_context): Convert SID to context.  Append it
3158         as a byte array.
3159         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3160         hasn't been called.
3161
3162         * bus/selinux.h: Update prototype.
3163
3164         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3165         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3166
3167 2005-07-15  Colin Walters  <walters@verbum.org>
3168
3169         * doc/TODO: Add note about convenience wrappers.
3170
3171 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3172
3173         * NEWS: Update to 0.35
3174
3175 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3176
3177         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3178         so distcheck doesn't fail
3179
3180         * glib/examples/Makefile.am: Add example-service.xml and 
3181         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3182
3183         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3184         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3185
3186         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3187         compiler looks in the right places during distcheck
3188
3189 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3190
3191         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3192         to fail
3193
3194 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3195
3196         * python/examples/example-service.py,
3197         python/examples/example-signal-emitter.py: Fixed up examples
3198         for API changes
3199
3200 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3201
3202         * python/__init__.py: Upped to version (0,42,0) because of
3203         the API change
3204
3205 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3206
3207         * ChangeLog: fix date in last entry
3208
3209         * configure.in, bus/system.conf.in: add the ability to configure 
3210         the system bus user at compiletime with the --with-dbus-user flag
3211         (patch from Kristof Vansant)
3212
3213 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3214
3215         * bus/dispatch.c, test/test-service.c: Add testcase
3216         for sending messages to oneself (TODO item).
3217
3218         * python/service.py (class Object): Swap ordering of bus_name 
3219         and object_path parameters to better support inheritance.
3220
3221         * doc/dbus-tutorial.xml: change Python docs to reflect change
3222         in parameter ordering and fix the inheritance section.
3223
3224         * doc/TODO: remove sending message to oneself TODO item
3225
3226 2005-07-15  Ross Burton  <ross@openedhand.com>
3227
3228         * glib/dbus-gproxy.c:
3229         Fix a leak when calling methods via the proxy.
3230
3231 2005-07-15  Colin Walters  <walters@verbum.org>
3232
3233         * bus/selinux.c (bus_selinux_append_context): Wrap in
3234         HAVE_SELINUX.
3235
3236 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3237
3238         * python/_dbus.py (Bus::remove_signal_receiver):
3239         don't add a callback to the match if none has been passed in
3240         
3241         * python/matchrules.py (SignalMatchTree::remove): if the rule
3242         being matched does not have a callback treat it as a wildcard
3243         fix matching logic
3244
3245         * doc/dbus-tutorial.xml: Add Python tutorial
3246
3247 2005-07-14  Colin Walters  <walters@verbum.org>
3248
3249         * bus/driver.c
3250         (bus_driver_handle_get_connection_unix_security_context): New function.
3251         (message_handlers): Add.
3252
3253         * bus/selinux.c (bus_selinux_append_context): New function; appends
3254         security context to message.
3255
3256         * bus/selinux.h: Prototype.
3257
3258         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3259
3260 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3261
3262         * bus/activation.c: clean up all tabs to be 8 spaces 
3263         (bus_activation_activate_service): make sure we clean up
3264         if activation fails
3265
3266         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3267         (check_shell_fail_service_auto_start): New function
3268         tests to make sure we get fail properly when trying to auto start a service
3269         with a faulty command line
3270         (check_shell_service_success_auto_start): New function tests to make sure
3271         auto started services get the arguments on the command line
3272
3273         * test/test-shell-service.c: Added service for testing auto-starting with 
3274         command line arguments
3275
3276         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3277         test/data/valid-service-files/debug-shell-echo-success.service.in:
3278         Added service files for testing auto-starting with command line arguments
3279
3280         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3281
3282 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3283
3284         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3285         
3286         * dbus/Makefile.am: added new files to build.
3287
3288         * bus/activation.c (bus_activation_activate_service): support
3289         activation commands with parameters.
3290
3291         * test/shell-test.c: added test program for the shell parsing
3292         code.
3293
3294 2005-07-13  David Zeuthen  <davidz@redhat.com>
3295
3296         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3297         64 bit signed and unsigned parameters
3298
3299 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3300
3301         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3302
3303         * python/service.py (class Name): renamed BusName to make it clearer
3304         what the object is for (a name on the bus)
3305
3306         * python/examples/example-service.py,
3307         python/examples/example-signal-emitter.py: change the Name object to
3308         BusName
3309
3310 2005-07-12  Colin Walters  <walters@verbum.org>
3311
3312         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3313
3314         * tools/dbus-launch.c: Include sys/select.h.
3315
3316 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3317         * python/dbus_bindings.pyx.in: removed
3318
3319         * python/dbus_bindings.pyx: Added.
3320         - Fixed some memleaks (patch from 
3321         Sean Meiners <sean.meiners@linspireinc.com>)
3322         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3323         own pxd file (Pyrex definition)
3324         - Broke out glib dependancies into its own pyx module
3325         
3326         * python/dbus_bindings.pdx: Added.
3327         - Defines C class Connection for exporting to other modules
3328
3329         * python/dbus_glib_bindings.pyx: Added.
3330         - New module to handle lowlevel dbus-glib mainloop integration
3331
3332         * python/glib.py: Added.
3333         - Registers the glib mainloop when you import this module
3334
3335         * python/services.py: Removed (renamed to service.py)
3336         
3337         * python/service.py: Added.
3338         - (class Server): renamed Name
3339
3340         * python/__init__.py: Bump ro version (0,41,0)
3341         -don't import the decorators or service module
3342         by default.  These now reside in the dbus.service namespace
3343
3344         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3345         setup function on creation 
3346
3347         * python/examples/example-service.py,
3348         python/examples/example-signal-emitter.py: update examples
3349
3350         * python/examples/gconf-proxy-service.py,
3351         python/examples/gconf-proxy-service2.py: TODO fix these up
3352
3353         * doc/TODO: Addition
3354         - Added a Python Bindings 1.0 section
3355         - added "Add match on args or match on details to match rules"
3356
3357
3358 2005-07-12  Colin Walters  <walters@verbum.org>
3359
3360         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3361         (statemachine-glue.h): 
3362         * glib/examples/Makefile.am (example-service-glue.h) 
3363         (example-signal-emitter-glue.h): 
3364         * glib/Makefile.am (dbus-glib-error-switch.h): 
3365         Add libtool --mode=execute so we use the built library instead
3366         of any installed one.
3367
3368 2005-07-11  Colin Walters  <walters@verbum.org>
3369
3370         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3371         (dbus_g_value_types_init): Remove assertion.
3372         (dbus_g_value_get_g_type, dbus_g_value_open)
3373         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3374         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3375         functions related to DBusGValue.  Now we marshal/demarshal
3376         structures as GValueArray.
3377         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3378         structures.
3379         (signature_iter_to_g_type_array): Don't call
3380         signature_iter_to_g_type_struct.
3381         (signature_iter_to_g_type_struct): Delete.
3382         (dbus_gvalue_to_signature): Delete.
3383         (dbus_gvalue_to_signature): New function with same name as other
3384         one; we can convert structures to signatures.
3385         (demarshal_valuearray): New function.
3386         (get_type_demarshaller): Use it.
3387         (demarshal_recurse): Delete.
3388         (marshal_proxy): New function.
3389         (marshal_map): Warn if we can't determine signature from type.
3390         (marshal_collection_ptrarray): Ditto.
3391         (marshal_collection_array): Ditto.
3392         (get_type_marshaller): Use marshal_valuearray.
3393         (marshal_recurse): Delete.
3394         (_dbus_gvalue_test): Add some tests.
3395
3396         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3397         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3398         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3399         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3400         (dbus_g_value_free): Remove prototypes.
3401
3402         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3403         G_TYPE_VALUE_ARRAY.
3404
3405         * glib/examples/example-service.c:
3406         * glib/examples/example-client.c: Implement GetTuple.
3407
3408         * test/glib/test-dbus-glib.c:
3409         * test/glib/test-service-glib.c:
3410         * test/glib/test-service-glib.xml: Add structure tests.
3411
3412 2005-07-10  Colin Walters  <walters@verbum.org>
3413
3414         * doc/TODO: Knock off some GLib items with this patch.
3415
3416         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3417         (_dbus_gvalue_signals_error): New functions.
3418
3419         * glib/dbus-gvalue-utils.h: Prototype them.
3420
3421         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3422         and change to not output const/retval flags for input args.  All
3423         callers updated.
3424         (invoke_object_method): Refactor to handle return values.  Add
3425         some more comments in various places.  Remove debug g_print.
3426
3427         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3428
3429         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3430         Handle G_TYPE_NONE.
3431         (compute_gsignature): New function; refactored from code from
3432         compute_marshaller and compute_marshaller_name.  Enhance to
3433         handle return values and async ops more cleanly.  Update for
3434         async ops returning NONE instead of BOOLEAN.
3435         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3436         and output appropriate string.
3437         (generate_glue): Handle return value annotation.  Also don't dump
3438         constness flag for input arguments.
3439
3440         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3441         files shared between installed library and utilities.
3442         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3443         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3444         binding tool can access gtype utility functions.
3445
3446         * test/glib/test-service-glib.c: 
3447         * test/glib/test-service-glib.xml: 
3448         * test/glib/test-dbus-glib.c: Add some tests for return values.
3449
3450 2005-07-09  Colin Walters  <walters@verbum.org>
3451
3452         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3453         argument if available, not method.
3454
3455         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3456         (invoke_object_method): First, remove some redundant
3457         GValues (object_value, error_value) in favor of working on
3458         array directly.  Second, rework constness to be less buggy.
3459         Now we iterate directly over the argument metadata instead
3460         of parallel iterating over output signature and metadata.
3461
3462         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3463
3464         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3465         annotation on input args.
3466         
3467 2005-07-09  Colin Walters  <walters@verbum.org>
3468
3469         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3470         Define.
3471
3472         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3473         annotation.
3474
3475         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3476         (method_dir_signature_from_object_info): Handle arg_iterate change.
3477         (write_interface): Ditto.
3478         (lookup_object_info): Don't barf if format_version is > 0.
3479         (invoke_object_method): Handle arg constness.
3480
3481         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3482         (arg_info_new): Create.
3483         (arg_info_unref): Destroy.
3484         (arg_info_get_annotations, arg_info_get_annotation) 
3485         (arg_info_add_annotation): New functions.
3486
3487         * glib/dbus-gidl.h: Prototype them.
3488
3489         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3490         args, disallow them in properties.
3491         (parse_annotation): Handle arg annotations.
3492
3493         * test/glib/test-service-glib.xml: 
3494         * test/glib/test-service-glib.c: Update to make some methods
3495         const.
3496
3497 2005-07-08  Colin Walters  <walters@verbum.org>
3498
3499         * test/glib/test-service-glib.xml: 
3500         * test/glib/test-service-glib.c:
3501         * test/glib/test-dbus-glib.c: Test a{sv}.
3502
3503         * glib/examples/statemachine/statemachine.c:
3504         * glib/examples/statemachine/statemachine-server.c:
3505         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3506         add progress bar, etc.
3507
3508         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3509         needed anymore due to generic array/map marshalling.
3510         (dbus_g_value_types_init): Don't register basic arrays or the
3511         string/string hash.
3512         (dbus_gtype_from_signature_iter): Don't try to recurse into
3513         variants.
3514         (dbus_gtype_to_signature): Check collection/map before type
3515         metadata.
3516         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3517         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3518         generic map creation/append functions instead of hash table
3519         specifically.
3520         (get_type_demarshaller): Handle maps.
3521         (demarshal_collection): Dispatch on collection type to either
3522         demarshal_collection_ptrarray or demarshal_collection_array.
3523         (get_type_marshaller): Handle maps.
3524         (marshal_collection): Dispatch collection type to either
3525         marshal_collection_ptrarray or marshal_collection_array.
3526         (_dbus_gvalue_test): New test.
3527
3528         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3529         (hash_free_from_gtype): Use it to free GValues.
3530         (hashtable_append): New function.
3531         (ptrarray_append): Fix prototype.
3532         (slist_append): Ditto.
3533         (_dbus_gvalue_utils_test): Extend tests.
3534
3535         * glib/dbus-gtype-specialized.c
3536         (dbus_g_type_specialized_init_append): Renamed from
3537         dbus_g_type_specialized_collection_init_append.  Remove const from
3538         value, since we steal it.
3539         (dbus_g_type_specialized_map_append): New function.
3540
3541         * glib/dbus-gtype-specialized.h: Update prototypes.
3542         Add DBusGTypeSpecializedMapAppendFunc.
3543
3544         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3545         _dbus_gvalue_test.
3546         
3547         * glib/dbus-gtest.h: Prototype it.
3548
3549 2005-07-08  Ross Burton  <ross@openedhand.com>
3550
3551         * dbus/dbus-glib.h:
3552         Add DBysGAsyncData for the async bindings.
3553
3554         * glib/dbus-binding-tool-glib.c:
3555         Re-enable the async bindings.
3556
3557         * test/glib/test-dbus-glib.c:
3558         Add a test for the generated async bindings.
3559
3560 2005-07-08  Colin Walters  <walters@verbum.org>
3561
3562         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3563         connection concept.
3564         
3565 2005-07-08  Colin Walters  <walters@verbum.org>
3566         
3567         * tools/Makefile.am: Kill of print-introspect in favor of using
3568         dbus-send --print-reply=literal.
3569
3570         * test/glib/test-service-glib.xml: 
3571         * test/glib/test-service-glib.c (my_object_get_objs): New test
3572         for "ao".
3573
3574         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3575         (main): Test GetObjs.
3576
3577         * glib/examples/statemachine/Makefile.am:
3578         * glib/examples/statemachine/sm-marshal.list:
3579         * glib/examples/statemachine/statemachine-client.c:
3580         * glib/examples/statemachine/statemachine-server.c:
3581         * glib/examples/statemachine/statemachine-server.xml:
3582         * glib/examples/statemachine/statemachine.c:
3583         * glib/examples/statemachine/statemachine.h:
3584         * glib/examples/statemachine/statemachine.xml:
3585
3586         New example.
3587
3588         * glib/examples/example-service.c (main): Move invocation
3589         of dbus_g_object_type_install_info earlier, to emphasize it
3590         should only be done once.
3591
3592         * glib/examples/example-signal-emitter.c (main): Ditto.
3593
3594         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3595
3596         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3597         (dbus_gvalue_marshal): Update prototypes.
3598
3599         * glib/dbus-gvalue.c: Update all marshalling functions to take
3600         const GValue instead of GValue.
3601         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3602         types.
3603         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3604         change.
3605         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3606         Return a newly-allocated string.
3607         (demarshal_proxy, demarshal_object_path, demarshal_object)
3608         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3609         we get the wrong types from message.
3610         (get_type_demarshaller): New function, extracted from
3611         dbus_gvalue_demarshal.
3612         (demarshal_collection): New function, demarshals generic
3613         collection.
3614         (dbus_gvalue_demarshal): Just invoke result of
3615         get_type_demarshaller.  Throw error if we don't have one.
3616         (marshal_garray_basic): Abort on OOM.
3617         (get_type_marshaller): New function, extracted from
3618         dbus_gvalue_marshal.
3619         (collection_marshal_iterator, marshal_collection): New functions;
3620         implements generic marshalling for an iteratable specialized
3621         collection.
3622         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3623
3624         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3625         G_TYPE_STRING.
3626         (ptrarray_value_from_gvalue): Ditto.
3627         (ptrarray_append, ptrarray_free): New functions.
3628         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3629         (slist_append, slist_end_append, slist_free): New functions.
3630         (dbus_g_type_specialized_builtins_init): Add append fuctions
3631         for GPtrArray and GSList.  Register GSList.
3632         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3633
3634         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3635         New.
3636         (dbus_g_type_specialized_collection_init_append)
3637         (dbus_g_type_specialized_collection_append)
3638         (dbus_g_type_specialized_collection_end_append): Prototype.
3639         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3640         end_append_func.
3641
3642         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3643         (dbus_g_type_specialized_collection_append) 
3644         (dbus_g_type_specialized_collection_end_append): New functions.
3645         (dbus_g_type_map_value_iterate): Take const GValue.
3646         (dbus_g_type_collection_value_iterate): Ditto.
3647
3648         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3649         _dbus_gvalue_utils_test.
3650         
3651         * glib/dbus-gtest.h: Prototype it.
3652
3653         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3654         using uninitialized owner_list.
3655         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3656         public API.
3657         (dbus_g_proxy_end_call_internal): Update to use error set
3658         from dbus_gvalue_demarshal instead of setting it here.
3659         (dbus_g_proxy_begin_call): Move return_if_fail here.
3660
3661         * glib/dbus-gobject.c (write_interface): Update for
3662         dbus_gtype_to_signature returning new string.
3663
3664         * configure.in: Add glib/examples/statemachine.
3665
3666 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3667
3668         * configure.in: Add a configure option, --with-console-auth-dir
3669         
3670         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3671         new setting.  Patch from Kay Sievers.
3672
3673 2005-07-06  Colin Walters  <walters@verbum.org>
3674
3675         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3676         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3677         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3678         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3679         Delete in favor of dbus_g_proxy_begin_call and
3680         dbus_g_proxy_cancel_call.
3681         (DBusGProxyCall, DBusGProxyCallNotify): New.
3682         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3683         data, and destroy function.  This replaces
3684         dbus_g_pending_call_set_notify.
3685         (dbus_g_proxy_cancel_call): Prototype.
3686         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3687
3688         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3689         pending_calls map.
3690         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3691         internal proxy for calls to the bus. Remove
3692         pending_nameowner_calls, now the internal proxy keeps track.
3693         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3694         pending_nameowner_calls.
3695         (got_name_owner_cb): Update prototype, and use
3696         dbus_g_proxy_end_call.
3697         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3698         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3699         favor of using internal proxy.
3700         (dbus_g_proxy_manager_unregister): Update to use
3701         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3702         (dbus_g_proxy_init): Initialize pending calls map.
3703         (dbus_g_proxy_constructor): New.
3704         (dbus_g_proxy_class_init): Add get/set property functions,
3705         constructor, and add NAME, PATH, and INTERFACE properties.
3706         (cancel_pending_call): New function.
3707         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3708         cancel them.
3709         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3710         (GPendingNotifyClosure): New structure.
3711         (d_pending_call_notify, d_pending_call_free): Moved here from
3712         dbus-glib.c.
3713         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3714         ordering.
3715         (manager_begin_bus_call): New internal function for talking to
3716         internal bus proxy.
3717         (dbus_g_proxy_new): Construct object using GObjet properties.
3718         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3719         Create closure of same, and insert call into map of pending calls.
3720         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3721         call.  Look up pending call in current set.  Remove it when we've
3722         completed.
3723         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3724         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3725         and destroy function directly.
3726         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3727         (dbus_g_proxy_call): Invoke with NULL callback.
3728         (dbus_g_proxy_cancel_call): New function, replaces
3729         dbus_g_pending_call_cancel.
3730
3731         * glib/dbus-gparser.c (validate_signature): Fix call to
3732         dbus_set_g_error.
3733
3734         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3735         New quark for attaching metadata to GType.
3736         (info_hash): Delete.
3737         (lookup_object_info): Look up using quark.
3738         (dbus_g_object_type_install_info): Check that a type is classed,
3739         not that it's an object.  Also just install type data using quark
3740         instead of using global hash.
3741
3742         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3743         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3744         (GPendingNotifyClosure): Delete.
3745         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3746         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3747
3748         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3749         client method generation until we can fix it...
3750         
3751         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3752         (load_from_service_thread_func): Ditto.
3753
3754         * tools/dbus-names-model.c (struct NamesModel): Hold
3755         DBusGProxyCall.
3756         (have_names_notify): Update prototype, use
3757         dbus_g_proxy_cancel_call.
3758         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3759
3760         * tools/dbus-monitor.c (filter_func): Update for print_message
3761         API change.
3762
3763         * test/glib/test-dbus-glib.c: Add more tests for async
3764         invocations.  Update many begin_call/end_call pairs to just use
3765         dbus_g_proxy_call.
3766
3767         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3768         allows us to dump print-introspect.c.
3769
3770         * tools/dbus-print-message.h (print_message): Add literal argument
3771         to print_message which is intended to allow printing arguments without
3772         metadata like "string=".
3773
3774         * tools/dbus-print-message.c (print_iter): Add literal argument.
3775         (print_message): Allow printing string messages literally.
3776
3777 2005-07-05  Colin Walters  <walters@verbum.org>
3778
3779         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3780         Remove value refcount leak, original patch from Jorn Baayen
3781         <jorn@openedhand.com>.  Also remove useless extra value in favor
3782         of prepending to value array directly.
3783
3784 2005-07-02  Colin Walters  <walters@verbum.org>
3785
3786         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3787
3788 2005-07-01  Colin Walters  <walters@verbum.org>
3789
3790         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3791         
3792         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3793         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3794         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3795         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3796
3797 2005-06-30  Colin Walters  <walters@verbum.org>
3798
3799         * test/glib/test-dbus-glib.c:
3800         * test/glib/test-service-glib.c:
3801         * test/glib/test-service-glib.xml: Update tests for new error
3802         setting bits, also add async tests (patch from Ross Burton).
3803
3804         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3805         DBUS_GLIB_THREADS_LIBS.
3806
3807         * glib/dbus-gproxy.c (get_name_owner)
3808         (dbus_g_pending_call_end_valist): Ditto.
3809
3810         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3811         domain (GQuark) to DBusGErrorInfo.  
3812         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3813         quark in error_metadata.  Take message interface as default
3814         error message interface.
3815         (gerror_to_dbus_error_message): Pass message interface.
3816         (dbus_set_g_error): Resurrected.
3817         (dbus_g_error_info_free): New function.
3818         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3819         of _peek to actually create the object class if it hasn't been
3820         created yet.
3821         (dbus_g_error_domain_register): New function.
3822
3823         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3824
3825         * glib/dbus-gparser.c (validate_signature): Ditto.
3826
3827         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3828         (dbus_g_error_domain_register): Prototype.
3829
3830         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3831         Update tests.
3832
3833 2005-06-29  Colin Walters  <walters@verbum.org>
3834
3835         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3836         DBUS_TYPE_G_OBJECT_PATH.
3837
3838         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3839         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3840         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3841         (dbus_g_object_path_get_g_type): New function.
3842         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3843         to DBUS_TYPE_G_OBJECT_PATH by default.
3844         (demarshal_proxy): Remove unused name variable.
3845         (demarshal_object_path, marshal_object_path): New functions.
3846         (demarshal_proxy_array, marshal_proxy_array): Delete.
3847         
3848         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3849         DBUS_TYPE_G_OBJECT_PATH to char *.
3850         (dbus_g_type_get_lookup_function): Map builtin
3851         DBUS_TYPE_G_OBJECT_PATH.
3852
3853         * test/glib/test-dbus-glib.c
3854         * test/glib/test-service-glib.c (my_object_objpath): 
3855         Adapt tests to new object path marshalling.
3856
3857 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3858
3859         * configure.in: force check for Python >= 2.4
3860
3861 2005-06-29  Colin Walters  <walters@verbum.org>
3862         
3863         Patch from Ross Burton <ross@openedhand.com>
3864         
3865         * glib/dbus-gobject.c (invoke_object_method): Unset object
3866         value in all cases, not only in async case.
3867
3868 2005-06-29  Colin Walters  <walters@verbum.org>
3869
3870         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3871         name_call for keeping track of any outgoing GetNameOwner call.
3872         Also add for_owner and associated.
3873         (struct _DBusGProxyManager): Add owner_names, which is hash table
3874         that maps a base name to a list of names it owns (that we're
3875         interested in).  Add pending_nameowner_calls which is a list of
3876         all outstanding GetNameOwner; avoids us having to iterate over
3877         every proxy.  Add unassociated_proxies which keeps track of name
3878         proxies with no associated name owner.
3879         (dbus_g_proxy_manager_unref): Destroy owner_names.
3880         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3881         name refcounts.
3882         (find_name_in_info, name_owner_foreach)
3883         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3884         (dbus_g_proxy_manager_monitor_name_owner)
3885         (dbus_g_proxy_manager_unmonitor_name_owner)
3886         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3887         New functions; they manipulate the owner_names mapping.
3888         (got_name_owner_cb): New function.
3889         (get_name_owner): New function, extracted from
3890         dbus_g_proxy_new_for_name_owner.
3891         (dbus_g_proxy_manager_register): For now we need to keep track of
3892         all NameOwnerChanged.  Also if the proxy is for a name, if we
3893         don't already know the name owner, queue a new GetNameOwner
3894         request and add it to our list of unassociated proxies.  Otherwise
3895         inc the refcount.
3896         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3897         cancel any pending GetNameOwner call, etc.
3898         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3899         the owner_names mapping to look up the current names for the
3900         signal source, and dispatch to any proxies for that name.
3901         (dbus_g_proxy_new): Initialize new members.
3902         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3903         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3904         (dbus_g_pending_call_end_valist): New function, extracted from
3905         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3906         but want to use the GLib infrastructure.  Also note how many
3907         arguments in reply were over.
3908         (dbus_g_pending_call_end): New function, just call
3909         dbus_g_pending_call_end_valist.
3910         (dbus_g_proxy_end_call_internal): Just call
3911         dbus_g_pending_call_end_valist.
3912
3913         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3914         of builtin marshaller for STRING_STRING_STRING.
3915
3916         * test/glib/test-dbus-glib.c: 
3917         * test/glib/test-service-glib.c:
3918         * test/glib/test-service-glib.xml:
3919         Extend tests to cover name proxies, destruction of owner proxies,
3920         etc.
3921         
3922         * glib/examples/example-signal-recipient.c
3923         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3924         
3925         * tools/dbus-send.c (main): Print D-BUS error name in addition
3926         to message.
3927
3928 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3929
3930         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3931         cmessage_function_handler): Patch from 
3932         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3933         by using the Py_GILState_Ensure/Release to synchronize with the
3934         python runtime.
3935         
3936 2005-06-28  Ray Strode  <rstrode@redhat.com>
3937
3938         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3939         babysitter helper process on last unref, bug #2813.
3940
3941 2005-06-27  Colin Walters  <walters@verbum.org>
3942
3943         * test/glib/test-dbus-glib.c: 
3944         * test/glib/test-service-glib.c:
3945         * test/glib/test-service-glib.xml:
3946         Test hash table signal emitting.
3947
3948         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3949         types to their fundamental basis types, since this is what
3950         marshallers operate on.  Also add an entry for VOID__BOXED.
3951         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3952
3953 2005-06-26  Havoc Pennington  <hp@redhat.com>
3954
3955         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3956         from Don Park
3957
3958 2005-06-26  Colin Walters  <walters@verbum.org>
3959
3960         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3961         (dbus_g_error_set): New public function from its ashes; used by
3962         both service-side method implementation and GLib bindings
3963         internals.
3964         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3965         (_dbus_glib_test): Add some tests.
3966
3967         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3968
3969         * test/glib/test-service-glib.c (my_object_throw_error): Use
3970         dbus_g_error_set.
3971
3972         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3973         errors thrown by dbus_g_error_set.
3974
3975         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3976
3977         * glib/dbus-gparser.c (validate_signature): Ditto.
3978
3979         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3980         (dbus_g_proxy_end_call_internal): Ditto.
3981
3982         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3983         converts DBUS_ERROR_x to DBUS_GERROR_x.
3984         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3985
3986         * doc/TODO: Remove error TODO.
3987
3988         * doc/dbus-tutorial.xml: Update with documentation about error
3989         handling.
3990
3991         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3992         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3993         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3994
3995 2005-06-22  Colin Walters  <walters@verbum.org>
3996         
3997         Patch from Ross Burton <ross@openedhand.com>
3998
3999         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4000
4001 2005-06-20  Colin Walters  <walters@verbum.org>
4002
4003         * configure.in: Add glib/examples.
4004
4005         * glib/Makefile.am: Add examples/
4006
4007         * glib/examples/.cvsignore
4008         * glib/examples/Makefile.am
4009         * glib/examples/example-client.c
4010         * glib/examples/example-service.c
4011         * glib/examples/example-service.xml
4012         * glib/examples/example-signal-emitter.c
4013         * glib/examples/example-signal-emitter.xml
4014         * glib/examples/example-signal-recipient.c:
4015         New files; GLib binding examples, ported from
4016         python/examples.
4017
4018 2005-06-20  Colin Walters  <walters@verbum.org>
4019
4020         * dbus/dbus-glib.h: 
4021         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4022         dbus_g_proxy_call.
4023
4024         * glib/dbus-binding-tool-glib.c: 
4025         * doc/dbus-tutorial.xml: 
4026         * test/glib/test-dbus-glib.c: Update for rename.
4027         
4028 2005-06-20  Colin Walters  <walters@verbum.org>
4029
4030         Patch suggested by Ross Burton <ross@openedhand.com>
4031
4032         * glib/dbus-gobject.c (export_signals): Free signal name.
4033         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4034         memory leak.  Add a bit of documentation.
4035         (dbus_g_method_return_error): Free context, and note we do
4036         so.
4037
4038 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4039
4040         * dbus/dbus-glib.h:
4041         * glib/dbus-gobject.c:
4042         * glib/dbus-gproxy.c:
4043         * glib/dbus-gvalue.c: Predeclare structs as 
4044         typedef struct _Something Something instead of 
4045         typedef struct Something Something, so we can 
4046         redeclare the prototypes. Other GNOME libraries 
4047         do this already.
4048
4049 2005-06-17  Colin Walters  <walters@verbum.org>
4050
4051         * tools/dbus-names-model.c (have_names_notify): Fix call
4052         to dbus_g_proxy_end_call.
4053         
4054 2005-06-17  Colin Walters  <walters@verbum.org>
4055
4056         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4057         spew warnings if we get malformed remote signals.
4058
4059         * glib/dbus-gobject.c (propsig_iterate): New function.
4060         (lookup_object_info): New function, extracted from
4061         lookup_object_and_method.
4062         (introspect_properties, introspect_signals): Delete; these
4063         are merged into write_interface.
4064         (write_interface): Write out signals and properties here;
4065         dump the org.gtk.object stuff and use the interface given
4066         in the introspection data blob.  Also fix up property XML.
4067         (lookup_values): New function.
4068         (introspect_interfaces): Gather a mapping from interface to a
4069         list of its methods, signals, and properties, then write out
4070         each interface.
4071         (lookup_object_and_method): Use lookup_object_info.
4072         (struct DBusGSignalClosure): Add interface.
4073         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4074         we can just use the constant data.
4075         (dbus_g_signal_closure_finalize): Don't free signal name.
4076         (signal_emitter_marshaller): Use interface from signal closure.
4077         (export_signals): Only export signals mentioned in introspection
4078         blob.
4079         (dbus_g_connection_register_g_object): Warn if we have no
4080         introspection data for an object.
4081         (funcsig_equal): Remove unused variable.
4082         (dbus_g_object_register_marshaller): Take varargs instead of
4083         list.
4084         (dbus_g_object_register_marshaller_array): New function,
4085         extracted from old dbus_g_object_register_marshaller.
4086
4087         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4088         signals and property data.
4089         (write_quoted_string): New function, extracted from generate_glue.
4090         (generate_glue): Write signals and properties to introspection
4091         blob.
4092
4093         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4094         exported_signals and exported_properties.
4095         (dbus_g_object_register_marshaller): Update prototype.
4096         (dbus_g_object_register_marshaller_array): Prototype.
4097         
4098         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4099
4100         * test/glib/test-service-glib.c: Add new test signals and method
4101         to emit them.
4102
4103         * test/glib/test-service-glib.xml: Add some test signals.
4104
4105         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4106         and my-object-marshal.h
4107         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4108         my-object-marshal.c.
4109         (my-object-marshal.c, my-object-marshal.h): Implement.
4110
4111         * test/glib/.cvsignore: Update.
4112
4113         * doc/TODO: Remove two GLib TODO items fixed by this
4114         patch.
4115
4116 2005-06-16  Colin Walters  <walters@verbum.org>
4117
4118         * doc/TODO: Update for GLib bindings.
4119         
4120 2005-06-16  Colin Walters  <walters@verbum.org>
4121
4122         * glib/dbus-binding-tool-glib.c:
4123         * glib/dbus-gobject.c:
4124         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4125         from Ross Burton, for his GLib bindings work.
4126
4127 2005-06-16  Colin Walters  <walters@verbum.org>
4128
4129         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4130         to iterate instead of walking to G_TYPE_INVALID.
4131
4132         Patch based on a patch from Ryan Gammon.
4133
4134 2005-06-16  Colin Walters  <walters@verbum.org>
4135
4136         * bus/bus.c (bus_context_new): Set parser to NULL
4137         after we unref it (Patch from Chris Boscolo, #2174).
4138         
4139 2005-06-16  Colin Walters  <walters@verbum.org>
4140
4141         * python/dbus_bindings.pyx.in: Import size_t,
4142         __int64_t, __uint64_t, and __signed.
4143
4144         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4145         Define cmsg struct, output it.
4146         (_dbus_read_credentials_unix_socket):
4147         Use cmsg struct.
4148         
4149         Patch from Joe Markus Clarke for FreeBSD support.
4150         
4151 2005-06-16  Colin Walters  <walters@verbum.org>
4152
4153         * tools/dbus-send.c (append_array): Use strtok.
4154         (append_dict): New function.
4155         (type_from_name): New function, extracted from main.
4156         (main): Handle sending dicts.
4157
4158         * tools/dbus-print-message.c (print_iter): Print dict
4159         entries.
4160         
4161 2005-06-16  Colin Walters  <walters@verbum.org>
4162
4163         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4164         values as the empty string (#2948).
4165         
4166 2005-06-16  Colin Walters  <walters@verbum.org>
4167
4168         * dbus/Makefile.am:
4169         * mono/doc/Makefile.am:
4170         * test/glib/Makefile.am:
4171
4172         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4173
4174 2005-06-16  Colin Walters  <walters@verbum.org>
4175
4176         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4177         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4178
4179         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4180         Increment pointer after swapping fixed array.  Add assertion
4181         for array length.
4182                 
4183 2005-06-15  Colin Walters  <walters@verbum.org>
4184
4185         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4186         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4187         
4188 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4189
4190         * NEWS: Update to 0.34
4191
4192 2005-06-15  David Zeuthen  <davidz@redhat.com>
4193
4194         * configure.in (LT_CURRENT): Revert back to 1 as the library
4195         hasn't changed and we've certainly not committed to protocol
4196         stability yet.  All this does is to break ABI. See commit note
4197         from hp@redhat.com 2005-05-05 for details.
4198         
4199 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4200
4201         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4202         (_dbus_connection_run_builtin_filters): New method
4203         (dbus_connection_dispatch): Run the builtin filters which in turn
4204         runs the peer filter which handles Ping messages.
4205
4206         * doc/TODO: 
4207          - Ping isn't handled: This patch fixes it
4208          
4209          - Add a test case for the Ping message: added TODO item
4210
4211 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4212
4213         * dbus/dbus-message.c:
4214         (dbus_message_has_path): New method
4215         (dbus_message_has_interface): New method
4216         (dbus_message_has_member): New method
4217
4218         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4219         New method
4220
4221         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4222         the keyring directory is private to the user
4223
4224         * doc/TODO:
4225          - The convenience functions in dbus-bus.h should perhaps have
4226          the signatures that they would have if they were autogenerated
4227          stubs. e.g. the acquire service function. We should also evaluate
4228          which of these functions to include, in light of the fact that
4229          GLib/Qt native stubs will probably also exist.: Punted
4230
4231          - add dbus_message_has_path(), maybe has_member/interface:
4232          fixed in this patch
4233
4234          - in dbus-keyring.c, enforce that the keyring dir is not
4235          world readable/writable: Fixed in this patch
4236
4237 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4238
4239         * dbus/dbus-marshal-validate.h: Added a new validation
4240         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4241         out of memory errors when validating signitures
4242
4243         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4244         in places where we previously used DBUS_VALID and a FALSE return 
4245         value to indicate OOM
4246         
4247         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4248         Use a stack to track the number of elements inside containers.  The 
4249         stack values are then used to validate that dict entries have only two
4250         elements within them.
4251         (validate_body_helper): check the reason for failure when validating
4252         varients
4253         
4254         * dbus/dbus-message.c (load_message): use 
4255         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4256         DBUS_VALID and a FALSE return value to indicate OOM
4257
4258         * doc/TODO: remove "- validate dict entry number of fields" as this
4259         patch fixes it
4260
4261 2005-06-14  David Zeuthen  <davidz@redhat.com>
4262
4263         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4264         watches (if applicable) and add new watches
4265
4266         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4267         (main): Setup SIGIO signal handler if using D_NOTIFY
4268
4269         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4270
4271         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4272         (merge_included): Also merge conf_dirs list
4273         (bus_config_parser_unref): Clear conf_dirs list
4274         (include_dir): Add directory to conf_dirs list
4275         (bus_config_parser_get_conf_dirs): New function
4276
4277         * bus/dir-watch.[ch]: New files
4278
4279         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4280
4281         * configure.in: Add checks for D_NOTIFY on Linux
4282
4283 2005-06-14  Colin Walters  <walters@verbum.org>
4284
4285         * glib/dbus-binding-tool-glib.c:
4286         * glib/dbus-gobject.c:
4287         * glib/dbus-gvalue.c: Fix indentation and brace style.
4288         
4289 2005-06-14  Ross Burton <ross@openedhand.com>.
4290
4291         * glib/dbus-glib.h: Make DBusGMethodInvocation
4292         a private structure.  Rearrange prototypes a bit.
4293         
4294         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4295         documentation for first_arg_type.
4296         
4297         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4298         here, add documentation.  Move dbus_g_method_return
4299         and dbus_g_method_return_error into public API
4300         section.
4301
4302 2005-06-14  Colin Walters  <walters@verbum.org>
4303
4304         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4305         Add missing return statements, noticed by Ross Burton.
4306         
4307 2005-06-13  Ross Burton <ross@openedhand.com>.
4308
4309         * glib/dbus-gobject.c: Handle errors on message
4310         demarshalling by sending error message back.
4311         * glib/dbus-gvalue.c: Initialize return variables.
4312
4313 2005-06-13  Colin Walters  <walters@verbum.org>
4314
4315         * glib/Makefile.am: Fix thinko in last patch.
4316
4317 2005-06-13  Colin Walters  <walters@verbum.org>
4318
4319         * glib/Makefile.am: Move dbus-gtype-specialized.c
4320         and dbus-gtype-specialized.h into a _HEADERS variable,
4321         install them.
4322
4323 2005-06-12  Colin Walters  <walters@verbum.org>
4324
4325         Async signals and various bugfixes and testing by
4326         Ross Burton <ross@openedhand.com>.
4327
4328         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4329         (dbus_gvalue_genmarshal_name_from_type)
4330         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4331         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4332         (dbus_g_value_types_init, dbus_gtype_from_signature)
4333         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4334         (dbus_gtypes_from_arg_signature): New function prototypes.
4335         (dbus_gvalue_demarshal): Take context and error arguments.
4336         (dbus_gvalue_demarshal_variant): New function.
4337         (dbus_gvalue_demarshal_message): New function.
4338         (dbus_gvalue_store): Delete.
4339
4340         * glib/dbus-gvalue.c:
4341
4342         File has been almost entirely rewritten; now we special-case
4343         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4344         hash tables correctly, etc.  Full support for recursive values
4345         is not yet complete.
4346
4347         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4348         argument of signal to G_TYPE_POINTER since we now pass a
4349         structure.
4350         (lookup_g_marshaller): Delete in favor of
4351         _dbus_gobject_lookup_marshaller.
4352         (marshal_dbus_message_to_g_marshaller): Use
4353         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4354         to handle remote signal callbacks.
4355         (dbus_g_proxy_new_from_proxy): New function; creates a new
4356         DBusGProxy by copying an existing one.
4357         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4358         (dbus_g_proxy_get_path): New functions.
4359         (dbus_g_proxy_marshal_args_to_message): New function;
4360         factored out of existing code.
4361         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4362         from a varargs array.
4363         (dbus_g_proxy_begin_call_internal): New function.
4364         (dbus_g_proxy_end_call_internal): New function.
4365         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4366         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4367         after collecting args into value array.
4368         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4369         invoke dbus_g_proxy_end_call_internal.
4370         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4371         end_call_internal.
4372         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4373         types.
4374         (array_free_all): New function.
4375         (dbus_g_proxy_add_signal): Take GTypes.
4376
4377         * glib/dbus-gobject.h:
4378         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4379         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4380         Prototype.
4381
4382         * glib/dbus-gobject.c: Add a global marshal_table hash which
4383         stores mappings from type signatures to marshallers.  Change lots
4384         of invocations of dbus_gtype_to_dbus_type to
4385         dbus_gtype_to_signature.
4386         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4387         (introspect_signals): Fix test for query.return_type.
4388         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4389         (invoke_object_method): Many changes.  Handle asynchronous
4390         invocations.  Convert arguments with
4391         dbus_gvalue_demarshal_message.  Handle errors.  Use
4392         DBusSignatureIter instead of strlen on args. Handle all arguments
4393         generically.  Special-case variants.
4394         (dbus_g_method_return, dbus_g_method_return_error): New function.
4395         (DBusGSignalClosure): New structure, closes over signal
4396         information.
4397         (dbus_g_signal_closure_new): New function.
4398         (dbus_g_signal_closure_finalize): New function.
4399         (signal_emitter_marshaller): New function; is special marshaller
4400         which emits signals on bus.
4401         (export_signals): New function; introspects object signals and
4402         connects to them.
4403         (dbus_g_object_type_install_info): Take GType instead of
4404         GObjectClass.
4405         (dbus_g_connection_register_g_object): Invoke export_signals.
4406         (dbus_g_connection_lookup_g_object): New function.
4407         (DBusGFuncSignature) New structure; used for mapping type
4408         signatures to marshallers.
4409         (funcsig_hash): New function; hashes DBusGFuncSignature.
4410         (funcsig_equal): New function; compares DBusGFuncSignature.
4411         (_dbus_gobject_lookup_marshaller): New function.
4412         (dbus_g_object_register_marshaller): New function; used to
4413         register a marshaller at runtime for a particular signature.
4414
4415         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4416
4417         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4418         which notes a server method implementation should be
4419         asynchronous.
4420
4421         * glib/dbus-binding-tool-glib.c
4422         (dbus_binding_tool_output_glib_server): Call
4423         dbus_g_value_types_init.
4424         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4425         variants specially.
4426         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4427         of a lookup function.
4428         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4429         (write_untyped_out_args): New method; write output arguments.
4430         (write_formal_declarations_for_direction): Function for
4431         writing prototypes.
4432         (write_formal_parameters_for_direction): Function for
4433         writing implementations.
4434         (write_typed_args_for_direction): Function for writing
4435         arguments prefixed with GTypes.
4436         (write_async_method_client): Write out async version
4437         of method.
4438
4439         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4440         (dbus_g_type_get_marshal_name): Move mapping from GType
4441         to marshal name into here.
4442         (dbus_g_type_get_c_name): Move into here.
4443         (compute_marshaller): Convert signature to type with
4444         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4445         (compute_marshaller_name): Ditto.
4446         (compute_marshaller): Handle async signal annotations.
4447         (gather_marshallers): Return if we don't have a known
4448         prefix.
4449         (generate_glue): Collect introspection blob here, and
4450         write all of the blob at the end.  This allows an object
4451         with multiple interfaces to work.
4452         Mark async methods in introspection blob.
4453
4454         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4455         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4456         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4457
4458         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4459         avoids people accidentally using DBUS_TYPE_* which should
4460         not be necessary anymore.
4461         Do include dbus-gtype-specialized.h, which are utilities
4462         for GLib container types.
4463         Add various #defines for types such as
4464         DBUS_TYPE_G_BOOLEAN_ARRAY.
4465         (DBusGValueIterator, DBusGValue): Define, not fully used
4466         yet.
4467         (dbus_g_value_get_g_type): Type for recursive value.
4468         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4469         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4470         (dbus_g_value_free): Prototypes.
4471         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4472         (dbus_g_proxy_set_interface): Prototype.
4473         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4474         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4475         types.
4476         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4477         Accessors.
4478         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4479         doing async invocations.
4480         (dbus_g_method_return, dbus_g_method_return_error):
4481         Prototypes.
4482         * doc/dbus-tutorial.xml: Update GLib section.
4483         
4484         * tools/dbus-viewer.c (load_child_nodes): Update
4485         for new invocation type of dbus_g_proxy_end_call.
4486         (load_from_service_thread_func): Ditto.
4487
4488         * tools/print-introspect.c (main): Ditto.
4489
4490         * tools/dbus-names-model.c (have_names_notify)
4491         (names_model_reload, names_model_set_connection)
4492         Use GTypes.
4493
4494         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4495         needed since Python bindings use GLib bindings.
4496
4497         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4498         Add --prefix argument.
4499
4500         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4501         unneeded --ignore-unsupported arg.
4502         
4503         * test/glib/test-service-glib.c: 
4504         * test/glib/test-service-glib.xml:
4505         * test/glib/test-dbus-glib.c: Add many more tests.
4506
4507 2005-06-06  David Zeuthen  <davidz@redhat.com>
4508
4509         * doc/TODO: Add item about need to remove deprecated functions.
4510
4511         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4512
4513         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4514         to repair the ABI which was broken with the last commit.
4515
4516 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4517
4518         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4519         (dbus_connection_disconnect): renamed to dbus_connection_close 
4520         for API symmetry with dbus_connection_open
4521         (_dbus_connection_open_internal): 
4522         s/dbus_connection_disconnect/dbus_connection_close
4523
4524         * dbus/dbus-bus.c (dbus_bus_get):
4525         s/dbus_connection_disconnect/dbus_connection_close
4526
4527         * bus/connection.c (bus_connections_unref, 
4528         bus_connections_setup_connection, bus_connections_expire_incomplete):
4529         s/dbus_connection_disconnect/dbus_connection_close
4530
4531         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4532         kill_client_connection_unchecked, check_hello_connection):
4533         s/dbus_connection_disconnect/dbus_connection_close
4534
4535         * bus/bus.c (new_connection_callback):
4536         s/dbus_connection_disconnect/dbus_connection_close
4537
4538         * tools/dbus-send.c (main):
4539         s/dbus_connection_disconnect/dbus_connection_close
4540
4541         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4542         s/dbus_connection_disconnect/dbus_connection_close
4543         
4544         * test/test-service.c (path_message_func, filter_func):
4545         s/dbus_connection_disconnect/dbus_connection_close
4546         
4547         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4548         
4549 2005-05-25  Colin Walters  <walters@verbum.org>
4550
4551         * dbus/dbus-protocol.h: Move various bus service #defines such
4552           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4553           dbus/dbus-shared.h.
4554         * dbus/dbus-shared.h: Various defines moved here.
4555         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4556
4557 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4558
4559         * python/__init__.py: Python bindings deserve a minor version
4560         update.  Upped to (0, 40, 2)
4561
4562 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4563
4564         * python/decorators.py: add explicitly_pass_message decorator
4565         for passing in the dbus message as keyword for edge case signal
4566         handling
4567
4568         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4569         to conform with what dbus expects for match rules
4570         (SignalMatchRule.execute): add the dbus message as a keyword
4571         if the signal handler has requested it
4572
4573         * python/examples/example/signal-recipient.py: added some more
4574         examples on how to hook up to signals
4575
4576 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4577
4578         * python/decorators.py: import dbus_bindings
4579
4580         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4581         SignalMatchNode): new classes that implement wildcard signal
4582         callback matching using a tree lookup. Heavily modified from a
4583         patch sent by Celso Pinto (fd.o bug #3241)
4584
4585         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4586         use new match classes to handle signals.
4587
4588 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4589         
4590         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4591
4592 2005-05-18  Havoc Pennington  <hp@redhat.com>
4593
4594         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4595         gettext. Not really worth requiring yet perhaps, but any
4596         production quality 1.0 would require it so we should go ahead and
4597         get things set up. We do have a couple token calls to
4598         bindtextdomain in the code already.
4599
4600 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4601
4602         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4603         when using recursive g_main_loops
4604
4605         * python/_dbus.py (class Bus): add the ProxyObjectClass
4606         alias for ProxyObject to make it easier for the Twisted 
4607         networking framework to integrate dbus.
4608
4609         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4610         alias for ProxyMethod to make it easier for the Twisted 
4611         networking framework to integrate dbus. 
4612
4613 2005-05-11  Ross Burton  <ross@openedhand.com>
4614
4615         * glib/dbus-glib-tool.c: Add --prefix argument.
4616         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4617         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4618         Add prefix argument.
4619         (generate_glue): Pass prefix argument down.
4620         (dbus_binding_tool_output_glib_server): Pass prefix to
4621         glib-genmarshal.
4622         
4623 2005-05-11  Colin Walters  <walters@verbum.org>
4624
4625         * tools/dbus-send.c (append_array): New function.
4626         (append_arg): Broken out from main.
4627         (main): Add cheesy hack to send arrays and variants.
4628         (usage): Update.
4629         * tools/dbus-print-message.c (print_iter): Broken out
4630         from main.
4631
4632 2005-05-11  Colin Walters  <walters@verbum.org>
4633
4634         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4635         New function, returns signature string for signature iter.
4636         * dbus/dbus-signature.h: Prototype it.
4637         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4638         New function, returns signature string for message iter.
4639         (dbus_message_iter_get_array_len): New function, returns
4640         length of array.
4641         (dbus_message_iter_get_fixed_array): Fix assertion; this
4642         function should be used when the iter is pointing to the
4643         contents of an array
4644         * dbus/dbus-message.h: Prototypes.
4645         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4646         New function; returns length of an array.
4647         * dbus/dbus-marshal-recursive.h: Prototype it.
4648         
4649 2005-05-11  Colin Walters  <walters@verbum.org>
4650
4651         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4652         compilation error.
4653         
4654 2005-05-08  Havoc Pennington  <hp@redhat.com>
4655
4656         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4657         daemon's pid, not the parent's pid, to the file descriptor.
4658         Reported by Taj Morton.
4659
4660 2005-05-05  Havoc Pennington  <hp@redhat.com>
4661
4662         * configure.in (LT_*): add notes on how the libtool versioning
4663         works to save thinking. Increment soname to indicate protocol
4664         breakage (though really the library interface hasn't changed I
4665         guess)
4666
4667         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4668         verify the GUID received from server matches what we were
4669         expecting, if we had an expectation
4670
4671         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4672         (_dbus_auth_get_guid_from_server): new function
4673         (send_begin): parse the OK args
4674
4675         * doc/dbus-specification.xml: add GUID to the auth protocol
4676
4677 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4678
4679         * Fix my name in previous changelog ;)
4680
4681         * python/proxies.py (ProxyObject.__getattr__): add further patch
4682         from Anthony Baxter to throw an AttributeError when python 
4683         __special__ functions are called instead of marshling them over 
4684         the bus (Bug#1685 comment 3).
4685
4686 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4687
4688         * python/Makefile.am: changed to use pyexecdir for the binding
4689         shared libraries (Bug#2494)
4690
4691         * python/exceptions.py: bring exceptions over from the bindings
4692         so they can be used in applications (Bug#2036)
4693         Make all exceptions derive from DBusException
4694
4695         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4696         of classes so that print obj doesn't throw an exception (Bug #1685)
4697
4698 2005-05-03  Ross Burton  <ross@openedhand.com>
4699
4700         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4701         Return if we get an error during registration.  Set up a
4702         weak reference on object to unregister if object is destroyed.
4703         (unregister_gobject): New function.
4704         
4705 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4706
4707         * python/dbus_bindings.pyx.in: 
4708         - added new type classes for hinting to the marashaler what type 
4709         to send over the wire
4710         - added int16 and uint16 marshalers
4711         - Fixed a bug in the type constants that caused int32 to go out
4712         as uint16 over the wire
4713         * python/dbus.py: split up into different files and renamed _dbus.py
4714         * python/__init__.py, python/_util.py, python/decorators.py, 
4715         python/exceptions.py, python/proxies.py, python/services.py,
4716         python/types.py: new files split off from dbus.py
4717         * python/Makefile.am: Add new files, remove dbus.py and 
4718         install all python files to <python module dir>/dbus
4719         * python/examples/*: Added #!/usr/bin/env python to the top of
4720         every example.  Patch provided by Tatavarty Kalyan
4721
4722 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4723
4724         * NEWS: Update to 0.33
4725
4726 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4727
4728         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4729         method for doing async calls
4730         (_pending_call_notification): New C function for handling pendning call
4731         callbacks
4732         (set_notify): New method for setting pending call notification
4733         
4734         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4735         Async capabilities added to remote method calls
4736         (Sender): class removed
4737         (RemoteService): class removed
4738         (ObjectTree): class removed for now
4739         (RemoteObject): Renamed to ProxyObject
4740         (RemoteMethod): Renamed to ProxyMethod
4741         (method): Decorator added for decorating python methods as dbus methods
4742         (signal): Decorator added for decorating python methods as signal emitters
4743         (ObjectType): Metaclass added for generating introspection data and the
4744         method callback vtable
4745         (Interface): Wrapper class added to wrap objects in a dbus interface
4746         (Object): Uses ObjectType as its metaclass and exports Introspect
4747         of the org.freedesktop.DBus.Introspectable interface
4748         (ValidationException, UnknownMethodException): new exceptions
4749
4750         * python/examples/*: Modified to fit with the new bindings
4751
4752 2005-04-23  Havoc Pennington  <hp@redhat.com>
4753
4754         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4755         reported by Tony Houghton
4756
4757         * test/test-service.c (main): test
4758         dbus_connection_get_object_path_data()
4759
4760         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4761         the exact_match
4762         (_dbus_object_tree_get_user_data_unlocked): new function used by
4763         dbus_connection_get_object_path_data()
4764         (do_register): add assertion test for get_user_data_unlocked
4765         (object_tree_test_iteration): more tests
4766
4767         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4768         new function from Dan Reed to let you get the user data from 
4769         dbus_connection_register_object_path()
4770
4771 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4772
4773         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4774         in numerous places that did not account for the NULL terminator
4775         (signature_from_seed): changed the manual string copy loop to 
4776         just use strcpy instead
4777         make check should now pass
4778
4779 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4780
4781         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4782         so that it allows messages that are not signals to pass in 
4783         NULL as the interface.
4784
4785 2005-04-18  David Zeuthen  <davidz@redhat.com>
4786
4787         * glib/dbus-gmain.c (io_handler_destroy_source): 
4788         (timeout_handler_destroy_source, connection_setup_free): 
4789         Also unref the source to avoid memory leaks.
4790
4791 2005-04-13  David Zeuthen  <davidz@redhat.com>
4792
4793         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4794         more reasonable, yet still totally arbitrary, value :-). 
4795
4796 2005-04-13  David Zeuthen  <davidz@redhat.com>
4797
4798         * doc/TODO: Added an "important for 1.0" item about selinux
4799         allow/deny messages
4800
4801 2005-04-13  David Zeuthen  <davidz@redhat.com>
4802
4803         * bus/selinux.c: Add c-file-style to top of file
4804         (log_audit_callback): Don't free the data here anymore
4805         (bus_selinux_check): Don't take spid and tpid since appending
4806         that to auxdata may OOM.
4807         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4808         to the caller if we are OOM by taking an error object.
4809         (bus_selinux_allows_send): -do-
4810
4811         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4812         and bus_selinux_allows_send
4813
4814         * bus/bus.c (bus_context_check_security_policy): Pass error and
4815         pass on OOM thrown by bus_selinux_allows_send()
4816
4817         * bus/services.c (bus_registry_acquire_service): Pass error and
4818         pass on OOM thrown by bus_selinux_allows_acquire_service()
4819
4820 2005-04-13  Havoc Pennington  <hp@redhat.com>
4821
4822         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4823         message at a time to avoid monopolizing the main loop, bug 
4824         #2953 from Benjamin Otte
4825
4826 2005-04-09  Havoc Pennington  <hp@redhat.com>
4827
4828         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4829         possible overlap, fix from Daniel Reed
4830         (fixup_alignment): fix signedness warnings
4831         (_dbus_string_append_unichar): ditto
4832
4833 2005-04-09  Havoc Pennington  <hp@redhat.com>
4834
4835         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4836
4837         * glib/dbus-glib-tool.c (main): fix warning
4838
4839         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4840
4841         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4842         add a new function that can be used in simple applications that
4843         don't have a main loop and are willing to block
4844
4845 2005-04-05  David Zeuthen  <davidz@redhat.com>
4846
4847         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4848
4849         * glib/dbus-gmain.c:
4850         (io_handler_destroy_source): Remove from list of IO handlers
4851         of the ConnectionSetup object
4852         (timeout_handler_destroy_source): -do- for timeout handlers
4853         (io_handler_source_finalized): Don't remove from list since
4854         we now do that in io_handler_destroy_source(). Renamed from
4855         io_handler_source_destroyed
4856         (timeout_handler_source_destroyed): -do- for timeout handlers
4857         (connection_setup_free): It is now safe to iterate over all
4858         IO and timeout handlers as the _destroy_source removes them
4859         from the list synchronously
4860
4861 2005-03-30  Havoc Pennington  <hp@redhat.com>
4862
4863         * configure.in: change check to gtk 2.4
4864
4865         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4866         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4867         to 2.4
4868
4869 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4870
4871         * News: Update 0.32
4872
4873         * HACKING: Fixed realease instructions.  configure.in should be updated to
4874           the next release by the person who made the last release.
4875
4876 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4877
4878         * python/lvalue_cast_post_process.py - removed.  Patch has been
4879           submitted to Pyrex maintainers that fixes gcc4.0 errors
4880
4881         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4882
4883 2005-03-24  Daniel Reed  <n@ml.org>
4884
4885         * tools/Makefile.am: Make print-introspect and
4886         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4887
4888 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4889
4890         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4891
4892         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4893           had in Red Hat packages for a while but for some reason never 
4894           got merged upstream
4895           (_dbus_is_a_number): New checks if a string
4896           can be converted to a number and does the conversion if it can
4897           (_dbus_user_database_lookup): Add check to see if the given username
4898           is a udi.  This allows udi's to be used instead of usernames in the
4899           config file.
4900           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4901           is a gdi.  This allows gdi's to be used instead of groupnames in the
4902           config file.
4903
4904 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4905
4906         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4907           code so that it compiles with gcc4.0
4908
4909         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4910           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4911           results back to dbus_binding.c
4912
4913 2005-03-20  Colin Walters  <walters@verbum.org>
4914
4915         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4916
4917         * configure.in: Require GTK+ 2.6.
4918         
4919 2005-03-20  Colin Walters  <walters@verbum.org>
4920
4921         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4922
4923 2005-03-17  Tom Parker  <palfrey@tevp.net>
4924
4925         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4926         print DBUS_UID_UNSET; instead print passed username.  Also
4927         be sure to actually use gid looked up in cache.
4928         
4929         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4930         for DBUS_GID_UNSET and groupname.
4931
4932 2005-03-17  Colin Walters  <walters@verbum.org>
4933
4934         * bus/print-introspect.c: Move to tools/.
4935         * bus/run-with-tmp-session-bus.sh: Ditto.
4936         
4937         * glib/Makefile.am (dbus-glib-bindings.h): Move
4938         generation to tools/Makefile.am.
4939
4940         * test/glib/run-test.sh: Update to handle move
4941         of run-with-tmp-session-bus.sh.
4942
4943         * test/glib/test-service-glib.c: Update to handle
4944         move of dbus-glib-bindings.h.
4945
4946         * tools/print-introspect.c: Moved here
4947         from bus/, and ported to GLib bindings.
4948
4949         * tools/run-with-tmp-session-bus.sh: Moved here
4950         from bus/.
4951
4952         * tools/Makefile.am: Generate dbus-glib-bindings.h
4953         and dbus-bus-introspect.xml here.
4954
4955         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4956         Update.
4957
4958 2005-03-17  Colin Walters  <walters@verbum.org>
4959
4960         * bus/driver.c (write_args_for_direction): Use
4961         _dbus_string_get_const_data to retrieve string;
4962         _dbus_string_get_const_data_len doesn't actually return
4963         a NULL-terminated substring.
4964
4965         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4966         (main): Change to use org_freedesktop_DBus_request_name
4967         instead of using g_proxy_begin_call/end_call.
4968
4969 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4970
4971         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4972         generating the finalizer.  Fixes from Ben Maurer.
4973
4974 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4975
4976         * mono/BusDriver.cs: Update method names: ListServices
4977         becomes ListNames; GetOwner becomes GetNameOwner.
4978
4979         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4980         onto the eval stack when removing the delegate.
4981
4982 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4983
4984         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4985         LT_CURRENT.  Set it to the autoconf variable.
4986                                                                                 
4987         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4988         classes that disconnects the signal handler delegate from the
4989         service object.  Fixes a big leak of proxy objects on the
4990         client side of things.  Patch from Ben Maurer
4991         <bmaurer@ximian.com>
4992
4993 2005-03-12  Colin Walters  <walters@verbum.org>
4994
4995         * bus/driver.c (write_args_for_direction): New function,
4996         parses a type signature into arguments and outputs to
4997         XML.
4998         (bus_driver_handle_introspect): Use it instead of
4999         hardcoding XML for certain signatures.
5000         
5001         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5002         dependency on dbus-daemon.
5003
5004         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5005         argument, pass it to dbus_binding_tool_output_glib_client.
5006
5007         * glib/dbus-binding-tool-glib.c
5008         (generate_client_glue): Protect against multiple inclusion.
5009         (dbus_binding_tool_output_glib_client): Add
5010         G_BEGIN_DECLS/G_END_DECLS.
5011
5012         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5013         Change to just take iface prefix directly.
5014         (write_formal_parameters): Clarify error message.
5015         (check_supported_parameters): New function; checks to see type
5016         signatures of method parameters are supported.
5017         (generate_client_glue): Handle ignore_unsupported flag.
5018         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5019         parameter.
5020
5021         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5022         --ignore-unsupported by default until glib bindings
5023         support arrays.
5024
5025 2005-03-11  Colin Walters  <walters@verbum.org>
5026
5027         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5028         install it.
5029
5030         * bus/print-introspect.c: New file; prints introspection
5031         data for a given name and object path.
5032
5033         * bus/run-with-tmp-session-bus.sh: New file, refactored
5034         from test/glib/run-test.sh.  Creates a temporary session
5035         bus and runs another program.
5036
5037         * test/glib/run-test.sh: Refactor to invoke
5038         run-with-tmp-session-bus.sh.
5039
5040         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5041         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5042         macros instead of hardcoding.
5043
5044         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5045
5046 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5047
5048         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5049         this unref; it doesn't match up evenly in some codepaths.
5050         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5051         this evenly matches with the ref near the top of this function.
5052
5053 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5054
5055         * dbus/dbus-object-tree.c
5056         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5057         and we try to unregister a path that's not registered, still go
5058         through the process of unlocking and don't just return.
5059
5060 2005-03-09  Colin Walters  <walters@verbum.org>
5061
5062         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5063         to this are generated for client-side wrappers.  Invokes a
5064         D-BUS method and returns reply values.  
5065
5066         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5067         function; writes signature string for argument direction.
5068         (write_args_for_direction): Change to pass input values directly
5069         instead of via address, and fix indentation.
5070         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5071         make generated wrappers inlineable.
5072
5073         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5074         note about using dbus_type_is_fixed.
5075
5076         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5077         dbus/dbus-signature.c as dbus_type_is_fixed.
5078
5079         All callers updated.
5080
5081         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5082         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5083
5084         * dbus/dbus-signature.h: Prototype.
5085
5086         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5087         error printf code.
5088
5089         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5090         appropriate instead of just freeing it.
5091         (main): Free returned strings using g_free.
5092
5093         * test/glib/Makefile.am (test-service-glib-glue.h)
5094         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5095
5096         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5097         simply maps a simple D-BUS type to GType.
5098         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5099         GType.
5100         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5101         initialize the value with it.
5102         (dbus_gvalue_binding_type_from_type): Unused, delete.
5103         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5104         various types instead of unmarshalling to value data directly.
5105         Remove can_convert boolean.
5106         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5107         returning directly instead of using can_convert boolean.
5108         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5109         Stores a GValue in a pointer to a value of its corresponding C
5110         type.
5111
5112         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5113         add dbus_gvalue_store.
5114
5115 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5116
5117         Fix a bunch of lifecycle and memory management problems
5118         in the mono bindings.
5119
5120         * mono/Arguments.cs (Arguments): Implement IDisposable
5121
5122         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5123         strictly a static class.
5124
5125         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5126         delegates into this file.
5127         (Connection): Implement IDisposable.
5128         (Dispose): Disconnect the connection and set the raw connection
5129         pointer to IntPtr.Zero.
5130         (~Connection): Call Dispose().
5131         (RegisterObjectPath): Added.  Manages the registration of object
5132         paths so we can cleanly disconnect them at dispose/finalize time.
5133         (UnregisterObjectPath): Ditto.
5134         (set_RawConnection): Unregister all of the object paths when
5135         changing the underlying DBusConnection.  Add them back onto the
5136         new connection, if any.
5137
5138         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5139         more unmanaged resources anymore, so it's not necessary.  Move all
5140         the DBusObjectPathVTable stuff out of here.
5141         (Handler): Save references to our delegates so that they don't get
5142         finalized.  Call Connection.RegisterObjectPath() instead of
5143         dbus_connection_register_object_path() directly.
5144         (Message_Called): Dispose the message after we're finished with
5145         it.
5146
5147         * mono/Message.cs (Message): Implement IDisposable.
5148         (Dispose): Dispose the Arguments, and set the RawMessage to
5149         IntPtr.Zero.
5150         (SendWithReplyAndBlock): We own the ref to the reply that comes
5151         back from dbus_connection_send_with_reply_and_block() so add a
5152         comment about that and unref it after we've constructed a managed
5153         MethodReturn class around it.  Fixes a big, big leak.
5154
5155         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5156         method.
5157         (BuildSignalHandler): After we've sent the Signal message, dispose
5158         of it.
5159         (BuildMethod): Dispose of the method call and reply messages after
5160         we've sent the message and extracted the data we want from the
5161         reply.
5162
5163         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5164         anymore.
5165         (Service_FilterCalled): Dispose of the message after we're
5166         finished with it.
5167
5168 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5169
5170         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5171         After we attach our pending call to the connection, unref
5172         it.  Fixes a leak.
5173  
5174         * mono/Connection.cs (set_RawConnection): Disconnect our
5175         filter and match callbacks from the old connection and
5176         reconnect them to the new connection, if any.
5177
5178         * mono/DBusType/Array.cs: "Code" is a static member, so
5179         don't use "this" to refer to it.  Fix for stricter checking
5180         in Mono 1.1.4.
5181  
5182         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5183         object path that we pass into unmanaged code.
5184  
5185         * mono/DBusType/String.cs (Append): Don't leak the string
5186         that we pass into unmanged code.
5187
5188 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5189         * NEWS: Update for 0.31
5190
5191         * configure.in: Release 0.31
5192         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5193
5194         * qt/Makefile.am: fixed build
5195
5196         * dbus/Makefile.am: soname bump for libdbus
5197
5198         * glib/Makefile.am: soname bump for libdbus-glib
5199
5200 2005-03-05  Havoc Pennington  <hp@redhat.com>
5201
5202         * dbus/dbus-sysdeps.c:
5203         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5204         value
5205         (_dbus_generate_random_bytes_buffer): fix return value
5206
5207         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5208         checks actually work, from Tom Parker <fdo@tevp.net>
5209
5210 2005-03-01  Colin Walters  <walters@verbum.org>
5211
5212         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5213         functions copied from dbus-glib-tool.c.
5214         (main): Convert lots of error code to use them.
5215         Also add some testing for introspection bits.
5216
5217 2005-03-01  Colin Walters  <walters@verbum.org>
5218         
5219         * doc/TODO: Remove introspection signature TODO.
5220
5221 2005-02-27  Colin Walters  <walters@verbum.org>
5222
5223         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5224         Change return value to const char * instead of int so we can do
5225         full signatures.
5226         (struct PropertyInfo, struct ArgInfo): Store char *.
5227         (property_info_new, arg_info_new): Update parameters, strdup.
5228         (property_info_unref, arg_info_unref): Free.
5229
5230         * glib/dbus-gidl.h: Update prototypes.
5231
5232         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5233         (validate_signature): New function, just validates signature and
5234         sets GError.
5235         (parse_property, parse_arg): Invoke validate_signature.  Store
5236         signature instead of just type code.
5237
5238         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5239         function to return a primary type for a signature, dropping
5240         information about types in container types.
5241         (dbus_gvalue_genmarshal_name_from_type)
5242         (dbus_gvalue_binding_type_from_type)
5243         (dbus_gvalue_ctype_from_type): Update to take full signature
5244          instead of type code.
5245         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5246
5247         * glib/dbus-gvalue.h: Update prototypes for above.
5248
5249         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5250         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5251         (introspect_properties, introspect_signals, write_interface):
5252         Update to handle signatures, and remove usage of
5253         _dbus_gutils_type_to_string.
5254         (handle_introspect): Print out type codes instead of e.g. "string"
5255         in hardcoded introspection XML; also use x_AS_STRING constants
5256         instead of hardcoding in string.
5257
5258         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5259         to string.  Remove usage of _dbus_gutils_type_to_string.
5260
5261         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5262
5263         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5264         deletion.
5265         
5266         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5267         (compute_marshaller_name, generate_glue): Handle signature change
5268         to string.
5269         (write_formal_parameters, write_args_for_direction): Ditto, and
5270         remove FIXME.
5271
5272         * tools/dbus-tree-view.c (type_to_string): Delete.
5273         (info_set_func_text): Update to print full signatures.
5274
5275         * test/glib/test-service-glib.xml: Change types to new
5276         introspection format.
5277
5278 2005-02-26  Havoc Pennington  <hp@redhat.com>
5279
5280         * doc/TODO: remove the "guid" item
5281
5282         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5283         (with_bus_thread_func): use open_private
5284
5285         * dbus/dbus-connection.c (dbus_connection_open_private): new
5286         function that works like the old dbus_connection_open()
5287         (dbus_connection_open): now returns an existing connection if
5288         possible
5289
5290         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5291         through the GUID to the transport
5292
5293         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5294         GUID in hex-encoded form.
5295
5296         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5297         pass GUID argument in to the transport
5298
5299         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5300         guid argument
5301
5302         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5303
5304         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5305
5306 2005-02-25  Havoc Pennington  <hp@redhat.com>
5307
5308         * doc/dbus-specification.xml: document the GUID thing
5309
5310         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5311         globally unique ID for the server, and put a "guid=hexencoded"
5312         field in the address
5313
5314         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5315
5316         * dbus/dbus-message.c: ditto
5317
5318         * dbus/dbus-dataslot.c: ditto
5319
5320         * dbus/dbus-list.c: ditto
5321
5322         * dbus/dbus-internals.h: wait, just include
5323         dbus-threads-internal.h here
5324         
5325         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5326         use in main library
5327
5328         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5329
5330 2005-02-24  Colin Walters  <walters@verbum.org>
5331
5332         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5333
5334 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5335
5336         * glib/Makefile.am: added dbus-gobject.h to sources list
5337         so distcheck doesn't fail
5338         
5339 2005-02-24  Havoc Pennington  <hp@redhat.com>
5340
5341         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5342         you must disconnect before unref, since locking and other things
5343         are screwed up otherwise. Fix assorted other locking stuff.
5344
5345         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5346         fix compilation
5347
5348         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5349         into a private header and don't export from the library
5350
5351         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5352
5353 2005-02-24  Colin Walters  <walters@verbum.org>
5354         
5355         * dbus/dbus-signature.c: New file; implements various functions
5356         related to type signatures.  Includes an interator for parsing,
5357         validation functions.
5358         (dbus_type_is_basic): Moved here from
5359         dbus-marshal-basic.c:_dbus_type_is_basic.
5360         (dbus_type_is_container): Moved here from
5361         dbus-marshal-basic.c:_dbus_type_is_container.
5362
5363         All callers of _dbus_type_is_container and _dbus_type_is_basic
5364         updated, and include dbus-signature.h.
5365
5366         * dbus/dbus-signature.h: New file; prototypes for the above.
5367
5368         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5369         dbus-signature.h.
5370
5371         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5372         function factored out of _dbus_first_type_in_signature.
5373         (_dbus_first_type_in_signature_c_str): New function; returns first
5374         type code for a type signature character.
5375
5376         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5377         handle function moves.
5378
5379         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5380
5381         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5382         function; skips to next complete type in type signature.
5383         Implemented using previous skip_one_complete_type.  Now
5384         skip_one_complete_type just delegates to
5385         _dbus_type_signature_next.
5386
5387         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5388         to dbus-signature.c
5389         (_dbus_type_is_container): Ditto.
5390
5391         * doc/dbus-specification.xml: Update introspection sample to
5392         use real type signatures.
5393
5394         * dbus/dbus-test.h: Prototype signature test.
5395
5396         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5397         signature tests.
5398
5399         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5400
5401 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5402
5403         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5404         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5405
5406 2005-02-21  Colin Walters  <walters@verbum.org>
5407
5408         * dbus/dbus-test-main.c (main): Take optional specific test
5409         argument.
5410
5411         * dbus/dbus-test.c (run_test): New function, runs a test function
5412         with no data directory.
5413         (run_data_test): Like above, but takes data directory.
5414         (dbus_internal_do_not_use_run_tests): Take
5415         specific test argument.  Replace lots of cut n' paste code
5416         with run_test and run_data_test.
5417
5418         * dbus/dbus-test.h: Update prototype for
5419         dbus_internal_do_not_use_run_tests.
5420
5421 2005-02-20  Havoc Pennington  <hp@redhat.com>
5422
5423         Fix bugs reported by Daniel P. Berrange
5424         
5425         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5426         (protected_change_watch): new function
5427         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5428         (_dbus_server_add_watch): change to work like the
5429         dbus-connection.c equivalents; like those, probably kind of
5430         busted, but should at least mostly work for now
5431         (dbus_server_disconnect): drop the lock if we were already
5432         disconnected, patch from Daniel P. Berrange
5433
5434         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5435         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5436         same stuff
5437
5438         * doc/TODO: todo about unscrewing this mess
5439
5440 2005-02-19  Colin Walters  <walters@verbum.org>
5441
5442         * glib/dbus-binding-tool-glib.c
5443         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5444
5445         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5446         as errno.h and sys/stat.h.
5447         (lose): New function, prints error with
5448         newline and exits.
5449         (lose_gerror): Similar, but takes GError for message.
5450         (main): Add --output argument to specify output file to write to,
5451         instead of always printing to stdout.  In this mode, determine
5452         timestamps on source files to see whether any are newer than the
5453         target file.  If not, exit.  Also convert a number of error
5454         messages to use lose (since it's shorter), and switch to using
5455         g_io_channel_shutdown.
5456
5457 2005-02-19  Havoc Pennington  <hp@redhat.com>
5458
5459         * glib/dbus-gobject.c
5460         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5461
5462         * glib/dbus-glib.c: fix doxygen warnings
5463
5464         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5465         is found on an <arg>
5466
5467 2005-02-17  Colin Walters  <walters@verbum.org>
5468
5469         * glib/dbus-gobject.h: Don't export
5470         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5471         
5472         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5473         (invoke_object_method): Handle it.
5474
5475         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5476         Handle rename.
5477         
5478 2005-02-17  Colin Walters  <walters@verbum.org>
5479
5480         * bus/.cvsignore, doc/.cvsignore
5481         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5482         Update.
5483
5484 2005-02-17  Colin Walters  <walters@verbum.org>
5485         
5486         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5487         Rename to DBUS_SERVICE_DBUS.
5488         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5489         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5490         Change the value from "org.freedesktop.Local"
5491         to "org.freedesktop.DBus.Local".
5492         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5493         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5494         DBUS_INTERFACE_INTROSPECTABLE.
5495         Change the value from "org.freedesktop.Introspectable"
5496         to "org.freedesktop.DBus.Introspectable".
5497         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5498         DBUS_INTERFACE_PROPERTIES.
5499         Change the value from "org.freedesktop.Properties"
5500         to "org.freedesktop.DBus.Properties".
5501         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5502         DBUS_INTERFACE_PEER.
5503         Change the value from "org.freedesktop.Peer"
5504         to "org.freedesktop.DBus.Peer".
5505         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5506         DBUS_INTERFACE_LOCAL.
5507         Change the value from "org.freedesktop.Local"
5508         to "org.freedesktop.DBus.Local".
5509
5510         All other users of those constants have been changed.
5511
5512         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5513
5514         * glib/dbus-gobject.c (handle_introspect): Use constants.
5515
5516         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5517
5518 2005-02-17  Colin Walters  <walters@verbum.org>
5519
5520         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5521         (parse_node, parse_interface, parse_method, parse_signal)
5522         (parse_property, parse_annotation): Lose if we're currently in an
5523         annotation.
5524         (parse_annotation): New function.
5525         (parser_start_element, parser_end_element): Handle annotation.
5526         (parse_method, parse_interface): Remove support for c_name attribute,
5527         switch to annotations.
5528
5529         * glib/dbus-gidl.h (interface_info_get_binding_names)
5530         (method_info_get_binding_names)
5531         (interface_info_get_binding_name, method_info_get_binding_name)
5532         (interface_info_set_binding_name, method_info_set_binding_name):
5533         Remove.
5534         (interface_info_get_annotations, method_info_get_annotations)
5535         (interface_info_get_annotation, method_info_get_annotation)
5536         (interface_info_add_annotation, method_info_add_annotation):
5537         Prototype.
5538
5539         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5540         for "bindings".
5541         (struct MethodInfo): Ditto.
5542         Straightfoward conversion of binding methods into annotation methods
5543         as prototyped.
5544
5545         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5546
5547         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5548
5549         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5550         Use new annotation API.
5551
5552         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5553         annotation element.
5554         
5555         * doc/dbus-specification.xml: Discuss introspection annotations,
5556         include list of well-known annotations.
5557
5558         * test/glib/test-service-glib.xml: Make validate against new DTD.
5559
5560 2005-02-17  Colin Walters  <walters@verbum.org>
5561
5562         This patch is based on initial work from
5563         Paul Kuliniewicz <kuliniew@purdue.edu>.
5564
5565         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5566         initialization of GValue from dbus type to here.
5567         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5568         for the "glib-genmarshal" program from a DBus type.
5569         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5570         into the C name for it we use in the glib bindings.
5571         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5572         glib C type (not GValue).
5573         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5574
5575         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5576         from dbus-gobject.c.
5577
5578         * glib/dbus-gutils.h: Prototype it.
5579
5580         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5581         (marshal_dbus_message_to_g_marshaller): Use new shared function
5582         dbus_glib_marshal_dbus_message_to_gvalue_array.
5583
5584         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5585         Will be changed once we have annotations.
5586
5587         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5588         GStaticRWLock.  Callers updated.
5589         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5590         (string_table_next): New function for iterating over zero-terminated
5591         string value array.
5592         (string_table_lookup): New function; retrieves specific entry in
5593         array.
5594         (get_method_data): New function; look up method data in object data chunk.
5595         (object_error_domain_prefix_from_object_info)
5596         (object_error_code_from_object_info): New functions, but not implemented yet.
5597         (method_interface_from_object_info): New function; retrieve interface name.
5598         (method_name_from_object_info): New function; retrieve method name.
5599         (method_arg_info_from_object_info): New function; retrieve argument data.
5600         (arg_iterate): New function; iterates over serialized argument data.
5601         (method_dir_signature_from_object_info): New function; returns a
5602         GString holding type signature for arguments for just one
5603         direction (input or output).
5604         (method_input_signature_from_object_info)
5605         (method_output_signature_from_object_info): New functions.
5606         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5607         converts dbus message arguments into a GValue array.  Used for both
5608         signal handling and method invocation.
5609         (struct DBusGlibWriteIterfaceData): New utility structure.
5610         (write_interface): New function; generate introspection XML for
5611         an interface.
5612         (introspect_interfaces): New function; gathers all interface->methods,
5613         generates introspection XML for them.
5614         (handle_introspect): Invoke introspect_interfaces.
5615         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5616         (lookup_object_and_method): New function; examines an incoming message
5617         and attempts to match it up (via interface, method name, and argument
5618         signature) with a known object and method.
5619         (gerror_domaincode_to_dbus_error_name): New function; converts a
5620         GError domain and code into a DBus error name.  Needs GError data
5621         added to object introspection to work well.
5622         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5623         GError.
5624         (invoke_object_method): New function to invoke an object method
5625         looked up via lookup_object_and_method.  Parses the incoming
5626         message, turns it into a GValue array, then invokes the marshaller
5627         specified in the DBusGMethodInfo.  Creates a new message with
5628         either return values or error message as appropriate.
5629         (gobject_message_function): Invoke lookup_object_and_method and
5630         invoke_object_method.
5631
5632         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5633         (enum DBusBindingOutputMode): New enum for binding output modes.
5634         (pretty_print): Print binding names.
5635         (dbus_binding_tool_error_quark): GError bits.
5636         (version): Fix typo.
5637         (main): Create GIOChannel for output.  Parse new --mode argument,
5638         possible values are "pretty-print", "glib-server", "glib-client".
5639         Use mode to invoke appropriate function.
5640         
5641         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5642
5643         * glib/dbus-glib-tool.h: New header, just includes GError bits
5644         for now.
5645
5646         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5647         maps binding style to name.
5648         (struct MethodInfo): Ditto.
5649         (get_hash_keys, get_hash_key): Utility function, returns keys for
5650         a GHashTable.
5651         (interface_info_new, method_info_new): Initialize bindings.
5652         (interface_info_unref, method_info_unref): Destroy bindings.
5653         (method_info_get_binding_names, method_info_get_binding_name)
5654         (interface_info_get_binding_names, interface_info_get_binding_name):
5655         Functions for retrieving binding names.
5656         (method_info_set_binding_name, interface_info_set_binding_name):
5657         Functions for setting binding names.
5658
5659         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5660         for glib binding generation.
5661
5662         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5663         and client-side glib glue generation.
5664
5665         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5666         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5667         dbus-glib-tool.h.
5668
5669         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5670         of using GClosureMarshal directly.
5671         (struct DBusGObjectInfo): Add n_infos member.
5672
5673         * test/glib/test-service-glib.xml: New file; contains introspection data
5674         for MyTestObject used in test-service-glib.c.
5675
5676         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5677         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5678         (my_object_uppercase, my_object_many_args): New test methods.
5679         (main): Use dbus_g_object_class_install_info to include generated object
5680         info.
5681
5682         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5683         as well as client-side bindings.
5684
5685         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5686         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5687         using both the dbus_gproxy stuff directly as well as the generated bindings.
5688
5689 2005-02-15  Havoc Pennington  <hp@redhat.com>
5690
5691         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5692         complete a pending call, don't run filters first.
5693
5694         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5695         dbus_pending_call_steal_reply
5696
5697         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5698         _dbus_connection_block_pending_call
5699         (dbus_pending_call_get_reply): change to steal_reply and return a
5700         ref
5701
5702         * dbus/dbus-connection.c
5703         (dbus_connection_send_with_reply_and_block): port to work in terms
5704         of DBusPendingCall
5705         (_dbus_connection_block_pending_call): replace block_for_reply
5706         with this
5707
5708 2005-02-14  Havoc Pennington  <hp@redhat.com>
5709
5710         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5711         properly handle looking up group information by name; fix 
5712         from j@bootlab.org
5713
5714 2005-02-13  Havoc Pennington  <hp@redhat.com>
5715
5716         * dbus/dbus-connection.c (dbus_connection_return_message) 
5717         (dbus_connection_borrow_message): hold dispatch lock while message
5718         is outstanding
5719         (_dbus_connection_block_for_reply): hold dispatch lock while we
5720         block for the reply, so nobody steals our reply
5721         (dbus_connection_pop_message): hold the dispatch lock while we
5722         pluck the message
5723
5724 2005-02-13  Havoc Pennington  <hp@redhat.com>
5725
5726         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5727         (_dbus_connection_release_dispatch)
5728         (_dbus_connection_acquire_io_path)
5729         (_dbus_connection_release_io_path): make the mutex and condvar
5730         control access to the "acquired" flag. Drop the connection lock
5731         while waiting on the condvar. Hopefully these are baby steps in
5732         roughly the right direction.
5733
5734 2005-02-13  Havoc Pennington  <hp@redhat.com>
5735
5736         * dbus/dbus-connection.c: use separate mutexes for the condition
5737         variables; this is some kind of baseline for sanity, but the
5738         condition variables still aren't used correctly afaict
5739
5740 2005-02-13  Havoc Pennington  <hp@redhat.com>
5741
5742         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5743         fix a double-unlock
5744
5745         * dbus/dbus-connection.c
5746         (_dbus_connection_detach_pending_call_unlocked): add this
5747
5748         Initial semi-correct pass through to fix thread locking; there are
5749         still some issues with the condition variable paths I'm pretty
5750         sure
5751         
5752         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5753         lock/unlock calls
5754
5755         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5756         rename to add _unlocked
5757         (struct DBusConnection): move "dispatch_acquired" and
5758         "io_path_acquired" to use only one bit each.
5759         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5760         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5761         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5762         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5763         (_dbus_connection_remove_timeout) 
5764         (_dbus_connection_toggle_timeout): drop lock when calling out to
5765         user functions; done in a hacky/bad way.
5766         (_dbus_connection_send_and_unlock): add a missing unlock
5767         (_dbus_connection_block_for_reply): add a missing unlock
5768
5769         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5770         drop lock in a hacky probably unsafe way to call out to user
5771         function
5772
5773 2005-02-12  Havoc Pennington  <hp@redhat.com>
5774
5775         * tools/dbus-tree-view.c (info_set_func_text): display more
5776         details on args
5777
5778         * bus/driver.c (bus_driver_handle_list_services): list the bus
5779         driver
5780
5781         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5782
5783         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5784         (method_info_get_n_args): new function
5785
5786 2005-02-12  Havoc Pennington  <hp@redhat.com>
5787
5788         * bus/driver.c (bus_driver_handle_introspect): add introspection
5789         for bus driver
5790
5791 2005-02-12  Havoc Pennington  <hp@redhat.com>
5792
5793         * bus/driver.c: put the signature of each bus driver method in the
5794         table of handlers and check it on incoming calls; this isn't
5795         really useful, but going to add introspect support in a minute.
5796
5797 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5798
5799         * mono/Connection.cs: The unpredictability of finalizers in mono
5800         prevents us from deterministically disconnecting the filters from
5801         the Service class's finalizer, so move tracking of filters and
5802         matches here.  Add API for that.
5803
5804         * mono/Service.cs: Remove the code, add code which calls the
5805         methods now on the Connection class.
5806
5807 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5808
5809         * python/dbus.py (class Sender): added to support dbus signals better
5810         (Bus::add_signal_receiver): added expand_args parameter which defaults
5811         to True.  When expand args is True the signal handler will pass the 
5812         message arguments as parameters to the signal handler.  If False
5813         revert to previous behavior where the signal handler must get the
5814         argument list from the message.  This is to help port applications
5815         like HAL that have a tendancy to send variable length argument lists.
5816         self._match_rule_to_receivers is now a dict of dicts.
5817         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5818         removing it from a list
5819         (Bus::_signal_func): change signal handlers so that interface,
5820         signal_name, service, path and message are packed into a Sender
5821         object and that is passed to the handler.  If expand_args is True
5822         extract the args list from the message and append it to the parameter
5823         list
5824         
5825         * python/dbus_bindings.pyx.in (class Signature): added to support 
5826         signiature types
5827         (MessageIter::__init__): changed iteration limit to match D-BUS
5828         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5829         STRUCT and VARIENT type support
5830         (MessageIter::python_value_to_dbus_sig): made recursive to support
5831         recursive types
5832         (MessageIter::append*): added Signature, dict, tuple 
5833         support
5834
5835         * python/examples/example-client.py: added examples of getting tuples
5836         and dicts
5837
5838         * python/examples/example-service.py: added examples of sending tuples
5839         and dicts
5840
5841         * python/examples/example-signal-recipient.py: Fixed to handle new
5842         signal callback format
5843
5844 2005-02-10  Havoc Pennington  <hp@redhat.com>
5845
5846         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5847         (call dbus_g_proxy_add_signal)
5848
5849         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5850         escape the hostname
5851         (_dbus_server_new_for_domain_socket): escape the path
5852
5853         * dbus/dbus-address.c (dbus_address_escape_value): new
5854         (dbus_address_unescape_value): new
5855         (dbus_parse_address): unescape values
5856
5857         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5858
5859         * doc/dbus-specification.xml: explain how to escape values in
5860         addresses
5861
5862 2005-02-10  Havoc Pennington  <hp@redhat.com>
5863
5864         * dbus/dbus-message-factory.c (generate_special): modify test to
5865         avoid using a non-basic dict key
5866
5867         * dbus/dbus-marshal-validate-util.c: add test for the below
5868
5869         * doc/dbus-specification.xml: require that dict keys are a basic
5870         type
5871
5872         * dbus/dbus-marshal-validate.c
5873         (_dbus_validate_signature_with_reason): require that dict key is a
5874         basic type
5875
5876 2005-02-10  Havoc Pennington  <hp@redhat.com>
5877
5878         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5879         change to be _and_unlock instead of _unlocked
5880
5881         * dbus/dbus-connection.c
5882         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5883         have no_update so we can find this bug quickly in future
5884
5885 2005-02-10  Havoc Pennington  <hp@redhat.com>
5886
5887         * dbus/dbus-message-util.c (verify_test_message): tests for string
5888         array
5889
5890         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5891         support for arrays of string/signature/path
5892
5893 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5894
5895         * dbus/dbus-connection.c
5896         (_dbus_connection_queue_received_message_link,
5897         _dbus_connection_message_sent): Add the path to
5898         the verbose output.
5899         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5900         _dbus_connection_send_preallocated_unlocked(), updated the
5901         dispatch status, and unlocks.  Fixes a bug where certain
5902         situations (like a broken pipe) could cause a Disconnect message
5903         to not be sent, tricking the bus into thinking a service was still
5904         there when the process had quit.
5905         (_dbus_connection_send_preallocated): Call
5906         _dbus_connection_send_preallocated_and_unlock().
5907         (_dbus_connection_send_and_unlock): Added.  Calls
5908         _dbus_connection_send_preallocated_and_unlock().
5909         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5910         (dbus_connection_send_with_reply): Update the dispatch status and
5911         unlock.
5912
5913         * mono/Service.cs (~Service): Added.  Removes the filter so that
5914         we don't get unmanaged code calling back into a GCed delegate.
5915         (RemoveFilter); Added.
5916
5917 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5918
5919         * dbus/dbus-message.c (dbus_message_iter_open_container):
5920         - Removed check for iterator type being an array because
5921         get_arg_type does not work with writer iterators
5922         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5923
5924 2005-02-07  Havoc Pennington  <hp@redhat.com>
5925
5926         * doc/dbus-specification.xml: some more language cleanups; add
5927         stuff about how to deal with invalid protocol and extension
5928         points; add _ to allowed chars in auth commands; add EXTENSION_
5929         auth command prefix
5930
5931 2005-02-06  Havoc Pennington  <hp@redhat.com>
5932
5933         * s/expected/required/ in a couple places for clarity
5934
5935 2005-02-07  Colin Walters  <walters@verbum.org>
5936
5937         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5938         sender or proposed_recipient.
5939
5940 2005-02-06  Havoc Pennington  <hp@redhat.com>
5941
5942         * dbus/dbus-message-factory.c (generate_special): more tests
5943
5944         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5945         array length that exceeds the maximum
5946
5947 2005-02-05  Havoc Pennington  <hp@redhat.com>
5948
5949         * dbus/dbus-message-factory.c (generate_special): more test cases,
5950         increasing coverage
5951
5952         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5953         reason why a signature was invalid
5954
5955         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5956         skip the length of the string before we look at it in validation
5957
5958         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5959         equal_substring
5960
5961         * dbus/dbus-message.c (_dbus_message_loader_new): default
5962         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5963
5964 2005-02-05  Havoc Pennington  <hp@redhat.com>
5965
5966         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5967         if the signature of a variant was empty
5968         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5969         struct with no element type)
5970
5971         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5972         mangled messages to break things
5973
5974 2005-02-04  Havoc Pennington  <hp@redhat.com>
5975
5976         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5977         g_quark_try_string() so it actually can return 0
5978         (dbus_g_proxy_connect_signal): ditto
5979
5980 2005-02-04  Havoc Pennington  <hp@redhat.com>
5981
5982         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5983         bogus warning
5984         (tristring_from_message): assert cleanly on null path/interface
5985         (should not be possible though I decided later)
5986         (dbus_g_proxy_dispose): move proxy manager unregistration here
5987         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5988         g_return_if_fail() checks
5989
5990 2005-02-04  Havoc Pennington  <hp@redhat.com>
5991
5992         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5993
5994         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5995         (with some minor changes)
5996
5997         * doc/dbus-specification.xml: add deprecated attribute to
5998         introspection format
5999
6000 2005-01-31  Havoc Pennington  <hp@redhat.com>
6001
6002         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6003         think it's sort of right
6004
6005 2005-01-30  Havoc Pennington  <hp@redhat.com>
6006
6007         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6008
6009 2005-01-30  Havoc Pennington  <hp@redhat.com>
6010
6011         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6012
6013         * autogen.sh: change to autotools 1.9
6014
6015         * glib/dbus-gproxy.c: completely change how signals work
6016         (dbus_g_proxy_add_signal): new function to specify signature of a
6017         signal
6018         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6019         and g_warning if the incoming message has the wrong signature.
6020
6021 2005-01-30  Havoc Pennington  <hp@redhat.com>
6022
6023         * tools/dbus-names-model.c (have_names_notify): fix this
6024
6025         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6026         up the string array handling a bit 
6027
6028 2005-01-30  Havoc Pennington  <hp@redhat.com>
6029
6030         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6031         (dbus_g_pending_call_cancel): new function
6032
6033         * dbus/dbus-glib.h: move GType decls for connection/message here;
6034         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6035         here, just kind of rationalizing how we handle all that
6036
6037         * tools/dbus-names-model.c: new file for a tree model listing the
6038         services on a bus
6039
6040         * tools/dbus-tree-view.c (model_new): use proper typing on the
6041         model rows
6042
6043 2005-01-30  Havoc Pennington  <hp@redhat.com>
6044
6045         * glib/dbus-gmain.c: add a custom GSource back that just checks
6046         whether the message queue has anything in it; otherwise, there are 
6047         cases where we won't see messages in the queue since there was no 
6048         IO visible to the glib main loop
6049
6050         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6051         increase default message timeout to 25 seconds
6052
6053 2005-01-30  Havoc Pennington  <hp@redhat.com>
6054
6055         * test/glib/test-profile.c (no_bus_stop_server): remove the
6056         warning about the g_warning that I just fixed
6057
6058         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6059         custom source, seems to be a lot easier to understand and work
6060         better.
6061
6062 2005-01-30  Havoc Pennington  <hp@redhat.com>
6063
6064         I think this main loop thing is conceptually broken, but here are 
6065         some band aids. I'll maybe rewrite it in a minute.
6066         
6067         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6068         custom GSource, so don't pass it in; confusing
6069         (gsource_server_finalize, gsource_connection_finalize): add
6070         finalize handlers that remove all the watches.  
6071
6072 2005-01-30  Havoc Pennington  <hp@redhat.com>
6073
6074         * glib/dbus-gobject.c (introspect_properties): fix the XML
6075         generated
6076
6077         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6078         which effectively detects the use of freed messages
6079
6080         * glib/dbus-gobject.c (handle_introspect): modify and return the
6081         reply message instead of the incoming message
6082
6083         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6084         gee, maybe it should SEND THE XML instead of just making a string
6085         and freeing it again ;-)
6086
6087         * tools/dbus-print-message.c (print_message): improve printing of
6088         messages
6089
6090         * configure.in: add debug-glib.service to the output
6091
6092 2005-01-30  Havoc Pennington  <hp@redhat.com>
6093
6094         dbus-viewer introspected and displayed the bus driver
6095         
6096         * dbus/dbus-object-tree.c 
6097         (object_tree_test_iteration): add tests for a handler registered on "/"
6098
6099         * dbus/dbus-object-tree.c
6100         (_dbus_decompose_path): fix to handle path "/" properly
6101         (run_decompose_tests): add tests for path decomposition
6102         
6103         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6104         properly
6105
6106         * glib/dbus-gobject.c (handle_introspect): fix quotes
6107
6108         * test/glib/run-test.sh: support launching the bus, then running
6109         dbus-viewer
6110
6111         * test/glib/test-service-glib.c (main): put in a trivial gobject
6112         subclass and register it on the connection
6113
6114         * bus/driver.c (bus_driver_handle_introspect): implement
6115         introspection of the bus driver service
6116
6117         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6118         identifiers, doctype decl
6119
6120         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6121         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6122         returning the service unchanged.
6123         (bus_driver_handle_message): remove old check for reply_serial in
6124         method calls, now the message type deals with that
6125         (bus_driver_handle_message): handle NULL interface
6126
6127         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6128
6129         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6130         -1 for len
6131
6132         * tools/dbus-viewer.c: add support for introspecting a service on
6133         a bus
6134
6135         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6136         (dbus_g_pending_call_unref): add
6137
6138 2005-01-29  Havoc Pennington  <hp@redhat.com>
6139
6140         * tools/dbus-tree-view.c: add support for displaying properties.
6141         (run dbus-viewer with an introspect xml file as arg, then resize
6142         the window so the tree elements show up, not sure what that is)
6143
6144         * glib/dbus-gobject.c (handle_introspect): return
6145         org.freedesktop.Properties and org.freedesktop.Introspectable
6146         interfaces when we are introspected.
6147
6148         * doc/dbus-specification.xml: allow empty interface name when 
6149         Get/Set a property
6150
6151 2005-01-29  Havoc Pennington  <hp@redhat.com>
6152
6153         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6154         though it uses glib, it could be extended for any binding in
6155         principle
6156
6157         * glib/dbus-gobject.c (gobject_message_function): change to the
6158         new way properties work
6159
6160         * dbus/dbus-protocol.h: add the new interfaces
6161
6162         * doc/dbus-specification.xml: document the introspection format,
6163         Introspectable interface, and add an org.freedesktop.Properties
6164         interface.
6165
6166         * glib/dbus-gparser.c: add support for a <property> element
6167
6168         * glib/dbus-gidl.c: add PropertyInfo
6169
6170         * glib/dbus-gobject.c (handle_introspect): put the outermost
6171         <node> outside the signal and property descriptions.
6172         (introspect_properties): export properties as <property> rather
6173         than as method calls
6174
6175 2005-01-28  Havoc Pennington  <hp@redhat.com>
6176
6177         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6178         related to authentication protocol
6179
6180 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6181
6182         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6183                 - BUS_ACTIVATION -> BUS_STARTER
6184                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6185                 - class MessageIter (__init__): Added recursion checking 
6186                 so we throw a nice error instead of just disconnecting from the
6187                 bus.
6188                 (get): Added arg_type parameter for recursion.
6189                 Removed the nil type
6190                 Added signiture type placeholder (not implemented)
6191                 Added struct type placeholder (not implemented)
6192                 Added varient type placeholder (not implemented)
6193                 Commented out dict type for now     
6194                 (get_element_type): renamed from get_array_type
6195                 (get_*): changed to use the dbus_message_iter_get_basic API
6196                 (get_*_array): removed in favor of recursive get_array method
6197                 (get_array): new recursive method which calls get to marshal
6198                 the elements of the array
6199                 (value_to_dbus_sig): New method returns the corrasponding
6200                 dbus signiture to a python value
6201                 (append): Comment out dict handling for now
6202                 Handle lists with the new recursive API
6203                 Comment out None handling for now
6204                 (append_nil): removed
6205                 (append_*): changed to use dbus_message_iter_append_basic API
6206                 (append_*_array): removed in favor of recursive append_array 
6207                 method
6208                 (__str__): Make it easier to print out recursive iterators
6209                 for debugging
6210                 - class Message (__str__): moved type inspection to the
6211                 MessageIter class' __str__ method
6212                 (get_iter): Added an append parameter wich defaults to False
6213                 If True use the new API's to create an append iterator
6214
6215         * python/dbus.py: Update to use new bindings API
6216                 - TYPE_ACTIVATION -> TYPE_STARTER
6217                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6218                 - class ActivationBus -> class StarterBus
6219                 - class RemoteObject (__call__): get an append iterator
6220                 - (_dispatch_dbus_method_call): get an append iterator
6221                 - class Object (emit_signal): get an append iterator
6222
6223         * python/examples/: Fixed up the examples to work with the new API
6224                 
6225 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6226
6227         * configure.in: Bump version up to 0.30.
6228
6229         * HACKING: Add a release item to bump the version number up after 
6230         a release.
6231
6232 2005-01-28  Havoc Pennington  <hp@redhat.com>
6233
6234         * doc/dbus-specification.xml: update to describe 16-bit types and
6235         dict entries
6236
6237         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6238         assertion
6239
6240         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6241         type
6242
6243         * dbus/dbus-marshal-recursive.c: implement
6244
6245 2005-01-27  Havoc Pennington  <hp@redhat.com>
6246
6247         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6248
6249         * configure.in: find the right type for 16 and 32 bit ints as well
6250         as 64
6251
6252         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6253         the 16-bit types so people don't have to stuff them in 32-bit or
6254         byte arrays.
6255
6256 2005-01-27  Havoc Pennington  <hp@redhat.com>
6257
6258         * dbus/dbus-message.c: byteswap the message if you init an
6259         iterator to read/write from it
6260         
6261         * dbus/dbus-marshal-byteswap.c: new file implementing 
6262         _dbus_marshal_byteswap()
6263
6264         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6265
6266 2005-01-26  Havoc Pennington  <hp@redhat.com>
6267         
6268         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6269         build, apparently - nobody noticed?)
6270         
6271 2005-01-26  Havoc Pennington  <hp@redhat.com>
6272
6273         * dbus/dbus-marshal-recursive.h: remove todo comment
6274
6275 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6276
6277         * Land the mono binding changes to conform to the new APIs.
6278
6279         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6280         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6281
6282         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6283         type code as a string.
6284         (InitAppending): Rename dbus_message_append_iter_init() to
6285         dbus_message_iter_init_append().
6286
6287         * mono/BusDriver.cs: Rename ServiceEventHandler to
6288         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6289         Rename ServiceOwnerChanged to NameOwnerChanged.
6290
6291         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6292         underlying C call.
6293
6294         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6295
6296         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6297         dbus_bus_acquire_service() to dbus_bus_request_name().
6298
6299         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6300         of Type.UnderlyingSystemType to get the correct element type for
6301         the array.
6302         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6303         dbus_message_get_{element|arg}_type() instead of
6304         dbus_message_iter_init_array_iterator().
6305         (Append): Replace dbus_message_iter_append_array() with
6306         dbus_message_iter_open_container() and
6307         dbus_message_iter_close_container().
6308
6309         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6310         types have been removed.
6311         
6312         * mono/DBusType/*.cs: Replace calls of
6313         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6314         but specify the type in the DllImport extern declaration.  Ditto
6315         for dbus_message_iter_append_[type]() ->
6316         dbus_message_iter_append_basic().
6317
6318         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6319         NameOwnerChangedHandler.
6320
6321 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6322
6323         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6324                 - get_base_service -> get_unique_name
6325                 - bus_get_base_service -> bus_get_unique_name
6326                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6327                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6328                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6329                 - bus_activate_service -> bus_start_service_by_name
6330                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6331                 - bus_acquire_service -> bus_request_name
6332                 - dbus_bus_acquire_service -> dbus_bus_request_name
6333                 - bus_service_exists -> bus_name_has_owner
6334                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6335
6336         * python/dbus.py: Rename of methods
6337                 - activate_service -> start_service_by_name
6338                 - bus_acquire_service -> bus_request_name
6339                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6340                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6341
6342         
6343 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6344
6345         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6346         signature for the method that can't be found.
6347
6348         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6349         the message has any arguments, we need to call
6350         _dbus_type_reader_get_current_type(), not
6351         _dbus_type_reader_has_next().
6352
6353 2005-01-24  Havoc Pennington  <hp@redhat.com>
6354
6355         * dbus/dbus-message-factory.c: more testing of message validation
6356
6357         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6358         header
6359
6360 2005-01-23  Havoc Pennington  <hp@redhat.com>
6361
6362         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6363         get this all working, not many tests in the framework yet though
6364
6365 2005-01-22  Havoc Pennington  <hp@redhat.com>
6366
6367         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6368         tutorial, based on work from David Wheeler.
6369
6370 2005-01-21  Havoc Pennington  <hp@redhat.com>
6371
6372         * dbus/dbus-bus.c: add more return_if_fail checks
6373
6374         * dbus/dbus-message.c (load_message): have the "no validation"
6375         mode (have to edit the code to toggle the mode for now though)
6376
6377         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6378         skips all validation; I want to use this at least for benchmark
6379         baseline, I'm not sure if it should be a publicly-available switch.
6380
6381 2005-01-21  Havoc Pennington  <hp@redhat.com>
6382
6383         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6384         toplevel doxygen group as the low-level API stuff
6385
6386         * dbus/dbus.h: note that libdbus is the low-level API
6387
6388 2005-01-20  Havoc Pennington  <hp@redhat.com>
6389
6390         * update-dbus-docs.sh: script to update docs on the web site, only
6391         works for me though. neener.
6392
6393 2005-01-20  Havoc Pennington  <hp@redhat.com>
6394
6395         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6396         code can reveal bugs in it
6397
6398 2005-01-20  Havoc Pennington  <hp@redhat.com>
6399
6400         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6401         select() version, patches from Tor Lillqvist
6402
6403 2005-01-20  Havoc Pennington  <hp@redhat.com>
6404
6405         * doc/dbus-tutorial.xml: replace > with &gt;
6406
6407         * bus/services.c (bus_registry_acquire_service): validate the name
6408         and return a better error if it's no good.
6409
6410         * doc/dbus-specification.xml: note NO_AUTO_START change
6411
6412         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6413         from AUTO_START, we're toggling the default
6414
6415         * bus/dispatch.c: adapt the tests to change of auto-start default
6416
6417 2005-01-18  Havoc Pennington  <hp@redhat.com>
6418
6419         * rename dbus-daemon-1 to dbus-daemon throughout
6420
6421 2005-01-18  Havoc Pennington  <hp@redhat.com>
6422
6423         * Throughout, grand renaming to strip out the use of "service",
6424         just say "name" instead (or "bus name" when ambiguous).  Did not
6425         change the internal code of the message bus itself, only the
6426         programmer-facing API and messages.
6427         
6428         * doc/dbus-specification.xml: further update the message bus section
6429         
6430         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6431         in error case
6432
6433 2005-01-17  Havoc Pennington  <hp@redhat.com>
6434
6435         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6436         ever
6437
6438         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6439         "invalid name character" not only non-ASCII
6440
6441         * doc/dbus-specification.xml: further update spec, message bus 
6442         parts are still out-of-date but the marshaling etc. stuff is now
6443         accurate-ish
6444
6445 2005-01-17  Havoc Pennington  <hp@redhat.com>
6446
6447         * doc/dbus-specification.xml: partially update spec
6448
6449 2005-01-17  Havoc Pennington  <hp@redhat.com>
6450
6451         * Throughout, align variant bodies according to the contained
6452         type, rather than always to 8. Should save a fair bit of space in
6453         message headers.
6454         
6455         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6456         fix handling of case where p == end
6457
6458         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6459
6460 2005-01-17  Havoc Pennington  <hp@redhat.com>
6461
6462         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6463
6464         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6465         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6466         are marshaling/unmarshaling a boolean.
6467
6468 2005-01-16  Havoc Pennington  <hp@redhat.com>
6469
6470         This is about it on what can be disabled/deleted from libdbus
6471         easily, back below 150K anyhow. Deeper cuts are more work than 
6472         just turning the code off as I've done here.
6473         
6474         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6475         signed int convenience funcs
6476
6477         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6478         verbose mode
6479
6480         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6481         things out of libdbus
6482
6483         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6484         
6485         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6486         tests-enabled-only, though it should probably be deleted)
6487
6488         * dbus/dbus-message-util.c: same stuff
6489
6490         * dbus/dbus-auth-util.c: same stuff
6491
6492 2005-01-16  Havoc Pennington  <hp@redhat.com>
6493
6494         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6495
6496         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6497         way for stripping down dbus-userdb.c stuff included in libdbus.
6498         Rename _dbus_parse_uid for consistency.
6499
6500 2005-01-16  Havoc Pennington  <hp@redhat.com>
6501
6502         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6503         name the assertion failed in
6504
6505         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6506         (_dbus_return_val_if_fail): assert that the name of the function
6507         containing the check doesn't start with '_', since we only want to 
6508         use checks on public functions
6509         
6510         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6511         checks to assertions
6512
6513         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6514         change checks to asserts for private function
6515
6516         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6517         to asserts for private function
6518
6519         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6520         broken assertion that was breaking make check
6521         (_dbus_type_reader_array_is_empty): remove this rather than fix
6522         it, was only used in assertions
6523
6524 2005-01-16  Havoc Pennington  <hp@redhat.com>
6525
6526         * test/unused-code-gc.py: hacky script to find code that's used
6527         only by the bus (not libdbus) or used only by tests or not used at
6528         all. It has some false alarms, but looks like we can clean up a
6529         lot of size from libdbus.
6530
6531         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6532         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6533         
6534 2005-01-16  Havoc Pennington  <hp@redhat.com>
6535
6536         * Add and fix docs according to Doxygen warnings throughout
6537         source.
6538         
6539         * dbus/dbus-marshal-recursive.c
6540         (_dbus_type_reader_array_is_empty): change this to just call
6541         array_reader_get_array_len() and make it static
6542
6543         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6544         from get_array_type
6545         (dbus_message_iter_init_append): rename from append_iter_init
6546
6547         * dbus/dbus-marshal-recursive.c
6548         (_dbus_type_reader_get_element_type): rename from
6549         _dbus_type_reader_get_array_type
6550
6551 2005-01-15  Havoc Pennington  <hp@redhat.com>
6552
6553         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6554
6555         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6556         when DBUS_DISABLE_ASSERT
6557         (_dbus_marshal_set_basic): be sure we align for the string length
6558
6559         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6560         this look faster
6561
6562         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6563         inline macro version
6564         (_dbus_string_set_byte): provide inline macro version
6565
6566 2005-01-15  Havoc Pennington  <hp@redhat.com>
6567
6568         * Land the new message args API and type system.
6569
6570         This patch is huge, but the public API change is not 
6571         really large. The set of D-BUS types has changed somewhat, 
6572         and the arg "getters" are more geared toward language bindings;
6573         they don't make a copy, etc.
6574
6575         There are also some known issues. See these emails for details
6576         on this huge patch:
6577         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6578         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6579         
6580         * dbus/dbus-marshal-*: all the new stuff
6581
6582         * dbus/dbus-message.c: basically rewritten
6583
6584         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6585         freed blocks to be all non-nul bytes so using freed memory is less
6586         likely to work right
6587
6588         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6589         DBUS_FAIL_MALLOC=N environment variable, so you can do
6590         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6591         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6592         thorough.
6593
6594         * qt/message.cpp: port to the new message args API
6595         (operator<<): use str.utf8() rather than str.unicode()
6596         (pretty sure this is right from the Qt docs?)
6597
6598         * glib/dbus-gvalue.c: port to the new message args API
6599
6600         * bus/dispatch.c, bus/driver.c: port to the new message args API
6601
6602         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6603         "locked" flag to TRUE and align_offset to 0; I guess we never
6604         looked at these anyhow, but seems cleaner.
6605
6606         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6607         move allocation padding macro to this header; use it to implement
6608         (_DBUS_STRING_STATIC): ability to declare a static string.
6609
6610         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6611         change to return TRUE if the interface is not set.
6612
6613         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6614         to dbus-marshal-validate.[hc]
6615
6616         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6617         dbus-internals.c
6618
6619         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6620         to dbus-marshal-*.[hc]
6621
6622         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6623         function here from dbus-marshal.c
6624
6625 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6626
6627         * NEWS: Update for 0.23.
6628
6629         * configure.in: Release 0.23.
6630
6631 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6632
6633         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6634         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6635         behind.
6636
6637         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6638         uninstall"
6639
6640         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6641         is an enum, get the enum's underlying type.  Another mono
6642         1.1.3 fix.
6643
6644 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6645
6646         Patch from Sjoerd Simons <sjoerd@luon.net>
6647
6648         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6649         DESTDIR.  It breaks stuff.
6650
6651 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6652
6653         Patch from Tambet Ingo <tambet@ximian.com>
6654
6655         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6656         calling type.GetElementType().  The code previously depended on
6657         broken Mono behavior, which was fixed in Mono 1.1.3.
6658
6659         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6660         Activator.CreateInstance() so that the class's constructor is
6661         called with the right parameters.
6662
6663 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6664
6665         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6666
6667         * dbus/dbus-connection.c
6668         (_dbus_connection_queue_received_message_link): Call
6669         _dbus_connection_remove_timeout() instead of the _locked()
6670         variant, since it's always called from
6671         _dbus_connection_handle_watch(), which handles the locking.
6672         Removed the _locked() variant since it's no longer used.
6673
6674 2005-01-03  Havoc Pennington  <hp@redhat.com>
6675
6676         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6677         return
6678         
6679 2004-12-26  Havoc Pennington  <hp@redhat.com>
6680
6681         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6682
6683 2005-01-03  Havoc Pennington  <hp@redhat.com>
6684
6685         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6686         floating point
6687
6688         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6689
6690 2005-01-02  Havoc Pennington  <hp@redhat.com>
6691
6692         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6693
6694 2005-01-01  Havoc Pennington  <hp@redhat.com>
6695
6696         * configure.in: add -Wfloat-equal
6697
6698 2005-01-01  Havoc Pennington  <hp@redhat.com>
6699
6700         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6701         for a variety of reasons '==' doesn't do this.
6702
6703 2004-12-31  Havoc Pennington  <hp@redhat.com>
6704
6705         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6706         I keep wishing I had
6707
6708 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6709
6710         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6711
6712 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6713
6714         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6715         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6716         dbus-protocol.h.  Because they are defines and not enums they are not
6717         autogenerated.
6718
6719 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6720
6721         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6722         dbus_bus_activate_service
6723
6724         * python/dbus.py (Bus.activate_service): activate a service on the
6725         bus.
6726
6727 2004-12-24  Havoc Pennington  <hp@redhat.com>
6728
6729         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6730         file format has also changed and I haven't adapted to that yet
6731         
6732         * Makefile.am: load .gcno files from latest gcc
6733
6734 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6735         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6736
6737         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6738         lowlevel binding
6739
6740         * python/dbus.py (get_unix_user): Added binding to 
6741         call dbus_bindings.bus_get_unix_user
6742
6743         * python/extract.py: Modified the proto_pat regex to
6744         handle unsigned long
6745
6746 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6747
6748         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6749         better POSIX compliance.
6750
6751 2004-12-19  Havoc Pennington  <hp@redhat.com>
6752
6753         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6754         (_dbus_string_insert_8_aligned): new functions
6755
6756         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6757
6758 2004-12-18  Havoc Pennington  <hp@redhat.com>
6759
6760         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6761         macro
6762
6763         * dbus/dbus-message.c: fix a comment, and add a still-unused
6764         not-implemented function
6765
6766         * dbus/dbus-marshal.h: fix comment
6767
6768         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6769
6770 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6771
6772         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6773         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6774         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6775         Type.UnderlyingSystemType to get the actual system type
6776         underneath.  This code previously depended on the broken Mono
6777         behavior, which was fixed in 1.1.3.
6778
6779 2004-11-27  Havoc Pennington  <hp@redhat.com>
6780
6781         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6782         are disabled
6783         (_dbus_string_get_const_data): inline when asserts are disabled
6784
6785         * dbus/dbus-message.c: record the _dbus_current_generation of
6786         creation so we can complain if dbus_shutdown() is used improperly.
6787         Do this only if checks are enabled.
6788
6789         * dbus/dbus-connection.c: ditto
6790         
6791 2004-11-26  Havoc Pennington  <hp@redhat.com>
6792
6793         * test/glib/test-profile.c: add with_bus mode to profile echoes
6794         that go through the bus.
6795
6796         * test/glib/run-test.sh: add ability to run test-profile
6797
6798         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6799         config file reload.
6800
6801 2004-11-26  Havoc Pennington  <hp@redhat.com>
6802
6803         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6804         thing was implemented
6805
6806 2004-11-26  Havoc Pennington  <hp@redhat.com>
6807
6808         * test/glib/test-profile.c: tweak a bit, add support for some
6809         made-up minimal malloc overhead with plain sockets, since in 
6810         real life some sort of buffers are unavoidable thus we could 
6811         count them in the theoretical best case
6812
6813 2004-11-26  Havoc Pennington  <hp@redhat.com>
6814
6815         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6816         where I was trying to cache one too many messages
6817
6818 2004-11-26  Havoc Pennington  <hp@redhat.com>
6819
6820         * dbus/dbus-message.c: reimplement message cache as an array which 
6821         makes the cache about twice as fast and saves maybe 1.5% overall
6822
6823 2004-11-26  Havoc Pennington  <hp@redhat.com>
6824
6825         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6826         message cache lock here
6827
6828 2004-11-26  Havoc Pennington  <hp@redhat.com>
6829
6830         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6831         the "char byte_order" next to each other to save 4 bytes
6832         (dbus_message_new_empty_header): reduce preallocation, since the
6833         message cache should achieve a similar effect
6834         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6835         message cache that keeps a few DBusMessage around in a pool,
6836         another 8% speedup or so.
6837
6838         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6839
6840 2004-11-25  Havoc Pennington  <hp@redhat.com>
6841
6842         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6843         to write, without reading or blocking, try it before the poll()
6844         and skip the poll() if nothing remains to write. This is about a
6845         3% speedup in the echo client/server
6846
6847 2004-11-25  Havoc Pennington  <hp@redhat.com>
6848
6849         The primary change here is to always write() once before adding
6850         the write watch, which gives us about a 10% performance increase.
6851         
6852         * dbus/dbus-transport-unix.c: a number of modifications to cope
6853         with removing messages_pending
6854         (check_write_watch): properly handle
6855         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6856         messages_pending stuff
6857         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6858         AUTHENTICATED cases
6859         (unix_handle_watch): after writing, see if the write watch can be
6860         removed
6861         (unix_do_iteration): assert that write_watch/read_watch are
6862         non-NULL rather than testing that they aren't, since they 
6863         aren't allowed to be NULL. check_write_watch() at the end so 
6864         we add the watch if we did not finish writing (e.g. got EAGAIN)
6865
6866         * dbus/dbus-transport-protected.h: remove messages_pending call,
6867         since it resulted in too much inefficient watch adding/removing; 
6868         instead we now require that the transport user does an iteration 
6869         after queueing outgoing messages, and after trying the first
6870         write() we add a write watch if we got EAGAIN or exceeded our 
6871         max bytes to write per iteration setting
6872
6873         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6874         function
6875
6876         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6877         freed and then accessed, valgrind flagged this bug, fix it
6878
6879         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6880         as the last valid field plus 1, where really it is equal to the
6881         last valid field. Corrects some message corruption issues.
6882
6883         * dbus/dbus-mainloop.c: verbosity changes
6884
6885         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6886         instead of aborting in one of the test codepaths
6887
6888         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6889         caused not printing the pid ever again if a verbose was missing
6890         the newline at the end
6891         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6892
6893         * dbus/dbus-connection.c: verbosity changes; 
6894         (dbus_connection_has_messages_to_send): new function
6895         (_dbus_connection_message_sent): no longer call transport->messages_pending
6896         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6897         try to write() immediately, so we can avoid the write watch. This
6898         is the core purpose of this patchset
6899         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6900         dump the outgoing message queue, so nobody will get confused
6901         trying to send them or thinking stuff is pending to be sent
6902
6903         * bus/test.c: verbosity changes
6904
6905         * bus/driver.c: verbosity/assertion changes
6906
6907         * bus/dispatch.c: a bunch of little tweaks to get it working again
6908         because this patchset changes when/where you need to block.
6909
6910 2004-11-23  Havoc Pennington  <hp@redhat.com>
6911
6912         * test/glib/test-profile.c: modify to accept a plain_sockets
6913         argument in which case it will bench plain sockets instead of
6914         libdbus, for comparison purposes.
6915
6916 2004-11-22  Havoc Pennington  <hp@redhat.com>
6917
6918         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6919         threads for more time, so sysprof can get a grip on it.
6920
6921         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6922         pointless variable
6923
6924 2004-11-13  Havoc Pennington  <hp@redhat.com>
6925
6926         * test/glib/test-profile.c: fix this thing up a bit
6927
6928         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6929         preallocation sizes by a fair bit; not sure if this will be an
6930         overall performance win or not, but it does reduce reallocs.
6931
6932         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6933         the test hack that forced constant realloc if asserts are
6934         disabled, so we can profile sanely. Sprinkle in some
6935         _DBUS_UNLIKELY() which are probably pointless, but before I
6936         noticed the real performance problem I put them in.
6937         (_dbus_string_validate_utf8): micro-optimize this thing a little
6938         bit, though callgrind says it didn't help; then special-case
6939         ascii, which did help a lot; then be sure we detect nul bytes as
6940         invalid, which is a bugfix.
6941         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6942         superstition; use memset to nul the padding instead of a manual
6943         loop.
6944         (_dbus_string_get_length): inline this as a
6945         macro; it showed up in the profile because it's used for loop
6946         tests and so forth
6947
6948 2004-11-10  Colin Walters  <walters@verbum.org>
6949
6950         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6951         for extra paranoia.
6952
6953 2004-11-09  Colin Walters  <walters@verbum.org>
6954
6955         * dbus/dbus-string.c (_dbus_string_get_length): New
6956         function, writes DBusString to C buffer.
6957
6958         * dbus/dbus-string.h: Prototype it.
6959
6960         * dbus/dbus-message.c (dbus_message_type_to_string): New
6961         function, converts message type into C string.
6962
6963         * dbus/dbus-message.h: Prototype it.
6964
6965         * bus/selinux.c (bus_selinux_check): Take source pid,
6966         target pid, and audit data.  Pass audit data to
6967         avc_has_perm.
6968         (log_audit_callback): New function, appends extra
6969         audit information.
6970         (bus_selinux_allows_acquire_service): Also take
6971         service name, add it to audit data.
6972         (bus_selinux_allows_send): Also take message
6973         type, interface, method member, error name,
6974         and destination, and add them to audit data.
6975         (log_cb): Initialize func_audit.
6976         
6977         * bus/selinux.h (bus_selinux_allows_acquire_service)
6978         (bus_selinux_allows_send): Update prototypes 
6979
6980         * bus/services.c (bus_registry_acquire_service): Pass
6981         service name to bus_selinux_allows_acquire_service.
6982
6983         * bus/bus.c (bus_context_check_security_policy): Pass
6984         additional audit data.  Move assignment of dest
6985         to its own line.
6986
6987 2004-11-07  Colin Walters  <walters@verbum.org>
6988
6989         * dbus/dbus-transport-unix.c (do_authentication): Always
6990         initialize auth_completed.
6991         
6992 2004-11-07  Colin Walters  <walters@verbum.org>
6993
6994         * bus/bus.c (load_config): Break into three
6995         separate functions: process_config_first_time_only,
6996         process_config_every_time, and process_config_postinit.
6997         (process_config_every_time): Move call of
6998         bus_registry_set_service_context_table into
6999         process_config_postinit.
7000         (process_config_postinit): New function, does
7001         any processing that needs to happen late
7002         in initialization (and also on reload).
7003         (bus_context_new): Instead of calling load_config,
7004         open config parser here and call process_config_first_time_only
7005         and process_config_every_time directly.  Later, after
7006         we have forked but before changing UID,
7007         invoke bus_selinux_full_init, and then call
7008         process_config_postinit.
7009         (bus_context_reload_config): As in bus_context_new,
7010         load parse file inside here, and call process_config_every_time
7011         and process_config_postinit.
7012
7013         * bus/services.h, bus/services.c
7014         (bus_registry_set_service_context_table): Rename
7015         from bus_registry_set_sid_table.  Take string hash from config
7016         parser, and convert them here into SIDs.
7017
7018         * bus/config-parser.c (struct BusConfigParser): Have
7019         config parser only store a mapping of service->context
7020         string.
7021         (merge_service_context_hash): New function.
7022         (merge_included): Merge context string hashes instead
7023         of using bus_selinux_id_table_union.
7024         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7025         simply create a new string hash.
7026         (bus_config_parser_unref): Unref it.
7027         (start_selinux_child): Simply insert strings into hash,
7028         don't call bus_selinux_id_table_copy_over.
7029
7030         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7031         (bus_selinux_id_table_copy_over): Delete.
7032
7033 2004-11-03  Colin Walters  <walters@verbum.org>
7034
7035         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7036         variables.
7037         
7038 2004-11-03  Colin Walters  <walters@verbum.org>
7039
7040         * bus/test-main.c (test_pre_hook): Fix test logic,
7041         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7042
7043 2004-11-02  Colin Walters  <walters@redhat.com>
7044
7045         * bus/selinux.c (bus_selinux_init): Split into two functions,
7046         bus_selinux_pre_init and bus_selinux_post_init.
7047         (bus_selinux_pre_init): Just determine whether SELinux is
7048         enabled.
7049         (bus_selinux_post_init): Do everything else.
7050
7051         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7052         config file, and bus_selinux_post_init after.  This ensures that
7053         we don't lose the policyreload notification thread that
7054         bus_selinux_init created before forking previously.
7055         
7056         * bus/test-main.c (test_pre_hook): Update for split.
7057
7058 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7059
7060         Patch from Johan Fischer <linux@fischaz.com>
7061         
7062         * mono/doc/Makefile.am (install-data-local): Added directory
7063         install for DESTDIR
7064
7065 2004-10-29  Colin Walters  <walters@redhat.com>
7066
7067         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7068         parameter for fd to write pid to.       
7069
7070         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7071         
7072         * bus/bus.c (bus_context_new): Pass print_pid_fd
7073         to _dbus_become_daemon (bug #1720)
7074
7075 2004-10-29  Colin Walters  <walters@redhat.com>
7076
7077         Patch from Ed Catmur <ed@catmur.co.uk>
7078
7079         * mono/doc/Makefile.am (install-data-local): Handle
7080         DESTDIR.
7081
7082 2004-10-29  Colin Walters  <walters@redhat.com>
7083
7084         * bus/.cvsignore, qt/.cvsignore: Update.
7085
7086 2004-10-29  Colin Walters  <walters@redhat.com>
7087
7088         Patch from Kristof Vansant <de_lupus@pandora.be>
7089
7090         * configure.in: Detect Slackware.
7091         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7092         * bus/rc.messagebus.in: New file.
7093
7094 2004-10-29  Colin Walters  <walters@redhat.com>
7095
7096         * tools/dbus-monitor.c (filter_func): Return
7097         DBUS_HANDLER_RESULT_HANDLED in filter function
7098         for now.  See:
7099         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7100
7101 2004-10-29  Colin Walters  <walters@redhat.com>
7102
7103         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7104
7105         * bus/services.c (bus_registry_acquire_service): 
7106         Correctly retrieve service name from DBusString
7107         for printing.
7108
7109 2004-10-29  Colin Walters  <walters@redhat.com>
7110
7111         * dbus/dbus-glib.h: Update documentation to not
7112         refer to internal APIs.
7113
7114 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7115
7116         * mono/Arguments.cs (GetDBusTypeConstructor):
7117         type.UnderlyingSystemType will return "System.Byte" if you do it
7118         on "byte[]", which is not what we want.  So check the type.IsArray
7119         property and use System.Array instead.
7120
7121 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7122
7123         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7124         the DBusUserInfo structure since this is passed into the function.
7125         This would cause a double free when the function that allocated
7126         the structure would try to free it when an error occured.
7127
7128         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7129         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7130         for service activation to avoid 32bit/64bit parallel install issues
7131
7132 2004-10-21  Colin Walters  <walters@verbum.org>
7133
7134         * AUTHORS: Fix my email address, the @gnu.org one
7135         has been bouncing for some time.  Also add J5.
7136         
7137 2004-10-21  Colin Walters  <walters@verbum.org>
7138
7139         * dbus/dbus-transport-unix.c (do_authentication): Return
7140         authentication status to callers.
7141         (unix_handle_watch): If we completed authentication this round,
7142         don't do another read.  Instead wait until the next iteration,
7143         after we've read any pending data in the auth buffer.
7144         (unix_do_iteration): Ditto.
7145         (unix_handle_watch): Updated for new do_authentication prototype.
7146
7147 2004-10-18  Colin Walters  <walters@verbum.org>
7148
7149         * bus/selinux.c (bus_selinux_enabled): Handle
7150         --disable-selinux case.
7151         
7152 2004-10-18  Colin Walters  <walters@verbum.org>
7153
7154         * bus/selinux.h: Add bus_selinux_enabled.
7155         
7156         * bus/selinux.c (bus_selinux_enabled): Implement it.
7157         
7158         * bus/config-parser.c (struct include): Add
7159         if_selinux_enabled member.
7160         (start_busconfig_child): Parse if_selinux_enabled
7161         attribute for include.
7162         (bus_config_parser_content): Handle it.
7163
7164         * bus/session.conf.in, bus/system.conf.in: Add
7165         inclusion of context mapping to default config files;
7166         conditional on SELinux being enabled.
7167         
7168         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7169         
7170         * test/data/invalid-config-files/badselinux-1.conf, 
7171         test/data/invalid-config-files/badselinux-2.conf:
7172         Test files for bad syntax.
7173         
7174 2004-10-17  Colin Walters  <walters@verbum.org>
7175
7176         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7177         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7178         format specifier mismatches.
7179
7180 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7181
7182         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7183         format string.
7184
7185         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7186         pointer (bug #1540, Leonardo Boiko).
7187
7188 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7189
7190         * mono/BusDriver.cs: Changed BusDriver struct to remove
7191         the ServiceCreated and ServiceDeleted events and replace them
7192         with the new ServiceOwnerChanged event.
7193
7194         * mono/example/BusListener.cs: Added a new example program,
7195         which listens for and reports any ServiceOwnerChanged events
7196         on the bus driver.
7197
7198         * mono/example/Makefile.am (DESTDIR): Build changes for the
7199         new BusListener.cs example.
7200
7201 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7202
7203         * bus/signals.c (bus_match_rule_parse): validate the components of
7204         match rules (bug #1439).
7205
7206         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7207
7208 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7209
7210         * doc/dbus-specification.xml: document ServiceOwnerChanged
7211         signal.
7212         
7213         * bus/driver.c, bus/driver.h, bus/services.c: Use
7214         ServiceOwnerChanged signal instead of ServiceCreated and
7215         ServiceDeleted.
7216         
7217         * bus/dispatch.c: update testcase for the new signal.
7218
7219 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7220
7221         Patch from Nat Friedman <nat@novell.com>
7222
7223         * mono/Makefile.am: A number of small build fixes to allow "make
7224         distcheck" to succeed.
7225
7226         * mono/example/Makefile.am: "make distcheck" fixes.
7227
7228         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7229         key in @srcdir@.
7230
7231         * test/Makefile.am: "make distcheck" fixes.
7232
7233 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7234
7235         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7236
7237         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7238
7239         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7240         messages after the first one (bug #1389).
7241         
7242         * bus/dispatch.c (check_double_hello_message): add a test case for
7243         the double hello message bug.
7244         (check_existent_service_activation): fix check of spawning error.
7245         
7246 2004-09-16  David Zeuthen  <david@fubar.dk>
7247
7248         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7249
7250 2004-09-12  David Zeuthen  <david@fubar.dk>
7251
7252         Patch from Kay Sievers <kay.sievers@vrfy.org>
7253
7254         * bus/bus.c (bus_context_new):
7255         * bus/bus.h:
7256         * bus/main.c (usage)
7257         (main):
7258         Add commandline option --nofork to override configuration file
7259         setting.
7260
7261 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7262
7263         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7264         compilers don't like it (bug #974).
7265
7266 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7267
7268         * qt/connection.*: Applied patch by Jérôme Lodewyck
7269         <lodewyck@clipper.ens.fr> to integrate an existing
7270         connection into the Qt eventloop
7271
7272 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7273
7274         * mono/BusDriver.cs: Added.  This is a class for interacting with
7275         the org.freedesktop.DBus service.
7276
7277         * mono/Message.cs: Added a mechanism to expose the message that is
7278         currently being dispatched via the static Message.Current
7279         property.  Added Message.Sender and Message.Destination
7280         properties.
7281
7282         * mono/Handler.cs: Expose the dispatched message via
7283         Message.Current when handling method calls.
7284
7285         * mono/Service.cs: Expose the dispatched message via
7286         Message.Current when handling signal emissions.
7287         
7288         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7289         Connection.BaseService property.
7290
7291 2004-08-28  Havoc Pennington  <hp@redhat.com>
7292
7293         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7294
7295         More fixes from Steve Grubb
7296         
7297         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7298         (_dbus_listen_tcp_socket): fix fd leak
7299
7300         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7301         EINTR to a bit lower in the code
7302
7303 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7304
7305         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7306         TRUE if we are inquiring about the existence of the built-in
7307         org.freedesktop.DBus service.
7308
7309 2004-08-25  John Palmieri  <johnp@redhat.com>
7310         * bus/config-parser.c:
7311         (struct PolicyType): Add POLICY_CONSOLE
7312         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7313         (start_busconfig_child): Sets up console element when
7314         <policy at_console=""> is encountered in a policy file
7315         (append_rule_from_element): Convert console elements to console
7316         rules.
7317
7318         * bus/policy.c: 
7319         (bus_policy_create_client_policy): Add console rules to the client
7320         policy based on if the client is at the console
7321         (bus_policy_append_console_rule): New function for adding a
7322         console rule to a policy
7323         (bus_policy_merge): Handle console rule merging
7324
7325         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7326         where we check for console user files
7327         
7328         * dbus/dbus-sysdeps.c:
7329         (_dbus_file_exists): New function which checks if the given
7330         file exists
7331         (_dbus_user_at_console): New function which does the system
7332         specific process of checking if the user is at the console
7333
7334         * dbus/dbus-userdb.c:
7335         (_dbus_is_console_user): New function converts a UID to user name
7336         and then calls the system specific _dbus_user_at_console to 
7337         see if the user is at the console and therefor a console user
7338
7339 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7340
7341         * bus/config-parser.c (set_limit):
7342         * bus/dbus-daemon-1.1.in:
7343         * test/data/valid-config-files/many-rules.conf: set the
7344         max_match_rules_per_connection limt from the config file. 
7345
7346         * doc/busconfig.dtd: update the DTD.
7347
7348         * bus/driver.c: remove some unused variables.
7349
7350 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7351
7352         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7353         it's been replaced by dbus_g_bus_get
7354
7355 2004-08-23  Colin Walters  <walters@redhat.com>
7356
7357         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7358
7359         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7360
7361         * bus/selinux.c: Create a thread for policy reload notification.
7362         (bus_selinux_get_policy_root): Implement.
7363
7364         * bus/config-parser.c (start_busconfig_child)
7365         (bus_config_parser_content): Support SELinux-root relative
7366         inclusion.
7367
7368         * configure.in <HAVE_SELINUX>: Add -lpthread.
7369         
7370         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7371         (test_post_hook): Move memory checking into here.
7372         (test_pre_hook, test_post_hook): Move SELinux checks in
7373         here, but conditional on a DBUS_TEST_SELINUX environment
7374         variable.  Unfortunately we can't run the SELinux checks
7375         as a normal user, since they won't have any permissions
7376         for /selinux.  So this will have to be tested manually
7377         for now, until we have virtualization for most of
7378         libselinux.
7379         
7380 2004-08-23  Havoc Pennington  <hp@redhat.com>
7381
7382         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7383         drop supplementary groups, suggested by Steve Grubb
7384
7385 2004-08-20  Colin Walters  <walters@redhat.com>
7386
7387         * bus/config-parser.c (start_busconfig_child): Remove some unused
7388         variables.
7389         
7390         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7391         warning.
7392
7393 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7394
7395         * configure.in: If --enable-mono is passed in, if we can't find
7396         mono error out.
7397
7398         * mono/Makefile.am: Use /gacutil to install assemblies into the
7399         GAC and not /root.
7400
7401 2004-08-12  Havoc Pennington  <hp@redhat.com>
7402
7403         * NEWS: update for 0.22
7404
7405         * configure.in: release 0.22
7406
7407 2004-08-11  Colin Walters  <walters@redhat.com>
7408
7409         * tools/dbus-send.c (main, usage): Add --reply-timeout
7410         argument.
7411
7412 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7413
7414         * bus/bus.c (process_config_first_time_only): get rid of an unused
7415         DBusError that was causing a memoy leak (bug #989).
7416
7417         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7418         fix compilation on Solaris/Forte C (bug #974)
7419
7420         * bus/main.c (main): plug two minuscule memleaks.
7421
7422 2004-08-10  Havoc Pennington  <hp@redhat.com>
7423
7424         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7425
7426 2004-08-09  Havoc Pennington  <hp@redhat.com>
7427
7428         * COPYING: switch to Academic Free License version 2.1 instead of
7429         2.0, to resolve complaints about patent termination clause.
7430
7431 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7432
7433         * README: added documentation for the --enable-python 
7434         configure switch.
7435
7436 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7437
7438         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7439         _unref in the SELinux support.
7440
7441         * doc/busconfig.dtd: update DTD for SELinux support.
7442
7443         * bus/config-loader-libxml.c: fix error handler and parser
7444         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7445
7446         * configure.in: remove the warning about libxml2.
7447
7448         * dbus/dbus-bus.c: silence doxygen warning.
7449
7450 2004-07-31  Colin Walters  <walters@redhat.com>
7451
7452         * configure.in: Move #error in SELinux check to its own line.
7453
7454 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7455
7456         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7457         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7458         dbus_error_set.
7459
7460         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7461         broken by the change in the _SET_OOM macros.
7462
7463 2004-07-31  Colin Walters  <walters@redhat.com>
7464
7465         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7466         BUS_SET_OOM.
7467
7468 2004-07-31  Colin Walters  <walters@redhat.com>
7469
7470         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7471         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7472         AC_MSG_CHECKING.
7473
7474 2004-07-24  Havoc Pennington  <hp@redhat.com>
7475
7476         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7477
7478         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7479         functionality
7480
7481         * configure.in: add --enable-selinux
7482         
7483         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7484
7485         * bus/main.c (main): initialize and shut down selinux
7486
7487         * bus/connection.c: store SELinux ID on each connection, to avoid 
7488         repeated getting of the string context and converting it into 
7489         an ID
7490
7491         * bus/bus.c (bus_context_get_policy): new accessor, though it
7492         isn't used
7493         (bus_context_check_security_policy): check whether the security
7494         context of sender connection can send to the security context of
7495         recipient connection
7496
7497         * bus/config-parser.c: add parsing for <selinux> and <associate>
7498         
7499         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7500         implement dbus_connection_get_unix_fd()
7501
7502         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7503         function, used by the selinux stuff
7504         
7505 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7506
7507         * bus/config-loader-libxml.c: complete the implementation of
7508         libxml backend for config file loader. Doesn't work with full OOM
7509         test yet. 
7510         
7511         * configure.in: change error when selecting libxml into a warning.
7512         
7513         * test/data/invalid-config-files: add two non-well-formed XML
7514         files. 
7515         
7516         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7517         
7518         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7519         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7520         be necessary to read all the buffer. (bug #894)
7521
7522         * bus/activation.c (bus_activation_activate_service): fix a
7523         potential assertion failure (bug #896). Small optimization in the
7524         case of auto-activation messages.
7525
7526         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7527         add test case for byte-through-vararg bug (#901). patch by Kimmo
7528         Hämäläinen. 
7529
7530 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7531
7532         * python/dbus.py:
7533         * python/dbus_bindings.pyx.in:
7534         Add dbus.init_gthreads (), allow emit_signal to pass
7535         arguments to the signal.
7536         
7537 2004-07-24  Havoc Pennington  <hp@redhat.com>
7538
7539         * AUTHORS: add some people, not really comprehensively, let me
7540         know if I missed you
7541
7542 2004-07-24  Havoc Pennington  <hp@redhat.com>
7543
7544         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7545         Owen
7546
7547         * test/Makefile.am (DIST_SUBDIRS): here also
7548
7549 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7550
7551         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7552         breaking build on Solaris, reported by Farhad Saberi on the ML.
7553
7554         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7555         va_arg invocation to account for integer promotion in the case of
7556         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7557
7558         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7559         _dbus_list_get_first_link, not _dbus_list_get_first.
7560
7561         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7562
7563         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7564         handler functions so that the asserts in _dbus_object_subtree_unref
7565         do not fail.
7566
7567         * dbus/dbus-transport-unix.c (do_reading):
7568         _dbus_transport_queue_messages return value is of type
7569         dbus_bool_t, not DBusDispatchStatus.
7570         
7571 2004-07-19  David Zeuthen  <david@fubar.dk>
7572
7573         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7574
7575         * bus/dispatch.c:
7576         (check_get_connection_unix_user): Debug says GetProperty; but the
7577         method is called GetConnectionUnixUser
7578         (check_get_connection_unix_process_id): New function
7579         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7580         also call check_get_connection_unix_process_id()
7581         
7582         * bus/driver.c:
7583         (bus_driver_handle_get_connection_unix_process_id): New function,
7584         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7585         interface
7586         
7587         * dbus/dbus-auth.c:
7588         (handle_server_data_external_mech): Set pid from the credentials
7589         obtained from the socket
7590         
7591         * dbus/dbus-connection.c:
7592         (dbus_connection_get_unix_process_id): New function
7593         
7594         * dbus/dbus-connection.h: 
7595         Add prototype for dbus_connection_get_unix_process_id
7596         
7597         * dbus/dbus-transport.c:
7598         (_dbus_transport_get_unix_process_id): New function
7599         
7600         * dbus/dbus-transport.h:
7601         Add prototype for _dbus_transport_get_unix_process_id
7602         
7603 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7604
7605         * dbus/dbus-message.c: Message counter fix, patch by Christian
7606         Hammond <chipx86@gnupdate.org>
7607
7608 2004-07-18  Seth Nickell  <seth@gnome.org>
7609
7610         * python/dbus.py:
7611         * python/dbus_bindings.pyx.in:
7612         * python/tests/test-client.py:
7613
7614         Add dbus.ByteArray and dbus_bindings.ByteArray
7615         types so that byte streams can be passed back.
7616
7617         Give jdahlin the heaps of credit that are so
7618         rightfully his.
7619         
7620 2004-07-12  Seth Nickell  <seth@gnome.org>
7621
7622         * python/dbus.py:
7623
7624         Add message argument to the default object_method_handler
7625         function.
7626         
7627         * python/dbus_bindings.pyx.in:
7628
7629         Automatically return NIL when passed an empty list
7630         (we can't pass back a list since lists are typed
7631         and we don't have any idea what type the the client
7632         intended the list to be... :-( )
7633         
7634 2004-07-10  Seth Nickell  <seth@gnome.org>
7635
7636         * python/examples/Makefile.am:
7637
7638         Fix distcheck breakage caused by new examples.
7639
7640 2004-07-10  Seth Nickell  <seth@gnome.org>
7641
7642         * python/dbus.py:
7643
7644         Add "message" argument to service-side dbus.Object
7645         methods. This will break existing services written
7646         using the python bindings, but will allow extraction
7647         of all the message information (e.g. who its from).
7648
7649         Add improved "object oriented" signal handling/emission.
7650         
7651         * python/examples/example-service.py:
7652
7653         Nix this example.
7654         
7655         * python/examples/example-signal-emitter.py:
7656         * python/examples/example-signal-recipient.py:
7657
7658         Two new examples that show how to emit and receive
7659         signals using the new APIs.
7660         
7661         * python/examples/example-signals.py:
7662         * python/examples/gconf-proxy-service.py:
7663         * python/examples/gconf-proxy-service2.py:
7664
7665         Add "message" argument to service methods.
7666
7667 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7668
7669         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7670         * dbus/bus.c (dbus_bus_get_unix_user)
7671         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7672         method of org.freedesktop.DBus interface.
7673
7674         * bus/dispatch.c: test case
7675
7676 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7677
7678         * python/Makefile.am: switched include directory from glib/ to dbus/
7679         since dbus-glib.h moved
7680  
7681 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7682
7683         * configure.in: prevent building the gcj stuff and libxml loader
7684         since they are broken.
7685
7686 2004-06-20  Havoc Pennington  <hp@redhat.com>
7687
7688         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7689         codes from the dbus error names
7690         
7691         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7692         as dbus/dbus-glib.h and that breakage is now visible due to 
7693         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7694         
7695         * glib/dbus-glib.h: s/gproxy/g_proxy/
7696
7697         * dbus/dbus-shared.h: new header to hold stuff shared with
7698         binding APIs
7699         
7700         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7701         than dbus-errors.h
7702
7703         * glib/dbus-glib.h (dbus_set_g_error): move to
7704         dbus-glib-lowlevel.h
7705
7706         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7707         of stuff to enable this
7708
7709         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7710
7711         * a bunch of other changes with the same basic "separate glib 
7712         bindings from dbus.h" theme
7713         
7714 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7715
7716         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7717
7718         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7719
7720 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7721
7722         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7723         the reply value of the ServiceExists message.
7724
7725 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7726
7727         * python/dbus_bindings.pyx.in: No longer need to parse path
7728         elements and pass them as arrays of strings.  The C API now
7729         accepts plain path strings.
7730         (_build_parsed_path): removed 
7731
7732 2004-06-07  Havoc Pennington  <hp@redhat.com>
7733
7734         * doc/TODO: remove auto-activation item since it's done; sort
7735         items by importance/milestone
7736
7737 2004-06-07  Havoc Pennington  <hp@redhat.com>
7738
7739         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7740         random signature when using REQUIRED_FIELDS (this hack won't work
7741         in the long term)
7742
7743         * dbus/dbus-message.c: change the signature to be a header field,
7744         instead of message->signature special-case string. Incremental
7745         step forward. Then we can fix up code to send the signature in the
7746         message, then fix up code to validate said signature, then fix up
7747         code to not put the typecodes inline, etc.
7748         (load_one_message): don't make up the signature after the fact
7749         (decode_header_data): require signature field for the known
7750         message types
7751
7752         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7753
7754         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7755
7756 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7757
7758         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7759
7760         * mono/Handler.cs: Updated to follow new path argument for
7761         (un-)registering objects.
7762
7763         * mono/example/Makefile.am:
7764         * mono/Makefile.am:
7765         * configure.in: Bumped required version for mono and use new -pkg
7766         syntax for deps
7767
7768 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7769
7770         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7771         registration functions take the path argument as char* instead of
7772         char**.
7773
7774         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7775         split off the path decompostion part of
7776         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7777         warnings. 
7778
7779         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7780         
7781 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7782  
7783         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7784         machine approach.  A state is implemented as a function that
7785         handles incoming events as specified for that state.
7786         
7787         * doc/dbus-specification.xml: Update auth protocol state machine
7788         specification to match implementation.  Remove some leftover
7789         base64 examples.
7790
7791 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7792
7793         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7794         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7795         quiet doxygen.
7796
7797         * Doxyfile.in: remove deprecated options.
7798
7799         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7800         glib/test-thread.h, glib/test-thread-client.c,
7801         glib/test-thread-server.c, glib/test-profile.c,
7802         glib/test-dbus-glib.c: remove these unused files.
7803
7804 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7805
7806         * dbus/dbus-object-tree.c
7807         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7808         non-fallback handlers (bug #684).
7809         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7810         (find_subtree_recurse): report wether the returned subtree is an
7811         exact match or a "fallback" match higher up in the tree.
7812         (object_tree_test_iteration): update test case.
7813
7814 2004-06-01  Seth Nickell  <seth@gnome.org>
7815
7816         * python/dbus_bindings.pyx.in:
7817         * python/tests/test-client.py:
7818
7819         Round off basic type support. Add dicts (yay!), and 
7820         remaining array types.
7821
7822         Make MessageIter more general so it works for dicts too.
7823
7824         Mark all loop variables as C integers.
7825         
7826 2004-05-31  Havoc Pennington  <hp@redhat.com>
7827
7828         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7829         "in" before "out"
7830
7831         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7832
7833         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7834         option that runs the tests, and start filling in some code
7835         including for starters just dumping the interfaces to stdout
7836
7837         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7838
7839         * test/data/valid-introspection-files/lots-of-types.xml: test of
7840         an example introspection file
7841
7842         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7843         "node" (I think...)
7844
7845 2004-05-31  Seth Nickell  <seth@gnome.org>
7846
7847         * python/dbus_bindings.pyx.in:
7848         * python/tests/test-client.py:
7849
7850         Test Suite: 1
7851         Python Bindings: 0
7852
7853         Fix string array memory trashing bug... oops...
7854
7855 2004-05-30  Seth Nickell  <seth@gnome.org>
7856
7857         * python/dbus.py:
7858
7859         Add a nicer-but-less-flexible alternate API for handling 
7860         calls to virtual objects in dbus.ObjectTree.
7861
7862         Screw up the argument order to the dbus.Object constructor
7863         for consistency with dbus.ObjectTree (and to make dbus_methods
7864         optional for future extension)
7865         
7866         * python/examples/Makefile.am:
7867         * python/examples/gconf-proxy-service.py:
7868         * python/examples/gconf-proxy-service2.py:
7869
7870         Alternate implementation of gconf-proxy-service using the
7871         nicer dbus.ObjectTree API.
7872         
7873         * python/examples/example-service.py:
7874         * python/tests/test-server.py
7875
7876         Reverse the argument order to deal with dbus.Object constructor
7877         changes.
7878         
7879 2004-05-30  Seth Nickell  <seth@gnome.org>
7880
7881         * python/examples/example-client.py:
7882         * python/examples/example-service.py:
7883
7884         Take it back. Lists seem to work but they're broken
7885         in the test suite. Make the base examples use
7886         lists (works fine).
7887
7888 2004-05-30  Seth Nickell  <seth@gnome.org>
7889
7890         * python/dbus_bindings.pyx.in:
7891         * python/tests/test-client.py:
7892
7893         Add some more tests and fix errors that crop up.
7894         Unfortunately, currently it seems like marshalling
7895         and unmarshalling of lists is completely broken :-(
7896
7897 2004-05-30  Seth Nickell  <seth@gnome.org>
7898
7899         * python/dbus_bindings.pyx.in:
7900
7901         Add support for ObjectPath type.
7902
7903         * python/dbus.py:
7904
7905         Refactor message handling code to a common function.
7906         
7907         * python/tests/test-client.py:
7908         * python/tests/test-server.py:
7909
7910         Add tests that check to make sure values of all types
7911         can be echoed from a service w/o mangling.
7912         
7913 2004-05-29  Seth Nickell  <seth@gnome.org>
7914
7915         * python/dbus.py:
7916
7917         Add ObjectTree class which allows implementation
7918         of trees of "virtual" objects. Basically the python
7919         wrapper for "register_fallback".
7920         
7921         * python/examples/Makefile.am
7922         * python/examples/gconf-proxy-client.py:
7923         * python/examples/gconf-proxy-service.py:
7924
7925         Implement a simple GConf proxy service that supports
7926         get/set on string and int GConf keys using the ObjectTree.
7927         
7928 2004-05-29  Seth Nickell  <seth@gnome.org>
7929
7930         * python/dbus.py:
7931         * python/examples/example-client.py:
7932         * python/examples/example-service.py:
7933         * python/examples/list-system-services.py:
7934
7935         Add SessionBus, SystemBus and ActivationBus classes
7936         so you don't need to know the special little BUS_TYPE
7937         flag.
7938         
7939 2004-05-29  Havoc Pennington  <hp@redhat.com>
7940
7941         * bus/config-parser.c (process_test_valid_subdir): temporarily
7942         stop testing config parser OOM handling, since expat has issues
7943         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7944
7945         * bus/dbus-daemon-1.1.in: change requested_reply to
7946         send_requested_reply/receive_requested_reply so we can send the
7947         replies, not just receive them.
7948
7949         * bus/config-parser.c: parse the new
7950         send_requested_reply/receive_requested_reply
7951
7952         * bus/policy.c (bus_client_policy_check_can_send): add
7953         requested_reply argument and use it
7954
7955         * bus/bus.c (bus_context_check_security_policy): pass through
7956         requested_reply status to message send check
7957
7958         * bus/system.conf.in: adapt to requested_reply change
7959         
7960 2004-05-28  Havoc Pennington  <hp@redhat.com>
7961
7962         * test/glib/test-service-glib.c (main): remove unused variable
7963
7964         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7965
7966         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7967         from the enum, no longer in use.
7968
7969         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7970         works right.
7971
7972         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7973         whether error_name passed in is a valid error name.
7974
7975 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7976
7977         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7978         OBJECT_PATH and OBJECT_PATH_ARRAY
7979
7980 2004-05-28  Seth Nickell  <seth@gnome.org>
7981
7982         * python/examples/Makefile.am:
7983
7984         Forget to add Makefile.am. Do not pass go.
7985
7986 2004-05-28  Michael Meeks  <michael@ximian.com>
7987
7988         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7989         fix no int64 case.
7990
7991         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7992
7993         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7994         (_dbus_message_iter_get_basic_type_array): impl.
7995         drastically simplify ~all relevant _get methods to use these.
7996         (_dbus_message_iter_append_basic_array),
7997         (dbus_message_iter_append_basic): impl
7998         drastically simplify ~all relevant _append methods to use these.
7999
8000         * dbus/dbus-message-builder.c (parse_basic_type) 
8001         (parse_basic_array, lookup_basic_type): impl.
8002         (_dbus_message_data_load): prune scads of duplicate /
8003         cut & paste coding.
8004
8005         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8006         (_dbus_demarshal_basic_type): implement,
8007         (demarshal_and_validate_len/arg): beef up debug.
8008         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8009
8010 2004-05-27  Seth Nickell  <seth@gnome.org>
8011
8012         * configure.in:
8013         * python/Makefile.am:
8014
8015         Include the example python apps in the tarball.
8016         
8017         * python/examples/list-system-services.py
8018
8019         Add a python new example that fetches the list of services
8020         from the system bus.
8021         
8022 2004-05-27  Seth Nickell  <seth@gnome.org>
8023
8024         * python/dbus.py:
8025         * python/dbus_bindings.pyx.in:
8026
8027         Fix failure to notify that a signal was not handled,
8028         resulted in hung functions.
8029         
8030 2004-05-25  Colin Walters  <walters@redhat.com>
8031
8032         * tools/dbus-monitor.c (main): Monitor all types of messages.
8033
8034 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8035
8036         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8037         which unregisters the object path and disposes the handler.
8038
8039 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8040  
8041         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8042          
8043         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8044         operands to && so we call dbus_message_iter_next () for the last
8045         argument also.
8046
8047 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8048
8049         * dbus/dbus-object-tree.c
8050         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8051         children even if the requested path isn't registered.
8052         (object_tree_test_iteration): test object_tree_list_registered.
8053
8054         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8055         it to 0.
8056         
8057 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8058
8059         * doc/TODO: Remove resolved items.
8060
8061         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8062         field.
8063         
8064         * bus/connection.c (bus_connections_expect_reply): Enforce the
8065         per-connection limit on pending replies.
8066         
8067         Patch from Jon Trowbridge <trow@ximian.com>:
8068  
8069         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8070         up a watch that triggers a config reload when one end of the pipe
8071         becomes readable.
8072         (signal_handler): Instead of doing the config reload in our SIGHUP
8073         handler, just write to the reload pipe and let the associated
8074         watch handle the reload when control returns to the main loop.
8075  
8076         * bus/driver.c (bus_driver_handle_reload_config): Added.
8077         Implements a ReloadConfig method for requesting a configuration
8078         file reload via the bus driver.
8079  
8080 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8081
8082         * HACKING: Updated release instructions concerning the wiki page.
8083
8084 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8085
8086         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8087         filter against auth->allowed_mechs; we only add allowed mechs in
8088         record_mechanisms().
8089  
8090         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8091         ALLOWED_MECHS to auth-script format so we can set the list of
8092         allowed mechanisms.
8093  
8094         * data/auth/client-out-of-mechanisms.auth-script: New test to
8095         check client disconnects when it is out of mechanisms to try.
8096  
8097         * dbus/dbus-auth.c (process_command): Remove check for lines
8098         longer that 1 MB; we only buffer up maximum 16 kB.
8099  
8100         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8101         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8102         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8103         assume there might be unused bytes.
8104  
8105         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8106         client-out-of-mechs, it is handled in process_reject(). Move check
8107         for max failures to send_rejected(), as it's a server-only thing.
8108
8109         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8110         send_auth(), send_data(), send_rejected(), send_error(),
8111         send_ok(), send_begin() and send_cancel().
8112
8113 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8114
8115         Remove base64 encoding, replace with hex encoding. Original patch
8116         from trow@ximian.com, added error handling.
8117
8118         * dbus/dbus-string.c (_dbus_string_base64_encode)
8119         (_dbus_string_base64_decode): Remove.
8120         (_dbus_string_hex_decode): Add end_return argument so we can
8121         distinguish between OOM and invalid hex encoding.
8122         (_dbus_string_test): Remove base64 tests and add test case for
8123         invalid hex.
8124
8125         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8126         Replace base64 with hex.
8127
8128         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8129         for invalid hex encoded data in auth protocol.
8130
8131 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8132
8133         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8134         leak.
8135
8136 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8137
8138         * mono/dbus-sharp.dll.config.in: Added for GAC
8139         * mono/dbus-sharp.snk: Added for GAC
8140         * mono/Assembly.cs.in: Added for GAC
8141         * mono/Makefile.am: Changes for GAC installation        
8142         * configure.in: Added refs for dbus-sharp.dll.config.in and
8143         Assembly.cs.in. More fixes for mono testing
8144         * mono/example/Makefile.am: Changed var to CSC
8145         * Makefile.am: Changed flag name to DBUS_USE_CSC
8146
8147 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8148
8149         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8150         * mono/doc/*: Added documentation framework
8151         * configure.in: Added monodoc check
8152         * README: Added description of mono configure flags
8153
8154 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8155
8156         * doc/dbus-specification.xml: Added a "Required" column to the 
8157         header fields table and changed the "zero or more" verbage in
8158         the above paragraph to read "The header must contain the required 
8159         named header fields and zero or more of the optional named header 
8160         fields".
8161         * test/data/invalid-messages/*.message: Added the required PATH 
8162         named header field to the tests so that they don't fail on 
8163         'Missing path field'
8164
8165 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8166
8167         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8168         the stack by implicitly defining variable and parameter types and
8169         removing the hack of defining C pointers as python objects and later
8170         casting them.
8171
8172 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8173
8174         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8175
8176 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8177
8178         * mono/DBusType/Dict.cs: Handle empty dicts
8179         * mono/DBusType/Array.cs: Handle empty arrays
8180         * mono/Arguments.cs: Handle empty arguments
8181
8182 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8183
8184         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8185         field
8186
8187 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8188
8189         * test/data/valid-messages/standard-*.message: Update message
8190         test scripts to new header field names.
8191
8192 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8193
8194         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8195         overflow to times_we_did_each_thing array which would chop off the
8196         first character of the failure_dir string. Increased the size of
8197         the array to 7 to reflect the number of random mutation functions
8198         we have.
8199
8200 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8201
8202         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8203         unix_server->watch here, it is unreffed in disconnect.
8204         (_dbus_server_new_for_tcp_socket): convert NULL host to
8205         "localhost" here so we don't append NULL to address.
8206         
8207         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8208         various addresses, including tcp with no explicit host.
8209
8210 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8211
8212         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8213         fix incorrect setting of .name_offset in the HeaderField (it was
8214         off by two bytes, positioned right after the name and typecode)
8215
8216         * bus/bus.c (bus_context_new, bus_context_unref): test before
8217         calling dbus_server_free_data_slot and _dbus_user_database_unref
8218         in case of an error.
8219
8220         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8221         by libdbus-gtool.
8222
8223 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8224
8225         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8226         _dbus_poll() instead of select().
8227
8228 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8229
8230         * bus/main.c (signal_handler): Reload the configuration files
8231         on SIGHUP.
8232         (main): Set up our SIGHUP handler.
8233
8234         * bus/bus.c (struct BusContext): Store the config file, user and
8235         fork flag in the BusContext.
8236         (process_config_first_time_only): Added.  Contains the code
8237         (previously in bus_context_new) for setting up the BusContext from
8238         the BusConfigParser that should only be run the first time the
8239         config files are read.
8240         (process_config_every_time): Added.  Contains the code (previously
8241         in bus_context_new) for setting up the BusContext from the
8242         BusConfigParser that should be run every time the config files are
8243         read.
8244         (load_config): Added.  Builds a BusConfigParser from the config
8245         files and passes the resulting structure off to
8246         process_config_first_time_only (assuming this is the first time)
8247         and process_config_every_time.
8248         (bus_context_new): All of the config-related code has been moved
8249         to process_config_first_time_only and process_config_every_time.
8250         Now this function just does the non-config-related initializations
8251         and calls load_config.
8252         (bus_context_reload_config): Added.
8253
8254 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8255
8256         * bus/driver.c (bus_driver_handle_get_service_owner):
8257         implement a GetServiceOwner method.
8258         * doc/dbus-specification.xml: document it.
8259         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8260         
8261         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8262         implement, using the bus GetServiceOwner method.
8263
8264         * test/glib/test-dbus-glib.c:
8265         use dbus_gproxy_new_for_service_owner so that we can receive the
8266         signal. 
8267
8268 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8269
8270         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8271         dbus/dbus-message.c, dbus/dbus-protocol.h
8272         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8273
8274         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8275         dbus/dbus-message.c, dbus/dbus-protocol.h
8276         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8277
8278         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8279         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8280         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8281
8282         * doc/dbus-specification.xml (Header Fields Table):
8283         s/SERVICE/DESTINATION
8284         s/SENDER_SERVICE/SENDER
8285
8286
8287 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8288
8289         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8290         a few seconds.
8291
8292 2004-04-13  Michael Meeks  <michael@ximian.com>
8293
8294         * glib/dbus-gobject.c (handle_introspect): split out
8295         (introspect_properties): this.
8296         (handle_introspect): implement this.
8297
8298         * test/glib/Makefile.am: use the absolute path so the bus
8299         daemon's chdir ("/") doesn't kill us dead.
8300
8301         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8302
8303 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8304
8305         * bus/config-parser.c (struct BusConfigParser): Added
8306         included_files field.
8307         (seen_include): Added.  Checks whether or not a file has already
8308         been included by any parent BusConfigParser.
8309         (bus_config_parser_new): Copy the parent's included_files.
8310         (include_file): Track which files have been included, and fail on
8311         circular inclusions.
8312         (process_test_valid_subdir): Changed printf to report if we are
8313         testing valid or invalid conf files.
8314         (all_are_equiv): Changed printf to be a bit clearer about
8315         what we are actually doing.
8316         (bus_config_parser_test): Test invalid configuration files.
8317
8318 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8319
8320         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8321         argument.  If non-null, the newly-constructed BusConfigParser will
8322         be initialized with the parent's BusLimits instead of the default
8323         values.
8324         (include_file): When including a config file, pass in
8325         the current parser as the parent and then copy the BusLimits
8326         from the included BusConfigParser pack to the current parser.
8327         (process_test_valid_subdir): Renamed from process_test_subdir.
8328         (process_test_equiv_subdir): Added.  Walks through a directory,
8329         descending into each subdirectory and loading the config files
8330         it finds there.  If any subdirectory contains two config files
8331         that don't produce identical BusConfigParser structs, fail.
8332         For now, the BusConfigParser's BusPolicies are not compared.
8333         (bus_config_parser_test): Call both process_test_valid_subdir and
8334         process_test_equiv_subdir.
8335
8336         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8337         argument and pass it along to the call to bus_config_parser_new.
8338         Also made a few small changes to allow this code to compile.
8339
8340         * bus/config-loader-expat.c (bus_config_load): Take a parent
8341         argument and pass it along to the call to bus_config_parser_new.
8342
8343         * bus/bus.c (bus_context_new): Load the config file
8344         with a NULL parent argument.
8345
8346 2004-03-29  Michael Meeks  <michael@ximian.com>
8347
8348         * glib/dbus-gobject.c (introspect_properties): split
8349         out, fix mangled 'while' flow control.
8350         (introspect_signals): implement.
8351         (handle_introspect): update.
8352
8353 2004-03-29  Michael Meeks  <michael@ximian.com>
8354
8355         * glib/dbus-gobject.c (set_object_property): split out / 
8356         re-work, use the property type, and not the message type(!)
8357         (get_object_property): ditto.
8358
8359         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8360         (dbus_gvalue_marshal): make this code re-usable, needed
8361         for signals too, also on both proxy and server side.
8362         Re-write for more efficiency / readability.
8363
8364 2004-03-29  Michael Meeks  <michael@ximian.com>
8365
8366         * dbus/dbus-message.c
8367         (dbus_message_new_error_printf): impl.
8368
8369         * dbus/dbus-connection.c
8370         (dbus_connection_unregister_object_path): fix warning.
8371
8372         * configure.in: fix no-mono-installed situation.
8373
8374 2004-03-27  Havoc Pennington  <hp@redhat.com>
8375
8376         Patch from Timo Teräs:
8377         
8378         * tools/dbus-send.c (main): if --print-reply, assume type is
8379         method call; support boolean type args
8380         
8381         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8382         bunch of memleak and logic bugs
8383         
8384 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8385
8386         * mono/Arguments.cs:
8387         * mono/Introspector.cs:
8388         * mono/Handler.cs:
8389         * mono/InterfaceProxy.cs:
8390         * mono/Message.cs
8391         * mono/ProxyBuilder.cs:
8392         * mono/Service.cs:
8393         Added InterfaceProxy class to avoid building proxies for every
8394         object.
8395
8396         * dbus-message.h:
8397         * dbus-message.c (dbus_message_append_args_valist)
8398         (dbus_message_iter_get_object_path)
8399         (dbus_message_iter_get_object_path_array)
8400         (dbus_message_iter_append_object_path)
8401         (dbus_message_iter_append_object_path_array):
8402         Added object_path iter functions to handle OBJECT_PATH arguments
8403         
8404 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8405
8406         First checkin of mono bindings.
8407         * configure.in:
8408         * Makefile.am:
8409         Build stuff for the bindings
8410         * dbus-sharp.pc.in: Added for pkgconfig
8411         
8412 2004-03-21  Havoc Pennington  <hp@redhat.com>
8413
8414         * test/test-service.c (main): remove debug spew
8415
8416 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8417
8418         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8419         arrays
8420
8421         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8422         (dbus_message_iter_init_array_iterator)
8423         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8424         indicate whether the iterator is empty
8425
8426         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8427         warnings
8428
8429 2004-03-19  Havoc Pennington  <hp@redhat.com>
8430
8431         * NEWS: 0.21 updates
8432
8433         * configure.in: 0.21
8434
8435         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8436         
8437         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8438         you don't need pyrex to make dist
8439
8440         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8441         sources; run moc
8442         
8443 2004-03-18  Richard Hult  <richard@imendio.com>
8444
8445         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8446         (dbus_message_set_auto_activation): Add doxygen docs.
8447
8448 2004-03-16  Richard Hult  <richard@imendio.com>
8449
8450         * bus/activation.c: (bus_activation_service_created),
8451         (bus_activation_send_pending_auto_activation_messages),
8452         (bus_activation_activate_service):
8453         * bus/activation.h:
8454         * bus/dispatch.c: (bus_dispatch),
8455         (check_nonexistent_service_auto_activation),
8456         (check_service_auto_activated),
8457         (check_segfault_service_auto_activation),
8458         (check_existent_service_auto_activation), (bus_dispatch_test):
8459         * bus/driver.c: (bus_driver_handle_activate_service):
8460         * bus/services.c: (bus_registry_acquire_service):
8461         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8462         (dbus_message_get_auto_activation):
8463         * dbus/dbus-message.h:
8464         * dbus/dbus-protocol.h: Implement auto-activation.
8465         
8466         * doc/dbus-specification.xml: Add auto-activation to the spec.
8467
8468 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8469
8470         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8471         fix a bug with CUSTOM types.
8472
8473         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8474         a unit test for this bug (used to fail).
8475
8476 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8477
8478         * bus/activation.c:
8479         (babysitter_watch_callback): notify all pending activations waiting for
8480           the same exec that the activation failed.
8481         (bus_activation_activate_service): shortcut the activation if we 
8482           already waiting for the same executable to start up.
8483
8484 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8485
8486         * bus/activation.c: 
8487         - Added service file reloading. 
8488           Each service files directory is kept in an hash table in 
8489           BusActivation and each BusActivationEntry knows what .service-file it
8490           was read from. So when you try to activate a service the bus will 
8491           check if it's been updated, removed or if new .service-files has 
8492           been installed.
8493         - Test code at the bottom for the service file reloading.
8494         * bus/test-main.c: (main):
8495         * bus/test.h:
8496         - added service reloading test.
8497         * dbus/dbus-sysdeps.c: 
8498         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8499
8500 2004-03-08  Michael Meeks  <michael@ximian.com>
8501
8502         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8503         bail immediately if disconnected, to avoid busy loop.
8504
8505         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8506         cleanup cut/paste/inefficiency.
8507
8508 2004-03-01  David Zeuthen  <david@fubar.dk>
8509
8510         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8511         bug where args were used twice. This bug resulted in a segfault
8512         on a Debian/PPC system when starting the messagebus daemon. Include
8513         dbus-sysdeps.h for DBUS_VA_COPY
8514
8515         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8516
8517         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8518         appropriate va_copy implementation. From GLib
8519         
8520 2004-02-24  Joe Shaw  <joe@ximian.com>
8521
8522         * bus/services.c (bus_registry_acquire_service): We need to pass
8523         in the service name to dbus_set_error() to prevent a crash.
8524
8525 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8526
8527         * AUTHORS: Reveal my True identity.
8528
8529 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8530
8531         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8532         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8533
8534 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8535
8536         * doc/TODO: Added not about better error check of configuration files.
8537
8538 2003-12-02  Richard Hult  <richard@imendio.com>
8539
8540         * Update AFL version to 2.0 throughout the source files to reflect
8541         the update that was done a while ago.
8542
8543 2003-12-02  Richard Hult  <richard@imendio.com>
8544
8545         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8546         wrote_dict_key to FALSE on the iter that the dict is appended to,
8547         just like when appending other types. Fixes a bug where a dict
8548         couldn't be put inside a dict.
8549         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8550         (message_iter_test, _dbus_message_test): Add test case for dict
8551         inside dict.
8552
8553 2003-12-01  David Zeuthen  <david@fubar.dk>
8554
8555         * python/dbus.py: Add the actual message when calling the reciever
8556         of a signal such that parameters can be inspected. Add the method
8557         remove_signal_receiver
8558         
8559 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8560
8561         * bus/*.[ch]:
8562         * dbus/*.[ch]:
8563         * glib/*.[ch]: Made ref functions return the pointer
8564
8565 2003-11-25  Zack Rusin  <zack@kde.org>
8566
8567         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8568
8569         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8570         wrappers,
8571
8572         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8573         the Integrator and to better fit with the server,
8574
8575 2003-11-24  Zack Rusin  <zack@kde.org>
8576
8577         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8578         the integrator handles it now
8579
8580         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8581         since QTimer wasn't really meant to be used the way DBusTimeout is
8582
8583 2003-11-24  Zack Rusin  <zack@kde.org>
8584
8585         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8586         Integrator class which integrates D-BUS with the Qt event loop,
8587
8588         * qt/connection.h, qt/connection.cpp: Move all the code which
8589         was dealing with D-BUS integration to the Integrator class,
8590         and start using Integrator,
8591
8592 2003-11-23  Zack Rusin  <zack@kde.org>
8593
8594         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8595         wrapper
8596
8597         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8598         switching namespaces to DBusQt, reworking the class,
8599
8600         * Makefile.cvs: switching dependencies so that it matches KDE 
8601         schematics,
8602         
8603         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8604         the library
8605
8606 2003-11-19  Havoc Pennington  <hp@redhat.com>
8607
8608         * NEWS: update
8609
8610         * configure.in: bump version to 0.20
8611
8612         * configure.in (have_qt): add yet another place to look for qt
8613         (someone hand trolltech a .pc file...)
8614
8615 2003-11-01  Havoc Pennington  <hp@redhat.com>
8616
8617         * doc/dbus-specification.xml: add state machine docs on the auth
8618         protocol; just a first draft, I'm sure it's wrong.      
8619
8620 2003-10-28  David Zeuthen  <david@fubar.dk>
8621
8622         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8623         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8624         
8625 2003-10-28  Havoc Pennington  <hp@redhat.com>
8626
8627         * dbus/dbus-message.c (get_next_field): delete unused function
8628
8629 2003-10-28  Havoc Pennington  <hp@redhat.com>
8630
8631         * bus/expirelist.c (do_expiration_with_current_time): detect
8632         failure of the expire_func due to OOM
8633
8634         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8635
8636         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8637         NoReply error that's now created by the bus when the service exits
8638
8639 2003-10-28  Havoc Pennington  <hp@redhat.com>
8640
8641         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8642         tests for set_path, set_interface, set_member, etc.
8643
8644         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8645
8646         * dbus/dbus-message.c (set_string_field): always just delete and
8647         re-append the field; accept NULL for deletion
8648         (re_align_fields_recurse): reimplement
8649         
8650 2003-10-26  Havoc Pennington  <hp@redhat.com>
8651
8652         * dbus/dbus-connection.c: fix docs to properly describe the
8653         disconnected message
8654         (_dbus_connection_notify_disconnected): remove this function; 
8655         we can't synchronously add the disconnected message, we have to 
8656         do it after we've queued any remaining real messages
8657         (_dbus_connection_get_dispatch_status_unlocked): queue the
8658         disconnect message only if the transport has finished queueing all
8659         its real messages and is disconnected.
8660         (dbus_connection_disconnect): update the dispatch status here
8661
8662 2003-10-22  Havoc Pennington  <hp@redhat.com>
8663
8664         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8665
8666         * bus/connection.c (bus_transaction_send_from_driver): set the
8667         destination to the connection's base service
8668
8669 2003-10-20  Havoc Pennington  <hp@redhat.com>
8670
8671         hmm, make check is currently not passing.
8672         
8673         * doc/dbus-specification.xml: add requirement that custom type
8674         names follow the same rules as interface names.
8675
8676         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8677         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8678         'map'
8679
8680         * doc/dbus-specification.xml: update type codes to match
8681         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8682         CUSTOM. Add type OBJECT_PATH to the spec.
8683
8684 2003-10-17  Havoc Pennington  <hp@redhat.com>
8685
8686         * bus/driver.c (create_unique_client_name): use "." as separator
8687         in base service names instead of '-'
8688
8689         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8690         byte at the end of the string
8691
8692         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8693         optimization macros since string validation seems to be a slow
8694         point.
8695         
8696         * doc/dbus-specification.xml: restrict valid
8697         service/interface/member/error names. Add test suite code for the
8698         name validation.
8699
8700         * dbus/dbus-string.c: limit service/interface/member/error names 
8701         to [0-9][A-Z][a-z]_
8702
8703         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8704         format arg to verbose spew
8705
8706         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8707         memory, return instead of g_error
8708
8709         * test/test-service.c (path_message_func): support emitting a
8710         signal on request
8711
8712         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8713         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8714         assuming the activation bus was the session bus so that services
8715         started manually will still register.
8716         (init_connections_unlocked): fix so that in OOM situation we get
8717         the same semantics when retrying the function
8718         
8719         * test/test-service.c (main): change to use path registration, to
8720         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8721         than DBUS_BUS_SESSION
8722
8723 2003-10-16  Havoc Pennington  <hp@redhat.com>
8724
8725         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8726
8727         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8728         coverage of the tests
8729         (coverage-report.txt): don't move the .da and .bbg files around
8730
8731 2003-10-16  Havoc Pennington  <hp@redhat.com>
8732
8733         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8734         to put there
8735
8736 2003-10-16  Havoc Pennington  <hp@redhat.com>
8737
8738         * bus/connection.c (bus_pending_reply_expired): either cancel or
8739         execute, not both
8740         (bus_connections_check_reply): use unlink, not remove_link, as we
8741         don't want to free the link; fixes double free mess
8742
8743         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8744         where no reply was received
8745
8746         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8747         fix a refcount leak
8748
8749         * bus/signals.c (match_rule_matches): add special cases for the
8750         bus driver, so you can match on sender/destination for it.
8751
8752         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8753         DBUS_PRINT_BACKTRACE is set
8754
8755         * dbus/dbus-internals.c: add pid to assertion failure messages
8756
8757         * dbus/dbus-connection.c: add message type code to the debug spew
8758
8759         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8760         sender=foo not service=foo
8761
8762         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8763         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8764         DBUS_ACTIVATION_ADDRESS instead
8765
8766         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8767         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8768
8769         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8770         context struct
8771
8772         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8773         (dbus_message_iter_get_object_path_array): new function (half
8774         finished, disabled for the moment)
8775         
8776         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8777         DBUS_MESSAGE_TYPE_ERROR
8778
8779         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8780         avoid redirecting stderr to /dev/null
8781         (babysit): close stdin if not doing the "exit_with_session" thing
8782
8783         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8784         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8785         stdout/stdin, so things don't get confused
8786         
8787         * bus/system.conf.in: fix to allow replies, I modified .conf
8788         instead of .conf.in again.
8789
8790 2003-10-14  David Zeuthen  <david@fubar.dk>
8791
8792         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8793         argtype to arg_type when raising unknown arg type exception.
8794         Changed type list to reflect the changes in dbus-protocol.h so 
8795         the bindings actually work.
8796
8797 2003-10-14  Havoc Pennington  <hp@redhat.com>
8798
8799         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8800         to have a bug keeping it from outputting the .da files sometimes
8801         (string_get_string): don't append garbage nul bytes to the string.
8802
8803 2003-10-15  Seth Nickell  <seth@gnome.org>
8804
8805         * python/Makefile.am:
8806
8807         Include dbus_h_wrapper.h in the dist tarball.
8808
8809 2003-10-14  Havoc Pennington  <hp@redhat.com>
8810
8811         * bus/bus.c (bus_context_check_security_policy): revamp this to
8812         work more sanely with new policy-based requested reply setup
8813
8814         * bus/connection.c (bus_transaction_send_from_driver): set bus
8815         driver messages as no reply
8816
8817         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8818         requested_reply attribute on allow/deny rules
8819
8820         * bus/system.conf: add <allow requested_reply="true"/>
8821
8822         * bus/driver.c (bus_driver_handle_message): fix check for replies
8823         sent to the bus driver, which was backward. How did this ever work
8824         at all though? I think I'm missing something.
8825
8826         * dbus/dbus-message.c (decode_header_data): require error and
8827         method return messages to have a reply serial field to be valid
8828         (_dbus_message_loader_queue_messages): break up this function;
8829         validate that reply serial and plain serial are nonzero; 
8830         clean up the OOM/error handling.
8831         (get_uint_field): don't return -1 from this
8832         (dbus_message_create_header): fix signed/unsigned bug
8833
8834         * bus/connection.c (bus_connections_expect_reply): save serial of
8835         the incoming message, not reply serial
8836
8837 2003-10-14  Havoc Pennington  <hp@redhat.com>
8838
8839         * bus/connection.c: implement pending reply tracking using
8840         BusExpireList
8841
8842         * bus/bus.c (bus_context_check_security_policy): verify that a
8843         reply is pending in order to allow a reply to be sent. Deny 
8844         messages of unknown type.
8845
8846         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8847
8848         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8849         (bus_context_get_reply_timeout): new
8850
8851 2003-10-13  Seth Nickell  <seth@gnome.org>
8852
8853         * python/Makefile.am:
8854
8855         Pass "make distcheck": remove a couple files from DIST_FILES
8856         that weren't included in the final version.
8857
8858 2003-10-12  Havoc Pennington  <hp@pobox.com>
8859
8860         Added test code that 1) starts an actual bus daemon and 2) uses
8861         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8862         more testing possible, but this is the basic framework.
8863         
8864         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8865         empty proxy lists from the proxy list hash
8866
8867         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8868         couple of return_if_fail checks
8869
8870         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8871         to allocate, so everything is cleared to NULL as it should be.
8872
8873         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8874         source as data to dbus_connection_set_timeout_functions() as the 
8875         timeout functions expected
8876
8877         * test/glib/run-test.sh: add a little script to start up a message
8878         bus and run tests using it
8879
8880         * tools/dbus-launch.1: updates
8881
8882         * tools/dbus-launch.c (main): add --config-file option
8883
8884         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8885         that could never be reached.
8886
8887         * dbus/dbus-message.c (dbus_message_new_method_return) 
8888         (dbus_message_new_error, dbus_message_new_signal): set the
8889         no-reply-expected flag on all these. Redundant, but may
8890         as well be consistent.
8891
8892 2003-10-11  Havoc Pennington  <hp@pobox.com>
8893
8894         * test/decode-gcov.c (function_solve_graph): make broken block
8895         graph a nonfatal error since it seems to be broken. Need to debug
8896         this.
8897
8898         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8899         can't just check type > INVALID < LAST anymore
8900
8901         * dbus/dbus-message.c (dbus_message_get_signature): new function
8902         (dbus_message_has_signature): new function
8903         (struct DBusMessage): add signature field (right now it isn't sent
8904         over the wire, just generated on the fly)
8905         (dbus_message_copy): copy the signature, and init strings to
8906         proper length to avoid some reallocs
8907         (dbus_message_iter_init_array_iterator): return void, since it
8908         can't fail
8909         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8910         (_dbus_message_loader_queue_messages): add silly temporary hack to
8911         fill in message->signature on load
8912
8913         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8914         characters, so they are relatively human-readable.
8915
8916 2003-10-11  Havoc Pennington  <hp@pobox.com>
8917
8918         * dbus/dbus-message.c (_dbus_message_test): add more test
8919         coverage, but #if 0 for now since they uncover a bug 
8920         not fixed yet; I think in re_align_field_recurse()
8921         (re_align_field_recurse): add FIXME about broken assertion
8922
8923         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8924
8925         * bus/connection.c: share a couple code bits with expirelist.c
8926
8927         * bus/expirelist.h, bus/expirelist.c: implement a generic
8928         expire-items-after-N-seconds facility, was going to share between
8929         expiring connections and replies, decided not to use for expiring
8930         connections for now.
8931
8932         * COPYING: include AFL 2.0 (still need to change all the file headers)
8933
8934 2003-10-09  Havoc Pennington  <hp@redhat.com>
8935
8936         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8937         gcc 3.3. Not that we do anything about it yet.
8938
8939         * bus/signals.c (bus_match_rule_parse): impose max length on the
8940         match rule text
8941
8942         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8943
8944 2003-10-09  Havoc Pennington  <hp@redhat.com>
8945
8946         Make matching rules theoretically work (add parser).
8947         
8948         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8949         the case where destination is explicitly specified as bus driver
8950         and someone else is eavesdropping.
8951         
8952         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8953         definition of eavesdropping and assertion
8954
8955         * tools/dbus-send.c (main): use dbus_message_type_from_string
8956
8957         * bus/signals.c (bus_match_rule_parse): implement
8958
8959         * dbus/dbus-message.c (dbus_message_type_from_string): new
8960
8961         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8962
8963 2003-10-02  Havoc Pennington  <hp@pobox.com>
8964
8965         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8966         dbus_gproxy_oneway_call
8967
8968         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8969         (dbus_server_setup_with_g_main): fix to allow calling them more
8970         than once on the same args
8971         (dbus_bus_get_with_g_main): new function
8972
8973 2003-10-02  Havoc Pennington  <hp@redhat.com>
8974
8975         * doc/dbus-tutorial.xml: write some stuff
8976
8977 2003-09-29  Havoc Pennington  <hp@pobox.com>
8978
8979         * configure.in: split checks for Doxygen from XML docs, check for
8980         xmlto
8981
8982         * doc/Makefile.am: XML-ify all the docs, and add a blank
8983         dbus-tutorial.xml
8984
8985 2003-09-29  Havoc Pennington  <hp@pobox.com>
8986
8987         * Merge dbus-object-names branch. To see the entire patch 
8988         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8989         it's huuuuge though.
8990         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8991         
8992 2003-09-28  Havoc Pennington  <hp@pobox.com>
8993
8994         * HACKING: update to reflect new server
8995
8996 2003-09-26  Seth Nickell  <seth@gnome.org>
8997
8998         * python/dbus.py:
8999         * python/examples/example-signals.py:
9000
9001         Start implementing some notions of signals. The API
9002         is really terrible, but they sort of work (with the
9003         exception of being able to filter by service, and to
9004         transmit signals *as* a particular service). Need to
9005         figure out how to make messages come from the service
9006         we registered :-(
9007         
9008         * python/dbus_bindings.pyx.in:
9009
9010         Removed duplicate message_handler callbacks.
9011         
9012 2003-09-25  Havoc Pennington  <hp@redhat.com>
9013
9014         * bus/session.conf.in: fix my mess
9015
9016 2003-09-25  Havoc Pennington  <hp@pobox.com>
9017
9018         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9019
9020 2003-09-25  Seth Nickell  <seth@gnome.org>
9021
9022         * python/examples/example-service.py:
9023
9024         Johan notices complete wrong code in example-service, but
9025         completely wrong in a way that works exactly the same (!).
9026         Johan is confused, how could this possibly work? Example
9027         code fails to serve purpose of making things clear.
9028         Seth fixes.
9029
9030 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9031
9032         * doc/dbus-specification.sgml: don't require header fields
9033         to be 4-byte aligned and specify that fields should be
9034         distinguished from padding by the fact that zero is not
9035         a valid field name.
9036         
9037         * doc/TODO: remove re-alignment item and add item to doc
9038         the OBJECT_PATH type.
9039         
9040         * dbus/dbus-message.c:
9041         (HeaderField): rename the original member to value_offset
9042         and introduce a name_offset member to keep track of where
9043         the field actually begins.
9044         (adjust_field_offsets): remove.
9045         (append_int_field), (append_uint_field),
9046         (append_string_field): don't align the start of the header
9047         field to a 4-byte boundary.
9048         (get_next_field): impl finding the next marhsalled field
9049         after a given field.
9050         (re_align_field_recurse): impl re-aligning a number of
9051         already marshalled fields.
9052         (delete_field): impl deleting a field of any type and
9053         re-aligning any following fields.
9054         (delete_int_or_uint_field), (delete_string_field): remove.
9055         (set_int_field), (set_uint_field): no need to re-check
9056         that we have the correct type for the field.
9057         (set_string_field): ditto and impl re-aligning any
9058         following fields.
9059         (decode_header_data): update to take into account that
9060         the fields aren't 4-byte aligned any more and the new
9061         way to distinguish padding from header fields. Also,
9062         don't exit when there is too much header padding.
9063         (process_test_subdir): print the directory.
9064         (_dbus_message_test): add test to make sure a following
9065         field is re-aligned correctly after field deletion.
9066         
9067         * dbus/dbus-string.[ch]:
9068         (_dbus_string_insert_bytes): rename from insert_byte and
9069         allow the insert of multiple bytes.
9070         (_dbus_string_test): test inserting multiple bytes.
9071
9072         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9073         warning note to docs about having to re-align any
9074         marshalled values following the string.
9075         
9076         * dbus/dbus-message-builder.c:
9077         (append_string_field), (_dbus_message_data_load):
9078         don't align the header field.
9079         
9080         * dbus/dbus-auth.c: (process_test_subdir): print the
9081         directory.
9082         
9083         * test/break-loader.c: (randomly_add_one_byte): upd. for
9084         insert_byte change.
9085         
9086         * test/data/invalid-messages/bad-header-field-alignment.message:
9087         new test case.
9088         
9089         * test/data/valid-messages/unknown-header-field.message: shove
9090         a dict in the unknown field.
9091
9092 2003-09-25  Seth Nickell  <seth@gnome.org>
9093
9094         * python/dbus.py:
9095         * python/dbus_bindings.pyx.in:
9096
9097         Handle return values.
9098         
9099         * python/examples/example-client.py:
9100         * python/examples/example-service.py:
9101
9102         Pass back return values from the service to the client.
9103         
9104 2003-09-24  Seth Nickell  <seth@gnome.org>
9105
9106         * python/dbus.py:
9107
9108         Connect Object methods (when you are sharing an object) up... pass
9109         in a list of methods to be shared. Sharing all the methods just
9110         worked out too weird. You can now create nice Services over the
9111         DBus in Python. :-)
9112         
9113         * python/dbus_bindings.pyx.in:
9114
9115         Keep references to user_data tuples passed into C functions so 
9116         Python doesn't garbage collect on us.
9117
9118         Implement MethodReturn and Error subclasses of Message for creating
9119         DBusMessage's of those types.
9120         
9121         * python/examples/example-client.py:
9122         * python/examples/example-service.py:
9123
9124         Simple example code showing both how create DBus services and objects,
9125         and how to use them.
9126
9127 2003-09-23  Havoc Pennington  <hp@pobox.com>
9128
9129         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9130
9131 2003-09-23  Havoc Pennington  <hp@redhat.com>
9132
9133         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9134         (dbus_gproxy_disconnect_signal): implement
9135         (dbus_gproxy_manager_remove_signal_match): implement
9136         (dbus_gproxy_manager_add_signal_match): implement
9137         (dbus_gproxy_oneway_call): implement
9138
9139 2003-09-23  Havoc Pennington  <hp@pobox.com>
9140
9141         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9142         subclass. This means dropping the transparent thread safety of the
9143         proxy; you now need a separate proxy per-thread, or your own
9144         locking on the proxy. Probably right anyway.
9145         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9146
9147 2003-09-22  Havoc Pennington  <hp@redhat.com>
9148
9149         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9150
9151 2003-09-21  Seth Nickell  <seth@gnome.org>
9152
9153         First checkin of the Python bindings.
9154         
9155         * python/.cvsignore:
9156         * python/Makefile.am:
9157         * python/dbus_bindings.pyx.in:
9158         * python/dbus_h_wrapper.h:
9159
9160         Pieces for Pyrex to operate on, building a dbus_bindings.so
9161         python module for low-level access to the DBus APIs.
9162         
9163         * python/dbus.py:
9164
9165         High-level Python module for accessing DBus objects.
9166
9167         * configure.in:
9168         * Makefile.am:
9169
9170         Build stuff for the python bindings.
9171
9172         * acinclude.m4:
9173
9174         Extra macro needed for finding the Python C header files.
9175
9176 2003-09-21  Havoc Pennington  <hp@pobox.com>
9177
9178         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9179         implementing the proxy manager, didn't get very far.
9180
9181         * dbus/dbus-bus.c (dbus_bus_add_match): new
9182         (dbus_bus_remove_match): new
9183
9184         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9185         path_name argument; adjust the other not-yet-implemented 
9186         gproxy constructors to be what I think they should be.
9187
9188 2003-09-21  Havoc Pennington  <hp@pobox.com>
9189
9190         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9191         by default for message bus connections.
9192
9193         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9194         exit_on_disconnect flag is set and we process the disconnected
9195         signal.
9196         (dbus_connection_set_exit_on_disconnect): new function
9197
9198 2003-09-21  Havoc Pennington  <hp@pobox.com>
9199
9200         Get matching rules mostly working in the bus; only actually
9201         parsing the rule text remains. However, the client side of
9202         "signal connections" hasn't been started, this patch is only the
9203         bus side.
9204         
9205         * dbus/dispatch.c: fix for the matching rules changes
9206         
9207         * bus/driver.c (bus_driver_handle_remove_match)
9208         (bus_driver_handle_add_match): send an ack reply from these
9209         method calls
9210
9211         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9212         arguments, reported by Seth Nickell
9213
9214         * bus/config-parser.c (append_rule_from_element): support
9215         eavesdrop=true|false attribute on policies so match rules 
9216         can be prevented from snooping on the system bus.
9217
9218         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9219         and "destination" in attribute names; fix some docs bugs; 
9220         add eavesdrop=true|false attribute
9221
9222         * bus/driver.c (bus_driver_handle_add_match)
9223         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9224         messages
9225
9226         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9227         rid of broadcast service concept, signals are just always broadcast
9228
9229         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9230         mostly implement matching rules stuff (currently only exposed as signal
9231         connections)
9232
9233 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9234
9235         * doc/dbus-specification.sgml: Change the header field name
9236         to be an enum and update the rest of the spec to reference
9237         the fields using the conventinal name.
9238
9239         * dbus/dbus-protocol.h: update to reflect the spec.
9240
9241         * doc/TODO: add item to remove the 4 byte alignment requirement.
9242         
9243         * dbus/dbus-message.c: Remove the code to generalise the
9244         header/body length and serial number header fields as named
9245         header fields so we can reference field names using the 
9246         protocol values.
9247         (append_int_field), (append_uint_field), (append_string_field):
9248         Append the field name as a byte rather than four chars.
9249         (delete_int_or_uint_field), (delete_string_field): reflect the
9250         fact that the field name and typecode now occupy 4 bytes instead
9251         of 8.
9252         (decode_string_field), (decode_header_data): update to reflect
9253         protocol changes and move the field specific encoding from
9254         decode_string_field() back into decode_header_data().
9255         
9256         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9257         Add utility to aid debugging.
9258         
9259         * dbus/dbus-message-builder.c:
9260         (append_string_field), (_dbus_message_data_load): Update to
9261         reflect protocol changes; Change the FIELD_NAME directive
9262         to HEADER_FIELD and allow it to take the field's conventional
9263         name rather than the actual value.
9264         
9265         * test/data/*/*.message: Update to use HEADER_FIELD instead
9266         of FIELD_NAME; Always align the header on an 8 byte boundary
9267         *before* updating the header length.
9268
9269 2003-09-15  Havoc Pennington  <hp@pobox.com>
9270
9271         * dbus/dbus-pending-call.c: add the get/set object data
9272         boilerplate as for DBusConnection, etc. Use generic object data
9273         for the notify callback.
9274
9275         * glib/dbus-gparser.c (parse_node): parse child nodes
9276
9277         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9278         
9279         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9280         contain functions shared between the convenience lib and the
9281         installed lib
9282
9283         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9284         -export-symbols-regex to the GLib library
9285
9286         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9287         fix the locking in here, and add a default handler for
9288         Introspect() that just returns sub-nodes.
9289
9290 2003-09-14  Havoc Pennington  <hp@pobox.com>
9291
9292         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9293         rather than gfoo consistent
9294
9295         * glib/dbus-gproxy.h: delete for now, move contents to
9296         dbus-glib.h, because the include files don't work right since we
9297         aren't in the dbus/ subdir.
9298         
9299         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9300         (dbus_gproxy_end_call): finish
9301         (dbus_gproxy_begin_call): finish
9302
9303         * glib/dbus-gmain.c (dbus_set_g_error): new
9304
9305         * glib/dbus-gobject.c (handle_introspect): include information
9306         about child nodes in the introspection
9307
9308         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9309         function to help in implementation of introspection
9310
9311         * dbus/dbus-object-tree.c
9312         (_dbus_object_tree_list_registered_and_unlock): new function
9313
9314 2003-09-12  Havoc Pennington  <hp@pobox.com>
9315
9316         * glib/dbus-gidl.h: add common base class for all the foo_info
9317         types
9318
9319         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9320         similar to kdcop
9321
9322         * test/Makefile.am: try test srcdir -ef . in addition to test
9323         srcdir = ., one of them should work (yeah lame)
9324         
9325         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9326         library
9327         
9328         * glib/dbus-gparser.h: make description_load routines return
9329         NodeInfo* not Parser*
9330
9331         * Makefile.am (SUBDIRS): build test dir after all library dirs
9332
9333         * configure.in: add GTK+ detection
9334
9335 2003-09-07  Havoc Pennington  <hp@pobox.com>
9336
9337         * Make Doxygen contented.
9338
9339 2003-09-07  Havoc Pennington  <hp@pobox.com>
9340
9341         * doc/dbus-specification.sgml: more updates
9342
9343 2003-09-06  Havoc Pennington  <hp@pobox.com>
9344
9345         * doc/dbus-specification.sgml: partial updates
9346
9347         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9348         zillionth time; hopefully I edited the right file this time.
9349
9350         * bus/config-parser.c (append_rule_from_element): support
9351         send_type, send_path, receive_type, receive_path
9352
9353         * bus/policy.c: add message type and path to the list of things
9354         that can be "firewalled"
9355
9356 2003-09-06  Havoc Pennington  <hp@pobox.com>
9357
9358         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9359         (dbus_connection_register_object_path): make this not handle
9360         messages to paths below the given path
9361
9362 2003-09-03  Havoc Pennington  <hp@pobox.com>
9363
9364         * test/glib/Makefile.am: add this with random glib-linked test
9365         programs
9366
9367         * glib/Makefile.am: remove the random test programs from here,
9368         leave only the unit tests
9369
9370         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9371         uscore/javacaps conversion, and fix     
9372         (get_object_property, set_object_property): change to .NET
9373         convention for mapping props to methods, set_FooBar/get_FooBar, 
9374         since one language has such a convention we may as well copy it. 
9375         Plus real methods in either getFooBar or get_foo_bar style won't 
9376         collide with this convention.
9377
9378 2003-09-01  Havoc Pennington  <hp@pobox.com>
9379
9380         * glib/dbus-gparser.c: implement
9381
9382         * glib/dbus-gobject.c: start implementing skeletons support
9383
9384         * configure.in: when disabling checks/assert, also define
9385         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9386
9387 2003-09-01  Havoc Pennington  <hp@pobox.com>
9388
9389         * glib/Makefile.am: rearrange a bunch of files and get "make
9390         check" framework set up
9391
9392 2003-08-31  Havoc Pennington  <hp@pobox.com>
9393
9394         * fix build with --disable-tests
9395
9396 2003-08-30  Havoc Pennington  <hp@pobox.com>
9397
9398         * dbus/dbus-connection.c: purge DBusMessageHandler
9399
9400         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9401         use callbacks everywhere
9402
9403 2003-08-30  Havoc Pennington  <hp@pobox.com>
9404
9405         * test/data/valid-config-files/system.d/test.conf: change to 
9406         root for the user so warnings don't get printed
9407
9408         * dbus/dbus-message.c: add dbus_message_get_path,
9409         dbus_message_set_path
9410         
9411         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9412         dispatching to a path
9413
9414         * dbus/dbus-string.c (_dbus_string_validate_path): add
9415
9416         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9417         (_dbus_marshal_object_path): implement
9418
9419         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9420         to contain the path to the target object
9421         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9422         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9423
9424 2003-08-30  Havoc Pennington  <hp@pobox.com>
9425
9426         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9427
9428 2003-08-29  Havoc Pennington  <hp@pobox.com>
9429
9430         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9431         registered
9432         (struct DBusObjectSubtree): shrink this
9433         a lot, since we may have a lot of them
9434         (_dbus_object_tree_free_all_unlocked): implement
9435         (_dbus_object_tree_dispatch_and_unlock): implement
9436
9437 2003-08-29  Havoc Pennington  <hp@pobox.com>
9438
9439         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9440
9441 2003-08-28  Havoc Pennington  <hp@pobox.com>
9442
9443         purge DBusObjectID
9444         
9445         * dbus/dbus-connection.c: port to no ObjectID, create a
9446         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9447
9448         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9449         everything except UnregisterFunction and MessageFunction
9450         
9451         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9452         add DBUS_TYPE_OBJECT_PATH
9453         
9454         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9455         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9456         path-based object IDs
9457
9458 2003-08-25  Havoc Pennington  <hp@pobox.com>
9459
9460         Just noticed that dbus_message_test is hosed, I wonder when I
9461         broke that. I thought make check was passing earlier...
9462         
9463         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9464         container tree, will replace most of dbus-object-registry
9465
9466         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9467         screwup
9468
9469 2003-08-19  Havoc Pennington  <hp@pobox.com>
9470
9471         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9472         (dbus_message_is_error): fix this function
9473
9474         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9475         match
9476
9477         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9478         reflect clarified man page
9479         (bus_client_policy_check_can_send): ditto
9480         
9481         * bus/session.conf.in: fixup
9482
9483         * bus/system.conf.in: fixup
9484
9485 2003-08-18  Havoc Pennington  <hp@redhat.com>
9486
9487         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9488
9489         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9490         dumb bug created earlier (wrong order of args to
9491         decode_header_data())
9492         
9493         * tools/dbus-send.c: port
9494
9495         * tools/dbus-print-message.c (print_message): port
9496
9497         * test/data/*messages: port all messages over
9498         
9499         * dbus/dbus-message-builder.c: support including 
9500         message type
9501         
9502         * bus/driver.c: port over
9503         
9504         * bus/dispatch.c: port over to new stuff
9505
9506         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9507         rename disconnect signal to "Disconnected"
9508
9509 2003-08-17  Havoc Pennington  <hp@pobox.com>
9510
9511         This doesn't compile yet, but syncing up so I can hack on it from
9512         work. What are branches for if not broken code? ;-)
9513         
9514         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9515         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9516         DBUS_HEADER_FIELD_ERROR_NAME
9517         
9518         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9519         for the interface+member pairs
9520         (string_hash): change to use g_str_hash algorithm
9521         (find_direct_function, find_string_function): refactor these to
9522         share most code.
9523         
9524         * dbus/dbus-message.c: port all of this over to support 
9525         interface/member fields instead of name field
9526
9527         * dbus/dbus-object-registry.c: port over
9528         
9529         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9530         from _dbus_string_validate_name
9531
9532         * bus/dbus-daemon-1.1: change file format for the 
9533         <deny>/<allow> stuff to match new message naming scheme
9534
9535         * bus/policy.c: port over
9536
9537         * bus/config-parser.c: parse new format
9538         
9539 2003-08-16  Havoc Pennington  <hp@pobox.com>
9540
9541         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9542         broken assertion
9543
9544         * glib/dbus-gproxy.c: some hacking
9545
9546 2003-08-15  Havoc Pennington  <hp@redhat.com>
9547
9548         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9549
9550         * dbus/dbus-connection.c
9551         (dbus_connection_send_with_reply_and_block): factor out internals;
9552         change to convert any error replies to DBusError instead of 
9553         returning them as a message
9554
9555 2003-08-15  Havoc Pennington  <hp@pobox.com>
9556
9557         * dbus/dbus-connection.c, 
9558         dbus/dbus-pending-call.c: Finish the pending call stuff
9559
9560 2003-08-14  Havoc Pennington  <hp@redhat.com>
9561
9562         * dbus/dbus-pending-call.c: start on new object that will replace
9563         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9564         replies
9565
9566         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9567         with remote interfaces
9568
9569         * dbus/dbus-gidl.c: do the boring boilerplate in here
9570         
9571 2003-08-12  Havoc Pennington  <hp@pobox.com>
9572
9573         * bus/dispatch.c (bus_dispatch): make this return proper 
9574         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9575
9576         * dbus/dbus-errors.c (dbus_set_error): use
9577         _dbus_string_append_printf_valist
9578
9579         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9580         (_dbus_string_append_printf): new
9581
9582         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9583         UNKNOWN_METHOD
9584
9585         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9586         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9587         message is unhandled.
9588
9589 2003-08-11  Havoc Pennington  <hp@pobox.com>
9590
9591         * bus/test.c (client_disconnect_handler): change to return
9592         HANDLED (would have been REMOVE_MESSAGE)
9593
9594         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9595         HANDLED/NOT_YET_HANDLED instead of
9596         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9597         should be used.
9598
9599 2003-08-10  Havoc Pennington  <hp@pobox.com>
9600
9601         * tools/dbus-send.c (main): add --type argument, for now
9602         supporting only method_call and signal types.
9603
9604         * tools/dbus-print-message.c: print message type
9605
9606         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9607         init connection->objects
9608
9609         * doc/dbus-specification.sgml: fix sgml
9610
9611         * bus/*.c: port over to object-instance API changes
9612
9613         * test/test-service.c: ditto
9614         
9615         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9616         name, we will have to fix up the rest of the code to also handle
9617         this
9618         (dbus_message_new): generic message-creation call
9619         (set_string_field): allow appending name field
9620
9621 2003-08-06  Havoc Pennington  <hp@pobox.com>
9622
9623         * dbus/dbus-object-registry.c: implement signal connection 
9624         and dispatch
9625
9626         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9627
9628         * dbus/dbus-internals.c (_dbus_memdup): new function
9629
9630 2003-08-02  Havoc Pennington  <hp@pobox.com>
9631
9632         * dbus/dbus-message.c (dbus_message_get_no_reply)
9633         (dbus_message_set_no_reply): add these and remove
9634         set_is_error/get_is_error
9635
9636         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9637         remove the ERROR flag, since there's now an ERROR type
9638
9639 2003-08-01  Havoc Pennington  <hp@pobox.com>
9640
9641         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9642         implement
9643
9644         * dbus/dbus-message.c (dbus_message_get_type): new function
9645
9646         * doc/dbus-specification.sgml: add "type" byte to messages
9647
9648 2003-08-01  Havoc Pennington  <hp@pobox.com>
9649
9650         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9651         a message type enum to distinguish kinds of message
9652         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9653         that need not be replied to
9654
9655 2003-08-01  Havoc Pennington  <hp@pobox.com>
9656
9657         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9658         (unpack_8_octets): fix no-64-bit-int bug
9659
9660         * dbus/dbus-object-registry.c (validate_id): validate the 
9661         connection ID bits, not just the instance ID.
9662
9663         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9664         the connection-global 33 bits of the object ID
9665
9666         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9667         object ID in the new way
9668
9669         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9670         define server/client/instance bits.
9671
9672 2003-07-30  Havoc Pennington  <hp@pobox.com>
9673
9674         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9675         build
9676
9677 2003-07-13  Havoc Pennington  <hp@pobox.com>
9678
9679         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9680         fields to DBusObjectVTable and DBusObjectInfo
9681
9682 2003-07-12  Havoc Pennington  <hp@pobox.com>
9683
9684         * dbus/dbus-object-registry.c: implement unit test,
9685         fix bugs discovered in process
9686
9687         * dbus/dbus-connection.c: remove handler_table and
9688         register_handler(), add DBusObjectRegistry usage
9689
9690         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9691         (dbus_object_id_set_null): new functions
9692
9693 2003-07-08  Havoc Pennington  <hp@pobox.com>
9694
9695         * dbus/dbus-object.c: implement some of this
9696
9697         * dbus/dbus-object-registry.c
9698         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9699         param
9700         (_dbus_object_registry_new): handle OOM
9701
9702 2003-07-08  Havoc Pennington  <hp@pobox.com>
9703
9704         * dbus/dbus-object.h: sketch out an API for registering objects
9705         with a connection, that allows us to use as little as 24 bytes
9706         per object and lets application code represent an object in 
9707         any conceivable way.
9708
9709         * dbus/dbus-object-registry.c: implement the hard bits of the
9710         DBusConnection aspect of object API. Not yet wired up.
9711         
9712 2003-07-06  Havoc Pennington  <hp@pobox.com>
9713
9714         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9715         (_dbus_marshal_object_id): new
9716         (_dbus_demarshal_object_id): new
9717         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9718         consolidate identical switch cases. Don't conditionalize handling
9719         of DBUS_TYPE_UINT64, need to handle the type always.
9720         (_dbus_marshal_validate_arg): consolidate identical cases, and
9721         handle DBUS_TYPE_OBJECT_ID
9722
9723         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9724
9725         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9726
9727 2003-09-28  Havoc Pennington  <hp@pobox.com>
9728
9729         * real 0.13 release
9730
9731 2003-09-28  Havoc Pennington  <hp@pobox.com>
9732
9733         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9734         to work with Debian db2html
9735
9736 2003-09-28  Havoc Pennington  <hp@pobox.com>
9737
9738         * configure.in: 0.13
9739
9740         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9741         stylesheet-images for benefit of Debian
9742         
9743         Change back to using filesystem-linked sockets for the system
9744         bus, so only root can create the default system bus address.
9745         
9746         * bus/system.conf.in: change to use
9747         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9748
9749         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9750         from here.
9751
9752         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9753         here, and AC_DEFINE DBUS_SYSTEM_PATH
9754
9755 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9756
9757         * doc/TODO:
9758         * doc/busconfig.dtd:
9759         Add busconfig DTD.
9760         
9761 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9762
9763         * doc/dbus-specification.sgml:
9764         Add activation reply values.
9765         
9766 2003-08-05  Havoc Pennington  <hp@redhat.com>
9767
9768         * configure.in: 0.12
9769
9770 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9771
9772         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9773         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9774         (add_watch), (remove_watch), (create_source):
9775         Refcount fds, fixes some reentrancy issues.
9776         
9777 2003-07-30  Havoc Pennington  <hp@redhat.com>
9778
9779         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9780         bus address to be abstract if we have abstract sockets
9781
9782         * NEWS: update
9783
9784 2003-07-28  Havoc Pennington  <hp@redhat.com>
9785
9786         * bus/messagebus.in: fix to avoid processname/servicename 
9787         confusion, from Michael Kearey
9788         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9789         
9790 2003-07-23  Havoc Pennington  <hp@pobox.com>
9791
9792         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9793         fix from Andy Hanton to remove broken "+1"
9794
9795 2003-07-16  Havoc Pennington  <hp@pobox.com>
9796
9797         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9798         babysitter process, as suggested by Thomas Leonard, so 
9799         an "eval `dbus-launch --exit-with-session`" will actually 
9800         return
9801
9802 2003-07-16  Havoc Pennington  <hp@pobox.com>
9803
9804         * configure.in: print out EXPANDED_* variables in the summary at
9805         the end; clean up the code that computes EXPANDED_ variables and
9806         get the ones using exec_prefix right. Should make things work
9807         when you build without --prefix
9808
9809 2003-06-29  Havoc Pennington  <hp@pobox.com>
9810
9811         * mono/Test.cs (class Test): fire up a main loop and run it
9812
9813         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9814         done once, the app has to do it
9815
9816 2003-06-26  Havoc Pennington  <hp@pobox.com>
9817
9818         * mono/Connection.cs: set up connection with the glib main loop
9819
9820 2003-07-01  Havoc Pennington  <hp@redhat.com>
9821
9822         * doc/dbus-specification.sgml: clarify the format of a type code,
9823         change suggested by Jim Blandy
9824
9825 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9826
9827         * doc/Makefile.am:
9828         * tools/Makefile.am: Don't assume srcdir == builddir.
9829
9830         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9831         the allocated block.
9832         (_dbus_memory_test): New function.
9833         * dbus/dbus-test.h: Add _dbus_memory_test ().
9834         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9835
9836         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9837         of %c%c%c%c.
9838         (dbus_message_new): Remove obsolete @todo.
9839
9840         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9841         (_dbus_marshal_set_uint64): Fix comment.
9842
9843         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9844         hardcode FIELD_REPLY_SERIAL.
9845
9846         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9847         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9848
9849         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9850         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9851
9852 2003-06-24  Havoc Pennington  <hp@pobox.com>
9853
9854         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9855
9856 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9857
9858         * configure.in:
9859         * gcj/.cvsignore:
9860         * gcj/Hello.java:
9861         * gcj/Makefile.am:
9862         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9863         * gcj/org/.cvsignore:
9864         * gcj/org/Makefile.am:
9865         * gcj/org/freedesktop/.cvsignore:
9866         * gcj/org/freedesktop/Makefile.am:
9867         * gcj/org/freedesktop/dbus/.cvsignore:
9868         * gcj/org/freedesktop/dbus/Makefile.am:
9869         * gcj/org/freedesktop/dbus/Message.java: (Message),
9870         (Message.Message):
9871         * gcj/org/freedesktop/dbus/natMessage.cc:
9872         Fix the build system.
9873
9874 2003-06-22  Havoc Pennington  <hp@pobox.com>
9875
9876         * mono/Connection.cs: add more bindings
9877
9878         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9879         more than once.
9880
9881 2003-06-22  Havoc Pennington  <hp@pobox.com>
9882
9883         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9884         Start wrapping more stuff.
9885
9886 2003-06-22  Havoc Pennington  <hp@pobox.com>
9887
9888         * mono/Message.cs: implement Message.Wrap() that ensures we only
9889         have a single C# wrapper per DBusMessage, assuming it works which
9890         it probably doesn't.
9891
9892         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9893         (dbus_message_free_data_slot): new
9894         (dbus_message_set_data): new
9895         (dbus_message_get_data): new
9896
9897 2003-06-22  Havoc Pennington  <hp@pobox.com>
9898
9899         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9900         (_dbus_data_slot_allocator_alloc): rework these to keep a
9901         reference count on each slot and automatically manage a global
9902         slot ID variable passed in by address
9903
9904         * bus/bus.c: convert to new dataslot API
9905
9906         * dbus/dbus-bus.c: convert to new dataslot API
9907
9908         * dbus/dbus-connection.c: convert to new dataslot API
9909
9910         * dbus/dbus-server.c: convert to new dataslot API
9911
9912         * glib/dbus-gmain.c: ditto
9913
9914         * bus/test.c: ditto
9915
9916         * bus/connection.c: ditto
9917
9918 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9919
9920         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9921         after the gcj checks so that the correct configuration tags
9922         will be added to libtool.
9923
9924         * dbus-glib-1.pc.in: No need to specify any includes since
9925         dbus-1.pc.in has those.
9926
9927 2003-06-22  Havoc Pennington  <hp@pobox.com>
9928
9929         * mono/*, gcj/*, configure.in, Makefile.am:
9930         Check in makefiles and subdirs for mono and gcj bindings.
9931         Neither binding actually exists, just trying to get through
9932         all the build and other boring bits.
9933
9934 2003-06-21  Philip Blundell  <philb@gnu.org>
9935
9936         * tools/dbus-monitor.1: Updated.
9937
9938         * tools/dbus-send.1: Likewise.
9939
9940 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9941
9942         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9943         for hangup and error after checking read so we won't discard
9944         pending data if both hangup and read are set.
9945
9946 2003-06-19  Philip Blundell  <philb@gnu.org>
9947
9948         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9949
9950         * tools/dbus-send.c: Accept both --system and --session.
9951
9952         * tools/dbus-monitor.c: Same here.
9953
9954 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9955
9956         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9957         from C++ (Patch by Miloslav Trmac).
9958
9959 2003-06-15  Joe Shaw  <joe@assbarn.com>
9960
9961         * configure.in: Check for socklen_t.
9962
9963         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9964
9965         * test/test-segfault.c: Add #include <sys/time.h>
9966
9967         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9968         dbus-launch needs it.
9969
9970 2003-06-09  Havoc Pennington  <hp@redhat.com>
9971
9972         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9973         SUN_LEN, it breaks abstract socket usage
9974
9975         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9976         starts of lines.
9977
9978 2003-06-04  Havoc Pennington  <hp@pobox.com>
9979
9980         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9981         using unix:abstract=/foo, and when listening in a tmpdir
9982         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9983
9984         * dbus/dbus-transport.c (_dbus_transport_open): support
9985         unix:abstract=/foo
9986
9987         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9988         support abstract sockets
9989
9990         * dbus/dbus-transport-unix.c
9991         (_dbus_transport_new_for_domain_socket): support abstract sockets
9992
9993         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9994         toggle as an argument, implement abstract namespace support
9995         (_dbus_listen_unix_socket): ditto
9996
9997         * configure.in: add --enable-abstract-sockets and implement
9998         a configure check for autodetection of the right value.
9999
10000 2003-06-01  Havoc Pennington  <hp@pobox.com>
10001
10002         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10003         in /tmp (though on Linux this will end up being useless,
10004         when we add abstract namespace support)
10005
10006         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10007         subst'ing it
10008
10009 2003-05-28  Colin Walters  <walters@verbum.org>
10010
10011         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10012
10013 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10014
10015         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10016
10017 2003-05-17  Colin Walters  <walters@gnu.org>
10018
10019         * tools/dbus-send.c: Don't exit with an error code if --help was
10020         passed.  Default to using the session bus instead of the system
10021         one.
10022
10023         * tools/dbus-launch.c: Ditto.
10024
10025         * tools/dbus-monitor.c: Ditto.
10026
10027         * tools/dbus-send.1: Update with new arguments.
10028
10029         * tools/dbus-launch.c: Emit code to export variables.  New
10030         arguments -s and -c to specify shell syntax, and a bit of code to
10031         autodetect syntax.  Also, allow specifying a program to run.
10032
10033         * tools/dbus-launch.1: Update with new arguments.
10034
10035         * tools/dbus-send.1: Ditto.
10036
10037         * tools/dbus-monitor.1: Ditto.
10038
10039 2003-05-17  Havoc Pennington  <hp@pobox.com>
10040
10041         * bus/config-parser.c (merge_included): merge in policies from
10042         child configuration file.
10043
10044         * bus/policy.c (bus_policy_merge): function to merge two policies
10045         together
10046
10047 2003-05-16  Havoc Pennington  <hp@redhat.com>
10048
10049         * dbus/dbus-connection.c: disable verbose lock spew
10050
10051         * tools/dbus-send.c: add --print-reply command line option
10052
10053         * tools/dbus-print-message.h (print_message): new util function
10054         shared by dbus-send and dbus-monitor
10055
10056         * tools/dbus-monitor.c (handler_func): exit on disconnect
10057
10058         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10059         disconnected, don't try to use the read_watch
10060
10061         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10062         so we can find this bug more easily
10063
10064 2003-05-16  Havoc Pennington  <hp@redhat.com>
10065
10066         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10067         NULL as DBusHashTable is annoyingly likely to do.
10068
10069 2003-05-16  Colin Walters  <walters@verbum.org>
10070
10071         * tools/dbus-monitor.c: Add --session argument and usage()
10072         function.
10073
10074         * tools/dbus-monitor.1: Update with new --session arg.
10075
10076         * bus/Makefile.am (install-data-hook): Create
10077         $(libdir)/dbus-1.0/services so that the session bus is happy.
10078
10079 2003-05-15  Havoc Pennington  <hp@redhat.com>
10080
10081         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10082         on non-x86. ifdef's are evil.
10083
10084 2003-05-15  Havoc Pennington  <hp@redhat.com>
10085
10086         * configure.in: 0.11
10087
10088         * NEWS: update
10089
10090         * bus/Makefile.am (initddir): apparently we are supposed to put
10091         init scripts in /etc/rc.d/init.d not /etc/init.d
10092
10093         * bus/Makefile.am: remove the "you must --enable-tests to make
10094         check" as it broke distcheck
10095
10096         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10097
10098 2003-05-13  James Willcox  <jwillcox@gnome.org>
10099
10100         * configure.in:
10101         * bus/activation.c: (bus_activation_service_created),
10102         (bus_activation_activate_service):
10103         * bus/driver.c: (bus_driver_send_service_deleted),
10104         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10105         (bus_driver_send_service_acquired),
10106         (bus_driver_send_welcome_message),
10107         (bus_driver_handle_list_services):
10108         * bus/session.conf.in:
10109         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10110         (dbus_bus_service_exists), (dbus_bus_activate_service):
10111         * dbus/dbus-bus.h:
10112
10113         Add some convenience API which lets you activate a service, and did a
10114         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10115         and dbus_message_get_args()
10116
10117 2003-05-11  Havoc Pennington  <hp@pobox.com>
10118
10119         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10120         calling _dbus_marshal_validate_arg() for every byte in a byte
10121         array, etc.
10122
10123         * dbus/dbus-message-handler.c: use atomic reference counting to
10124         reduce number of locks slightly; the global lock in here sucks
10125
10126         * dbus/dbus-connection.c
10127         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10128         update_dispatch_status that can be called with lock held; then use
10129         in a couple places to reduce locking/unlocking
10130         (dbus_connection_send): hold the lock over the whole function
10131         instead of acquiring it twice.
10132
10133         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10134
10135         * bus/connection.c (bus_connections_setup_connection): fix access
10136         to already-freed memory.
10137
10138         * dbus/dbus-connection.c: keep a little cache of linked list
10139         nodes, to avoid using the global linked list alloc lock in the
10140         normal send-message case. Instead we just use the connection lock
10141         that we already have to take.
10142
10143         * dbus/dbus-list.c (_dbus_list_find_last): new function
10144
10145         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10146         change to use a struct for the atomic type; fix docs,
10147         they return value before increment, not after increment.
10148
10149         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10150         (_dbus_string_append_8_aligned): new functions to try to
10151         microoptimize this operation.
10152         (reallocate_for_length): break this out of set_length(), to
10153         improve profile info, and also so we can consider inlining the
10154         set_length() part.
10155
10156         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10157         strings with some preallocation, cuts down on our calls to realloc
10158         a fair bit. Though if we can get the "move entire string to empty
10159         string" optimization below to kick in here, it would be better.
10160
10161         * dbus/dbus-string.c (_dbus_string_move): just call
10162         _dbus_string_move_len
10163         (_dbus_string_move_len): add a special case for moving
10164         an entire string into an empty string; we can just
10165         swap the string data instead of doing any reallocs.
10166         (_dbus_string_init_preallocated): new function
10167
10168 2003-05-11  Havoc Pennington  <hp@pobox.com>
10169
10170         Write a "test-profile" that does echo client-server with threads;
10171         profile reveals lock contention, memcpy/realloc of buffers, and
10172         UTF-8 validation as hot spots. 20% of lock contention eliminated
10173         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10174         contention is global mempool locks for GList and DBusList.
10175
10176         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10177         x86 implementation
10178
10179         * dbus/dbus-connection.c (struct DBusConnection): use
10180         dbus_atomic_t for the reference count
10181
10182         * dbus/dbus-message.c (struct DBusMessage): declare
10183         dbus_atomic_t values as volatile
10184
10185         * configure.in: code to detect ability to use atomic integer
10186         operations in assembly, from GLib patch
10187
10188         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10189         time, tired of it being wrong in threads and forked processes
10190
10191         * glib/test-profile.c: a little program to bounce messages back
10192         and forth between threads and eat CPU
10193
10194         * dbus/dbus-connection.c: add debug spew macros for debugging
10195         thread locks; include config.h at top; fix deadlock in
10196         dbus_connection_flush()
10197
10198 2003-05-08  Havoc Pennington  <hp@pobox.com>
10199
10200         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10201         data from getting written, and there wasn't a good reason to
10202         use _exit really.
10203
10204         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10205         dbus_verbose lines in test coverage
10206         (main): add list of functions sorted by # of untested blocks
10207         to the coverage report
10208
10209         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10210
10211         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10212
10213         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10214         extend test coverage
10215
10216         * test/data/auth/cancel.auth-script: test canceling an
10217         authentication
10218
10219         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10220         aren't used. in CVS history if we end up needing them.
10221
10222 2003-05-04  Havoc Pennington  <hp@pobox.com>
10223
10224         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10225         unit test
10226
10227         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10228         function, which assumed length was in # of strings, not bytes
10229
10230         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10231         missing coverage
10232
10233         * dbus/dbus-connection.c
10234         (_dbus_connection_queue_received_message): disable function for
10235         now, we are only using it in test mode
10236
10237         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10238         remove a mistaken FIXME
10239
10240 2003-05-04  Havoc Pennington  <hp@pobox.com>
10241
10242         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10243         unlock mutex on successful return, patch from Anders Gustafsson
10244
10245 2003-05-04  Havoc Pennington  <hp@pobox.com>
10246
10247         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10248         Anders Gustafsson
10249
10250 2003-05-04  Havoc Pennington  <hp@pobox.com>
10251
10252         * tools/dbus-launch.c: implement
10253
10254         * bus/main.c (main), bus/bus.c (bus_context_new):
10255         implement --print-pid and --fork
10256
10257 2003-05-03  Havoc Pennington  <hp@redhat.com>
10258
10259         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10260         the address had no value, and add to test suite. Fix and
10261         regression test from Miloslav Trmac
10262
10263 2003-05-03  Havoc Pennington  <hp@pobox.com>
10264
10265         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10266         watch is invalid when handled
10267
10268         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10269         dbus-launch utility to launch the bus from a shell script.  Didn't
10270         actually implement dbus-launch yet, it's just a placeholder still.
10271
10272 2003-05-03  Havoc Pennington  <hp@pobox.com>
10273
10274         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10275         daemon; also documents daemon config file, so replaces
10276         doc/config-file.txt. Corrected some stuff from config-file.txt in
10277         the process of moving it.
10278
10279 2003-05-03  Havoc Pennington  <hp@pobox.com>
10280
10281         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10282         add some man pages
10283
10284 2003-05-03  Colin Walters  <walters@verbum.org>
10285
10286         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10287         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10288
10289         * Makefile.am: Update to use new .pc versioning scheme.
10290
10291 2003-05-02  Havoc Pennington  <hp@redhat.com>
10292
10293         * bus/system.conf.in: allow send/receive to/from message bus
10294         service
10295
10296 2003-04-30  Havoc Pennington  <hp@redhat.com>
10297
10298         * configure.in: print a note when building with unit tests and
10299         without assertions
10300
10301 2003-04-30  Havoc Pennington  <hp@redhat.com>
10302
10303         * Makefile.am: add a check-local that complains if you didn't
10304         configure with --enable-tests
10305
10306 2003-04-29  Havoc Pennington  <hp@redhat.com>
10307
10308         * glib/dbus-gmain.c: docs cleanups
10309
10310         * dbus/dbus-types.h: add docs on int64 types
10311
10312         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10313         public API docs section
10314
10315 2003-04-29  Havoc Pennington  <hp@redhat.com>
10316
10317         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10318         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10319         parallel install API version, not with the D-BUS package version.
10320
10321         * HACKING: move some of README over here
10322
10323         * README: updates, and document API/ABI policy
10324
10325         * configure.in: reindentation
10326
10327 2003-04-29  Havoc Pennington  <hp@redhat.com>
10328
10329         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10330         to use this library" to be sure people have the right
10331         expectations.
10332
10333 2003-04-28  Havoc Pennington  <hp@redhat.com>
10334
10335         * configure.in: add --enable-docs which by default is auto yes if
10336         doxygen and db2html found, no otherwise; but can be forced on/off
10337
10338         * doc/Makefile.am: conditionalize whether to build docs on
10339         --enable-docs
10340
10341 2003-04-28  Havoc Pennington  <hp@redhat.com>
10342
10343         * configure.in: 0.10
10344
10345         * NEWS: update
10346
10347         * bus/system.conf.in: add <includedir>system.d</includedir>
10348
10349         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10350         username was provided but not uid
10351
10352         * bus/config-parser.c (struct BusConfigParser): keep track of
10353         whether the parser is toplevel or was included; change some
10354         of the error handling if it's included.
10355
10356 2003-04-27  Havoc Pennington  <hp@pobox.com>
10357
10358         Unbreak my code...
10359
10360         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10361         report correct status if we finish processing authentication
10362         inside this function.
10363
10364         * bus/activation.c (try_send_activation_failure): use
10365         bus_transaction_send_error_reply
10366
10367         * bus/connection.c (bus_connection_get_groups): return an error
10368         explaining the problem
10369
10370         * bus/bus.c (bus_context_check_security_policy): implement
10371         restriction here that inactive connections can only send the
10372         hello message. Also, allow bus driver to send anything to
10373         any recipient.
10374
10375         * bus/connection.c (bus_connection_complete): create the
10376         BusClientPolicy here instead of on-demand.
10377         (bus_connection_get_policy): don't return an error
10378
10379         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10380         sender field in message being replied to
10381
10382         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10383         causing it to return FALSE always
10384
10385         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10386         we checked sender rather than destination
10387
10388 2003-04-25  Havoc Pennington  <hp@redhat.com>
10389
10390         test suite is slightly hosed at the moment, will fix soon
10391
10392         * bus/connection.c (bus_connections_expire_incomplete): fix to
10393         properly disable the timeout when required
10394         (bus_connection_set_name): check whether we can remove incomplete
10395         connections timeout after we complete each connection.
10396
10397         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10398         probably still broken.
10399
10400         * bus/services.c (bus_registry_acquire_service): implement max
10401         number of services owned, and honor allow/deny rules on which
10402         services a connection can own.
10403
10404         * bus/connection.c (bus_connection_get_policy): report errors here
10405
10406         * bus/activation.c: implement limit on number of pending
10407         activations
10408
10409 2003-04-25  Havoc Pennington  <hp@redhat.com>
10410
10411         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10412         where we used >= 0 instead of != DBUS_UID_UNSET.
10413
10414 2003-04-25  Havoc Pennington  <hp@redhat.com>
10415
10416         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10417         were toggled without add/remove, fix from Anders Gustafsson
10418
10419 2003-04-24  Havoc Pennington  <hp@redhat.com>
10420
10421         * test/data/valid-config-files/basic.conf: add <limit> tags to
10422         this test
10423
10424         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10425         <limit> tag in configuration file.
10426
10427 2003-04-24  Havoc Pennington  <hp@redhat.com>
10428
10429         * bus/dispatch.c: somehow missed some name_is
10430
10431         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10432         (_dbus_timeout_set_interval): new
10433
10434         * bus/connection.c (bus_connections_setup_connection): record time
10435         when each connection is first set up, and expire them after the
10436         auth timeout passes.
10437
10438 2003-04-24  Havoc Pennington  <hp@redhat.com>
10439
10440         * dbus/dbus-message.c (dbus_message_name_is): rename
10441         (dbus_message_service_is): rename
10442         (dbus_message_sender_is): rename
10443         (dbus_message_get_service): rename
10444
10445 2003-04-24  Havoc Pennington  <hp@redhat.com>
10446
10447         * configure.in: add --enable-checks
10448
10449         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10450
10451         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10452         to use thread locks.
10453         (_dbus_connection_handler_destroyed_locked): move some private
10454         functions into proper docs group
10455
10456         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10457         _dbus_return_val_if_fail
10458
10459         Throughout: use dbus_return_if_fail
10460
10461 2003-04-23  James Willcox  <jwillcox@gnome.org>
10462
10463         * glib/dbus-glib.h:
10464         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10465         (dbus_connection_setup_with_g_main),
10466         (dbus_server_setup_with_g_main):
10467         * glib/test-dbus-glib.c: (main):
10468         * glib/test-thread-client.c: (main):
10469         * glib/test-thread-server.c: (new_connection_callback), (main):
10470         * tools/dbus-monitor.c: (main):
10471
10472         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10473         and dbus_server_setup_with_g_main().
10474
10475 2003-04-20  Havoc Pennington  <hp@pobox.com>
10476
10477         * doc/dbus-specification.sgml: document the restrictions on
10478         message and service names
10479
10480 2003-04-22  Havoc Pennington  <hp@redhat.com>
10481
10482         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10483         support, and do some code cleanups to share more code and
10484         speed up array marshal/demarshal.
10485
10486         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10487
10488         * configure.in: generate dbus-arch-deps.h
10489
10490         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10491         64-bit typecodes
10492
10493 2003-04-22  Havoc Pennington  <hp@redhat.com>
10494
10495         * test/data/valid-messages/opposite-endian.message: fix test
10496         to use proper type for rply field
10497
10498         * test/data/invalid-messages: add tests for below validation
10499
10500         * dbus/dbus-message.c (decode_header_data): validate field types,
10501         and validate that named fields are valid names
10502         (decode_name_field): consider messages in the
10503         org.freedesktop.Local. namespace to be invalid.
10504
10505         * dbus/dbus-string.c (_dbus_string_validate_name): new
10506
10507 2003-04-19  Havoc Pennington  <hp@pobox.com>
10508
10509         * bus/driver.c (bus_driver_handle_hello): check limits and
10510         return an error if they are exceeded.
10511
10512         * bus/connection.c: maintain separate lists of active and inactive
10513         connections, and a count of each. Maintain count of completed
10514         connections per user. Implement code to check connection limits.
10515
10516         * dbus/dbus-list.c (_dbus_list_unlink): export
10517
10518         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10519         number of bytes in the message queue for a connection
10520
10521 2003-04-18  Havoc Pennington  <hp@pobox.com>
10522
10523         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10524
10525         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10526         memleaks
10527
10528         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10529         on realloc be sure to update the pointer in the keyring
10530
10531         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10532         offset to avoid writing to unallocated memory
10533
10534         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10535         try the next mechanism, so we properly handle OOM
10536
10537         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10538         on OOM.
10539         (_dbus_keyring_new): fix OOM bug
10540         (_dbus_keyring_new_homedir): always set error; impose a maximum
10541         number of keys we'll load from the file, mostly to speed up the
10542         test suite and make its OOM checks more useful, but also for
10543         general sanity.
10544
10545         * dbus/dbus-auth.c (process_error_server): reject authentication
10546         if we get an error from the client
10547         (process_cancel): on cancel, send REJECTED, per the spec
10548         (process_error_client): send CANCEL if we get an error from the
10549         server.
10550
10551 2003-04-18  Havoc Pennington  <hp@pobox.com>
10552
10553         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10554         debug spew
10555
10556         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10557         handling problem
10558
10559         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10560         about DBUS_TEST_HOMEDIR once
10561
10562         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10563         the environment
10564
10565         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10566         config file so we test the right thing
10567
10568         Throughout: assorted docs improvements
10569
10570 2003-04-18  Havoc Pennington  <hp@pobox.com>
10571
10572         * glib/dbus-gmain.c: adapt to watch changes
10573
10574         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10575
10576         * dbus/dbus-server.h: remove dbus_server_handle_watch
10577
10578         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10579
10580         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10581         like DBusTimeout, so we don't need dbus_connection_handle_watch
10582         etc.
10583
10584 2003-04-17  Havoc Pennington  <hp@redhat.com>
10585
10586         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10587         database usage so it all goes via the DBusUserDatabase cache.
10588
10589 2003-04-17  Havoc Pennington  <hp@redhat.com>
10590
10591         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10592         there was an OOM watch we skipped, we always return TRUE so we
10593         iterate again to have a look at it again. Fixes test suite hang.
10594         Code rearrangement also lets us lose some memset and only iterate
10595         over callbacks once.
10596
10597         * bus/driver.c (bus_driver_handle_message): sense of test for
10598         reply was backward
10599
10600 2003-04-16  Havoc Pennington  <hp@pobox.com>
10601
10602         * doc/dbus-specification.sgml: make spec say serials are unsigned
10603
10604         * dbus/dbus-message.h: change message serials to unsigned
10605
10606         * dbus/dbus-connection.c: adapt to message serials being unsigned
10607
10608 2003-04-15  Havoc Pennington  <hp@pobox.com>
10609
10610         * bus/bus.c: create and keep around a shared DBusUserDatabase
10611         object.
10612
10613         * bus/connection.c (bus_connection_get_groups): don't cache
10614         groups for user in the connection object, since user database
10615         object now does that.
10616
10617 2003-04-16  Havoc Pennington  <hp@redhat.com>
10618
10619         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10620         list of size counters
10621         (_dbus_message_loader_putback_message_link): put back a popped link
10622
10623         * dbus/dbus-connection.c
10624         (dbus_connection_set_max_live_messages_size): rename
10625         max_received_size
10626         (dbus_connection_get_outgoing_size): get size of outgoing
10627         queue
10628         (_dbus_connection_set_connection_counter): remove this cruft
10629
10630 2003-04-14  Havoc Pennington  <hp@redhat.com>
10631
10632         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10633         caching, but at some point we might want to be able to use a
10634         different database.
10635
10636         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10637         SHA1 conf file to test the sha1 auth mechanism, since the regular
10638         test always uses EXTERNAL when available.
10639
10640         * configure.in,
10641         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10642         add conf file that requires use of sha1 auth
10643
10644 2003-04-13  Havoc Pennington  <hp@pobox.com>
10645
10646         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10647         from Philip Blundell to send messages and monitor them.
10648
10649 2003-04-13  Havoc Pennington  <hp@pobox.com>
10650
10651         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10652         callbacks
10653
10654         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10655         users
10656
10657         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10658         fix to only recover unused bytes if we're already authenticated
10659         (_dbus_transport_get_is_authenticated): fix to still mark us
10660         authenticated if there are unused bytes.
10661
10662         * bus/dispatch.c: implement security policy checking
10663
10664         * bus/connection.c (bus_transaction_send_from_driver): new
10665
10666         * bus/bus.c (bus_context_check_security_policy): new
10667
10668         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10669         now we just set the DBusError and it gets converted to an error
10670         reply.
10671
10672         * bus/connection.c (allow_user_function): enable code using actual
10673         data from the config file
10674
10675         * bus/policy.c (list_allows_user): handle wildcard rules for
10676         user/group connection perms
10677
10678 2003-04-13  Havoc Pennington  <hp@pobox.com>
10679
10680         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10681
10682         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10683
10684         * bus/policy.c (bus_policy_append_mandatory_rule)
10685         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10686         (bus_policy_append_group_rule): new functions
10687
10688 2003-04-12  Havoc Pennington  <hp@pobox.com>
10689
10690         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10691
10692         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10693         the pid/gid/uid, just for paranoia.
10694
10695         * test/break-loader.c (randomly_do_n_things): find a byte
10696         containing a type code, and randomly change it to a different
10697         type code.
10698
10699 2003-04-12  Havoc Pennington  <hp@pobox.com>
10700
10701         * bus/policy.h: change BusPolicy to be the thing from the config
10702         file, and rename old BusPolicy to BusClientPolicy
10703
10704         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10705         match change in how policy works
10706
10707         * dbus/dbus-internals.h: mark assert_not_reached as
10708         __attribute((noreturn))__
10709
10710 2003-04-11  Havoc Pennington  <hp@redhat.com>
10711
10712         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10713         the broadcast service. Use boolean return for ServiceExists.
10714
10715 2003-04-11  Havoc Pennington  <hp@redhat.com>
10716
10717         * configure.in: add another directory to look for qt in.
10718
10719 2003-04-11  Havoc Pennington  <hp@redhat.com>
10720
10721         * AUTHORS: add Colin Walters
10722
10723 2003-04-11  Havoc Pennington  <hp@redhat.com>
10724
10725         * NEWS: update
10726
10727         * configure.in: 0.9
10728
10729 2003-04-11  Havoc Pennington  <hp@redhat.com>
10730
10731         * bus/messagebus.in: remove pid file when stopping the
10732         message bus, since the bus won't have privileges to remove it
10733         itself.
10734
10735 2003-04-11  Havoc Pennington  <hp@redhat.com>
10736
10737         * bus/bus.c (bus_context_new): move credentials change after
10738         creating pidfile
10739
10740 2003-04-11  Havoc Pennington  <hp@pobox.com>
10741
10742         * test/decode-gcov.c: add "below average functions" to the
10743         coverage report, and change how some of the code works.
10744
10745         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10746         not in the coverage stats.
10747
10748         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10749         couple places so running the test suite doesn't result in megaspam.
10750
10751 2003-04-11  Havoc Pennington  <hp@pobox.com>
10752
10753         * bus/dispatch.c (check_existent_service_activation): accept a no
10754         memory error in a place we didn't before
10755
10756         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10757         in case the first one failed," since the test suite is less
10758         broken now.
10759
10760 2003-04-10  Havoc Pennington  <hp@pobox.com>
10761
10762         * bus/dispatch.c (check_segfault_service_activation): add test
10763         for launching an executable that just crashes.
10764
10765         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10766         don't leave a million cores. We'll see how portable this is.
10767
10768 2003-04-10  Havoc Pennington  <hp@pobox.com>
10769
10770         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10771         the possible parent failures before we fork, so that we don't
10772         fail to create a babysitter after creating the child.
10773
10774         * bus/activation.c (bus_activation_activate_service): kill child
10775         if we don't successfully complete the activation.
10776
10777 2003-04-10  Havoc Pennington  <hp@redhat.com>
10778
10779         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10780         the connection if it's disconnected
10781
10782         * bus/activation.c (bus_activation_service_created): use new
10783         transaction features to roll back removal of pending activation if
10784         we don't successfully create the service after all. Don't remove
10785         pending activation if the function fails.
10786
10787         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10788         (_dbus_list_insert_after_link): new code to facilitate
10789         services.c fixes
10790
10791         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10792         new functionality, so we can preallocate the ability to insert
10793         into a hash table.
10794
10795         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10796         allowing us to put custom hooks in a transaction to be used for
10797         cancelling said transaction
10798
10799         * doc/dbus-specification.sgml: add some discussion of secondary
10800         service owners, and disallow zero-length service names
10801
10802         * bus/services.c (bus_registry_acquire_service): new function,
10803         splits out part of bus_driver_handle_acquire_service() and fixes
10804         a bug where we didn't remove the service doing the acquiring
10805         from the secondary queue if we failed to remove the current owner
10806         from the front of the queue.
10807
10808 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10809
10810         * doc/dbus-specification.sgml:
10811         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10812
10813 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10814
10815         * bus/.cvsignore:
10816         * glib/.cvsignore:
10817         * test/.cvsignore:
10818         Added files to cvsignore
10819
10820         * dbus/dbus-message.h:
10821         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10822         Make get_named() take two out argument and return a boolean.
10823         (dbus_message_iter_get_args_valist):
10824         Update usage of get_named().
10825         (dbus_message_iter_append_byte):
10826         Fix typo
10827         (dbus_message_iter_append_named)
10828         Fix typo
10829         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10830         More tests.
10831
10832 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10833
10834         * dbus/dbus-marshal.[ch]:
10835         Add array_type_pos argument to _dbus_marshal_validate_arg.
10836         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10837
10838         * dbus/dbus-message.[ch]:
10839         Multi-dimensional arrays have full type specification in the
10840         outermost array. Iter code re-arranged to handle this.
10841         Added some more iter tests.
10842
10843         * doc/dbus-specification.sgml:
10844         Add me to authors.
10845         Remove old FIXME.
10846         Update new array encoding description.
10847         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10848
10849         * test/data/invalid-messages/array-with-mixed-types.message:
10850         * test/data/valid-messages/array-of-array-of-uint32.message:
10851         Change to the new array format.
10852
10853         * test/data/invalid-messages/too-short-dict.message:
10854         Fix bug in test.
10855
10856         * test/data/valid-messages/recursive-types.message:
10857         Fix up and extend test.
10858
10859 2003-04-10  Havoc Pennington  <hp@pobox.com>
10860
10861         * bus/dispatch.c: lots of fixes
10862
10863         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10864         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10865         that was crack, broke the test service.
10866
10867         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10868         handling to avoid piling up errors if we get a failure on the
10869         first address.
10870
10871         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10872         pid in assertion failures.
10873
10874         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10875         to some fixed size of file descriptor array. Don't return TRUE
10876         anytime a timeout exists, that led to lots of busy loop silliness
10877         in the tests.
10878
10879 2003-04-09  Havoc Pennington  <hp@redhat.com>
10880
10881         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10882         I'd checked this in earlier but hadn't.
10883
10884 2003-04-09  Havoc Pennington  <hp@redhat.com>
10885
10886         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10887         the activation test (man this is getting old!)
10888
10889 2003-04-09  Havoc Pennington  <hp@redhat.com>
10890
10891         * test/test-utils.c: use dispatch status function to fix this up
10892
10893         * bus/connection.c (connection_watch_callback): don't dispatch
10894         from here
10895         (connection_timeout_callback): don't dispatch from here
10896         (bus_connections_setup_connection): set the dispatch status function
10897         (bus_connection_disconnected): unset it
10898
10899         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10900         used to add a connection to be dispatched
10901         (_dbus_loop_iterate): do the dispatching at the end of each
10902         iteration
10903
10904         * dbus/dbus-connection.c
10905         (dbus_connection_set_dispatch_status_function): new function
10906         allowing us to fix up main loop usage
10907         (_dbus_connection_last_unref): free all the various function
10908         user data
10909         (dbus_connection_dispatch): call the DispatchStatusFunction
10910         whenever this function returns
10911         (dbus_connection_handle_watch): call DispatchStatusFunction
10912         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10913         (reply_handler_timeout): call DispatchStatusFunction
10914         (dbus_connection_flush): call DispatchStatusFunction
10915
10916 2003-04-09  Havoc Pennington  <hp@redhat.com>
10917
10918         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10919         a memory leak
10920
10921         * bus/dispatch.c (check_service_activated): fix bug in test
10922
10923         * dbus/dbus-mainloop.c (check_timeout): fix this up
10924
10925         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10926         verbose output so we can sort out output from different processes,
10927         e.g. in the activation case.
10928
10929 2003-04-08  Colin Walters  <walters@gnu.org>
10930
10931         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10932         the pid file.
10933         (bus_context_new): Set it.
10934         (bus_context_unref): Use it to delete the pid file.
10935
10936 2003-04-08  Havoc Pennington  <hp@redhat.com>
10937
10938         * test/data/invalid-messages/array-with-mixed-types.message:
10939         regression test that fails for the moment
10940
10941         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10942         tests for convenience
10943
10944         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10945         array of nil, it broke things.
10946
10947         * test/data/invalid-messages/array-of-nil.message: regression test
10948
10949         * test/data/valid-messages/array-of-array-of-uint32.message:
10950         happened to write this so added it to suite
10951
10952 2003-04-08  Havoc Pennington  <hp@redhat.com>
10953
10954         * bus/driver.c (bus_driver_handle_acquire_service): init
10955         retval/reply before checking name
10956
10957         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10958         recursion depth argument
10959
10960         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10961         in the public struct for future extension
10962
10963         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10964         typo
10965
10966         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10967         message
10968
10969         * doc/dbus-specification.sgml: fix typo
10970
10971 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10972
10973         Implemented recursive types, named types and new-style iters
10974
10975         * bus/driver.c:
10976         * glib/test-thread-client.c: (thread_func):
10977         * glib/test-thread-server.c: (handle_test_message):
10978         * test/test-service.c: (handle_echo):
10979         Update to new api
10980
10981         * dbus/Makefile.am:
10982         * dbus/dbus-dict.c:
10983         * dbus/dbus-dict.h:
10984         * dbus/dbus.h
10985         Remove DBusDict
10986
10987         * dbus/dbus-internals.c: (_dbus_type_to_string):
10988         Update for new types.
10989
10990         * dbus/dbus-marshal.[ch]:
10991         Implement recursive types and the new marshalling format.
10992         Remove hardcoded dict marshalling.
10993         Marshal named types.
10994
10995         * dbus/dbus-message-builder.c:
10996         Add BYTE_ARRAY.
10997         Remove references to old types
10998
10999         * dbus/dbus-message.[ch]:
11000         New non-refcounted iter API that supports recursive iters.
11001         Use iters for appending, including support for recursive
11002         iters.
11003         Add byte and named type support.
11004         Update everything to new marshalling formats.
11005         Add tests for new API.
11006
11007         * dbus/dbus-protocol.h:
11008         Remove old array types.
11009         Add types: BYTE, ARRAY, DICT, NAMED
11010
11011         * dbus/dbus-string.c:
11012         * dbus/dbus-sysdeps.c:
11013         Make parse_double locale safe.
11014
11015         * dbus/dbus-test-main.c:
11016         Call setlocale.
11017
11018         * dbus/dbus-test.c:
11019         Kill dict test
11020
11021         * doc/dbus-specification.sgml:
11022         Update spec
11023
11024         * test/data/incomplete-messages/missing-body.message:
11025         * test/data/invalid-messages/bad-boolean.message:
11026         * test/data/invalid-messages/bad-boolean-array.message:
11027         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11028         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11029         * test/data/invalid-messages/too-short-dict.message:
11030         * test/data/valid-messages/dict-simple.message:
11031         * test/data/valid-messages/dict.message:
11032         * test/data/valid-messages/emptiness.message:
11033         * test/data/valid-messages/lots-of-arguments.message:
11034         * test/data/valid-messages/no-padding.message:
11035         * test/data/valid-messages/recursive-types.message:
11036         Add missing NAME fields
11037         Fix up dicts & arrays
11038
11039         * test/data/invalid-messages/dict-with-nil-value.message:
11040         Removed, this is not invalid anymore.
11041
11042         * test/data/valid-messages/recursive-types.message:
11043         Add new test for deeply recursive types.
11044
11045 2003-04-07  Havoc Pennington  <hp@pobox.com>
11046
11047         * bus/driver.c (bus_driver_handle_acquire_service): return an
11048         error if you try to acquire a service that starts with ':'
11049
11050 2003-04-07  Havoc Pennington  <hp@redhat.com>
11051
11052         * doc/dbus-specification.sgml: require that base service names
11053         start with ':' and that the base service is created/deleted
11054         as first and last things a connection does on the bus
11055
11056         * bus/dispatch.c (check_existent_service_activation): lots more
11057         work on the activation test; it doesn't fully pass yet...
11058
11059         * test/test-service.c (main): fix so we don't memleak the
11060         connection to the message bus
11061         (filter_func): accept a message asking us to exit
11062
11063 2003-04-06  Havoc Pennington  <hp@pobox.com>
11064
11065         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11066         from Colin Walters
11067
11068         * configure.in: fixes to Qt detection from Colin Walters
11069
11070         * doc/Makefile.am: Only remove generated docbook dirs if they
11071         exist, from Colin Walters
11072
11073         * dbus/dbus-bus.c: change how we set well-known connections to
11074         NULL, so that it works if a single connection is stored in
11075         two well-known array slots.
11076
11077         * test/Makefile.am: remove a lot of stuff that isn't immediately
11078         useful, it's in CVS history if we want it.
11079
11080         * test/test-service.c: use dbus-mainloop instead of that
11081         watch.[hc] crack
11082
11083 2003-04-06  Havoc Pennington  <hp@pobox.com>
11084
11085         * dbus/Makefile.am: split lists of sources into stuff that goes in
11086         the library, util functions that go in the lib and are also used
11087         elsewhere, and util functions that are used in tests/daemon but
11088         don't go in the lib.
11089
11090         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11091         here so it can be used in test binaries also
11092
11093 2003-04-06  Havoc Pennington  <hp@pobox.com>
11094
11095         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11096         here in the parent process, so we can return an error if it
11097         fails. Also, move some of the code into the child so the parent
11098         is less hosed if we fail midway through.
11099
11100         * bus/bus.c (bus_context_new): move pidfile detection further up
11101         in the function, before we start overwriting sockets and such.
11102
11103         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11104
11105         * configure.in: add --with-system-pid-file and --with-system-socket
11106
11107 2003-04-06  Colin Walters  <walters@verbum.org>
11108
11109         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11110
11111         * bus/system.conf.in: Declare a pidfile.
11112
11113         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11114         create one (if appropriate).
11115
11116         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11117         (struct BusConfigParser) [pidfile]: New.
11118         (element_type_to_name, merge_included, start_busconfig_child)
11119         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11120         (bus_config_parser_unref): Free it.
11121         (bus_config_parser_get_pidfile): New function.
11122
11123         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11124
11125         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11126
11127         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11128
11129         * dbus/dbus-sysdeps.h: Prototype it.
11130
11131 2003-04-06  Havoc Pennington  <hp@pobox.com>
11132
11133         * bus/bus.c (bus_context_new): print the address in here, rather
11134         than in main(), because we need to do it before forking the daemon
11135
11136         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11137         on the service nonexistent error
11138
11139         * bus/driver.c (bus_driver_handle_acquire_service): set the
11140         sender on the AcquireService reply
11141
11142         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11143         server also listen on a UNIX socket so services can connect to it.
11144
11145 2003-04-06  Havoc Pennington  <hp@pobox.com>
11146
11147         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11148         so it detects deadlocks and also we actually init threads when
11149         debugging.
11150
11151 2003-04-06  Havoc Pennington  <hp@pobox.com>
11152
11153         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11154         save the domain socket name, and unlink it when we disconnect the
11155         server. Means that at least when we exit normally, we won't leave
11156         a bunch of junk in /tmp
11157
11158         * dbus/dbus-transport-unix.c
11159         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11160         memory management). (I was making a real change here but then
11161         didn't)
11162
11163 2003-04-06  Havoc Pennington  <hp@pobox.com>
11164
11165         * bus/bus.c (bus_context_new): fix wrong handling of
11166         server_data_slot_unref() in the error case.
11167
11168         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11169         "(condition) != 0" to _dbus_real_assert so that
11170         "_dbus_assert (pointer)" doesn't cause a warning
11171
11172         * bus/main.c (main): accept --print-address option to print out
11173         the message bus address
11174
11175         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11176
11177         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11178         "tmpdir" option to unix: address on client side
11179
11180         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11181         to unix: address
11182
11183         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11184         we can use to create sockets in the test suite.
11185
11186         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11187         cleanly. To be used for testing.
11188
11189         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11190
11191         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11192
11193         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11194         handle trying to call this when there's no servers active
11195
11196 2003-04-05  Havoc Pennington  <hp@pobox.com>
11197
11198         * NEWS: update
11199
11200         * configure.in: 0.8
11201
11202 2003-04-05  Havoc Pennington  <hp@pobox.com>
11203
11204         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11205         crash on startup. Need to get "try starting the daemon"
11206         in the test suite I guess. ;-)
11207
11208         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11209         tracked the number of open connections; it's better done in
11210         application-specific code as you want it to span all servers etc.
11211
11212 2003-04-05  Havoc Pennington  <hp@pobox.com>
11213
11214         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11215         patch from Colin Walters
11216
11217 2003-04-05  Havoc Pennington  <hp@pobox.com>
11218
11219         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11220         reality; in fact multiple mechanisms are allowed.
11221
11222         * dbus/dbus-internals.c (_dbus_real_assert)
11223         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11224         _dbus_assert_not_reached() into functions, so that they don't show
11225         up in basic block counts for test coverage, and don't use up as
11226         much disk space. Does mean slower execution speed though, so
11227         assumes --disable-asserts is the normal production case.
11228
11229 2003-04-05  Havoc Pennington  <hp@pobox.com>
11230
11231         * test/Makefile.am (dist-hook): also dist *.in files
11232
11233         * NEWS: update
11234
11235         * configure.in: 0.7
11236
11237 2003-04-05  Havoc Pennington  <hp@pobox.com>
11238
11239         * dbus/dbus-string.c: docs warning
11240
11241         * dbus/dbus-spawn.c: missing docs
11242
11243         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11244
11245 2003-04-05  Havoc Pennington  <hp@pobox.com>
11246
11247         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11248         magic from GLib
11249
11250         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11251         to -1 once we've reaped the babysitter
11252         (_dbus_babysitter_handle_watch): do as much work as we can, not
11253         just one go of it
11254
11255         * bus/activation.c: add code using DBusBabysitter so that we
11256         handle it when a service fails to start up properly.
11257         (bus_activation_service_created): don't remove the activation
11258         entries as we go, just let them get removed when we free the pending
11259         activation. Unref reply messages after sending them.
11260
11261 2003-04-05  Havoc Pennington  <hp@pobox.com>
11262
11263         * test/decode-gcov.c (main): print per-directory stats in the report
11264
11265         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11266
11267 2003-04-05  Havoc Pennington  <hp@pobox.com>
11268
11269         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11270
11271         * test/decode-gcov.c: hack up a little program to suck data
11272         out of gcov files. Yes this is sort of silly.
11273
11274         * configure.in: define something in config.h and do an
11275         AM_CONDITIONAL when gcov is enabled
11276
11277 2003-04-04  Havoc Pennington  <hp@redhat.com>
11278
11279         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11280         return a "babysitter" object that is used to monitor the status of
11281         the spawned process and reap it when required.
11282
11283         * test/test-segfault.c, test/test-exit.c,
11284         test/test-sleep-forever.c: binaries that do various lame things,
11285         used in the test suite.
11286
11287         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11288
11289 2003-04-03  Havoc Pennington  <hp@pobox.com>
11290
11291         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11292         in preparation for modifying it, dbus-sysdeps is getting
11293         a bit unmanageable.
11294
11295 2003-04-03  Havoc Pennington  <hp@redhat.com>
11296
11297         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11298         have multiple ones
11299
11300         * bus/*.[hc]: adapt to mainloop change
11301
11302 2003-04-03  Havoc Pennington  <hp@redhat.com>
11303
11304         * bus/activation.c (load_directory): fix up memleaks
11305         (bus_activation_entry_free): free the entry
11306
11307         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11308         we get one from the message bus; fix memleaks.
11309
11310         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11311
11312 2003-04-03  Havoc Pennington  <hp@pobox.com>
11313
11314         * bus/config-parser.c (bus_config_parser_unref): free
11315         list of mechanisms, bug discovered by test suite enhancements
11316         (putting system.conf and session.conf into suite)
11317
11318         * test/Makefile.am, test/test-service.c: add placeholder for a
11319         test service that we'll activate as part of test suite. Doesn't
11320         do anything yet.
11321
11322         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11323         setting NULL value, and use system malloc not dbus_malloc()
11324         when we have unavoidable memleakage.
11325
11326         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11327         didn't work, and support DBUS_BUS_ACTIVATION.
11328
11329         * bus/activation.c (child_setup): pass our well-known bus type to
11330         the child
11331
11332         * bus/config-parser.c: support <type> to specify well-known type
11333
11334         * doc/dbus-specification.sgml: document the env variables to
11335         locate well-known buses and find service activator
11336
11337 2003-04-02  Havoc Pennington  <hp@redhat.com>
11338
11339         * test/Makefile.am (all-local): add a rule to copy tests to
11340         builddir, so we can have generated tests. Use this to remove the
11341         silly hack for testing system.conf and session.conf. Will use this
11342         shortly to generate .service files pointing to test binaries.
11343
11344 2003-04-02  Havoc Pennington  <hp@redhat.com>
11345
11346         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11347         current alloc and needed new length, not max of the doubled
11348         allocation and needed new length. Also, when building tests,
11349         don't do the double-allocation stuff, just realloc every time.
11350
11351 2003-04-02  Havoc Pennington  <hp@redhat.com>
11352
11353         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11354         in error messages
11355         (_dbus_string_get_dirname): new
11356         (_dbus_sysdeps_test): new
11357         (_dbus_directory_open): include dirnames in error messages
11358
11359         * bus/config-parser.c: interpret <include> and <includedir> and
11360         <servicedir> relative to config file location if the given
11361         filename is not absolute.
11362
11363         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11364
11365 2003-04-02  Havoc Pennington  <hp@redhat.com>
11366
11367         * bus/connection.c (bus_transaction_send_error_reply): set sender
11368         service for the error, and unref the reply on success
11369
11370         * bus/activation.c: convert to use BusTransaction so OOM can be
11371         handled correctly
11372         (bus_activation_service_created): set sender of the message
11373
11374 2003-04-01  Havoc Pennington  <hp@redhat.com>
11375
11376         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11377         <includedir> (at least mostly)
11378
11379         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11380         first, then the user ID
11381
11382 2003-04-01  Havoc Pennington  <hp@pobox.com>
11383
11384         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11385         function
11386
11387         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11388
11389         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11390
11391         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11392         socket 0777, and unlink any existing socket.
11393
11394         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11395         the configuration file so specifies; set up auth mechanism
11396         restrictions
11397
11398         * bus/config-parser.c (bus_config_parser_content): add support
11399         for <fork> option and fill in code for <auth>
11400
11401         * bus/system.conf.in: add <fork/> to default configuration,
11402         and limit auth mechanisms to EXTERNAL
11403
11404         * doc/config-file.txt (Elements): add <fork>
11405
11406         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11407         (_dbus_change_identity): new function
11408
11409 2003-03-31  Havoc Pennington  <hp@redhat.com>
11410
11411         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11412         (_dbus_listen_unix_socket): fix off-by-one error in null
11413         termination spotted by Nalin
11414
11415 2003-03-31  Havoc Pennington  <hp@redhat.com>
11416
11417         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11418         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11419         having a real home directory available.
11420
11421 2003-03-31  Havoc Pennington  <hp@redhat.com>
11422
11423         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11424
11425         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11426
11427         * configure.in: add support for specifying a style of init script
11428         to install
11429
11430 2003-03-31  Havoc Pennington  <hp@redhat.com>
11431
11432         Fix some annoying DBusString API and fix all affected code.
11433
11434         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11435         max_length argument
11436         (_dbus_string_get_data): change to return string instead of using
11437         an out param
11438         (_dbus_string_get_const_data): ditto
11439         (_dbus_string_get_data_len): ditto
11440         (_dbus_string_get_const_data_len): ditto
11441
11442 2003-03-31  Havoc Pennington  <hp@redhat.com>
11443
11444         * bus/main.c (main): fix up the command line arguments to be nicer
11445
11446 2003-03-31  Havoc Pennington  <hp@redhat.com>
11447
11448         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11449         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11450         final location that lands in the config file
11451
11452         * bus/config-loader-expat.c (bus_config_load): fix type of
11453         XML_Parser variable
11454
11455         * doc/TODO: remove TODO item for dbus_bus_get()
11456
11457         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11458
11459 2003-03-31  Havoc Pennington  <hp@pobox.com>
11460
11461         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11462         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11463         argument since they are always client side
11464
11465         * dbus/dbus-server.c (dbus_server_get_address): new function
11466
11467         * bus/main.c (main): take the configuration file as an argument.
11468
11469         * test/data/valid-config-files/debug-allow-all.conf: new file to
11470         use with dispatch.c tests for example
11471
11472         * bus/test-main.c (main): require test data dir
11473
11474         * bus/bus.c (bus_context_new): change this to take a
11475         configuration file name as argument
11476
11477         * doc/config-file.txt (Elements): add <servicedir>
11478
11479         * bus/system.conf, bus/session.conf: new files
11480
11481         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11482         well-known socket if none set
11483
11484         * configure.in: create system.conf and session.conf
11485
11486 2003-03-30  Havoc Pennington  <hp@pobox.com>
11487
11488         * bus/config-parser.c: hacking
11489
11490         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11491         to shut down, since it could cause weirdness with the DBusList
11492         lock
11493
11494         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11495         link-oriented stack routines
11496         (alloc_link): free the mempool if the first alloc from it fails
11497
11498         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11499
11500         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11501         from GLib
11502         (_dbus_string_skip_white): new
11503
11504         * doc/config-file.txt (Elements): add <includedir>
11505
11506 2003-03-28  Havoc Pennington  <hp@pobox.com>
11507
11508         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11509         (_dbus_string_copy_data): new functions
11510
11511 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11512
11513         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11514         * dbus/dbus-bus.h:
11515         Add dbus_bus_get.
11516
11517         * dbus/dbus-memory.c:
11518         Fix a doc comment.
11519
11520 2003-03-28  Havoc Pennington  <hp@pobox.com>
11521
11522         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11523         I think it may have just been superstition. Not sure.
11524
11525         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11526         failures that were not being handled.
11527
11528         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11529
11530         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11531         row that will fail on out-of-memory.
11532
11533         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11534         function for testing out-of-memory handling.
11535
11536         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11537         allocation functions, they do map exactly to the expat ones.
11538
11539 2003-03-27  Havoc Pennington  <hp@redhat.com>
11540
11541         * bus/config-loader-libxml.c (bus_config_load): add another error
11542         check
11543
11544 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11545
11546         * doc/TODO:
11547         Add note about automatic service activation.
11548
11549         * doc/dbus-specification.sgml:
11550         Rename the specification and clarify a few things.
11551
11552 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11553
11554         * Doxyfile.in:
11555         * dbus/dbus-address.c:
11556         * dbus/dbus-dict.c:
11557         * dbus/dbus-marshal.c:
11558         * dbus/dbus-server-debug-pipe.c:
11559         * dbus/dbus-transport-unix.c:
11560         Fix documentation warnings.
11561
11562 2003-03-26  Havoc Pennington  <hp@pobox.com>
11563
11564         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11565         after every test so it's quick and easy to see which leaked, and
11566         so we test multiple dbus_shutdown() calls
11567
11568         * configure.in: change configure.in XML stuff to also support
11569         expat
11570
11571         * config-loader-libxml.c: some hacking
11572
11573         * config-loader-expat.c: some hacking
11574
11575         * config-parser.c: some hacking, plus tests
11576
11577 2003-03-25  Havoc Pennington  <hp@redhat.com>
11578
11579         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11580
11581         * configure.in: add --with-xml option to specify XML library,
11582         right now only libxml is supported.
11583
11584         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11585         nonworking code between home and work, still just stubs
11586
11587 2003-03-24  Havoc Pennington  <hp@redhat.com>
11588
11589         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11590         file
11591
11592         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11593         NULL argument for "message" if the error is a well-known one,
11594         fill in a generic message in this case.
11595
11596         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11597         favor of DBusError
11598
11599         * bus/test.c (bus_test_flush_bus): add
11600
11601         * bus/policy.c (bus_policy_test): test code stub
11602
11603 2003-03-24  Havoc Pennington  <hp@pobox.com>
11604
11605         * bus/connection.c (bus_connections_setup_connection): set up
11606         the "can this user connect" function, but it always returns
11607         TRUE until we have a config file parser so we can have a config
11608         file that allows connections.
11609
11610 2003-03-23  Havoc Pennington  <hp@pobox.com>
11611
11612         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11613         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11614         the mutex, so we can check for proper memory management
11615         and OOM handling.
11616
11617         * dbus/dbus-dataslot.c: remove the mutex from
11618         DBusDataSlotAllocator and lock it manually when using it,
11619         to simplify fitting it into the global slots framework.
11620
11621         * dbus/dbus-threads.c (init_static_locks): rework how we're
11622         handling global locks so they are easily shut down.
11623
11624         * bus/policy.c (bus_policy_append_rule): fix
11625
11626         * bus/test-main.c (main): check for memleaks
11627
11628         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11629         test suite check for memleaks
11630
11631         * dbus/dbus-memory.c: add support in test mode for tracking
11632         number of outstanding blocks
11633
11634 2003-03-23  Havoc Pennington  <hp@pobox.com>
11635
11636         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11637         policies code
11638
11639         * dbus/dbus-hash.h: add ULONG hash keys
11640
11641         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11642         (_dbus_get_group_id): new function
11643
11644 2003-03-20  Havoc Pennington  <hp@redhat.com>
11645
11646         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11647         new function
11648         (dbus_connection_get_unix_user): new function
11649
11650 2003-03-20  Havoc Pennington  <hp@pobox.com>
11651
11652         * bus/connection.c (bus_connection_send_oom_error): assert that
11653         message has a sender
11654         (connection_execute_transaction): ditto
11655         (bus_connection_preallocate_oom_error): fix to set the sender, and
11656         set recipient to the destination service, not the bus driver
11657
11658         * bus/policy.c: hacking
11659
11660         * dbus/dbus-message.c (dbus_message_service_is): new function
11661         (dbus_message_sender_is): new
11662
11663 2003-03-19  Havoc Pennington  <hp@redhat.com>
11664
11665         * bus/policy.c: start sketching code for policy restrictions on
11666         what connections can do.
11667
11668 2003-03-18  Havoc Pennington  <hp@redhat.com>
11669
11670         * doc/TODO: some notes on high-level todo items. Little nitpick
11671         stuff is all in @todo, so no need to add it here.
11672
11673         * doc/config-file.txt: some notes on how config file might look
11674
11675 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11676
11677         * configure.in: 0.6
11678
11679         * NEWS: Update.
11680
11681 2003-03-17  Havoc Pennington  <hp@redhat.com>
11682
11683         * dbus/dbus-internals.h: add gcc attributes so that
11684         our printf-style functions warn on bad arguments to
11685         format
11686
11687         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11688         format bug
11689
11690         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11691         printf format bug
11692
11693 2003-03-17  Havoc Pennington  <hp@redhat.com>
11694
11695         * bus/test-main.c (main): make it print something as it runs
11696         so make check doesn't look stuck
11697
11698         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11699         from CVS, now obsolete
11700
11701 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11702
11703         * bus/dispatch.c: (bus_dispatch):
11704         Refetch the service name since it may have been reallocated
11705         when dbus_message_set_sender was called.
11706
11707         * dbus/dbus-sysdeps.c: (_dbus_accept):
11708         Add address and address length variables and use them to stop
11709         valgrind from complaining.
11710
11711 2003-03-17  Havoc Pennington  <hp@pobox.com>
11712
11713         All tests pass, no memleaks, no valgrind complaints.
11714
11715         * bus/test.c: refcount handler_slot
11716
11717         * bus/connection.c (bus_connections_new): refcount
11718         connection_data_slot
11719
11720         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11721         bytes so that auth scripts pass.
11722
11723         * bus/dispatch.c: init message_handler_slot so it gets allocated
11724         properly
11725
11726         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11727
11728         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11729         dealloc server_pipe_hash when no longer used for benefit of
11730         leak checking
11731
11732         * dbus/dbus-auth.c (process_command): memleak fix
11733
11734         * bus/dispatch.c (check_hello_message): memleak fix
11735
11736 2003-03-16  Havoc Pennington  <hp@pobox.com>
11737
11738         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11739
11740 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11741
11742         * bus/activation.c (bus_activation_activate_service): Append
11743         the pending activation entry to the list of pending activations.
11744
11745 2003-03-16  Havoc Pennington  <hp@pobox.com>
11746
11747         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11748         connections
11749
11750         * dbus/dbus-address.c (create_entry): fix OOM handling when
11751         failing to alloc entry->method
11752
11753 2003-03-16  Havoc Pennington  <hp@pobox.com>
11754
11755         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11756         the watch
11757
11758         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11759         add some missing dbus_set_result
11760
11761         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11762         alloc the DBusMessageHandler
11763
11764         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11765         the transport here, since we call this from the finalizer; it
11766         resulted in a double-finalize.
11767
11768         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11769         where we tried to use transport->connection that was NULL,
11770         happened when transport was disconnected early on due to OOM
11771
11772         * bus/*.c: adapt to handle OOM for watches/timeouts
11773
11774         * dbus/dbus-transport-unix.c: port to handle OOM during
11775         watch handling
11776
11777         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11778         reference to unused bytes instead of a copy
11779
11780         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11781         out of memory
11782
11783         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11784         FALSE on OOM
11785
11786         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11787         of memory
11788
11789 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11790
11791         * doc/dbus-specification.sgml:
11792         Document reply message for ActivateService.
11793
11794 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11795
11796         * bus/activation.c: (bus_pending_activation_entry_free),
11797         (bus_pending_activation_free), (bus_activation_new),
11798         (bus_activation_unref), (bus_activation_service_created),
11799         (bus_activation_activate_service):
11800         * bus/activation.h:
11801         * bus/bus.c: (bus_context_new):
11802         * bus/desktop-file.c: (new_section):
11803         * bus/driver.c: (bus_driver_send_service_deleted),
11804         (bus_driver_handle_activate_service):
11805         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11806         * bus/services.h:
11807         * dbus/dbus-connection.c:
11808         (dbus_connection_send_with_reply_and_block):
11809         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11810         * dbus/dbus-protocol.h:
11811         Make activation work better. Now pending activations will be queued
11812         and the daemon won't try to activate services that are already registered.
11813
11814 2003-03-16  Havoc Pennington  <hp@pobox.com>
11815
11816         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11817         connection data
11818
11819         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11820         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11821
11822 2003-03-16  Havoc Pennington  <hp@pobox.com>
11823
11824         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11825         this. always run the test suite before commit...
11826
11827         * bus/*: adapt to DBusConnection API changes
11828
11829         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11830         requires renaming stuff to avoid dbus_connection_dispatch name
11831         conflict.
11832
11833         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11834         function
11835
11836         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11837         separate from _dbus_message_loader_return_buffer()
11838
11839         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11840         this, because it's now always broken to use; the number of
11841         messages in queue vs. the number still buffered by the message
11842         loader is undefined/meaningless. Should use
11843         dbus_connection_get_dispatch_state().
11844         (dbus_connection_dispatch): rename from
11845         dbus_connection_dispatch_message
11846
11847 2003-03-16  Havoc Pennington  <hp@pobox.com>
11848
11849         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11850         implementation
11851
11852 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11853
11854         * dbus/dbus-connection.c:
11855         (dbus_connection_send_with_reply_and_block):
11856         Decrease connection->n_incoming when removing an entry
11857         from the list.
11858         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11859         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11860         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11861         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11862         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11863         (dbus_dict_get_byte_array):
11864         Handle NULL arrays and strings. Also add support for byte arrays.
11865
11866         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11867         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11868         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11869         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11870         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11871         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11872         * dbus/dbus-marshal.h:
11873         Add support for marshalling and demarshalling empty arrays and strings.
11874
11875         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11876         (dbus_message_append_string_array),
11877         (dbus_message_iter_get_boolean),
11878         (dbus_message_iter_get_boolean_array),
11879         (dbus_message_iter_get_int32_array),
11880         (dbus_message_iter_get_uint32_array),
11881         (dbus_message_iter_get_double_array),
11882         (dbus_message_iter_get_byte_array),
11883         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11884         (check_message_handling):
11885         Add support for getting empty arrays and dicts.
11886
11887         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11888         Don't do any validation at all for now, that's better than just checking
11889         for ASCII.
11890
11891         * test/data/valid-messages/emptiness.message:
11892         New test message with lots of empty arrays.
11893
11894 2003-03-16  Havoc Pennington  <hp@pobox.com>
11895
11896         * dbus/dbus-connection.c
11897         (_dbus_connection_queue_received_message_link): new function that
11898         can't fail due to OOM
11899
11900         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11901         new function pops a message together with a list link
11902         containing it.
11903
11904         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11905         message queuing functions to avoid needing to alloc memory
11906
11907 2003-03-16  Havoc Pennington  <hp@pobox.com>
11908
11909         Oops - test code was only testing failure of around 30 of the
11910         mallocs in the test path, but it turns out there are 500+
11911         mallocs. I believe this was due to misguided linking setup such
11912         that there was one copy of dbus_malloc etc. in the daemon and one
11913         in the shared lib, and only daemon mallocs were tested. In any
11914         case, the test case now tests all 500+ mallocs, and doesn't pass
11915         yet, though there are lots of fixes in this patch.
11916
11917         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11918         this so that it doesn't need to allocate memory, since it
11919         has no way of indicating failure due to OOM (and would be
11920         annoying if it did).
11921
11922         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11923
11924         * bus/Makefile.am: rearrange to create two self-contained
11925         libraries, to avoid having libraries with overlapping symbols.
11926         that was resulting in weirdness, e.g. I'm pretty sure there
11927         were two copies of global static variables.
11928
11929         * dbus/dbus-internals.c: move the malloc debug stuff to
11930         dbus-memory.c
11931
11932         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11933         empty.
11934
11935         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11936
11937         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11938         on failure.
11939
11940         * bus/dispatch.c (bus_dispatch_add_connection): free
11941         message_handler_slot when no longer using it, so
11942         memory leak checkers are happy for the test suite.
11943
11944         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11945
11946         * bus/bus.c (new_connection_callback): disconnect in here if
11947         bus_connections_setup_connection fails.
11948
11949         * bus/connection.c (bus_connections_unref): fix to free the
11950         connections
11951         (bus_connections_setup_connection): if this fails, don't
11952         disconnect the connection, just be sure there are no side
11953         effects.
11954
11955         * dbus/dbus-string.c (undo_alignment): unbreak this
11956
11957         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11958         leaking
11959         (_dbus_auth_new): fix the order in which we free strings
11960         on OOM failure
11961
11962         * bus/connection.c (bus_connection_disconnected): fix to
11963         not send ServiceDeleted multiple times in case of memory
11964         allocation failure
11965
11966         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11967         get the base service name
11968         (dbus_bus_register_client): don't return base service name,
11969         instead store it on the DBusConnection and have an accessor
11970         function for it.
11971         (dbus_bus_register_client): rename dbus_bus_register()
11972
11973         * bus/dispatch.c (check_hello_message): verify that other
11974         connections on the bus also got the correct results, not
11975         just the one sending hello
11976
11977 2003-03-15  Havoc Pennington  <hp@pobox.com>
11978
11979         Make it pass the Hello handling test including all OOM codepaths.
11980         Now to do other messages...
11981
11982         * bus/services.c (bus_service_remove_owner): fix crash when
11983         removing owner from an empty list of owners
11984         (bus_registry_ensure): don't leave service in the list of
11985         a connection's owned services if we fail to put the service
11986         in the hash table.
11987
11988         * bus/connection.c (bus_connection_preallocate_oom_error): set
11989         error flag on the OOM error.
11990
11991         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11992         handle _dbus_transport_set_connection failure
11993
11994         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11995         to create watches up front and simply enable/disable them as
11996         needed.
11997         (unix_connection_set): this can now fail on OOM
11998
11999         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12000         of enabling/disabling a watch or timeout.
12001
12002         * bus/loop.c (bus_loop_iterate): don't touch disabled
12003         watches/timeouts
12004
12005         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12006
12007 2003-03-15  Havoc Pennington  <hp@pobox.com>
12008
12009         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12010         write useful test code, after all that futzing around ;-)
12011
12012         Test does not yet pass because we can't handle OOM in
12013         _dbus_transport_messages_pending (basically,
12014         dbus_connection_preallocate_send() does not prealloc the write
12015         watch). To fix this, I think we need to add new stuff to
12016         set_watch_functions, namely a SetEnabled function so we can alloc
12017         the watch earlier, then enable it later.
12018
12019         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12020         dbus-memory.c to the convenience lib
12021
12022         * bus/test.c: rename some static functions to keep them clearly
12023         distinct from stuff in connection.c. Handle client disconnection.
12024
12025 2003-03-14  Havoc Pennington  <hp@pobox.com>
12026
12027         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12028         transport, tests more of the real codepath. Set up clients
12029         with bus_setup_debug_client.
12030
12031         * bus/test.c (bus_setup_debug_client): function to set up debug
12032         "clients" on the main loop
12033
12034         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12035         support
12036
12037         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12038         server type
12039
12040         * dbus/dbus-server-debug.c: support a debug server based on pipes
12041
12042         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12043         (_dbus_close): new function
12044
12045         * configure.in: check for socketpair
12046
12047 2003-03-14  Havoc Pennington  <hp@redhat.com>
12048
12049         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12050         cheesy hack
12051
12052         * dbus/dbus-transport-debug.c: rework this a good bit to be
12053         less complicated. hopefully still works.
12054
12055         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12056         manually
12057
12058         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12059         after running it
12060
12061         * dbus/dbus-message.c (dbus_message_copy): rename from
12062         dbus_message_new_from_message, fix it up to copy
12063         all the message fields, add test case
12064
12065         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12066         not quite passing yet
12067
12068 2003-03-14  Havoc Pennington  <hp@pobox.com>
12069
12070         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12071         until no work remains" in test code. (the large diff here
12072         is just code movement, no actual changes)
12073
12074         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12075         1, no point waiting around for test code.
12076         (_dbus_server_debug_accept_transport): unref the timeout
12077         after adding it (right?)
12078
12079         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12080
12081 2003-03-13  Havoc Pennington  <hp@redhat.com>
12082
12083         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12084         out of memory
12085
12086         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12087         of memory
12088
12089         * dbus/dbus-connection.h: Make AddWatchFunction and
12090         AddTimeoutFunction return a bool so they can fail on out-of-memory
12091
12092         * bus/bus.c (bus_context_new): set up timeout handlers
12093
12094         * bus/connection.c (bus_connections_setup_connection): set up
12095         timeout handlers
12096
12097         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12098         can fail
12099
12100         * bus/bus.c (bus_context_new): adapt to changes
12101
12102         * bus/connection.c: adapt to changes
12103
12104         * test/watch.c: adapt to DBusWatch changes
12105
12106         * bus/dispatch.c (bus_dispatch_test): started adding this but
12107         didn't finish
12108
12109 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12110
12111         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12112
12113 2003-03-13  Havoc Pennington  <hp@pobox.com>
12114
12115         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12116         set up a test framework as for the library
12117
12118 2003-03-12  Havoc Pennington  <hp@pobox.com>
12119
12120         Throughout: purge global variables, introduce BusActivation,
12121         BusConnections, BusRegistry, etc. objects instead.
12122
12123         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12124         message bus object
12125
12126         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12127         going to redo this a bit differently I think
12128
12129 2003-03-12  Havoc Pennington  <hp@redhat.com>
12130
12131         Mega-patch that gets the message bus daemon initially handling
12132         out-of-memory. Work still needed. Also lots of random
12133         moving stuff to DBusError instead of ResultCode.
12134
12135         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12136
12137         * dbus/dbus-connection.c
12138         (dbus_connection_send_with_reply_and_block): use DBusError
12139
12140         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12141         DBusResultCode
12142
12143         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12144         code here, as the only failure possible is OOM.
12145
12146         * bus/connection.c (bus_connection_disconnect):
12147         rename bus_connection_disconnected as it's a notification only
12148
12149         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12150         "name" on get_args failure, should be done by get_args;
12151         don't disconnect client for bad args, just return an error.
12152         (bus_driver_handle_service_exists): ditto
12153
12154         * bus/services.c (bus_services_list): NULL-terminate returned array
12155
12156         * bus/driver.c (bus_driver_send_service_lost)
12157         (bus_driver_send_service_acquired): send messages from driver to a
12158         specific client to the client's unique name, not to the broadcast
12159         service.
12160
12161         * dbus/dbus-message.c (decode_header_data): reject messages that
12162         contain no name field
12163         (_dbus_message_get_client_serial): rename to
12164         dbus_message_get_serial and make public
12165         (_dbus_message_set_serial): rename from set_client_serial
12166         (_dbus_message_set_reply_serial): make public
12167         (_dbus_message_get_reply_serial): make public
12168
12169         * bus/connection.c (bus_connection_foreach): allow stopping
12170         iteration by returning FALSE from foreach function.
12171
12172         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12173         (dbus_connection_free_preallocated_send)
12174         (dbus_connection_preallocate_send): new API for sending a message
12175         without possibility of malloc failure.
12176         (dbus_connection_send_message): rename to just
12177         dbus_connection_send (and same for whole function family)
12178
12179         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12180
12181         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12182
12183         * bus/activation.c: handle/return errors
12184
12185         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12186
12187         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12188         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12189         (_dbus_result_from_errno): move to this file
12190
12191 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12192
12193         * dbus/dbus-marshal.c:
12194         (_dbus_marshal_set_string):
12195         Take a length argument so we can marshal the correct string
12196         length.
12197
12198         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12199         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12200         (_dbus_marshal_test):
12201         * dbus/dbus-marshal.h:
12202         Add support for marshalling and demarshalling dicts.
12203
12204         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12205         Add support for TYPE DICT.
12206
12207         * dbus/dbus-message.c: (set_string_field):
12208         Adjust header padding.
12209
12210         (dbus_message_append_args_valist), (dbus_message_append_dict),
12211         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12212         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12213         (check_message_handling), (check_have_valid_message):
12214         * dbus/dbus-message.h:
12215         Add functions for setting and getting dicts.
12216
12217         * dbus/dbus-protocol.h:
12218         Add DBUS_TYPE_DICT.
12219
12220         * dbus/dbus.h:
12221         Add dbus-dict.h
12222
12223         * doc/dbus-specification.sgml:
12224         Add information about how dicts are marshalled.
12225
12226         * test/data/invalid-messages/dict-with-nil-value.message:
12227         * test/data/invalid-messages/too-short-dict.message:
12228         * test/data/valid-messages/dict-simple.message:
12229         * test/data/valid-messages/dict.message:
12230         Add sample messages containing dicts.
12231
12232 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12233
12234         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12235
12236 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12237
12238         * dbus/Makefile.am:
12239         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12240         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12241         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12242         (dbus_dict_set_double), (dbus_dict_set_string),
12243         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12244         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12245         (dbus_dict_set_string_array), (_dbus_dict_test):
12246         * dbus/dbus-dict.h:
12247         Fix according to comments from Havoc.
12248
12249 2003-03-06  Michael Meeks  <michael@server.home>
12250
12251         * configure.in: if we don't have kde-config, disable have_qt.
12252
12253 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12254
12255         * dbus/Makefile.am:
12256         Add dbus-dict.[ch]
12257
12258         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12259         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12260         (dbus_dict_remove), (dbus_dict_get_value_type),
12261         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12262         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12263         (dbus_dict_put_double), (dbus_dict_put_string),
12264         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12265         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12266         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12267         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12268         (dbus_dict_get_double), (dbus_dict_get_string),
12269         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12270         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12271         (dbus_dict_get_string_array), (_dbus_dict_test):
12272         * dbus/dbus-dict.h:
12273         Add DBusDict implementation
12274
12275         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12276         * dbus/dbus-test.h:
12277         Add _dbus_dict_test
12278
12279 2003-03-04  Havoc Pennington  <hp@pobox.com>
12280
12281         * test/data/auth/*: adapt to changes
12282
12283         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12284         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12285         userid
12286
12287         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12288         more stuff from being in a context name, to make the protocol
12289         simpler to deal with
12290
12291         * dbus/dbus-errors.c (dbus_error_has_name): new function
12292         (dbus_error_is_set): new function
12293
12294         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12295         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12296
12297         * dbus/dbus-connection.c (dbus_connection_flush): also read
12298         messages during a flush operation
12299
12300         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12301
12302 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12303
12304         * configure.in: Check for gethostbyname on Solaris.
12305
12306         * dbus/dbus-transport.c: (_dbus_transport_open):
12307         Remove duplicate "tcp" entry.
12308
12309         * doc/dbus-specification.sgml:
12310         Clarify some things.
12311
12312 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12313
12314         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12315         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12316         (_dbus_keyring_test):
12317         * dbus/dbus-md5.c: (_dbus_md5_compute):
12318         * dbus/dbus-sha.c: (_dbus_sha_compute):
12319         Plug memory leaks.
12320
12321 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12322
12323         * README: Add some things.
12324
12325 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12326
12327         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12328         after case DBUS_TYPE_BOOELAN.
12329
12330 2003-03-02  Havoc Pennington  <hp@pobox.com>
12331
12332         * test/break-loader.c (randomly_set_extreme_ints): add test that
12333         sets really huge and small integers
12334
12335         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12336         that length of boolean array fits in the string, and that
12337         string has room for boolean value in single-bool case.
12338
12339         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12340         optional value to "ALIGN" command which is what to fill the
12341         alignment with.
12342
12343         * test/data/valid-messages/no-padding.message: add regression
12344         test for the message padding problem
12345
12346 2003-03-02  Havoc Pennington  <hp@pobox.com>
12347
12348         * dbus/dbus-message.c (decode_header_data): fix to always init
12349         message_padding, from Benjamin Dauvergne
12350
12351 2003-03-02  Havoc Pennington  <hp@pobox.com>
12352
12353         * configure.in: 0.5
12354
12355         * NEWS: Update.
12356
12357 2003-03-01  Joe Shaw  <joe@assbarn.com>
12358
12359         * configure.in: Check for "struct cmsgcred" and try to access its
12360         members for BSD-like unices.
12361
12362         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12363         _dbus_read_credentials_unix_socket().
12364         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12365         read() for reading the credential byte off the unix socket.  Use
12366         struct cmsgcred on systems that support it.
12367
12368 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12369
12370         * glib/Makefile.am:
12371         * configure.in:
12372         Make gthreads-2.0 dependency optional. Don't build thread test if
12373         its not found.
12374
12375 2003-02-27  Havoc Pennington  <hp@pobox.com>
12376
12377         * dbus/dbus-connection.c
12378         (dbus_connection_send_message_with_reply_and_block): fix doh!
12379         doh! doh! bug that resulted in never removing a reply from the
12380         queue, no wonder we called get_reply_serial so much ;-)
12381
12382         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12383         and client serial instead of demarshaling them every time
12384
12385 2003-02-27  Havoc Pennington  <hp@pobox.com>
12386
12387         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12388         more inlined, using dbus-string-private.h, speeds things up
12389         substantially
12390
12391         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12392         when freeing the string
12393         (_dbus_string_steal_data): fix for align offset
12394         (undo_alignment): new function
12395
12396 2003-02-26  Havoc Pennington  <hp@redhat.com>
12397
12398         All kinds of audit fixes from Owen, plus initial attempt to
12399         handle unaligned memory returned from malloc.
12400
12401         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12402         leave room for align_offset and nul byte
12403         (fixup_alignment): function to track an align_offset and
12404         ensure real->str is aligned
12405         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12406         to allow a nul byte plus align offset
12407         (_dbus_string_lock): fix overflow issue
12408         (_dbus_string_init_const_len): add assertions on sanity of len,
12409         assign allocated to be ALLOCATION_PADDING larger than len
12410         (set_length): fixup the overflow handling
12411         (_dbus_string_get_data_len): fix overflow in assertion
12412         (open_gap): detect overflow in size of gap to be opened
12413         (_dbus_string_lengthen): add overflow check
12414         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12415         (_dbus_string_append): add overflow check
12416         (_dbus_string_append_unichar): overflow
12417         (_dbus_string_delete): fix overflow in assertion
12418         (_dbus_string_copy_len): overflow in assertion
12419         (_dbus_string_replace_len): overflows in assertions
12420         (_dbus_string_find): change to implement in terms of
12421         _dbus_string_find_to
12422         (_dbus_string_find_to): assorted fixage
12423         (_dbus_string_equal_c_str): assert c_str != NULL,
12424         fix logic so the function works
12425         (_dbus_string_ends_with_c_str): fix overflow thingy
12426         (_dbus_string_base64_encode): overflow fix
12427         (_dbus_string_validate_ascii): overflow
12428         (_dbus_string_validate_nul): overflow
12429
12430 2003-02-26  Havoc Pennington  <hp@redhat.com>
12431
12432         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12433
12434 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12435
12436         * configure.in:
12437         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12438
12439         * dbus/dbus-connection.c:
12440         * dbus/dbus-connection.h:
12441         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12442         Add dbus_connection_set_wakeup_main_function and use it when queueing
12443         incoming and outgoing messages.
12444
12445
12446         * dbus/dbus-dataslot.c:
12447         Threadsafe usage of DBusDataSlotAllocator
12448
12449         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12450         dbus_new can fail.
12451
12452         * dbus/dbus-server-unix.c:
12453         Add todo comment
12454
12455         * glib/dbus-gmain.c:
12456         Implement the new wakeup functions for glib.
12457
12458         * glib/Makefile.am:
12459         * glib/test-thread-client.c:
12460         * glib/test-thread-server.c:
12461         * glib/test-thread.h:
12462         Initial cut at some thread test code. Not really done yet.
12463
12464 2003-02-26  Havoc Pennington  <hp@pobox.com>
12465
12466         * dbus/dbus-connection.c
12467         (dbus_connection_send_message_with_reply_and_block): fix crash
12468         where we ref'd the outgoing message instead of the returned reply
12469
12470         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12471         at the end of this function, so if we didn't need to read for
12472         authentication, we reinstall it for receiving messages
12473
12474         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12475         a NULL sender for peer-to-peer case
12476
12477         * dbus/dbus-transport-unix.c (check_read_watch): handle
12478         !authenticated case correctly
12479
12480         * glib/dbus-gmain.c: add support for DBusServer
12481
12482         * dbus/dbus-server.c: add data slot support
12483
12484         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12485         return values and handle errors
12486
12487         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12488         DBusConnection
12489
12490         * Doxyfile.in (INPUT): add glib subdir
12491
12492         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12493         setup_with_g_main instead of hookup_with_g_main; write docs
12494
12495 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12496
12497         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12498         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12499         * dbus/dbus-message.c: (dbus_message_append_boolean),
12500         (dbus_message_append_boolean_array),
12501         (dbus_message_get_args_valist), (_dbus_message_test):
12502         * dbus/dbus-message.h:
12503         * doc/dbus-specification.sgml:
12504         Various fixes as pointed out by Havoc.
12505
12506         * test/data/invalid-messages/bad-boolean-array.message:
12507         * test/data/invalid-messages/bad-boolean.message:
12508         Add invalid boolean value test cases.
12509
12510 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12511
12512         * dbus/dbus-internals.c: (_dbus_type_to_string):
12513         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12514         (_dbus_marshal_validate_arg):
12515         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12516         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12517         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12518         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12519         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12520         (dbus_message_iter_get_double),
12521         (dbus_message_iter_get_boolean_array), (message_iter_test):
12522         * dbus/dbus-message.h:
12523         * dbus/dbus-protocol.h:
12524         * doc/dbus-specification.sgml:
12525         * test/data/valid-messages/lots-of-arguments.message:
12526         Add support for boolean and boolean array types.
12527
12528 2003-02-23  Havoc Pennington  <hp@pobox.com>
12529
12530         * dbus/dbus-keyring.c: finish most of this implementation and
12531         simple unit test
12532
12533         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12534         these barf if the error isn't cleared to NULL
12535
12536         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12537         (_dbus_create_directory): new function
12538
12539         * dbus/dbus-errors.c (dbus_set_error): fix warning
12540
12541         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12542         (_dbus_string_hex_decode): new function
12543         (test_hex_roundtrip): test code
12544
12545         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12546
12547         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12548
12549         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12550         the save-to-temp/rename trick to atomically write the new file
12551         (_dbus_string_parse_uint): new function
12552
12553 2003-02-22  Havoc Pennington  <hp@pobox.com>
12554
12555         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12556
12557 2003-02-22  Havoc Pennington  <hp@pobox.com>
12558
12559         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12560         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12561
12562         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12563
12564         * dbus/test/data/sha-1: add US government test suite for SHA-1
12565
12566 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12567
12568         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12569         Make string arrays NULL-terminated.
12570
12571         * dbus/dbus-memory.c: (dbus_free_string_array):
12572         * dbus/dbus-memory.h:
12573         New function for freeing NULL-terminated string arrays.
12574
12575         * dbus/dbus-message-builder.c: (append_quoted_string),
12576         (_dbus_message_data_load):
12577         Add support for array types.
12578
12579         * dbus/dbus-message.c: (check_message_handling):
12580         Add more types as test cases.
12581
12582         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12583         (_dbus_string_parse_double):
12584         Add the start offset to the end offset.
12585
12586         * test/data/valid-messages/lots-of-arguments.message:
12587         New test message with lots of arguments.
12588
12589 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12590
12591         * dbus/dbus-message.c: (dbus_message_append_nil),
12592         (dbus_message_append_int32), (dbus_message_append_uint32),
12593         (dbus_message_append_double), (dbus_message_append_string),
12594         (dbus_message_append_int32_array),
12595         (dbus_message_append_uint32_array),
12596         (dbus_message_append_double_array),
12597         (dbus_message_append_byte_array),
12598         (dbus_message_append_string_array):
12599         Fix all out-of-memory handling in these functions.
12600
12601 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12602
12603         * dbus/dbus-message.c: (dbus_message_append_nil):
12604         Fix a silly.
12605
12606 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12607
12608         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12609         (dbus_message_append_nil), (dbus_message_append_int32_array),
12610         (dbus_message_append_uint32_array),
12611         (dbus_message_append_double_array),
12612         (dbus_message_append_byte_array),
12613         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12614         (dbus_message_iter_get_int32_array),
12615         (dbus_message_iter_get_uint32_array),
12616         (dbus_message_iter_get_double_array),
12617         (dbus_message_iter_get_byte_array),
12618         (dbus_message_iter_get_string_array):
12619
12620         * dbus/dbus-message.h:
12621         Add functions for appending and getting arrays.
12622
12623 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12624
12625         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12626         element size at least 8 bytes, fixes mempool tests on
12627         64-bit machines.
12628
12629 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12630
12631         * dbus/dbus-transport-unix.c (unix_do_iteration):
12632         Unlock the connection mutex during a blocking select call.
12633         Add todo about how we need a way to wake up the select.
12634
12635         * dbus/dbus-connection-internal.h:
12636         * dbus/dbus-connection.c:
12637         Add _dbus_connection_lock and _dbus_connection_unlock.
12638
12639 2003-02-19  Havoc Pennington  <hp@pobox.com>
12640
12641         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12642         Doxyfile.in, not Doxyfile
12643
12644         * dbus/dbus-keyring.c: do some hacking on this
12645
12646         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12647
12648         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12649         dbus_error_init
12650         (dbus_set_error): remove dbus_error_init, check for message ==
12651         NULL *before* we sprintf into it, and add @todo about including
12652         system headers in this file
12653
12654         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12655
12656         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12657
12658         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12659         get various bits of user information based on either username
12660         or user ID
12661         (_dbus_homedir_from_username): new function
12662
12663 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12664
12665         * configure.in:
12666         Add check for nonposix getpwnam_r
12667
12668         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12669         Align the pool element size to a sizeof (void *) boundary.
12670
12671         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12672         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12673         General Solaris fixes.
12674
12675         * test/data/valid-messages/simplest-manual.message:
12676         Explicitly state that we want little-endian packing.
12677
12678 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12679
12680         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12681
12682         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12683         Added to create a transport connecting using a tcp/ip socket.
12684
12685         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12686         to a tcp socket at given host and port.
12687         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12688         hostname and port.
12689
12690         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12691
12692         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12693         Added to create a server listening on a TCP/IP socket.
12694
12695 2003-02-19  Havoc Pennington  <hp@pobox.com>
12696
12697         Throughout: mop up all the Doxygen warnings and undocumented
12698         stuff.
12699
12700         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12701         to search any paths.
12702
12703         * dbus/dbus-threads.c: move global mutex initializers to
12704         dbus-internals.h, multiple prototypes was confusing doxygen
12705         besides being kind of ugly
12706
12707         * Doxyfile (PREDEFINED): have Doxygen define
12708         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12709         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12710         (do not abuse the feature! it's for stuff like the autogenerated
12711         macros in dbus-md5.c, not just for things you don't feel like
12712         documenting...)
12713
12714 2003-02-18  Havoc Pennington  <hp@pobox.com>
12715
12716         * dbus/dbus-string.c (_dbus_string_zero): new function
12717
12718         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12719         wrap it in some dbus-friendly API
12720
12721         * dbus/dbus-types.h: add 16-bit types
12722
12723 2003-02-18  Joe Shaw  <joe@assbarn.com>
12724
12725         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12726         credentials from our currently running process.
12727         (get_word): Fix a buglet where we were copying the entire length
12728         instead of relative to our position.
12729
12730         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12731         keys on the stack... it's 640k of data.
12732
12733         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12734         read the credentials byte off the socket, even if we don't have
12735         SO_PEERCRED.
12736         (_dbus_poll): Implement poll() using select() for systems which
12737         don't have it.
12738
12739         * glib/test-dbus-glib.c (main): Print out an error if no
12740         parameters are given.
12741
12742         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12743         can fallback to a secondary auth mechanism if the first fails.
12744
12745 2003-02-18  Havoc Pennington  <hp@pobox.com>
12746
12747         * AUTHORS: add Alex
12748
12749 2003-02-17  Havoc Pennington  <hp@pobox.com>
12750
12751         * doc/dbus-specification.sgml: lots of cosmetic
12752         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12753         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12754         s/server/bus/ (except in authentication section). Add a section
12755         "Message Bus Message Routing"
12756
12757 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12758
12759         Release 0.4
12760
12761         * NEWS: Update
12762
12763 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12764
12765         * doc/dbus-specification.sgml:
12766         Specification updates.
12767
12768 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12769
12770         * bus/activation.c: (bus_activation_init), (child_setup),
12771         (bus_activation_activate_service):
12772         * bus/activation.h:
12773         * bus/main.c: (main):
12774         Set DBUS_ADDRESS environment variable.
12775
12776         * dbus/dbus-errors.c: (dbus_set_error):
12777         Don't use va_copy since that's a C99 feature.
12778
12779         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12780         (_dbus_spawn_async):
12781         * dbus/dbus-sysdeps.h:
12782         Add child_setup_func to _dbus_spawn_async.
12783
12784         * doc/dbus-specification.sgml:
12785         Update specification.
12786
12787         * test/spawn-test.c: (setup_func), (main):
12788         Fix test.
12789
12790 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12791
12792         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12793         Added todo.
12794
12795 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12796
12797         * doc/.cvsignore:
12798         * doc/Makefile.am:
12799         * doc/dbus-test-plan.sgml:
12800         Add test plan document.
12801
12802         * test/Makefile.am:
12803         Fix distcheck.
12804
12805 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12806
12807         * dbus/dbus-message.c: (decode_header_data),
12808         (_dbus_message_loader_return_buffer):
12809         Set the header padding amount when loading a message.
12810
12811 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12812
12813         * bus/dispatch.c: (send_one_message):
12814         Only send broadcast messages to registered connections.
12815
12816         * dbus/dbus-message.c: (dbus_message_name_is):
12817         * dbus/dbus-message.h:
12818         New convenience function.
12819
12820         * dbus/dbus-transport-debug.c: (do_reading):
12821         Only dispatch one message per run.
12822
12823         * test/Makefile.am:
12824         * test/bus-test.c: (new_connection_callback), (die),
12825         (test_hello_client1_handler), (test_hello_client2_handler),
12826         (test_hello_replies), (main):
12827
12828         * test/bus-test-loop.[ch]:
12829         Add these.
12830
12831 2003-02-16  Havoc Pennington  <hp@pobox.com>
12832
12833         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12834         backward conditional
12835
12836 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12837
12838         * dbus/dbus-connection.c:
12839         Implement sent_message_with_reply. (with_reply_and block is still
12840         busted).
12841         Made dispatch_message not lose message if OOM.
12842
12843         * dbus/dbus-errors.h:
12844         Add NoReply error (for reply timeouts).
12845
12846 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12847
12848         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12849         Actually free keys and values when destroying hashtable.
12850
12851 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12852
12853         * dbus/dbus-auth.c: (client_try_next_mechanism):
12854         Plug a leak.
12855
12856         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12857         Return TRUE if there's no thread implementation around.
12858
12859         * glib/dbus-gmain.c: (free_source),
12860         (dbus_connection_hookup_with_g_main):
12861         Make sure to remove the GSource when the connection is finalized.
12862
12863 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12864
12865         * bus/dispatch.c: (bus_dispatch_message_handler):
12866         * dbus/dbus-errors.h:
12867         Return an error if someone tries to send a message to a service
12868         that doesn't exist.
12869
12870 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12871
12872         * bus/activation.c: (load_directory), (bus_activation_init),
12873         (bus_activation_activate_service):
12874         * bus/activation.h:
12875         * bus/driver.c:
12876         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12877         More work on the activation handling.
12878
12879         * dbus/dbus-errors.h:
12880         Add some error messages
12881
12882         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12883         * dbus/dbus-message.h:
12884         New function that creates an error message.
12885
12886         * dbus/dbus-protocol.h:
12887         Add ACTIVATE_SERVER message.
12888
12889         * dbus/dbus-server-unix.c: (unix_handle_watch),
12890         (_dbus_server_new_for_domain_socket):
12891         Call _dbus_fd_set_close_on_exec.
12892
12893         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12894         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12895         (_dbus_fd_set_close_on_exec):
12896         * dbus/dbus-sysdeps.h:
12897         Add _dbus_fd_set_close_on exec function. Also add function that checks
12898         that all open fds are set to close-on-exec and warns otherwise.
12899
12900         * dbus/dbus-transport-unix.c:
12901         (_dbus_transport_new_for_domain_socket):
12902         Call _dbus_fd_set_close_on_exec.
12903
12904 2003-02-16  Havoc Pennington  <hp@pobox.com>
12905
12906         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12907         allow people to avoid setting SIGPIPE to SIG_IGN
12908         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12909         we've been asked not to
12910
12911 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12912
12913         * dbus/dbus-list.c: (_dbus_list_append_link),
12914         (_dbus_list_prepend_link):
12915         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12916         (dbus_realloc):
12917         Warning fixes.
12918
12919 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12920
12921         * bus/Makefile.am:
12922         * bus/activation.c: (bus_activation_entry_free),
12923         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12924         * bus/activation.h:
12925         * bus/main.c: (main):
12926         Add simple activation support, doesn't work yet though.
12927
12928 2003-02-15   Zack Rusin  <zack@kde.org>
12929
12930         * qt/dbus-qthread.cpp:  small casting fix
12931
12932 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12933
12934         * dbus/dbus-errors.c: (dbus_set_error):
12935         * dbus/dbus-errors.h:
12936         Add a few errors and make dbus_set_error void.
12937
12938         * dbus/dbus-sysdeps.c:
12939         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12940         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12941         * dbus/dbus-sysdeps.h:
12942         Add _dbus_spawn_async.
12943
12944         * test/spawn-test.c: (main):
12945         Test for _dbus_spawn_async.
12946
12947 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12948
12949         * dbus/dbus-internals.h:
12950         Fix build without tests.
12951
12952         * dbus/dbus-list.c: (alloc_link):
12953         Fix a segfault when a malloc fails.
12954
12955         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12956         (dbus_malloc0), (dbus_realloc):
12957         Add support for malloc debugging.
12958
12959 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12960
12961         * dbus/dbus-threads.c:
12962         * dbus/dbus-threads.h:
12963         Add condvars. Remove static mutext from API.
12964         Implement static mutexes by initializing them from threads_init.
12965
12966         * glib/dbus-gthread.c:
12967         * qt/dbus-qthread.cpp:
12968         Update with the thread api changes.
12969
12970
12971         * dbus/dbus-list.c:
12972         * dbus/dbus-list.h:
12973         Turn StaticMutex into normal mutex + init function.
12974         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12975         _dbus_list_append_link, _dbus_list_prepend_link
12976
12977
12978         * dbus/dbus-sysdeps.c:
12979         * dbus/dbus-sysdeps.h:
12980         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12981         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12982
12983         * dbus/dbus-protocol.h:
12984         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12985
12986         * dbus/dbus-message.c:
12987         Make ref/unref atomic.
12988         Fix some docs.
12989
12990         * dbus/dbus-connection-internal.h:
12991         * dbus/dbus-connection.c:
12992         * dbus/dbus-connection.h:
12993         Make threadsafe.
12994         Change _peek to _borrow,_return & _steal_borrowed.
12995         Change disconnect callback to event.
12996         Make dbus_connection_dispatch_messages reentrant.
12997
12998         * dbus/dbus-transport.c:
12999         Don't ref the connection on calls to the transport
13000         implementation.
13001
13002         * dbus/dbus-message-handler.c:
13003         Make threadsafe.
13004
13005         * glib/dbus-gmain.c:
13006         Don't use peek_message anymore
13007
13008         * test/Makefile.am:
13009         * test/debug-thread.c:
13010         * test/debug-thread.h:
13011         Simple thread implementation that asserts() on deadlocks in
13012         single-threaded code.
13013
13014         * test/bus-test.c:
13015         (main) Call debug_threads_init.
13016
13017         * test/watch.c:
13018         Use disconnect message instead of disconnect callback.
13019
13020         * bus/connection.c:
13021         * bus/connection.h:
13022         Don't call dbus_connection_set_disconnect_function. Instead export
13023         bus_connection_disconnect.
13024
13025         * bus/dispatch.c:
13026         Call bus_connection_disconnect when we get a disconnected message.
13027
13028 2003-02-15  Havoc Pennington  <hp@pobox.com>
13029
13030         * dbus/dbus-message.c (dbus_message_new): fool around with the
13031         docs
13032
13033 2003-02-14  Havoc Pennington  <hp@pobox.com>
13034
13035         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13036
13037         * dbus/dbus-memory.c: fail if the debug functions indicate we
13038         should
13039
13040         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13041         (_dbus_decrement_fail_alloc_counter): debug functions to
13042         simulate memory allocation failures
13043
13044 2003-02-14  Havoc Pennington  <hp@pobox.com>
13045
13046         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13047         to DBusError
13048
13049 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13050
13051         * bus/driver.c: (bus_driver_handle_hello):
13052         * bus/driver.h:
13053         * bus/services.c: (bus_service_lookup):
13054         Reorder message sending so we get a more sane order.
13055
13056         * test/bus-test.c: (message_handler):
13057         Fix tyop.
13058
13059 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13060
13061         * bus/driver.c: (bus_driver_send_service_deleted),
13062         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13063         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13064         (bus_driver_send_welcome_message),
13065         (bus_driver_handle_list_services),
13066         (bus_driver_handle_acquire_service),
13067         (bus_driver_handle_service_exists):
13068         * dbus/dbus-bus.c: (dbus_bus_register_client),
13069         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13070         * dbus/dbus-errors.c: (dbus_result_to_string):
13071         * dbus/dbus-errors.h:
13072         * dbus/dbus-message.c: (dbus_message_append_args),
13073         (dbus_message_append_args_valist), (dbus_message_get_args),
13074         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13075         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13076         (dbus_message_iter_get_byte_array),
13077         (dbus_message_iter_get_string_array), (message_iter_test),
13078         (check_message_handling), (_dbus_message_test):
13079         * dbus/dbus-message.h:
13080         * test/bus-test.c: (main):
13081         Change fields to arguments in messages, so that they won't be
13082         confused with header fields.
13083
13084         * glib/test-dbus-glib.c: (main):
13085         Remove append_fields from hello message.
13086
13087 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13088
13089         * dbus/dbus-errors.c:
13090         * dbus/dbus-message.c:
13091         * dbus/dbus-string.c:
13092         Documentation fixes.
13093
13094 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13095
13096         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13097         (remove_timeout):
13098         Implement support for timeouts in dbus-glib.
13099
13100 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13101
13102         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13103         * dbus/dbus-message.c: (process_test_subdir):
13104         * test/break-loader.c: (find_breaks_based_on):
13105         Plug some memory leaks.
13106
13107 2003-02-13  Richard Hult  <rhult@codefactory.se>
13108
13109         * bus/main.c: Fix build.
13110
13111         * dbus/dbus-errors.h:
13112         * dbus/dbus-errors.c: Fix copyright for Anders.
13113
13114 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13115
13116         * bus/Makefile.am:
13117         Add utils.[ch]
13118
13119         * bus/connection.c: (bus_connection_foreach):
13120         Fix a warning.
13121
13122         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13123         (unescape_string), (new_section), (parse_section_start),
13124         (parse_key_value), (report_error), (bus_desktop_file_load),
13125         (bus_desktop_file_get_string):
13126         * bus/desktop-file.h:
13127         Use DBusError for error reporting.
13128
13129         * bus/dispatch.c: (send_one_message),
13130         (bus_dispatch_message_handler):
13131         * bus/driver.c: (bus_driver_send_service_deleted),
13132         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13133         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13134         (bus_driver_send_welcome_message),
13135         (bus_driver_handle_list_services),
13136         (bus_driver_handle_acquire_service),
13137         (bus_driver_handle_service_exists):
13138         * bus/loop.c: (bus_loop_run):
13139         * bus/main.c:
13140         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13141
13142         * bus/utils.c: (bus_wait_for_memory):
13143         * bus/utils.h:
13144         New files with general utility functions.
13145
13146         * dbus/dbus-internals.h:
13147         Remove _DBUS_HANDLE_OOM.
13148
13149 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13150
13151         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13152         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13153         * dbus/dbus-errors.h:
13154         Add DBusError structure.
13155
13156 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13157
13158         * test/data/valid-messages/standard-acquire-service.message:
13159         * test/data/valid-messages/standard-hello.message:
13160         * test/data/valid-messages/standard-list-services.message:
13161         * test/data/valid-messages/standard-service-exists.message:
13162         Add some standard messages.
13163
13164 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13165
13166         * bus/driver.c: (bus_driver_send_welcome_message),
13167         (bus_driver_handle_list_services),
13168         (bus_driver_handle_acquire_service),
13169         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13170         Update for API changes in libdbus.
13171
13172         * dbus/dbus-message.c: (dbus_message_new_reply):
13173         * dbus/dbus-message.h:
13174         Remove the name argument. The spec states that replies shouldn't
13175         have a name.
13176
13177 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13178
13179         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13180         (report_error), (bus_desktop_file_load), (lookup_section),
13181         (lookup_line), (bus_desktop_file_get_raw),
13182         (bus_desktop_file_get_string):
13183         * bus/desktop-file.h:
13184         Some fixes, and new functions for getting a key value from a section.
13185
13186 2003-02-13  Havoc Pennington  <hp@pobox.com>
13187
13188         * test/data/auth/fail-after-n-attempts.auth-script: new test
13189
13190         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13191         reject the client.
13192
13193 2003-02-13  Havoc Pennington  <hp@pobox.com>
13194
13195         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13196         dbus_credentials_match were backward
13197
13198         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13199         NO_CREDENTIALS and ROOT_CREDENTIALS
13200
13201         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13202         into here. Never process more commands after we've reached an
13203         end state; store further data as unused bytes.
13204
13205         * test/data/auth/*: add more auth tests
13206
13207         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13208         command to match exact string and EXPECT_UNUSED to match unused
13209         bytes
13210
13211         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13212
13213 2003-02-12  Havoc Pennington  <hp@pobox.com>
13214
13215         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13216         \r off of popped lines
13217
13218         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13219         scripts
13220
13221         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13222         SEND, append \r\n
13223
13224 2003-02-12  Havoc Pennington  <hp@pobox.com>
13225
13226         * dbus/Makefile.am: remove break-loader from the build, since it
13227         moved.
13228
13229         * configure.in: add --enable-gcov to turn on coverage profiling
13230         flags and disable optimization
13231
13232 2003-02-10  Havoc Pennington  <hp@pobox.com>
13233
13234         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13235         initial cut at test framework for DBusAuth from laptop.
13236         Doesn't quite work yet but it compiles and I need to get
13237         it off the 266mhz laptop. ;-)
13238
13239         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13240         fix a memleak in error case
13241
13242 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13243
13244         * bus/Makefile.am:
13245         * bus/desktop-file.c:
13246         * bus/desktop-file.h:
13247         Add a desktop file parser.
13248
13249 2003-02-11  Zack Rusin  <zack@kde.org>
13250
13251         * qt/message.[h|cpp]: sample implementation
13252         of the KDE wrapper for DBusMessage
13253
13254 2003-02-09  Zack Rusin  <zack@kde.org>
13255
13256         * test/bus-test.c: make_it_compile
13257         * doc/dbus-specification.sgml: minimal semantic fix
13258
13259 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13260
13261         Release 0.3
13262
13263         * NEWS: Update
13264
13265 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13266
13267         * dbus/Makefile.am:
13268         * dbus/dbus-break-loader.c:
13269         * test/Makefile.am:
13270         * test/break-loader.c:
13271         Move dbus-break-loader to test/ and rename it to break-loader.
13272
13273 2003-02-02  Havoc Pennington  <hp@pobox.com>
13274
13275         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13276         for code to manage cookies in your home directory
13277
13278         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13279
13280         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13281         to authenticate, then disconnect the client.
13282
13283 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13284
13285         * dbus/dbus-message.c (dbus_message_append_fields):
13286         Correct docs.
13287
13288 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13289
13290         * doc/dbus-specification.sgml:
13291         Update address format section.
13292
13293 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13294
13295         * test/Makefile.am:
13296         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13297         (message_handler), (new_connection_callback), (loop_quit),
13298         (loop_run), (main):
13299         Add bus test.
13300
13301 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13302
13303         * bus/driver.c: (bus_driver_handle_service_exists):
13304         Simplify the code a bit.
13305
13306         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13307         Fix a silly.
13308
13309 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13310
13311         * bus/Makefile.am:
13312         Add libdbus-daemon.la and link to it.
13313
13314 2003-02-01  James Willcox  <jwillcox@gnome.org>
13315
13316         * bus/driver.c: (bus_driver_handle_own_service):
13317         Actually include the service reply code in the message.
13318
13319 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13320
13321         * bus/driver.c: (bus_driver_handle_service_exists):
13322         Don't unref the incoming message.
13323
13324 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13325
13326         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13327
13328 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13329
13330         * dbus/dbus-server.c: (dbus_server_listen):
13331         * dbus/dbus-transport.c: (_dbus_transport_open):
13332         ifdef out the calls to the debug transport and server.
13333
13334 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13335
13336         * dbus/dbus-watch.c (dbus_watch_get_flags):
13337         Add note in the docs that ERROR or HANGUP won't be returned
13338         and are assumed always on.
13339
13340         * glib/dbus-gmain.c (add_watch):
13341         Always add IO_ERR | IO_HUP
13342
13343         * dbus/dbus-message.h:
13344         Add semicolon after dbus_message_iter_get_string_array().
13345         Makes qt code build again
13346
13347 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13348
13349         * bus/driver.c: (create_unique_client_name),
13350         (bus_driver_handle_hello):
13351         Don't take a name, just use a numeric id to identify
13352         each client.
13353
13354         * dbus/Makefile.am:
13355         * dbus/dbus-bus.c: (dbus_bus_register_client),
13356         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13357         * dbus/dbus-bus.h:
13358         Add new convenience functions for communicating with the bus.
13359
13360         * dbus/dbus-message.h:
13361
13362         * dbus/dbus-protocol.h:
13363         Fix a typo.
13364
13365 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13366
13367         * dbus/dbus-message.c (dbus_message_append_fields):
13368         Add some more doc comments.
13369
13370 2003-02-01  Havoc Pennington  <hp@pobox.com>
13371
13372         * dbus/dbus-break-loader.c (randomly_modify_length): change
13373         a 4-byte value in the message as if it were a length
13374
13375         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13376         execute bit on saved files
13377
13378 2003-02-01  Havoc Pennington  <hp@pobox.com>
13379
13380         * dbus/dbus-break-loader.c (main): new program to find messages
13381         that break the loader.
13382
13383         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13384         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13385
13386         * dbus/dbus-string.c (_dbus_string_set_byte): new
13387
13388 2003-01-31  Havoc Pennington  <hp@pobox.com>
13389
13390         * dbus/dbus-message.c: refactor the test code to be more general,
13391         in preparation for writing a "randomly permute test cases to
13392         try to break the loader" program.
13393
13394 2003-01-31  Havoc Pennington  <hp@pobox.com>
13395
13396         * doc/dbus-specification.sgml: work on the specification
13397
13398         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13399         the protocol version of the message.
13400
13401         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13402         no longer specifies that.
13403         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13404         1/2/3/4)
13405
13406         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13407         "break" for DBUS_TYPE_NIL, remove @todo
13408
13409 2003-01-31  Havoc Pennington  <hp@pobox.com>
13410
13411         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13412         just set_is_error/get_is_error as this is a commonly-used
13413         function, and write docs.
13414
13415 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13416
13417         * dbus/dbus-address.c: (dbus_address_entry_free):
13418         Free key and value lists.
13419
13420         * dbus/dbus-internals.c: (_dbus_type_to_string):
13421         Add the types we didn't have.
13422
13423         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13424         (_dbus_marshal_validate_arg):
13425         Add NIL types.
13426
13427         * dbus/dbus-message.c: (dbus_message_set_sender):
13428         Remove todo about being able to set sender to NULL.
13429
13430         (dbus_message_set_is_error_reply),
13431         (dbus_message_get_is_error_reply):
13432         * dbus/dbus-message.h:
13433         New functions.
13434
13435         * dbus/dbus-protocol.h:
13436         Add error reply flag.
13437
13438         * test/data/valid-messages/opposite-endian.message:
13439         Add NIL type to test.
13440
13441 2003-01-31  Havoc Pennington  <hp@pobox.com>
13442
13443         * doc/dbus-specification.sgml: fully specify the header.  Add
13444         flags and major protocol version, and change header/body len to
13445         unsigned.
13446
13447         * dbus/dbus-message-builder.c (append_saved_length): append length
13448         as uint32
13449
13450         * dbus/dbus-message.c (dbus_message_create_header): change header
13451         length and body length to unsigned. Add the new fields from the
13452         spec
13453         (_dbus_message_loader_return_buffer): unsigned header/body len
13454
13455 2003-01-30  Havoc Pennington  <hp@pobox.com>
13456
13457         * dbus/dbus-auth.c: rework to use only REJECTED, no
13458         MECHANISMS
13459
13460         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13461         use REJECTED, suggested by Mark McLoughlin
13462
13463 2003-01-30  Havoc Pennington  <hp@pobox.com>
13464
13465         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13466         a better way to report errors here. e.g.  "unix address lacks
13467         path" or something. also "no such file" when the path doesn't
13468         exist, etc.
13469
13470         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13471         leaking list nodes
13472         (dbus_parse_address): add @todo about documenting address format,
13473         and allowing , and ; to be escaped
13474
13475 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13476
13477         * dbus/Makefile.am:
13478         Add dbus-address.[ch]
13479
13480         * dbus/dbus-address.c: (dbus_address_entry_free),
13481         (dbus_address_entries_free), (create_entry),
13482         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13483         (dbus_parse_address), (_dbus_address_test):
13484         * dbus/dbus-address.h:
13485         New files for dealing with address parsing.
13486
13487         * dbus/dbus-connection.c:
13488         Document timeout functions.
13489
13490         * dbus/dbus-message.c:
13491         Document dbus_message_new_from_message.
13492
13493         * dbus/dbus-server-debug.c:
13494         Document.
13495
13496         * dbus/dbus-server.c: (dbus_server_listen):
13497         Parse address and use correct server implementation.
13498
13499         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13500         * dbus/dbus-string.h:
13501         New function with test.
13502
13503         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13504         * dbus/dbus-test.h:
13505         Add address tests.
13506
13507         * dbus/dbus-transport-debug.c:
13508         Document.
13509
13510         * dbus/dbus-transport.c: (_dbus_transport_open):
13511         Parse address and use correct transport implementation.
13512
13513 2003-01-30  Havoc Pennington  <hp@pobox.com>
13514
13515         * dbus/dbus-message.c: use message->byte_order instead of
13516         DBUS_COMPILER_BYTE_ORDER throughout.
13517         (dbus_message_create_header): pad header to align the
13518         start of the body of the message to 8-byte boundary
13519
13520         * dbus/dbus-marshal.h: make all the demarshalers take const
13521         DBusString arguments.
13522
13523         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13524         validate message args here, so we don't have to do slow validation
13525         later, and so we catch bad messages as they are incoming. Also add
13526         better checks on header_len and body_len. Also fill in
13527         message->byte_order
13528
13529         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13530         implemented properly)
13531         (_dbus_string_validate_nul): new function to check all-nul
13532
13533         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13534         get_arg_end_pos and remove all validation
13535         (_dbus_marshal_validate_arg): actually do validation here.
13536
13537 2003-01-29  Havoc Pennington  <hp@pobox.com>
13538
13539         * dbus/dbus-message.c (check_message_handling): fix assertion
13540         failure on set_client_serial
13541
13542 2003-01-28  Havoc Pennington  <hp@pobox.com>
13543
13544         * dbus/dbus-server-debug.c: Add doc section comments
13545
13546         * dbus/dbus-transport-debug.c: add doc section comments
13547
13548 2003-01-28  Havoc Pennington  <hp@redhat.com>
13549
13550         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13551         the reverse order from how I had it
13552         (_dbus_string_base64_encode): reverse encoding order. I was
13553         basically byteswapping everything during encoding.
13554
13555 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13556
13557         * dbus/dbus-connection-internal.h:
13558         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13559         (_dbus_connection_remove_timeout):
13560         Add functions for adding and removing timeouts.
13561
13562         * dbus/dbus-message.c: (dbus_message_new_from_message):
13563         Add new function that takes a message and creates an exact
13564         copy of it, but with the refcount set to 1.
13565         (check_message_handling):
13566         Fix build error.
13567
13568         * dbus/dbus-server-protected.h:
13569         * dbus/dbus-server.c: (_dbus_server_init_base),
13570         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13571         (dbus_server_set_timeout_functions):
13572         (_dbus_server_remove_timeout):
13573         New functions so that a server can add and remove timeouts.
13574
13575         (dbus_server_listen):
13576         Add commented out call to dbus_server_debug_new.
13577
13578         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13579         Actually set the handler, doh.
13580
13581         * dbus/dbus-transport.c: (_dbus_transport_open):
13582         Add commented out call to dbus_transport_debug_client_new.
13583
13584         * dbus/Makefile.am:
13585         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13586
13587 2003-01-28  Havoc Pennington  <hp@pobox.com>
13588
13589         * dbus/dbus-message.c (check_message_handling): function to check
13590         on the loaded message, iterates over it etc.
13591
13592 2003-01-28  Havoc Pennington  <hp@pobox.com>
13593
13594         * test/Makefile.am (dist-hook): fix make distdir
13595
13596         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13597
13598 2003-01-27  Havoc Pennington  <hp@pobox.com>
13599
13600         * dbus/dbus-mempool.c (time_for_size): replace printf with
13601         _dbus_verbose
13602
13603         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13604         empty lines; fix the SAVE_LENGTH stuff to be
13605         START_LENGTH/END_LENGTH so it actually works; couple other
13606         bugfixes
13607
13608         * test/Makefile.am (dist-hook): add dist-hook for .message files
13609
13610         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13611         can be constant or locked.
13612         (_dbus_string_free): allow freeing a const string as
13613         documented/intended
13614
13615         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13616
13617         * dbus/dbus-test-main.c (main): take an argument which is the
13618         directory containing test data
13619
13620         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13621         argument to this and load all the messages in test/data/
13622         checking that they can be loaded or not loaded as appropriate.
13623
13624 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13625
13626         * bus/dispatch.c: (bus_dispatch_message_handler):
13627         Dispatch messages sent to services.
13628
13629         * bus/driver.c: (bus_driver_send_service_deleted),
13630         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13631         (bus_driver_send_service_acquired):
13632         Add helper functions for sending service related messages.
13633
13634         (bus_driver_send_welcome_message):
13635         Send HELLO_REPLY instead of WELCOME.
13636
13637         (bus_driver_handle_list_services):
13638         Send LIST_SERVICES_REPLY instead of SERVICES.
13639
13640         (bus_driver_handle_own_service),
13641         (bus_driver_handle_service_exists):
13642         New message handlers.
13643
13644         (bus_driver_handle_message):
13645         Invoke new message handlers.
13646
13647         (bus_driver_remove_connection):
13648         Don't remove any services here since that's done automatically
13649         by bus_service_remove_owner now.
13650
13651         * bus/driver.h:
13652         New function signatures.
13653
13654         * bus/services.c: (bus_service_add_owner):
13655         Send ServiceAcquired message if we're the only primary owner.
13656
13657         (bus_service_remove_owner):
13658         Send ServiceAcquired/ServiceLost messages.
13659
13660         (bus_service_set_prohibit_replacement),
13661         (bus_service_get_prohibit_replacement):
13662         Functions for setting prohibit replacement.
13663
13664         (bus_service_has_owner):
13665         New function that checks if a connection is in the owner queue of
13666         a certain service.
13667
13668         * bus/services.h:
13669         Add new function signatures.
13670
13671         * dbus/dbus-list.c: (_dbus_list_test):
13672         Add tests for _dbus_list_remove_last and traversing the list backwards.
13673
13674         * dbus/dbus-list.h:
13675         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13676         go any further, so return NULL then.
13677
13678         * dbus/dbus-protocol.h:
13679         Add new messages, service flags and service replies.
13680
13681 2003-01-26  Havoc Pennington  <hp@pobox.com>
13682
13683         * dbus/dbus-message-builder.c: implement, completely untested.
13684
13685         * test/data/*: add data to be used in testing.
13686         ".message" files are our simple loadable text format.
13687         ".message-raw" will be binary dumps of messages.
13688
13689         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13690
13691 2003-01-26  Havoc Pennington  <hp@pobox.com>
13692
13693         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13694
13695         * dbus/dbus-errors.c (dbus_result_to_string): add
13696         file errors
13697
13698         * dbus/dbus-message-builder.c: new file, will contain code to load
13699         up messages from files. Not implemented yet.
13700
13701 2003-01-26  Havoc Pennington  <hp@pobox.com>
13702
13703         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13704         the sender by setting to NULL
13705
13706 2003-01-26  Havoc Pennington  <hp@pobox.com>
13707
13708         The unit tests pass, but otherwise untested.  If it breaks, the
13709         tests should have been better. ;-)
13710
13711         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13712         the connection.
13713
13714         * dbus/dbus-message.c: redo everything so we maintain
13715         message->header as the only copy of the various fields.
13716         This avoids the possibility of out-of-memory in some cases,
13717         for example dbus_message_lock() can't run out of memory anymore,
13718         and avoids extra copying. Figured I may as well go ahead and do
13719         this since it was busted for dbus_message_lock to not return
13720         failure on OOM, and dbus_message_write_header was totally
13721         unchecked for OOM. Also fixed some random other bugs.
13722
13723         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13724         that strings are nul-terminated. Also, end_pos can be equal
13725         to string length just not greater than, I think.
13726         (_dbus_marshal_set_int32): new function
13727         (_dbus_marshal_set_uint32): new function
13728         (_dbus_marshal_set_string): new function
13729
13730         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13731         a warning, init timeout_list to NULL
13732         (dbus_connection_send_message): don't use uninitialized variable
13733         "serial"
13734
13735         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13736
13737 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13738
13739         * bus/driver.c: (bus_driver_handle_hello),
13740         (bus_driver_send_welcome_message):
13741         Plug leaks
13742
13743 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13744
13745         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13746         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13747         (dbus_connection_unref):
13748         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13749         * dbus/dbus-message.c: (dbus_message_unref),
13750         Plug memory leaks.
13751
13752         (dbus_message_get_fields):
13753         Remove debugging printout.
13754
13755         (_dbus_message_loader_return_buffer):
13756         Don't store the header string.
13757
13758         (_dbus_message_test):
13759         Plug leaks.
13760
13761 2003-01-26  Richard Hult  <rhult@codefactory.se>
13762
13763         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13764         the file descriptor list, since it can change under us.
13765
13766 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13767
13768         * glib/dbus-gmain.c: (dbus_connection_prepare),
13769         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13770         (remove_watch), (dbus_connection_hookup_with_g_main):
13771         Rewrite the glib handling to use its own GSource instead of a
13772         GIOChannel so we can catch messages put in the queue while waiting
13773         for a reply.
13774
13775 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13776
13777         * bus/Makefile.am:
13778         * bus/connection.c: (connection_disconnect_handler),
13779         (connection_watch_callback), (bus_connection_setup):
13780         * bus/dispatch.c: (send_one_message),
13781         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13782         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13783         * bus/dispatch.h:
13784         * bus/driver.c: (bus_driver_send_service_deleted),
13785         (bus_driver_send_service_created), (bus_driver_handle_hello),
13786         (bus_driver_send_welcome_message),
13787         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13788         (bus_driver_handle_message):
13789         * bus/driver.h:
13790         Refactor code, put the message dispatching in its own file. Use
13791         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13792         is disconnected.
13793
13794 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13795
13796         * dbus/dbus-internals.h:
13797         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13798
13799         * dbus/dbus-message.c: (dbus_message_get_sender):
13800         * dbus/dbus-message.h:
13801         Implement dbus_message_get_sender.
13802
13803         * dbus/dbus-protocol.h:
13804         Add message and service defines.
13805
13806 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13807
13808         * dbus/dbus-connection.c: (dbus_connection_send_message):
13809         * dbus/dbus-message-internal.h:
13810         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13811         (dbus_message_write_header):
13812         Remove _dbus_messag_unlock and don't set the client serial on a
13813         message if one already exists.
13814
13815 2003-01-24  Havoc Pennington  <hp@pobox.com>
13816
13817         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13818         list_pool
13819
13820         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13821         on OOM
13822
13823 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13824
13825         * dbus/dbus-list.c: (alloc_link), (free_link):
13826         Use a memory pool for the links.
13827
13828 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13829
13830         * bus/connection.c: (bus_connection_foreach):
13831         * bus/connection.h:
13832         Add new bus_connection_foreach function.
13833
13834         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13835         Add function that broadcasts a message to all clients.
13836
13837         (bus_driver_send_service_created), (bus_driver_handle_hello),
13838         (bus_driver_send_welcome_message),
13839         (bus_driver_handle_list_services), (bus_driver_message_handler):
13840         Implement functions that take care of listing services, and notifying
13841         clients when new services are created.
13842
13843         * bus/services.c: (bus_services_list):
13844         * bus/services.h:
13845         Add new function that returns an array of strings with the currently
13846         registered services.
13847
13848         * glib/dbus-glib.h:
13849         * glib/dbus-gmain.c:
13850         Update copyright year.
13851
13852 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13853
13854         * dbus/dbus-connection.c: (dbus_connection_send_message):
13855         Unlock the message in case it was sent earlier.
13856
13857         (dbus_connection_send_message_with_reply_and_block):
13858         Remove the reply message from the list.
13859
13860         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13861         Set array_len and new_pos correctly.
13862
13863         (_dbus_marshal_test):
13864         Remove debug output.
13865
13866         * dbus/dbus-message-internal.h:
13867         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13868         New function that returns the reply serial.
13869
13870         (_dbus_message_unlock):
13871         New function that unlocks a message and resets its header.
13872
13873         (dbus_message_append_string_array),
13874         (dbus_message_get_fields_valist),
13875         (dbus_message_iter_get_field_type),
13876         (dbus_message_iter_get_string_array),
13877         (dbus_message_get_fields),
13878         (dbus_message_append_fields_valist):
13879         Handle string arrays.
13880
13881         (dbus_message_set_sender):
13882         Make this function public since the bus daemon needs it.
13883
13884         (decode_header_data):
13885         Set the reply serial to -1 initially.
13886
13887         * dbus/dbus-message.h:
13888         Add dbus_message_set_sender.
13889
13890 2003-01-24  Havoc Pennington  <hp@pobox.com>
13891
13892         * doc/dbus-specification.sgml: add some stuff
13893
13894 2003-01-22  Havoc Pennington  <hp@pobox.com>
13895
13896         * doc/dbus-specification.sgml: Start to document the protocol.
13897
13898 2003-01-22  Havoc Pennington  <hp@pobox.com>
13899
13900         * dbus/dbus-connection.c
13901         (dbus_connection_send_message_with_reply_and_block): add some @todo
13902
13903         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13904
13905 2003-01-21  Havoc Pennington  <hp@pobox.com>
13906
13907         (patch untested because can't compile)
13908
13909         * bus/driver.c (create_unique_client_name): make this function
13910         never recycle client names. Also, caller should initialize
13911         the DBusString.
13912
13913         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13914
13915 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13916
13917         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13918         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13919         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13920         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13921         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13922         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13923         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13924         * dbus/dbus-marshal.h:
13925         * dbus/dbus-protocol.h:
13926         Add support for marshalling and demarshalling integer, double
13927         and string arrays.
13928
13929 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13930
13931         * bus/Makefile.am:
13932         Add driver.[ch]
13933
13934         * bus/connection.c: (connection_disconnect_handler):
13935         Remove the connection from the bus driver's list.
13936
13937         (connection_watch_callback): Dispatch messages.
13938
13939         (free_connection_data): Free connection name.
13940
13941         (bus_connection_setup): Add connection to the bus driver's list.
13942         (bus_connection_remove_owned_service):
13943         (bus_connection_set_name), (bus_connection_get_name):
13944         Add functions for setting and getting the connection's name.
13945
13946         * bus/connection.h:
13947         Add function headers.
13948
13949         * bus/driver.c: (create_unique_client_name),
13950         (bus_driver_handle_hello_message),
13951         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13952         (bus_driver_add_connection), (bus_driver_remove_connection):
13953         * bus/driver.h:
13954         * bus/main.c:
13955         * bus/services.c: (bus_service_free):
13956         * bus/services.h:
13957         New file that handles communication and registreation with the bus
13958         itself.
13959
13960 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13961
13962         * dbus/dbus-connection.c: (dbus_connection_send_message):
13963         Add a new client_serial parameter.
13964
13965         (dbus_connection_send_message_with_reply):
13966         Remove a @todo since we've implemented the blocking function.
13967
13968         (dbus_connection_send_message_with_reply_and_block):
13969         New function that sends a message and waits for a reply and
13970         then returns the reply.
13971
13972         * dbus/dbus-connection.h:
13973         Add new functions.
13974
13975         * dbus/dbus-errors.c: (dbus_result_to_string):
13976         * dbus/dbus-errors.h:
13977         Add new DBUS_RESULT.
13978
13979         * dbus/dbus-message-internal.h:
13980         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13981         (_dbus_message_set_sender), (dbus_message_write_header),
13982         (dbus_message_new_reply), (decode_header_data),
13983         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13984         * dbus/dbus-message.h:
13985         Add new functions that set the reply serial and sender.
13986         Also marshal and demarshal them correctly and add test.
13987
13988         * dbus/dbus-protocol.h:
13989         Add new DBUS_MESSAGE_TYPE_SENDER.
13990
13991         * glib/dbus-glib.h:
13992         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13993         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13994         (dbus_connection_hookup_with_g_main):
13995         * glib/test-dbus-glib.c: (main):
13996         Rewrite to use GIOChannel and remove the GSource crack.
13997
13998         * test/echo-client.c: (main):
13999         * test/watch.c: (check_messages):
14000         Update for changed APIs
14001
14002 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14003
14004         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14005
14006         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14007         Create a DBusTimeoutList.
14008         (dbus_connection_set_timeout_functions): Add new function to
14009         set timeout callbacks
14010
14011         * dbus/dbus-connection.h: Add public DBusTimeout API.
14012
14013         * dbus/dbus-message.c: (dbus_message_get_service):
14014         * dbus/dbus-message.h:  New function.
14015
14016         * dbus/dbus-server.c: Fix small doc typo.
14017
14018         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14019
14020 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14021
14022         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14023         of the string, just as long as specified.
14024
14025 2003-01-19  Havoc Pennington  <hp@pobox.com>
14026
14027         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14028         new function
14029
14030         * dbus/dbus-server.c (dbus_server_set_max_connections)
14031         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14032         keep track of current number of connections, and add API for
14033         setting a max (but haven't implemented enforcing the max yet)
14034
14035 2003-01-18  Havoc Pennington  <hp@pobox.com>
14036
14037         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14038         reading/writing if read_watch != NULL or write_watch != NULL.
14039
14040         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14041         the message loader code to actually load message->header and
14042         message->body into the newly-created message.
14043
14044         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14045         in OOM case
14046
14047         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14048         (dbus_connection_get_max_message_size)
14049         (dbus_connection_set_max_live_messages_size)
14050         (dbus_connection_get_max_live_messages_size): implement some
14051         resource limitation functions
14052
14053         * dbus/dbus-resources.c: new file implementing some of the
14054         resource limits stuff
14055
14056         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14057         missing docs, add @todo to handle OOM etc.
14058
14059         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14060         docs
14061
14062 2003-01-18  Havoc Pennington  <hp@pobox.com>
14063
14064         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14065         connection if it hasn't been already.
14066
14067         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14068         replace with DisconnectFunction.
14069
14070 2003-01-18  Havoc Pennington  <hp@pobox.com>
14071
14072         Building --disable-verbose-mode --disable-asserts --disable-tests
14073         cuts the library from 112K to 45K or so
14074
14075         * configure.in: check for varargs macro support,
14076         add --enable-verbose-mode, --enable-asserts.
14077
14078         * dbus/dbus-internals.h (_dbus_assert): support
14079         DBUS_DISABLE_ASSERT
14080         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14081
14082 2003-01-18  Havoc Pennington  <hp@pobox.com>
14083
14084         * dbus/dbus-test.c: include config.h so that tests actually run
14085
14086         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14087         so the failure mode when that assumption fails will be plenty
14088         obvious.
14089
14090 2003-01-18  Havoc Pennington  <hp@pobox.com>
14091
14092         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14093
14094         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14095         the distribution
14096
14097         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14098         since we don't want to use those in make check
14099
14100 2003-01-15  Havoc Pennington  <hp@redhat.com>
14101
14102         Release 0.2
14103
14104         * NEWS: update
14105
14106 2003-01-15  Havoc Pennington  <hp@redhat.com>
14107
14108         * test/Makefile.am: fix so that test source code ends up in the
14109         distribution on make distcheck
14110
14111 2003-01-15  Havoc Pennington  <hp@redhat.com>
14112
14113         Release 0.1.
14114
14115         * NEWS: update
14116
14117 2003-01-15  Havoc Pennington  <hp@redhat.com>
14118
14119         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14120         fix build when --disable-tests
14121
14122         * Makefile.am (EXTRA_DIST): put HACKING in here
14123
14124         * HACKING: document procedure for making a tarball release.
14125
14126 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14127
14128         * bus/connection.c: (connection_error_handler),
14129         (bus_connection_setup):
14130         * bus/main.c: (main):
14131         Make sure that the DBusConnectionData struct is NULLed
14132         out to prevent a segfault.
14133
14134         * dbus/dbus-errors.c: (dbus_result_to_string):
14135         * dbus/dbus-errors.h:
14136         * dbus/dbus-message.c: (dbus_message_get_fields),
14137         (dbus_message_get_fields_valist), (_dbus_message_test):
14138         * dbus/dbus-message.h:
14139         Make dbus_message_get_fields return a result code so we can
14140         track invalid fields as well as oom.
14141
14142 2003-01-11  Havoc Pennington  <hp@pobox.com>
14143
14144         * configure.in: change --enable-test/--enable-ansi action-if-given
14145         to enable_foo=$enableval instead of enable_foo=yes
14146
14147 2003-01-08  Havoc Pennington  <hp@pobox.com>
14148
14149         * dbus/dbus-string.c (_dbus_string_align_length): new function
14150
14151         * dbus/dbus-test-main.c: move main() for test app here
14152         * dbus/dbus-test.c
14153         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14154         symbol to run tests, because dbus-test isn't in the main
14155         library
14156
14157         Code review nitpicks.
14158
14159         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14160         for people with narrow emacs ;-). Assert client_serial was filled
14161         in. Assert message->name != NULL.
14162         (dbus_message_append_fields): have "first_field_type" arg separate
14163         from va list, needed for C++ binding that also uses varargs IIRC
14164         and helps with type safety
14165         (dbus_message_new): add @todo about using DBusString to store
14166         service/name internally
14167         (dbus_message_new): don't leak ->service and ->name on OOM later
14168         in the function
14169         (dbus_message_unref): free the service name
14170         (dbus_message_get_fields): same change to varargs
14171         i.e. first_field_type
14172         (_dbus_message_loader_return_buffer): assert that the message data
14173         is aligned (if not it's a bug in our code). Put in verbose griping
14174         about why we set corrupted = TRUE.
14175         (decode_header_data): add FIXME that char* is evil.  Was going to
14176         add FIXME about evil locale-specific string.h strncmp, but just
14177         switched to wacky string-as-uint32 optimization. Move check for
14178         "no room for field name" above get_const_data_len() to avoid
14179         assertion failure in get_const_data_len if we have trailing 2
14180         bytes or the like. Check for service and name fields being
14181         provided twice. Don't leak service/name on error. Require field
14182         names to be aligned to 4 bytes.
14183
14184         * dbus/dbus-marshal.c: move byte swap stuff to header
14185         (_dbus_pack_int32): uscore-prefix
14186         (_dbus_unpack_int32): uscore-prefix
14187         (_dbus_unpack_uint32): export
14188         (_dbus_demarshal_string): add @todo complaining about use of
14189         memcpy()
14190         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14191         handling allowing corrupt data to go unchecked
14192
14193 2003-01-08  Havoc Pennington  <hp@redhat.com>
14194
14195         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14196         to the select() as needed for authentication. (should be using
14197         _dbus_poll() not select, but for another day)
14198
14199         * dbus/dbus.h: include dbus/dbus-protocol.h
14200
14201 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14202
14203         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14204         dbus-connection.h
14205
14206 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14207
14208         * dbus/dbus-internals.c: (_dbus_type_to_string):
14209         New function that returns a string describing a type.
14210
14211         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14212         * dbus/dbus-marshal.h:
14213         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14214         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14215         (dbus_message_iter_get_byte_array):
14216         * dbus/dbus-message.h:
14217         Add new convenience functions for appending and getting message fields.
14218         Also add demarshalling routines for byte arrays.
14219
14220 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14221
14222         * dbus/dbus-connection-internal.h:
14223         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14224         (_dbus_connection_get_next_client_serial),
14225         (dbus_connection_send_message):
14226         * dbus/dbus-internals.h:
14227         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14228         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14229         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14230         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14231         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14232         (_dbus_verbose_bytes), (_dbus_marshal_test):
14233         * dbus/dbus-marshal.h:
14234         * dbus/dbus-message-internal.h:
14235         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14236         (dbus_message_write_header), (_dbus_message_lock),
14237         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14238         (dbus_message_get_name), (dbus_message_append_int32),
14239         (dbus_message_append_uint32), (dbus_message_append_double),
14240         (dbus_message_append_string), (dbus_message_append_byte_array),
14241         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14242         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14243         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14244         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14245         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14246         (decode_header_data), (_dbus_message_loader_return_buffer),
14247         (message_iter_test), (_dbus_message_test):
14248         * dbus/dbus-message.h:
14249         * dbus/dbus-protocol.h:
14250         * dbus/dbus-test.c: (main):
14251         * dbus/dbus-test.h:
14252         * glib/test-dbus-glib.c: (message_handler), (main):
14253         * test/echo-client.c: (main):
14254         * test/watch.c: (check_messages):
14255         Make messages sendable and receivable for real.
14256
14257 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14258
14259         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14260         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14261         * dbus/dbus-message.c: (dbus_message_append_int32),
14262         (dbus_message_append_uint32), (dbus_message_append_double),
14263         (dbus_message_append_string), (dbus_message_append_byte_array):
14264         Handle OOM restoration.
14265
14266 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14267
14268         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14269         (_dbus_demarshal_string), (_dbus_marshal_test):
14270         * dbus/dbus-marshal.h:
14271         * dbus/dbus-message.c: (dbus_message_get_name),
14272         Document these functions.
14273
14274         (dbus_message_append_int32), (dbus_message_append_uint32),
14275         (dbus_message_append_double), (dbus_message_append_string),
14276         (dbus_message_append_byte_array):
14277         * dbus/dbus-message.h:
14278         Add functions for adding message fields of different types.
14279
14280         * dbus/dbus-protocol.h:
14281         Add the different types.
14282
14283 2003-01-05  Havoc Pennington  <hp@pobox.com>
14284
14285         * bus/connection.c: implement routines for handling connections,
14286         first thing is keeping a list of owned services on each connection
14287         and setting up watches etc.
14288
14289         * bus/services.c: implement a mapping from service names to lists
14290         of connections
14291
14292         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14293
14294         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14295         to use static mutexes for global data
14296
14297         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14298         collection of functions to set/get application-specific data
14299         on the DBusConnection.
14300
14301 2003-01-04  Havoc Pennington  <hp@pobox.com>
14302
14303         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14304         (_dbus_poll): new function
14305
14306         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14307         copied from GLib
14308
14309         * bus/loop.c: initial code for the daemon main loop
14310
14311 2003-01-04  Havoc Pennington  <hp@pobox.com>
14312
14313         * test/watch.c (error_handler): make it safe if the error handler
14314         is called multiple times (if we s/error handler/disconnect
14315         handler/ we should just guarantee it's called only once)
14316
14317         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14318         error handler on disconnect (it's quite possible we should
14319         just change the error handler to a "disconnect handler," I'm
14320         not sure we have any other meaningful errors)
14321
14322         * configure.in: check for getpwnam_r
14323
14324         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14325         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14326         mechanism as in SASL spec, using socket credentials
14327
14328         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14329         (_dbus_send_credentials_unix_socket): new function
14330
14331         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14332         dbus_accept()
14333         (_dbus_write): only check errno if <0 returned
14334         (_dbus_write_two): ditto
14335
14336 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14337
14338         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14339         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14340         (_dbus_marshal_test):
14341         * dbus/dbus-marshal.h:
14342         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14343         to _dbus_marshal_utf8_string. Also fix some tests.
14344
14345 2002-12-28  Harri Porten  <porten@kde.org>
14346
14347         * configure.in: added check for C++ compiler and a very cheesy
14348         check for the Qt integration
14349
14350         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14351
14352         * qt/Makefile.am: added
14353
14354         * qt/.cvsignore: added
14355
14356         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14357         latter, added #ifdef QT_THREAD_SUPPORT guard.
14358
14359         * dbus/Makefile.am: added missing headers for make dist
14360
14361 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14362
14363         * dbus/Makefile.am: fixup export-symbols-regex.
14364
14365 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14366
14367         * acinclude.m4: Add this file and put the
14368         PKG_CHECK_MODULE macro in it.
14369
14370 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14371
14372         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14373         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14374         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14375         (_dbus_marshal_test):
14376         Make the demarshalling routines align the pos argument.
14377         Add string marshalling tests and fix the obvious bugs
14378         discovered.
14379
14380 2002-12-26  Havoc Pennington  <hp@pobox.com>
14381
14382         * dbus/dbus-auth.c: fixes fixes fixes
14383
14384         * dbus/dbus-transport-unix.c: wire up support for
14385         encoding/decoding data on the wire
14386
14387         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14388         (_dbus_auth_decode_data): append to target string
14389         instead of nuking it.
14390
14391 2002-12-26  Havoc Pennington  <hp@pobox.com>
14392
14393         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14394         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14395         doh
14396
14397         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14398         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14399         now). Main point is because I wanted unpack_uint32 to implement
14400         _dbus_verbose_bytes
14401         (_dbus_verbose_bytes): new function
14402
14403         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14404
14405         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14406         mechanism to handle a corrupt message stream
14407         (_dbus_message_loader_new): fix preallocation to only prealloc,
14408         not prelengthen
14409
14410         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14411         (_dbus_string_test): enhance tests for copy/move and fix the
14412         functions
14413
14414         * dbus/dbus-transport-unix.c: Hold references in more places to
14415         avoid reentrancy problems
14416
14417         * dbus/dbus-transport.c: ditto
14418
14419         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14420         leak reference count in no-message case
14421
14422         * test/watch.c (do_mainloop): handle adding/removing watches
14423         during iteration over the watches. Also, ref the connection/server
14424         stored on a watch, so we don't try to mangle a destroyed one.
14425
14426         * dbus/dbus-transport-unix.c (do_authentication): perform
14427         authentication
14428
14429         * dbus/dbus-auth.c (get_state): add a state
14430         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14431         (_dbus_auth_get_unused_bytes): append the unused bytes
14432         to the passed in string, rather than prepend
14433
14434         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14435         the auth conversation DBusAuth
14436
14437         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14438         (_dbus_transport_new_for_domain_socket): when creating a
14439         transport, pass in whether it's a client-side or server-side
14440         transport so we know which DBusAuth to create
14441
14442 2002-12-03  Havoc Pennington  <hp@pobox.com>
14443
14444         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14445         _after_ finalizing the derived members
14446         (unix_connection_set): unref watch if we fail to add it
14447
14448         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14449         transport first, so that the connection owned by the
14450         transport will be valid as the transport finalizes.
14451
14452         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14453         if necessary, and remove watches from the connection.
14454
14455         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14456
14457 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14458
14459         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14460         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14461         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14462         (_dbus_marshal_test):
14463         * dbus/dbus-marshal.h:
14464         Add string marshal functions and have the demarshal functions
14465         return the new position.
14466
14467 2002-12-25  Havoc Pennington  <hp@pobox.com>
14468
14469         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14470         it is a simple protocol that just maps directly to SASL.
14471
14472         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14473         initial implementation, not actually used yet.
14474
14475         * dbus/dbus-string.c (_dbus_string_find): new function
14476         (_dbus_string_equal): new function
14477         (_dbus_string_base64_encode): new function
14478         (_dbus_string_base64_decode): new function
14479
14480 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14481
14482         * dbus/Makefile.am:
14483         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14484         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14485         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14486         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14487         * dbus/dbus-marshal.h:
14488         * dbus/dbus-protocol.h:
14489         * dbus/dbus-test.c: (main):
14490         * dbus/dbus-test.h:
14491         Add un-optimized marshalling/demarshalling routines.
14492
14493 2002-12-25  Harri Porten  <porten@kde.org>
14494
14495         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14496
14497 2002-12-24  Zack Rusin  <zack@kde.org>
14498
14499         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14500         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14501         main loop stuff
14502
14503 2002-12-24  Havoc Pennington  <hp@pobox.com>
14504
14505         * glib/dbus-gthread.c: fix include
14506
14507         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14508         I think glib API needs to change, though, as you don't
14509         want to use DBusMessageFunction, you want to use the
14510         DBusMessageHandler object. Probably
14511         dbus_connection_open_with_g_main_loop()
14512         and dbus_connection_setup_g_main_loop() or something like that
14513         (but think of better names...) that just create a connection
14514         that has watch/timeout functions etc. already set up.
14515
14516         * dbus/dbus-connection.c
14517         (dbus_connection_send_message_with_reply): new function just to
14518         show how the message handler helps us deal with replies.
14519
14520         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14521
14522         * dbus/dbus-string.c (_dbus_string_test): free a string that
14523         wasn't
14524
14525         * dbus/dbus-hash.c: use memory pools for the hash entries
14526         (rebuild_table): be more paranoid about overflow, and
14527         shrink table when we can
14528         (_dbus_hash_test): reduce number of sprintfs and write
14529         valid C89. Add tests for case where we grow and then
14530         shrink the hash table.
14531
14532         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14533
14534         * dbus/dbus-connection.c (dbus_connection_register_handler)
14535         (dbus_connection_unregister_handler): new functions
14536
14537         * dbus/dbus-message.c (dbus_message_get_name): new
14538
14539         * dbus/dbus-list.c: fix docs typo
14540
14541         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14542         an object representing a handler for messages.
14543
14544 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14545
14546         * glib/dbus-glib.h:
14547         * glib/dbus-gthread.c: (dbus_gthread_init):
14548         Don't use the gdbus prefix for public functions.
14549
14550 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14551
14552         * Makefile.am:
14553         * configure.in:
14554         Add GLib checks and fixup .pc files
14555
14556         * glib/Makefile.am:
14557         * glib/dbus-glib.h:
14558         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14559         (gdbus_connection_check), (gdbus_connection_dispatch),
14560         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14561         (dbus_connection_gsource_new):
14562         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14563         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14564         * glib/test-dbus-glib.c: (message_handler), (main):
14565         Add GLib support.
14566
14567 2002-12-15  Harri Porten  <porten@kde.org>
14568
14569         * autogen.sh: check for libtoolize before attempting to use it
14570
14571         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14572         struct.
14573
14574         * .cvsignore: ignore more stamp files
14575
14576         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14577
14578         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14579         without make install.
14580
14581 2002-12-15  Havoc Pennington  <hp@pobox.com>
14582
14583         * dbus/dbus-threads.c: add thread stubs that a higher library
14584         layer can fill in. e.g. the GLib wrapper might fill them in with
14585         GThread stuff. We still need to use this thread API to
14586         thread-safe-ize the library.
14587
14588 2002-12-12  Havoc Pennington  <hp@pobox.com>
14589
14590         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14591         below new interfaces and include fewer system headers.
14592
14593         * dbus/dbus-sysdeps.c (_dbus_read): new function
14594         (_dbus_write): new function
14595         (_dbus_write_two): new function
14596         (_dbus_connect_unix_socket): new function
14597         (_dbus_listen_unix_socket): new function
14598
14599         * dbus/dbus-message-internal.h: change interfaces to use
14600         DBusString
14601
14602 2002-12-11  Havoc Pennington  <hp@pobox.com>
14603
14604         * dbus/dbus-types.h: add dbus_unichar
14605
14606         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14607
14608         * dbus/dbus-connection.c (dbus_connection_send_message): return
14609         TRUE on success
14610
14611         * dbus/dbus-transport.c: include dbus-watch.h
14612
14613         * dbus/dbus-connection.c: include dbus-message-internal.h
14614
14615         * HACKING: add file with coding guidelines stuff.
14616
14617         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14618         handling here, for security purposes (as in vsftpd). Not actually
14619         using this class yet.
14620
14621         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14622         system/libc usage here, as in vsftpd, for ease of auditing (and
14623         should also simplify portability). Haven't actually moved all the
14624         system/libc usage into here yet.
14625
14626 2002-11-25  Havoc Pennington  <hp@pobox.com>
14627
14628         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14629         always print the first verbose message.
14630
14631 2002-11-24  Havoc Pennington  <hp@pobox.com>
14632
14633         * test/echo-client.c, test/echo-server.c: cheesy test
14634         clients.
14635
14636         * configure.in (AC_CHECK_FUNCS): check for writev
14637
14638         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14639         function
14640
14641         * dbus/dbus-list.c (_dbus_list_foreach): new function
14642
14643         * dbus/dbus-internals.c (_dbus_verbose): new function
14644
14645         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14646         representing a server that listens for connections.
14647
14648         * dbus/.cvsignore: create
14649
14650         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14651         public API for reporting errors
14652
14653         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14654         public object representing a connection that
14655         sends/receives messages. (Same object used for
14656         both client and server.)
14657
14658         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14659         Basic abstraction for different kinds of stream
14660         that we might read/write messages from.
14661
14662 2002-11-23  Havoc Pennington  <hp@pobox.com>
14663
14664         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14665         _DBUS_INT_MAX
14666
14667         * dbus/dbus-test.c (main): add list test, and include
14668         dbus-test.h as intended
14669
14670         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14671         (_dbus_hash_table_remove_int): return value indicates
14672         whether the entry existed to remove
14673
14674         * dbus/dbus-list.c: add linked list utility class,
14675         with docs and tests
14676
14677         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14678         array sometimes.
14679
14680 2002-11-23  Havoc Pennington  <hp@pobox.com>
14681
14682         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14683         DBUS_END_DECLS to nothing, that should fix this once and for all
14684
14685         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14686
14687         * dbus/dbus-message.c, dbus/dbus-hash.c:
14688         add some missing @brief
14689
14690 2002-11-23  Havoc Pennington  <hp@pobox.com>
14691
14692         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14693         to avoid confusing Doxygen
14694
14695         * dbus/dbus-hash.c: @} not }@
14696
14697         * dbus/dbus-message.c (struct DBusMessage): split out
14698         internals docs
14699
14700 2002-11-23  Havoc Pennington  <hp@pobox.com>
14701
14702         * configure.in: pile on more warning flags if using gcc
14703
14704         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14705         to document static functions
14706
14707         * configure.in: add summary to end of configure so it
14708         looks nice and attractive
14709
14710         * dbus/dbus-hash.c: finish implementation and write unit
14711         tests and docs
14712
14713         * configure.in: add --enable-tests to enable unit tests
14714
14715         * dbus/dbus-test.c: test program to run unit tests
14716         for all files in dbus/*, initially runs a test for
14717         dbus-hash.c
14718
14719         * dbus/dbus-internals.h: file to hold some internal utility stuff
14720
14721 2002-11-22  Havoc Pennington  <hp@redhat.com>
14722
14723         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14724         "ported" away from Tcl
14725
14726         * dbus/dbus-types.h: header for types such as dbus_bool_t
14727
14728 2002-11-22  Havoc Pennington  <hp@redhat.com>
14729
14730         * dbus/dbus.h: fixups for doc warnings
14731
14732         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14733         macros
14734         (QUIET): make it quiet so we can see warnings
14735
14736         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14737
14738 2002-11-22  Havoc Pennington  <hp@redhat.com>
14739
14740         * Makefile.am: include "Doxyfile" target in all-local
14741
14742         * configure.in: generate the Doxyfile
14743
14744         * Doxyfile.in: move Doxyfile here, so we can use
14745         configure to generate a Doxyfile with the right
14746         version number etc.
14747
14748 2002-11-22  Havoc Pennington  <hp@redhat.com>
14749
14750         * dbus/dbus-message.c: move inline docs into .c file
14751
14752         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14753         so all docs are under doc/
14754         (MAN_EXTENSION): generate man pages. Use extension
14755         ".3dbus" which matches ".3qt" on my system,
14756         I guess this is OK, I don't know really.
14757         (FILE_PATTERNS): look for .c files not .h, makes sense
14758         for plain C I think
14759
14760 2002-11-22  Havoc Pennington  <hp@pobox.com>
14761
14762         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14763         because any app can be a server, and any app can be a client,
14764         the bus is a special kind of server.
14765
14766 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14767
14768         * Doxyfile : adding. Still needs Makefile rules to be generated
14769         automatically (just run "doxygen" in the toplevel dir for now to
14770         generate docs)
14771
14772         * dbus/dbus-message.h : Adding sample docs (javadoc since
14773         resembles gtk-doc a little more)
14774
14775         * dbus/dbus.h : Adding sample docs
14776
14777 2002-11-21  Havoc Pennington  <hp@redhat.com>
14778
14779         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14780         so we can allow ourselves to include files directly,
14781         instead of having to use dbus.h
14782
14783         * dbus/dbus.h: fill in
14784
14785         * dbus/dbus-message.h: sketch out a sample header file.
14786         Include griping if you include it directly instead of
14787         via dbus.h
14788
14789         * dbus/dbus-macros.h: new file with macros for extern "C",
14790         TRUE/FALSE, NULL, etc.
14791
14792         * doc/file-boilerplate.c: put include guards in here
14793
14794 2002-11-21  Havoc Pennington  <hp@redhat.com>
14795
14796         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14797
14798         * COPYING: include the GPL as well, and license code
14799         under both AFL and GPL.
14800
14801 2002-11-21  Havoc Pennington  <hp@redhat.com>
14802
14803         * acconfig.h: get rid of this
14804
14805         * autogen.sh (run_configure): add --no-configure option
14806
14807         * configure.in: remove AC_ARG_PROGRAM to make
14808         autoconf complain less. add AC_PREREQ.
14809         add AC_DEFINE third arg.
14810
14811 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14812
14813         * doc/Makefile.am:
14814         Fix references so we can distcheck.
14815
14816 2002-11-21  Havoc Pennington  <hp@redhat.com>
14817
14818         * Initial module creation
14819