2006-10-21 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-10-21  Havoc Pennington  <hp@redhat.com>
2
3         * Move all private API into the private Doxygen group sections of
4         the files, so they don't show up in the public API docs
5         
6 2006-10-21  Havoc Pennington  <hp@redhat.com>
7
8         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
9         dbus_message_iter_get_array_len().
10
11         * throughout: documentation improvements.
12
13 2006-10-20  Havoc Pennington  <hp@redhat.com>
14
15         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
16         matter, and the message-loader-breaker thing since nobody is going
17         to do it.  Add an item to 1.0 about supporting recursive locks
18         in dbus_threads_init_default() though, since it should be easy.
19
20         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
21         Fix this in the !dispatch case to avoid busy-looping after
22         disconnection
23
24         * More misc docs improvements
25
26 2006-10-19  Havoc Pennington  <hp@redhat.com>
27
28         * more Doxygen-related fixes (lots of moving things from the
29         public to internal section in dbus-connection.c)
30
31 2006-10-19  Havoc Pennington  <hp@redhat.com>
32
33         * Fix a pile of Doxygen warnings and missing docs
34
35 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
36
37         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
38         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
39         instead of a void *.  kqueue uses this to get the context's loop
40         while the other modules ignore the parameter.  This allows us to
41         avoid platform conditionals
42
43         * bus/bus.c (process_config_postinit): Pass in the context to the 
44         watch
45
46 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
47
48         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
49         when starting the system bus
50
51 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
52
53         * configure.in: More fixups for cross compile (Patch from 
54         Marco Pracucci <development at pracucci dot com>)
55
56 2006-10-17  Havoc Pennington  <hp@redhat.com>
57
58         * tools/dbus-send.c (main): don't close shared connection, fix
59         from Timo Hoenig
60
61 2006-10-17  Havoc Pennington  <hp@redhat.com>
62
63         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
64
65         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
66         since realistically it doesn't look like we'll be changing it
67         anymore.
68
69 2006-10-17  Havoc Pennington  <hp@redhat.com>
70
71         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
72         be used for return_if_fail type warnings; prefixes the pid, and
73         fatal by default.
74
75 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
76
77         * configure.in: Released 1.0 RC 2(0.94)
78         Add check for -fPIC and enable it if available
79
80 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
81
82         * doc/TODO: Remove the check TODO item
83
84 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
85
86         * dbus-transport-socket.c (exchange_credentials):
87         Print out more detailed errors if reading or sending
88         credentials fail (Patch from Julio M. Merino Vidal 
89         <jmmv at NetBSD dot org>)
90
91 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
92
93         * configure.in: when checking for posix getpwnam_r assume true
94         for cross compiles
95
96 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
97
98         * configure.in: Check for gethostbyname first before we check for it
99         in libnsl.  On gnu systems it is implemeneted 
100
101 2006-10-13  Havoc Pennington  <hp@redhat.com>
102
103         * dbus/dbus-connection.c
104         (dbus_connection_send_with_reply_and_block): fix to handle closed
105         connections, from Tambet Ingo bug #8631
106
107 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
108
109         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
110
111 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
112
113         * test/name-test/Makefile.am: don't link against both libdbus and
114         libdbus-convenience
115
116 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
117
118         * configure.in: check for dirfd even if it is a macro
119         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
120
121 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
122
123         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
124         avoid using dirfd on systems that don't have dirfd 
125         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
126
127 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
128
129         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
130         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
131
132         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
133         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
134         macro because _dbus_abort calls it
135
136         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
137         works
138
139 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
140
141         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
142         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
143
144 2006-10-02  Thiago Macieira  <thiago@kde.org>
145
146         * tools/dbus-launch.c (main): make it complain and abort
147         execution in case an unknown option is given. Also, process
148         the '--' argument as the end of arguments.
149
150 2006-10-01  Havoc Pennington  <hp@redhat.com>
151
152         * tools/dbus-launch.c (print_variables): if no syntax is given,
153         don't print something that's sort-of-half-sh-syntax, just print
154         a plain key-value pairs thing.
155
156         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
157         the local machine representation (but still have the hostname in
158         the display). Remove the hostname from the display if it is
159         localhost. Change session files to be named
160         ~/.dbus/session-bus/machine-display. Change X atoms to be
161         underscore-prefixed so nobody whines about ICCCM compliance.
162         Otherwise name them the same as the env variables.
163         Change session file format to include key-value pairs and an
164         explanatory comment. Keys are the same as the env variables.
165         (set_address_in_x11): X property format can't depend on
166         sizeof(pid_t) on a particular machine, fix to always be 32 bits
167
168         * tools/dbus-launch.c: make --autolaunch take a machine id
169         argument. If --autolaunch is used with a program to run, complain
170         for now (but add a FIXME). Also, don't look for existing bus if 
171         there's a program to run (but add a FIXME).
172
173         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
174         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
175         just to get this, and avoids duplicating uuid-reading code).
176
177         * tools/dbus-launch.1: clarify various things
178         
179 2006-10-01  Havoc Pennington  <hp@redhat.com>
180
181         * test/test-service.c (path_message_func): remove broken extra
182         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
183
184         * test/test-shell-service.c (path_message_func): same fix
185         
186         * dbus/dbus-connection.c
187         (_dbus_connection_get_dispatch_status_unlocked): break up the
188         function a little for clarity and fix the notification of
189         dbus-bus.c to not require dispatch to be complete
190
191         * dbus/dbus-connection.c (dbus_connection_unref): improve the
192         warning when you try to finalize an open connection.
193         
194 2006-10-01  Havoc Pennington  <hp@redhat.com>
195
196         * dbus/dbus-bus.c
197         (internal_bus_get): only weak ref the connection; this means 
198         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
199         called safely in any context
200         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
201         unref
202
203         * dbus/dbus-connection.c
204         (_dbus_connection_get_dispatch_status_unlocked): move
205         _dbus_bus_notify_shared_connection_disconnected_unlocked here
206         when queuing Disconnected instead of when the Disconnected message
207         arrives, so dbus_bus_get() won't return closed connections.
208         
209 2006-10-01  Havoc Pennington  <hp@redhat.com>
210
211         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
212         Add a hack to make DBusNewConnectionFunction work right.
213
214         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
215         the hack here. Also, fix the todo about refcount leak.
216         
217         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
218         and use the hack here
219         
220         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
221         "shareable" flag; this was completely broken, since it meant 
222         dbus_connection_open() returned a connection of unknown
223         shared-ness. Now, we always hold a ref on anything opened 
224         as shareable.
225
226         Move the call to notify dbus-bus.c into
227         connection_forget_shared_unlocked, so libdbus consistently forgets
228         all its knowledge of a connection at once. This exposed numerous
229         places where things were totally broken if we dropped a ref inside
230         get_dispatch_status_unlocked where
231         connection_forget_shared_unlocked was previously, so move
232         connection_forget_shared_unlocked into
233         _dbus_connection_update_dispatch_status_and_unlock. Also move the
234         exit_on_disconnect here.
235
236         (shared_connections_shutdown): this assumed weak refs to the
237         shared connections; since we have strong refs now, the assertion 
238         was failing and stuff was left in the hash. Fix it to close
239         still-open shared connections.
240         
241         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
242         debug pipe connections
243         
244         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
245         dbus-bus.c if the closed connection is in fact shared
246         (_dbus_connection_close_possibly_shared): rename from 
247         _dbus_connection_close_internal
248         (dbus_connection_close, dbus_connection_open,
249         dbus_connection_open_private): Improve docs to explain the deal
250         with when you should close or unref or both
251
252         * dbus/dbus-bus.c
253         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
254         from _dbus_bus_check_connection_and_unref_unlocked and modify to
255         loop over all connections
256
257         * test/test-utils.c (test_connection_shutdown): don't try to close
258         shared connections.
259
260         * test/name-test/test-threads-init.c (main): fix warnings in here
261
262         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
263         env variable to cause blocking waiting for gdb; drop
264         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
265         unconditionally.
266
267         * configure.in: add -export-dynamic to libtool flags if assertions enabled
268         so _dbus_print_backtrace works.
269
270         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
271         instead of _dbus_verbose to print the backtrace, and diagnose lack 
272         of -rdynamic/-export-dynamic
273         
274 2006-09-30  Havoc Pennington  <hp@redhat.com>
275
276         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
277         (internal_bus_get): fix screwy code formatting. whoever committed
278         that was not paying attention!
279
280 2006-09-30  Havoc Pennington  <hp@redhat.com>
281
282         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
283         reflect addition of interfaces.
284
285         * doc/dbus-specification.xml: describe a new
286         org.freedesktop.DBus.Peer.GetMachineId method
287
288         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
289         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
290         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
291         at end of skip_white
292         (_dbus_string_chop_white): new function
293
294         * bus/connection.c (bus_connections_setup_connection): call
295         dbus_connection_set_route_peer_messages.
296
297         * dbus/dbus-connection.c
298         (_dbus_connection_peer_filter_unlocked_no_update): modify to
299         support a GetMachineId method.
300
301         Also, support a new flag to let the bus pass peer methods through
302         to apps on the bus, which can be set with
303         dbus_connection_set_route_peer_messages.
304
305         Finally, handle and return an error for anything unknown on the
306         Peer interface, which will allow us to extend the Peer interface
307         in the future without fear that we're now intercepting something
308         apps were wanting to see.
309         
310         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
311         dbus/dbus-uuidgen.c
312
313         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
314         binary here, since most of the code is already in libdbus
315
316         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
317         uuid from the system config file
318
319         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
320         (_dbus_read_uuid_file_without_creating) 
321         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
322         uuid-related functions, partly factored out from dbus-server.c
323
324         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
325         DBUS_ERROR_FILE_EXISTS instead of EEXIST
326
327         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
328
329         * tools/dbus-cleanup-sockets.1: explain what the point of this
330         thing is a bit more
331
332         * autogen.sh (run_configure): add --config-cache to default
333         configure args
334
335         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
336         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
337
338         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
339         don't try to save address, fixes crash in make check
340         
341 2006-09-30  Thiago Macieira  <thiago@kde.org>
342
343         * configure.in: add DBUS_BINDIR as a #define to C source code.
344
345         * tools/dbus-launch.c
346         * tools/dbus-launch.h
347         * tools/dbus-launch-x11.c:
348         * tools/dbus-launch.1: Add the --autolaunch option to
349         dbus-launch, which makes it scan for an existing session
350         started with --autolaunch. With that option, it also creates
351         an X11 window and saves the bus address and PID to it.
352
353         * dbus/dbus-sysdeps.h:
354         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
355         a function that runs "dbus-launch --autolaunch" to retrieve
356         the running D-Bus session address (or start one if none was running)
357
358         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
359         address protocol, which tries to get the running session from
360         dbus-launch.
361
362         * dbus/dbus-bus.c:
363         * dbus/dbus-internals.h: Make "autolaunch:" be the default
364         D-Bus session bus address.
365
366         * dbus/dbus-connection.c: Fix horrible typo in error message.
367
368 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
369
370         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
371
372 2006-09-17  Havoc Pennington  <hp@redhat.com>
373
374         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
375         fix so that if unix_user_function is set on windows, we still
376         do the default check that the auth identity matches the bus identity
377
378 2006-09-16  Havoc Pennington  <hp@redhat.com>
379
380         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
381         to _dbus_transport_open_platform_specific,
382         _dbus_transport_open_socket,
383         and _dbus_transport_open_debug_pipe
384
385         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
386
387 2006-09-16  Havoc Pennington  <hp@redhat.com>
388
389         Attempt auditing public API to remove all cases where a Unix
390         function returns weird emulated goo to Windows. This probably 
391         breaks the bus daemon on Windows, to fix it again we may 
392         need to stop processing unix-specific config options on Windows,
393         and may need to add Windows-specific public API or config options.
394         
395         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
396         to reflect added interfaces; should not break soname.
397         
398         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
399         not invoke unix user function on Windows. Kind of a hacky fix, but 
400         we don't want a "unix uid" leaking out on Windows.
401
402         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
403         to get the socket fd on Windows or UNIX
404         (dbus_connection_get_unix_fd): make this always fail on Windows
405
406 2006-09-16  Havoc Pennington  <hp@redhat.com>
407
408         * dbus/dbus-server.c (dbus_server_listen): change how this works
409         to be able to delegate to a set of handlers that can succeed,
410         fail, or choose not to handle. Allows us to have 
411         dbus_server_listen_platform_specific.
412
413         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
414         factor out the tcp socket stuff to be used on windows, leaving
415         unix domain socket only in dbus-socket-unix.c
416
417         * dbus/dbus-transport-socket.c
418         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
419         stuff to be used on windows, leaving unix domain socket only 
420         in dbus-transport-unix.c
421
422         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
423         temporary hack to be sure this fails on windows
424         (dbus_connection_get_unix_process_id): ditto
425
426 2006-09-16  Havoc Pennington  <hp@redhat.com>
427
428         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
429         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
430         _dbus_open_socket so the domain/type/protocol from system headers
431         are not required. This is kind of pointless though unless we move
432         part of _dbus_connect_tcp_socket into sysdeps.c instead of
433         sysdeps-unix.c, which would mean adding a wrapper around
434         bind/listen/etc.
435         Also, add DBusError to the socket-opening functions so they 
436         don't require use of errno.
437
438 2006-09-16  Havoc Pennington  <hp@redhat.com>
439
440         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
441         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
442
443         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
444         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
445         functions specifically for sockets only, and move generic 
446         read/write/open/close into unix-specific code.
447
448 2006-09-14  Havoc Pennington  <hp@redhat.com>
449
450         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
451         complaint about accessing revents when poll returns 0, from Julian Seward.
452
453 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
454
455         * Released 1.0 RC 1 (0.93) 
456
457 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
458
459         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
460         use _dbus_close instead of close
461
462 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
463
464         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
465         credentials.  Fixes "external" authentication under e.g. NetBSD
466         which does not support any other socket credentials mechanism.
467         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
468
469 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
470
471         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
472         dbus_threads_init and be used by the dbus mutex functions to
473         avoid deadlocks.
474
475         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
476
477 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
478
479         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
480         use threadsafe readdir_r instead of readdir
481
482 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
483
484         * dbus-threads.c (dbus_threads_init_default): New method for
485         initializing the internal thread implementation (Patch from
486         Alexander Larsson <alexl at redhat dot com>)
487
488 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
489
490         * remove a bunch of todo items from the 1.0 list
491
492 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
493
494         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
495         key not found
496
497 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
498
499         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
500         complex debugging code
501
502         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
503         between the test suite ifdefs
504         (_dbus_verbose_bytes): return if verbosity is not enabled 
505
506 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
507
508         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
509         remove DBusMark
510
511 2006-09-10  Havoc Pennington  <hp@redhat.com>
512
513        patch mostly by Peter Kümmel, bug #8211
514         
515         * dbus/dbus-sysdeps-unix.c: new file, which splits out
516         unix-specific stuff in dbus-sysdeps.c
517
518         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
519         and move unix-specific stuff to dbus-sysdeps-unix.c
520
521         * configure.in: check HAVE_ERRNO_H
522         
523 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
524
525         * bus/test-main.c (main): Initialize threading during tests
526
527         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
528         Unlock connection on error
529         (generate_local_error_message): static method for generating
530         an error message when we don't have a message to reply to
531         (_dbus_connection_block_pending_call): Send a disconnect error
532         instead of just a timeout (NULL) when the bus gets disconnected
533         while blocking for a reply.
534         
535 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
536
537         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
538         filters (Patch from Kimmo Hämäläinen 
539         <kimmo dot hamalainen at nokia dot com>)
540
541 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
542
543         * dbus/dbus-connection-internal.h: Add prototype for 
544         _dbus_connection_test_get_locks to remove warning
545
546 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
547
548         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
549         close child_err_report_pipe[WRITE_END] on exec (Patch from 
550         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
551
552 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
553
554         * Clean up close calls to use _dbus_close (Patch from 
555         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
556
557 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
558
559         * doc/TODO:
560         - Remove pending call locking todo item
561         - dbus_connection_open now holds hard ref.  Remove todo item
562         - do proper locking on _dbus_bus_check_connection_and_unref
563           and handle DBUS_BUS_STARTER. Remove todo item
564         - Warn on closing of a shared connection.  Remove todo item
565
566         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
567         dbus/dbus-connection.c: Use the dbus_connection_close_internal
568         so we don't get the warning when closing shared connections
569
570         * test/test-service.c, test/test-shell-service.c: Applications
571         don't close shared connections themselves so we unref instead of
572         close
573
574         * test/test-utils.c (test_connection_shutdown): Close the connection
575
576         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
577         _dbus_bus_check_connection_and_unref_unlocked since we only call this
578         method on a locked connection.  
579         Make sure we call _dbus_connection_unref_unlocked instead of 
580         dbus_connection_unref also.
581         Handle DBUS_BUS_STARTER correctly
582
583         * dbus/dbus-connection.c (connection_record_shared_unlocked):
584         Mark as shared and hard ref the connection
585         (connection_forget_shared_unlocked): Remove the hard ref from the 
586         connection
587         (_dbus_connection_close_internal_and_unlock):  New internal function
588         which takes a locked connection and unlocks it after closing it
589         (_dbus_connection_close_internal): New internal function which acts
590         like the origonal dbus_connection_close method by grabbing a connection
591         lock and calling _dbus_connection_close_internal_and_unlock
592         (dbus_connection_close): Public close method, warns when the app
593         trys to close a shared connection
594
595 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
596
597         * bus/driver.c:
598         (bus_driver_generate_introspect_string): New method for populating
599         a DBusString with the introspect data
600         (bus_driver_handle_introspect): Move introspect generation code to 
601         bus_driver_generate_introspect_string
602
603         * bus/main.c:
604         (introspect): New function which prints out the intropect data and
605         exits
606         (main): Add a --introspect switch
607
608 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
609
610         * doc/TODO: Removed dtd publishing item.  
611         It seems the dtd has already been added at
612         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
613
614 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
615
616         * doc/TODO, various source files: Audited todo's and FIXME's and
617         prepended the ones we should be looking at with 1.0.  Those
618         prepended with 1.0? need clerification or might not be needed
619         for 1.0
620
621 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
622
623         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
624         NULL in the public API (Patch from Kimmo Hämäläinen 
625         <kimmo dot hamalainen at nokia dot com>)
626
627 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
628
629         * configure.in: Fix for OS-X compile time endian issues (patch from
630         Benjamin Reed <ranger at befunk dot com>)
631
632 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
633
634         * configure.in: Check for no-common compiler flag (OS-X fix from
635         Benjamin Reed <ranger at befunk dot com>)
636
637 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
638
639         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
640         <fcrozat at mandriva dot com>)
641
642 2006-08-29  Havoc Pennington  <hp@redhat.com>
643
644         * test/test-service.c (path_message_func): fix lack of return value
645
646         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
647         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
648         any more sense than on anything else in this file.
649         (_dbus_get_tmpdir): add const to return value, and keep the
650         results of the various getenv around in a static variable.
651
652 2006-08-29  Havoc Pennington  <hp@redhat.com>
653
654         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
655         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
656
657 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
658
659         * test/Makefile.am: change find to use syntax that works with non
660         gnu versions of find
661
662 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
663
664         * dbus/dbus-transport.c: fix invalid deref when checking if
665         a vtable method exists (Patch from Christian Ehrlicher 
666         <ch dot ehrlicher at gmx dot de>)
667
668 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
669
670         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
671         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
672         to build with builddir != srcdir (Taken from a patch by Bernard Leak
673         <bernard at brenda-arkle dot demon dot co dot uk>)
674
675 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
676
677         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
678         default case
679
680 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
681
682         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
683         it works on any system providing this interface, not only FreeBSD.
684         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
685
686 2006-08-20  Havoc Pennington  <hp@redhat.com>
687
688         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
689         the docs
690
691 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
692
693         * Released 0.92 
694
695 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
696
697         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
698         to reflect the init late change
699
700         * bus/bus.c (bus_context_new): Check user before we fork so we can
701         print out an error message a user will be able to see
702
703 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
704
705         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
706
707         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
708         Add two more global locks for use on windows platforms.  These are
709         unused on non-windows platforms but are not ifdefed out to avoid
710         potential bugs (i.e. the few bytes lost does not warrent the extra
711         maintanence and complexity that having seperate sets of locks would
712         cause)
713
714 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
715
716         * bus/services.c (bus_registry_acquire_service): Return an error
717         when an application tries to register the org.freedesktop.DBus Bus Name
718
719         * bus/services.c (bus_registry_release_service): Return an error
720         when an application tries to release the org.freedesktop.DBus Bus Name
721
722 2006-08-17  Alp Toker  <alp@atoker.com>
723
724         * doc/dbus-specification.xml: Fix some minor typos.
725
726 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
727
728         * configure.in: use $with_init_scripts instead of $operating_system
729         to determine where to store the pid since the init scripts manipulate 
730         the pid file (patch from Marcelo Ricardo Leitner 
731         <marcelo dot leitner at terra dot com dot br>.  
732
733 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
734
735         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
736         static DBusList *uninitialized_condvar_list to support new late 
737         initialization threading model.  In this model threads can be initialized
738         even after the D-Bus API has been used but still needs to be initialized 
739         before the second thread has been started.  Mutexes and condvar addresses
740         are stored in the two static lists and are replaced with actuall locks
741         when threads are initalized.
742         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
743         the location into the static list
744         (_dbus_mutex_free_at_location): New method for removing a mutex location 
745         from the static list and freeing the mutex
746         (_dbus_condvar_new_at_location): New method for creating a conditional 
747         variable and placing the location into the static list
748         (_dbus_condvar_free_at_location): New method for removing a conditional
749         variable location from the static list and freeing the conditional variable 
750         (init_uninitialized_locks): Atomic method which goes through the static 
751         lists of mutex and condvar location and updates them with actuall locks
752         (init_global_locks): changed to init_locks
753         
754         * dbus/dbus-connection.c:
755         (_dbus_connection_test_get_locks): New method for tests to check connections
756         (_dbus_connection_new_for_transport): Use the new at_location mutex and
757         condvar API
758         (dbus_connection_allocate_data_slot): Pass in the global lock address
759         to _dbus_data_slot_allocator_alloc
760
761         * dbus/dbus-dataslot.c:
762         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
763         instead of the mutex itself
764
765         * dbus/dbus-message.c:
766         (dbus_message_allocate_data_slot): Pass in the global lock address
767         to _dbus_data_slot_allocator_alloc
768
769         * dbus/dbus-pending-call.c:
770         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
771         to _dbus_data_slot_allocator_alloc
772
773         * dbus/dbus-server.c:
774         (_dbus_server_init_base): Use the new at_location mutex API
775         (dbus_server_allocate_data_slot): Pass in the global lock address
776         to _dbus_data_slot_allocator_alloc
777
778         * test/name-test/test-threads-init.c: New test case for late thread
779         initialization
780
781 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
782
783         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
784         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
785         causes compile problems when asserts are turned off
786         Keeping _dbus_warn for printing out the message so even if
787         asserts are turned off the user gets the messages that something is 
788         wrong 
789
790 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
791
792         Patches by Kjartan Maraas <kmaraas at gnome dot org>
793
794         * bus/services.c (bus_service_list_queued_owners):
795         Add a pointer cast to fix compiler warning
796
797         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
798         return a NULL instead of FALSE since the return type
799         is not expecting a boolean
800
801         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
802         Remove unused variable
803
804         * dbus/dbus-marshal-recursive-util.c (node_new):
805         return a NULL instead of FALSE since the return type
806         is not expecting a boolean
807
808         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
809         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
810         because we are expecting a pointer not a boolean
811
812         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
813         add void as the parameter so some compilers
814         don't complain
815
816         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
817           _dbus_transport_new_for_tcp_socket):
818         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
819         because we are expecting a pointer not a boolean
820
821         * test/shell-test.c (test_command_line):
822         cast the second argument to _dbus_list_append to avoid compiler
823         warnings
824
825         * test/test-names.c (main): remove unused variable
826
827         * test/test-service.c (check_hello_from_self_reply):
828         Initialize echo_message and echo_reply to NULL
829         
830         * test/test-shell-service.c (handle_echo):
831         Remove unused variable and cast the third parameter passed to
832         dbus_connection_get_object_path_data to avoid compiler warrnings
833
834         * test/name-test/test-names.c (clear_message_queue):
835         Remove unused function
836
837         * test/name-test/test-pending-call-dispatch.c:
838         Fix format string in printf
839
840
841 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
842
843         * dbus/dbus-bus.c:
844         * test/name-test/test-names.c:
845         Remove test method dbus_bus_connection_get_unique_name because 
846         we already have public method dbus_bus_get_unique_name that 
847         does the exact same thing
848
849 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
850
851         * dbus/dbus-signature.c:
852         fix typos in Julio's previous patch which cause make check to fail
853
854 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
855
856         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
857         In any case it was wrong since this is a test checking to see if
858         address parsing is correct.  There was no need to get the true
859         tmp directory.  
860
861 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
862
863         * dbus/dbus-macros.h: Revert the addition of stddef.h
864         as we should not be adding it to library headers 
865
866 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
867
868         * dbus/dbus-signature.c:
869         Fix the unit tests so that they work if assertions are not enabled.
870         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
871
872 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
873
874         * tools/run-with-tmp-session-bus.sh:
875         * test/name-test/run-test.sh:
876         Remove bashisms (patch from Julio M. Merino Vidal
877         <jmmv at NetBSD dot org>)
878
879 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
880
881         * configure.in: add a version (>= 2.6.0) check for libxml2
882
883 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
884
885         * configure.in: make sure the compiler supports -Wfloat-equal
886         
887         * bus/dir-watch-dnotify.c: move functional code after 
888         variable declerations (C99 fix)  (patches from Jens Granseuer
889         <jensgr at gmx dot net>
890
891 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
892
893         * dbus/dbus-macros.h:
894         add #include <stddef.h> so that Sun compilers don't complain about
895         the defining NULL
896
897 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
898
899         * dbus/dbus-sysdeps.c:
900         * dbus/dbus-address.c:
901         * bus/activation.c:
902         * test/shell-test.c:
903         don't hardcode tmp directory (patch from Dave Meikle 
904         <dmk at davemeikle dot co dot uk>)
905
906 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
907
908         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
909         Change an assert to a detailed warning and abort.  
910         When allocator->lock != mutex it indicates that the user has failed
911         to initalize threads before using the D-Bus library.  This warning
912         helps the user identify the issue and fix their app.
913
914 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
915
916         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
917         with cleanups of bugs found from Coverity reports:
918
919         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
920         close the file on error to avoid a leak
921
922         * bus/expirelist.c (bus_expire_list_test):
923         Check for NULL on dbus_new0
924
925         * bus/activation.c (update_directory):
926         remove dead code
927
928         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
929         Fix some leaks
930
931         * bus/bus.c (process_config_every_time):
932         Fixed a leak
933
934         * bus/desktop-file.c (parse_key_value):
935         Fixed leak
936
937         * bus/selinux.c (bus_selinux_id_table_insert):
938         Fixed leak
939
940 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
941
942         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
943         remove dead code
944
945 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
946
947         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
948         #!/bin/bash
949
950 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
951
952         * Doxyfile.in: fix the INPUT line so we can generate docs 
953         when sourcedir != builddir (patch from Cygwin Ports maintainer
954         <yselkowitz at users dot sourceforge dot net>
955
956 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
957
958         * dbus/dbus-sysdeps.h:
959         * dbus/dbus-sysdeps.c: 
960         * dbus/dbus-string.c: 
961         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
962         GLib's function which does the same thing
963
964         * configure.in:
965         * bus/Makefile.am:
966         * bus/dir-watch-default.c:
967         * bus/dir-watch-dnotify.c:
968         * bus/dir-watch-kqueue.c:
969         Add kqueue directory watching for freebsd and split the directory
970         watching code into seperate files per method/arch
971         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
972
973 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
974
975         * configure.in:
976         * tools/Makefile.am:
977         * tools/dbus-launch.c:
978         * bus/Makefile.am:
979         allow --with-dbus-daemondir switch to be used to make the
980         daemon install to a seperate bindir like /usr/libexec
981         (patch from Brian Cameron <brian dot cameron at sun dot com)
982
983 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
984
985         * bus/Makefile.am (install-data-hook): removed the slash after 
986         $(DESTDIR) so we don't get the double slash which does not work
987         in windows (patch from Andras Porjesz 
988         <andras dot porjesz at siemens dot com>)
989
990 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
991
992         * dbus/dbus-sysdeps.h:
993         * dbus/dbus-sysdeps.c: 
994           add _dbus_printf_length (patch from Peter Kümmel 
995           <syntheticpp at gmx dot net>)
996
997 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
998
999         * dbus/dbus-internals.c: unistd.h is not used 
1000         (_dbus_verbose_real): only enable verbose printing 
1001         if DBUS_VERBOSE environment var is set to '1'
1002         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1003
1004 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1005
1006         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1007         so we still compile on older gcc (patch from Frederic Peters 
1008         <fpeters at 0d dot be>
1009
1010 2006-08-04  Havoc Pennington  <hp@redhat.com>
1011
1012         * configure.in: add -Wdeclaration-after-statement
1013
1014         * dbus/dbus-connection.c: change all the pending call stuff to
1015         reflect the fact that pending call operations use the connection
1016         lock
1017
1018         * dbus/dbus-pending-call.c: add locking here
1019
1020         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1021         field const consistent with how message field is done
1022
1023 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1024
1025         * s/D-BUS/D-Bus/g
1026
1027 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1028
1029         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1030         <in7y118 at public.uni-hamburg dot de> - fix invalid
1031         read/write reported by valgrind
1032
1033 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1034
1035         * Released 0.91
1036
1037 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1038
1039         * dbus/dbus-connection.c:
1040         (_dbus_connection_attach_pending_call_unlocked):
1041         (connection_timeout_and_complete_all_pending_calls_unlocked):
1042         Make sure we set timeout_added on pending calls to FALSE when
1043         we remove the timeout from the connection
1044
1045 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1046
1047         * Removed some extra bindings stuff lingering around (thanks timo)
1048         * dbus-pendingcall.c (_dbus_pending_call_new): 
1049         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1050         when we tried to take a lock on an already locked connection
1051
1052 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1053
1054         * Released 0.90
1055
1056 2006-07-17  Havoc Pennington  <hp@redhat.com>
1057
1058         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1059         ints, reported by Owen Taylor
1060
1061 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1062
1063         * doc/TODO:
1064         * dbus/dbus-bus.c:
1065         * dbus-errors.c:
1066         * dbus/dbus-marshal-validate.c:
1067           Removed TODO items which were fixed or are no longer relevent
1068
1069 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1070
1071         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1072         Remove stray files from the stripped bindings
1073
1074 2006-07-16  Havoc Pennington  <hp@redhat.com>
1075
1076         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1077         Improve the error message on reply timeout
1078
1079 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1080
1081         * Remove all bindings
1082
1083 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1084
1085         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1086         and set pending_reply out arg to NULL is connection is disconnected
1087         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1088         static method for cleaning up pending calls on disconnect
1089         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1090         calls queued timeouts on disconnect 
1091
1092          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1093         Remove 
1094
1095 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1096
1097         * bus/activation.[ch] (bus_activation_list_services): new function to 
1098         get the list of services that can be activated
1099
1100         * bus/dispatch.c: test coverage for the new bus method
1101         ListActivatableNames
1102
1103         * bus/driver.c: new bus method ListActivatableNames to get the list of
1104         services that can be activated
1105
1106         * doc/dbus-specification.xml: ListActivatableNames method documentation
1107
1108 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1109         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1110         source files
1111
1112 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1113         * dbus/dbus-message-factory.c:
1114         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1115
1116 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1117         * dbus/dbus-connection-internal.h:
1118         * dbus/dbus-connection.c:
1119         * file dbus/dbus-pending-call.c:
1120         * dbus/dbus-pending-call.h:
1121         Make DBusPendingCall an opaque type even to D-Bus internals
1122
1123 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1124
1125         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1126         connection_close
1127
1128         * dbus/dbus-connection.c: include dbus-bus.h
1129         (_dbus_connection_read_write_dispatch): make static
1130
1131 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1132
1133         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1134         function
1135         (dbus_connection_dispatch): On disconnect unref any shared connections
1136
1137         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1138         for cleaning up shared connections on disconnect
1139         (internal_bus_get): get a hard refrence to shared connections when
1140         they are created
1141         
1142         * doc/TODO: Remove items which are no longer relevent or have been fixed
1143         Split 1.0 todo items with a 0.90 freeze todo list
1144  
1145 2006-06-14  Ross Burton  <ross@openedhand.com>
1146
1147         * glib/dbus-gobject.c:
1148         Free a leaking GArray (surely not!) in dbus_g_method_return.
1149
1150 2006-06-14  Ross Burton  <ross@openedhand.com>
1151
1152         * tools/Makefile.am:
1153         * tools/dbus-monitor.c:
1154         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1155         Habacker).
1156         
1157 2006-06-14  Ross Burton  <ross@openedhand.com>
1158
1159         * tools/dbus-print-message.c:
1160         Also print the object path when outputting signals or method calls.
1161
1162 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1163
1164         * qt/src/Makefile.am: install the qdbus.h header.
1165         This allows people to actually use the installed code.
1166
1167 2006-06-12  Ross Burton  <ross@openedhand.com>
1168
1169         * glib/dbus-gproxy.c:
1170         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1171
1172 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1173
1174         * Released 0.62
1175
1176 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1177
1178         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1179         break pedantic builds. Closes bug 6043 (patch approved by
1180         Havoc back in February).
1181
1182 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1183
1184         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1185         that took a QDBusMessage parameter.
1186         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1187         * qt/tools/dbus.cpp: Don't use automatic call because we might
1188         be calling an async method: request a reply.
1189
1190 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1191
1192         * test/qt/*: Update the testcases, including testing the new
1193         functionality of sending null QByteArray and QString over the
1194         bus. Add new headertest test and restore the old
1195         qdbusxmlparser test.
1196
1197 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1198
1199         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1200         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1201
1202         * qt/examples/Makefile.am:
1203         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1204         form.
1205
1206         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1207         QByteArray() (nulls) over the bus.
1208         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1209         the one that has the signature suffix stripped.
1210         * qt/src/qdbusreply.h: Make some methods const.
1211
1212 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1213
1214         Patch from Timo Hoenig <thoenig@suse.de>.
1215
1216         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1217         required during build to EXTRA_DIST.
1218         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1219         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1220         * configure.in: Fix "make dist", take care that the Makefile for
1221         qt/dbus is being generated.
1222
1223 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1224
1225         * bus/bus.c: Fix eavesdropping on method calls
1226
1227 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1228
1229         * configure.in:
1230         * dbus/dbus-userdb-util.c:
1231         Add Solaris console owner patch from Artem Kachitchkine
1232
1233 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1234
1235         * qt/Makfile.am:
1236         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1237         reorganisation. Thanks to Timo Hoenig for pointing this out.
1238
1239 2006-06-06  Robert McQueen  <robot101@debian.org>
1240
1241         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1242           call to dbus_g_type_get_struct.
1243
1244 2006-06-06  Robert McQueen  <robot101@debian.org>
1245
1246         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1247           pointers were put into a GPtrArray-based specialised collection, and
1248           then freed along with the array. GValues which you add into
1249           collections or maps which have the NOCOPY flag set are assumed to not
1250           belong to the caller, so rather than the existing pointer-stealing
1251           semantics, they are copied instead. Given that the main consumers of
1252           this abstraction are the bindings themselves, I don't think this is
1253           too bad, but others should watch their choice of take vs set_static.
1254
1255 2006-06-06  Robert McQueen  <robot101@debian.org>
1256
1257         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1258           of g_slist_prepend not being used. Fixed copying of slist-based
1259           specialised collections, then wrote a test case and found that it was
1260           all broken. Went on to fix iterating and appending too. Good thing
1261           nobody uses this code yet.
1262
1263 2006-06-06  Robert McQueen  <robot101@debian.org>
1264
1265         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1266           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1267           are discarded without unsetting, so it makes no difference whether
1268           we take or set_static). Remove cases for G_TYPE_POINTER because
1269           there really is nothing useful we can do with them in our
1270           specialised types - we *need* boxed copy/free functions at the very
1271           least.
1272
1273 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1274
1275         * qt/dbus: Add directory. I had forgotten to add this
1276         yesterday after the move...
1277
1278         * qt/examples/Makefile.am:
1279         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1280
1281         * qt/tools/Makefile.am:
1282         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1283         Added feature to get and set properties.
1284         Added validation of service, object path and interface names.
1285
1286         * qt/tools/dbusidl2cpp.cpp: Two new features:
1287         1) Allow specifying both the header and the source file names,
1288         by separating them with a colon.
1289         2) Don't write an interface output if the -p switch wasn't
1290         given, but the -a was.
1291
1292         * qt/src/*: Fix usage of Iterators and ConstIterators.
1293         Fix shadowing of variables by other variables (-Wshadow).
1294         Fix keyword-cleanliness in headers.
1295         Fix ASCII-cast (QLatin1String, QLatin1Char).
1296         Fix validation of member names.
1297         Add extra checking of introspection data during XML parsing.
1298         Various bug fixes.
1299
1300 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1301
1302         * dbus/Makefile.am:
1303         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1304         qt/dbus/qdbus.h now.
1305
1306 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1307
1308         * configure.in: Make --disable-qt actually do
1309           something. Patch inspired by Zack Rusin.
1310
1311 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1312
1313         * qt/: Update to Subversion r548032.
1314         This includes a big reorganisation of the files inside the
1315         subdir.
1316
1317 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1318
1319         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1320         clear:  
1321         "Failed to connect to socket <host>:<port> <error>" instead of
1322         "Failed to connect to socket <host>: <error>:<port>"
1323
1324         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1325         for a tcp transport. 
1326
1327 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1328
1329         * qt/*: Update the QtDBus bindings up to revision 546310 in
1330         Subversion.
1331         This adds the dbuscpp2xml tool, that parses a C++ header and
1332         outputs a D-BUS Introspection XML.
1333
1334 2006-05-21  Havoc Pennington  <hp@redhat.com>
1335
1336         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1337         is not NULL when it shouldn't be. Also a couple of possible fixes
1338         for #4637 though I don't understand why the bug happens, to be
1339         honest... also the object constructor has an assert name != NULL
1340         and the name is only currently NULL for peer-to-peer proxies that 
1341         I don't think anyone uses? So it should be asserting.
1342         Anyway, for now at least see if we get an earlier assertion failure.
1343
1344         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1345         apparently broken code to be sure the tests fail and someone 
1346         will fix them...
1347
1348 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1349
1350         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1351         and arrays when they had a single element: has_next returns
1352         false, even before you read the element. So, instead, check
1353         the array length.
1354
1355 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1356
1357         * qt/qdbusmessage.cpp:
1358         * qt/qdbustypehelper_p.h:
1359         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1360         the list is a const-reference
1361
1362 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1363
1364         * Adding old doc patch that never got applied
1365         
1366         * dbus/bus.c (dbus_bus_add_match): Add documentation
1367
1368         * doc/dbus-specification.xml: Add documentation for the match rules
1369           and the AddMatch and RemoveMatch methods
1370
1371 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1372
1373         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1374         call (r535506)
1375
1376         * qt/dbusidl2cpp.cpp:
1377         * qt/qdbusabstractadaptor.cpp:
1378         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1379         sibling of the QDBusAbstractAdaptor objects instead of the
1380         parent. (r535848)
1381
1382         * qt/dbusidl2cpp.cpp:
1383         * qt/qdbusabstractinterface.cpp:
1384         * qt/qdbusabstractinterface.h:
1385         * qt/qdbusabstractinterface_p.h:
1386         * qt/qdbusinterface.cpp: Make properties in interfaces
1387         actually work. The code that was generated would not compile,
1388         due to moc calls to functions that did not exist. They now
1389         shall. (r536571)
1390
1391 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1392
1393         * Makefile.am:
1394         * configure.in:
1395         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1396         Thanks to Brad Hards for providing the patch
1397
1398 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1399
1400         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1401         call. (r535506)
1402
1403 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1404
1405         * qt/examples/dbus.cpp: Enhance error messages and use
1406         QDBusInterfacePtr.
1407
1408 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1409
1410         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1411         and disable the copy operators. (r533772, r534746)
1412
1413         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1414
1415         * qt/qdbusabstractinterface.cpp:
1416         * qt/qdbusabstractinterface.h: Change the default call mode to
1417         not use the event loop. Add convenience call() methods that
1418         take a CallMode parameter. (r534042)
1419
1420         * qt/qdbusconnection.h: Change the default call mode to not
1421         use the event loop. (r534042)
1422
1423         * qt/qdbusinterface.cpp:
1424         * qt/qdbusinterface.h: Add a method to tell us if the
1425         interface is valid (since we don't return a null pointer
1426         anymore) (r534099)
1427
1428         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1429         (r534101)
1430
1431         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1432         function in two so taht we get the chance to introspect
1433         without having a QDBusMessage (r534102)
1434
1435         * qt/qdbusbus.h:
1436         * qt/qdbusconnection.cpp:
1437         * qt/qdbusconnection_p.h:
1438         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1439         avoid a round-trip to the server when attempting to introspect
1440         one of our own objects. Also make sure the filter functions
1441         match the empty interface as well. (r534108)
1442         Don't keep the connection names. Instead, trust the unique
1443         connection name (r534111)
1444         Remove event loop usage (r534112)
1445
1446 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1447
1448         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1449         Brad Hards.
1450
1451 2006-04-28  Robert McQueen  <robot101@debian.org>
1452
1453         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1454         any order, making it easier for people who inherit from this
1455         object.
1456
1457 2006-04-28  Robert McQueen  <robot101@debian.org>
1458
1459         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1460         of memory from within pointer arrays and lists. Fixes bug #6300.
1461
1462 2006-04-28  Robert McQueen  <robot101@debian.org>
1463
1464         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1465         generating struct signatures. Fixes bug #6083.
1466
1467 2006-04-28  Robert McQueen  <robot101@debian.org>
1468
1469         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1470         to qdbusconnection_p.moc.
1471
1472 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1473
1474         * README, INSTALL: Doc fixes
1475         Patch from Brad Hards <bradh at frogmouth.net>
1476
1477 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1478
1479         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1480         the dynamic meta object. No need to guess which interface to
1481         call.
1482
1483 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1484
1485         * qt/qdbusconnection_p.h:
1486         * qt/qdbusmetaobject.cpp:
1487         * qt/qdbusmetaobject_p.h:
1488         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1489         for the dynamic meta object. No need to guess which
1490         interface to call.
1491         * qt/qdbusabstractinterface_p.h:
1492         * qt/qdbusconnection.cpp:
1493         * qt/qdbusintegrator.cpp:
1494         * qt/qdbusinterface.cpp:
1495         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1496         Add a QDBusRef that looks and behaves like DCOPRef.
1497
1498 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1499
1500         * dbus/dbus-connection.c: Interfaces are optional in method
1501         calls, so don't give up if the interface parameter is NULL.
1502         Patch reviewed by Havoc Pennington.
1503
1504 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1505
1506         * qt/qdbusreply.h: Add default constructor and operator=
1507           (r532625)
1508         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1509           in public headers (r532952)
1510         * qt/qdbusabstractinterface.cpp:
1511         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1512           make it the default (r532951)
1513
1514 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1515
1516         * dbus/dbus-connection.c: Fix asserts
1517         Patch from Tim Moloney <t.moloney at verizon.net>
1518
1519 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1520
1521         * mono/Connection.cs, mono/Message.cs: Check Target type
1522         Patch from Aaron Bockover (abockover at novell.com)
1523
1524 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1525
1526         * INSTALL: fine-tune the requirements for the Qt4 binding.
1527
1528 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1529
1530         * tools/dbus-print-message.c: Added support for printing of all 
1531           remaining data types. Fixed logic for indentation of compound
1532           data types.
1533         
1534 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1535
1536         * INSTALL: fill out content of file providing DBus specific
1537           build installations, followed by generic Auto* INSTALL file
1538           content
1539         
1540 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1541
1542         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1543           Patch by Stefan Eilers. (r529537)
1544
1545 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1546
1547         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1548           contents (r528208)
1549
1550 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1551
1552         * qt/Makefile.am: fix the dependency for
1553           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1554           not in qdbusconnection.cpp.
1555           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1556           spotting this.
1557
1558 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1559
1560         * qt/examples/listnames.cpp:
1561         * qt/examples/Makefile.am: Three ways to list the names on the
1562           bus.
1563
1564 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1565
1566         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1567           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1568
1569 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1570
1571         Merge from Subversion:
1572         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1573           something that exists (r526315)
1574         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1575           slots/signals (r526316)
1576         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1577           also return an unknown-method error if the parameters don't
1578           match for org.freedesktop.DBus.Properties. (r526842)
1579         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1580         * qt/qdbusintegrator.cpp: Restore the proper order of
1581           delivery: don't make method returns be delivered on priority
1582           (r528150)
1583
1584 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1585
1586         * configure.in qt/Makefile.am: add qt/examples
1587         * qt/examples: Add QtDBus example programs:
1588           - hello: Hello, World
1589           - ping: Simple method-calling program
1590           - pong: Simple object-exporting program (not using adaptors)
1591           - complexping: Interactive method-calling program 
1592                 (also gets and sets properties).
1593           - complexpong: Sample program exporting methods, signals and
1594                 properties, using adaptors.
1595           - dbus: Simple implementation of a generic method-calling
1596                 program, similar to 'dbus-send', but with semantics
1597                 similar to 'dcop'.
1598           - chat: Simplistic chat program, implemented using signals
1599                 and the system bus. Looks like IRC.
1600
1601 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1602
1603         * configure.in: Detect QtGui (necessary for one of the
1604           example programs). Note: this increases the minimum required
1605           version of Qt to 4.1.3.
1606
1607 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1608
1609         * test/qt/*: Sync with KDE Subversion revision 523647.
1610         Update the testcases to the new API. Remove testcases for
1611         classes that are no longer public or have been removed.
1612
1613 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1614
1615         * qt/*: 
1616         * dbus/qdbus.h: Sync with KDE Subversion revision
1617         523647. Hopefully, this will be the last of the
1618         source-incompatible changes. Documentation has been improved;
1619         support for QList<basic-types> has been added; QDBusObject is
1620         gone; QDBus(Abstract)Interface is now a QObject with
1621         auto-generated meta-object; QDBusIntrospection is marked
1622         private, since QMetaObject can be used now; lots of bugfixes.
1623
1624 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1625
1626         Patch from Milosz Derezynski <internalerror at gmail.com>
1627         
1628         * configure.in:
1629         Output the service directory in the configure summary
1630
1631         * dbus-1.pc.in:
1632         Add session_bus_services_dir
1633
1634 2006-03-10  Ross Burton  <ross@openedhand.com>
1635
1636         * tools/dbus-print-message.c:
1637         Add support for object paths and signatures.
1638
1639 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1640
1641         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1642         config reload.
1643         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1644         information caches
1645         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1646         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1647         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1648         * dbus/dbus-userdb.h: Add function to flush all user/group information
1649         caches.
1650
1651 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1652
1653         * qt/dbusidl2cpp.cpp:
1654         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1655         for dcopidl2cpp, found in the KDE installations (or the more
1656         modern kalyptus): generate Qt4 C++ code for the input XML
1657         introspection. Currently no IDL parsing.
1658
1659 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1660
1661         * test/qt/*: Update the self-tests.
1662
1663 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1664
1665         * qt/*: 
1666         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1667         represents the first feature-complete version of the Qt4
1668         bindings since I took ove maintainership.
1669
1670 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1671
1672         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1673         dir. This is C++, so we can't use the DBus ones.
1674
1675 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1676
1677         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1678         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1679
1680 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1681
1682         * dbus/dbus-connection.c: 
1683         (_dbus_connection_block_pending_call):
1684         Check to see if our data has already been read off the connection
1685         by another blocking pending call before we block in poll.
1686         (check_for_reply_and_update_dispatch_unlocked):
1687         Code taken from _dbus_connection_block_pending_call - checks for
1688         an already read reply and updates the dispatch if there is one.
1689
1690         * test/name-test/test-pending-call-dispatch.c:
1691         New test for making sure we don't get stuck polling a 
1692         dbus connection which has no data on the socket when
1693         blocking out of order on two or more pending calls.
1694
1695 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1696
1697         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1698         make/automake don't detect that we're talking about the same
1699         .lo file if I specify the full path to the source files.
1700
1701 2006-02-26  Havoc Pennington  <hp@redhat.com>
1702
1703         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1704
1705         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1706         session bus variable is unset, suggest "man dbus-launch" and "man
1707         dbus-daemon" to figure out how to fix the problem
1708
1709 2006-02-25  Havoc Pennington  <hp@redhat.com>
1710
1711         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1712         should make this thing use the new glib options parser
1713
1714 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1715
1716         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1717         .lo files taking moc sources.
1718
1719 2006-02-25  Havoc Pennington  <hp@redhat.com>
1720
1721         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1722         and install it as a public header
1723
1724 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1725
1726         * Released 0.61
1727
1728 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1729         
1730         * proxies.py: Fix the callchain
1731
1732 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1733         
1734         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1735
1736         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1737         dbus/dbus-sysdeps.c
1738
1739         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1740         call _dbus_group_info_free_allocated which causes infinite loop,
1741         correctly call _dbus_group_info_free
1742
1743 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1744
1745         * qt/qdbusinterface_p.h:
1746         * qt/qdbusinterface.cpp: Use the standard
1747         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1748         calls instead of creating one for us.
1749
1750         * qt/qdbusconnection_p.h:
1751         * qt/qdbusintegrator.cpp: Remove debugging code.
1752
1753         * qt/qdbusintegrator.cpp:
1754         * qt/qdbusmessage.cpp:
1755         * qt/qdbusmessage_p.h:
1756         * qt/qdbusmessage.h: Change the behaviour of automatic
1757         reply-sending: now a reply is always sent, unless the caller
1758         didn't request one or if the user slot has already sent one.
1759
1760 2006-02-16  Robert McQueen  <robot101@debian.org>
1761
1762         * configure.in: Patch from Debian packages by Sjoerd Simons
1763         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1764         arguments so it's possible to build both bindings in the
1765         same tree.
1766
1767         * qt/Makefile.am: Fix truncated value so that make dist works.
1768
1769 2006-02-16  Robert McQueen  <robot101@debian.org>
1770
1771         * acinclude.m4, configure.in: Patch from Brad Hards
1772         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1773         improving quoting, re-ordering a few checks, and a few other
1774         aesthetic tidy-ups.
1775
1776 2006-02-16  Robert McQueen  <robot101@debian.org>
1777
1778         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1779         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1780         assertion that the next element to read from the iter is fixed in
1781         size. This is not the case when you are at the end of the iter,
1782         because the next element type is INVALID.
1783
1784         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1785         a bogus assert which means that you may not initialise a 0-length
1786         string unless you provide a non-NULL pointer. This prevented
1787         you from marshalling messages containing zero-length arrays in
1788         some cases.
1789
1790         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1791         from Rob to correct bogus asserts when trying to demarshal an
1792         array and get_fixed_array got you 0 elements. Append nothing to
1793         the GArray in this case.
1794
1795         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1796         an empty array via the glib bindings. Without all of the above
1797         patches, this new test fails.
1798
1799 2006-02-16  Robert McQueen  <robot101@debian.org>
1800
1801         * glib/dbus-gmain.c: Make the previous commit compile.
1802
1803         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1804         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1805         specify sender_keyword="foo", path_keyword="bar" when adding
1806         a signal listener, so that you can bind to signals generically
1807         but still do something useful in your callback.
1808
1809         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1810         chars so that they're not cast to chars and made negative. Thanks
1811         to Jakub Stachowski for reporting this and testing the fix.
1812
1813 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1814
1815         * dbus/dbus-glib.h:
1816         * glib/dbus-gmain.h:
1817         (dbus_g_connection_open): new method for openning
1818         a connection to an arbitrary address in the glib bindings
1819
1820         * ChangeLog: checkin last entry which doesn't seem to be commited
1821
1822 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1823
1824         * tools/dbus-launch.c: Fixed sh syntax output
1825
1826 2006-02-13  Robert McQueen  <robot101@debian.org>
1827
1828         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1829         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1830         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1831         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1832         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1833         missing piece of the glib bindings jigsaw puzzle. This modifies
1834         the existing specialised types to have N type parameters (rather
1835         than the current 1 or 2 for arrays and dictionaries respectively).
1836         You can then use this to get a glib type to represent any arbitrary
1837         D-Bus struct type using dbus_g_type_get_struct. The only
1838         implementation of these types is with GValueArrays as before,
1839         but it's now possible to store these in arrays, emit them in
1840         signals, etc.
1841
1842 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1843
1844         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1845         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1846         <thiago.macieira at trolltech.com>
1847
1848 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1849
1850         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1851         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1852
1853 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1854
1855         * bus/connection.c (bus_connections_expect_reply): Make
1856         pending reply limit not common to all connections (Bug #5416)
1857         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1858
1859 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1860
1861         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1862
1863 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1864
1865         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1866         patch from Doug Goldstein <cardoe at gentoo.org>
1867
1868 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1869
1870         * mono/Arguments.cs: Fix a magic number in the mono bindings
1871         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1872
1873 2006-01-27  Robert McQueen  <robot101@debian.org>
1874
1875         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1876         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1877         when generating the client-side methods, instead of overloading
1878         CSymbol which broke everything horribly. My apologies.
1879
1880 2006-01-27  Robert McQueen  <robot101@debian.org>
1881
1882         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1883         by me and Rob Taylor to add a simple_free function to D-Bus map
1884         and collection types, which allows those types which can be freed
1885         with a GDestroyNotify (such as GHashTables and GArrays, but not
1886         GPtrArrays) to be stored as the values in hashtables.
1887
1888         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1889         Patch by Rob Taylor to add nested dicts to the glib tests to check
1890         the above code works, and appears not to leak when called repeatedly.
1891
1892 2006-01-27  Robert McQueen  <robot101@debian.org>
1893
1894         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1895         to free a D-Bus allocated string with dbus_free () instead of
1896         g_free ().
1897
1898 2006-01-27  Iain Holmes  <iain@openedhand.com>
1899
1900         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1901         method from being called multiple times.
1902
1903 2006-01-19  Robert McQueen  <robot101@debian.org>
1904
1905         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1906         <rob.taylor@collabora.co.uk> to add support for generating bindings
1907         to arrays that are represented as GPtrArrays rather than GArrays (ie
1908         size-variable things, such as strings, objects, structs, etc).
1909
1910 2006-01-05  Robert McQueen  <robot101@debian.org>
1911
1912         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1913         <ricardo.kekki@movial.fi> to make it possible to inherit from
1914         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1915         a private part, and moving the setting of the DBusGProxyManager into a
1916         connection property, allowing proper GObject construction.
1917
1918 2006-01-05  Robert McQueen  <robot101@debian.org>
1919
1920         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1921         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1922         annotations when generating glib client bindings.
1923
1924 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1925
1926         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1927
1928         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1929
1930 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1931
1932         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1933
1934 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1935
1936         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1937
1938 2005-12-19  Ross Burton  <ross@openedhand.com>
1939
1940         * doc/dbus-tutorial.xml:
1941         Document the Glib client-side bindings, and list all possible annotations.
1942
1943 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1944
1945         * dbus/bus.c (dbus_bus_release_name): Add documentation
1946
1947 2005-12-06  Robert McQueen  <robot101@debian.org>
1948
1949         * python/service.py: s/sucessful/successful/ so we're allocating to
1950         and reading from the same variable. Oops.
1951
1952 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1953
1954         * Released 0.60
1955
1956 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1957
1958         * test/qt/Makefile.am: build from srcdir
1959
1960         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1961         Note - this code is wrong and needs to be fixed by the Qt binding
1962         developers.  The flags should be treated as bitfields and not enums.
1963
1964         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1965
1966 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1967
1968         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1969           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1970           in production code
1971
1972 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1973
1974         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1975         method for getting messages off the bus in the absence of a
1976         mainloop.  This method is much like 
1977         dbus_connection_read_write_dispatch except it does not dispatch
1978         the messages to a registered filter function.  Instead it
1979         allows a developer to process messages by directly popping
1980         them off the bus.
1981
1982 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1983
1984         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1985         the parser to continue instead of returning error
1986         (bus_desktop_file_load): Do not free parser data when
1987         parse_section_start or parse_key_value fails because it was 
1988         already freed by parser_free (patch from Carlos Garcia Campos  
1989         <carlosgc at gnome.org>)
1990
1991 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1992
1993         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1994         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1995         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1996         test/test-segfault.c, test/test-utils.c,
1997         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1998         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1999         Various cleanup of dead code and compiler warnings (patch from
2000         Kjartan Maraas <kmaraas at gnome.org>) 
2001
2002 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2003
2004         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2005         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2006
2007 2005-11-27  Robert McQueen  <robot101@debian.org>
2008
2009         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2010         part of the preceding one. Oops. Merge patch by Johan Hedberg
2011         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2012         on big-endian platforms.
2013
2014         * test/python/test-client.py: Add some 16-bit integers to the test
2015         values.
2016
2017 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2018
2019         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2020         method return message for property getters
2021
2022 2005-11-27  Robert McQueen  <robot101@debian.org>
2023
2024         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2025         with type v of an instance of dbus.Variant(foo, type='x') caused
2026         it to be boxed twice before sending over the bus.
2027
2028         * python/dbus_bindings.pyx, python/service.py,
2029         test/python/test-client.py: Update the constants for the new
2030         request_name flags, and update comments/test cases now that queueing
2031         is the default action.
2032
2033 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2034
2035         * configure.in:
2036         - Change version to 0.60 for impending release
2037         - upped the sonames because of ABI and API breakage
2038
2039 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2040
2041         * configure.in: Add test/name-test/Makefile to the generated
2042         Makefile list
2043
2044         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2045         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2046         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2047         not to queue an ower if it can't be the primary owner
2048
2049         * bus/bus.h: Add new internal BusOwner struct
2050
2051         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2052         to bus_registry_ensure and don't set the prohibit_replacement flag
2053         since they are now set per BusOwner and not per name.
2054         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2055         that returns the list of connections in a name's connection queue
2056         
2057         * bus/services.c (struct BusService): remove prohibit_replacement field
2058         (struct BusOwner): new struct for keeping track of queued connections
2059         and their associated flags for the queue
2060         (struct BusRegistry): add a BusOwner memory pool
2061         (bus_registry_new): initialize the BusOwner memory pool
2062         (bus_registry_unref): free the BusOwner memory pool
2063         (_bus_service_find_owner_link): new internal method for
2064         searching the queue for a specific connection
2065         (bus_owner_set_flags): new method for adding setting the flags on a
2066         bus owner
2067         (bus_owner_new): new method that creates a BusOwner object from the
2068         pool and sets its flags
2069         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2070         (bus_registry_ensure): Add the flags parameter
2071         (bus_registry_acquire_service): Switch from using raw connections to
2072         using the BusOwner struct
2073         Add new state machine for dealing with the new set of flags
2074         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2075         cancel_ownership, free_ownership_cancel_data, 
2076         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2077         restore_ownership, free_ownership_restore_data, 
2078         add_restore_ownership_to_transaction): Switch to using BusOwner 
2079         instead of raw connections
2080         (bus_service_add_owner): Add flags parameter
2081         Switch to using BusOwner instead of raw connections
2082         Add state machine for dealing with the new set of flags
2083         (bus_service_swap_owner): Swaps the first and second owners in the
2084         queue.  Used to make sure proper signals are sent when a service looses 
2085         or gains primary ownership.  We never insert an owner at the top of the
2086         queue.  Instead we insert it in the second position and then swap.
2087         (bus_service_remove_owner): Remove the owner from the queue sending
2088         out the NameLost and NameOwnerChanged signals if the we were the 
2089         primary owner
2090         (bus_service_get_primary_owners_connection): New method that extracts
2091         the connection from the primary owner
2092         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2093         connection
2094         (bus_service_get_allow_replacement): Changed from the old 
2095         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2096         primary owner and returns if it can be replaced or not
2097         (bus_service_set_prohibit_replacement): removed
2098         (bus_service_has_owner): returns TRUE if and owner with
2099         the specified connection exists in the queue
2100         
2101         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2102         method that only compiles if tests are enabled.  Allows us to get the 
2103         unique name of a connection so we can check it against the queue when
2104         doing regression tests
2105
2106         * bus/activation.c (bus_activation_send_pending_auto_activate),
2107         bus/dispatch.c (bus_dispatch),  
2108         bus/driver.c (bus_driver_handle_get_service_owner, 
2109         bus_driver_handle_get_connection_unix_user, 
2110         bus_driver_handle_get_connection_unix_process_id,
2111         bus_driver_handle_get_connection_selinux_security_context),
2112         bus/signals.c (connection_is_primary_owner): 
2113         use bus_service_get_primary_owners_connection instead of
2114         bus_service_get_primary_owner
2115
2116         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2117         _dbus_listen_unix_socket): Calculate the length of the socket
2118         path and use that instead of using a fixed length which was
2119         causing socket names to contain many trailing Nul bytes.
2120
2121         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2122         (dbus_g_method_get_sender): New method for extracting the sender 
2123         from a DBusGMethodInvocation
2124         (dbus_g_method_return_get_reply): changed name to 
2125         dbus_g_method_get_reply
2126         (dbus_g_method_return_send_reply): changed name to
2127         dbus_g_method_send reply
2128
2129         * doc/dbus-specification.xml: New docs that describe how the new
2130         queueing system works and talks about the changes to the how
2131         we specify socket names
2132
2133         * glib/examples/example-service.c, 
2134         glib/examples/example-signal-emitter.c,
2135         glib/examples/statemachine/statemachine-server.c:
2136         Changed the RequestName flags to the new system
2137
2138         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2139         regression test suite for testing various states of the new
2140         queueing system
2141         
2142 2005-11-15  Robert McQueen  <robot101@debian.org>
2143
2144         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2145         Taylor to add two methods, dbus_g_method_return_get_reply and
2146         dbus_g_method_return_send_reply, to allow you to get the reply
2147         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2148         and send it. The GLib bindings can't marshal a return value of
2149         something like a(s) if the array is empty - ultimately they should be
2150         made to heed the signature of the out arguments as the Python bindings
2151         now can, but this is a workable interim solution which might have
2152         other applications.
2153
2154 2005-11-15  Robert McQueen  <robot101@debian.org>
2155
2156         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2157         method to org.freedesktop.DBus to release a bus name or give up
2158         waiting in the queue for it.
2159
2160         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2161         dbus_bus_release_name method to send the ReleaseName method calls.
2162         Add constants for the return values to dbus/dbus-shared.h.
2163
2164         * doc/dbus-specification.xml: Document the new ReleaseName method
2165         in the specification.
2166
2167         * python/dbus_bindings.pyx: Add a low-level python binding for the
2168         release name method.
2169
2170         * python/exceptions.py, python/service.py: Make freeing BusName
2171         objects release the name. Add a NameExistsException, and fix a
2172         bug with creating UnknownMethodException.
2173
2174         * test/python/test-client.py: Add tests for freeing BusName
2175         objects causing names to be released.
2176
2177 2005-11-14  Robert McQueen  <robot101@debian.org>
2178
2179         * python/service.py: Include the traceback in the error reply when we
2180         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2181
2182 2005-11-14  David Zeuthen  <davidz@redhat.com>
2183
2184         Patch from Timo Hoenig <thoenig@suse.de>.
2185
2186         * bus/bus.c: I've recently investigated why the automatic reload
2187         of configuration files does not work as expected.
2188
2189         Currently, reloading configuration files does only work when
2190         running dbus-daemon with --nodaemon.  If we are running as daemon
2191         we're hitting a dnotify bug once we fork the process.
2192
2193         We're initializing the dnotify fds before calling fork().  Once
2194         the child process forked it does still have the fds (and they
2195         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2196         getting SIGIO as changes are made to the configuration files.
2197
2198         The attached patch moves the initialization of the dnotify fds to
2199         process_config_postinit().  This is safe for all current code
2200         paths and solves the dnotify disfunction.  If we're running
2201         dbus-daemon as daemon the fds for dnotify are now being
2202         initialized after fork() for the child process.
2203
2204         * configure.in: The current configure.in check for dnotify probes
2205         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2206         match for 'xlinux', too. Additionally I have adapted the configure
2207         option's style to match with the others.
2208
2209 2005-11-14  Robert McQueen  <robot101@debian.org>
2210
2211         * python/decorators.py, python/service.py: Add a new argument to the
2212         dbus.service.method decorator called sender_keyword, which if set,
2213         specifies the name of an argument which will be provided the bus
2214         name of the method caller.
2215
2216         * test/python/test-client.py, test/python/test-service.py: Add a
2217         method and test to check the sender_keyword functionality.
2218
2219 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2220
2221         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2222         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2223         Simons <sjoerd at luon.net>)
2224
2225         * AUTHORS: Add Robert McQueen for his work on the Python
2226         Bindings and other parts of D-Bus
2227
2228 2005-11-07  Robert McQueen  <robot101@debian.org>
2229
2230         * python/decorators.py: Change emit_signal function to use the
2231         signature annotation of the signal when marhsalling the arguments from
2232         the service. Fix a bug where the code checking signature length
2233         against argument length referenced the wrong variable.
2234
2235         * python/introspect_parser.py: Avoid adding the type signature of
2236         signal arguments to any methods which occur after them in the
2237         introspection data (!) by making the parser a little more careful
2238         about its current state.
2239
2240         * python/service.py: Remove debug prints from last commit (again :D).
2241
2242         * test/python/test-client.py, test/python/test-service.py: Add test
2243         signals with signature decorators to test the strict marshalling code
2244         gives errors at the right time. Could do with checking the signals
2245         actually get emitted too, given that the test does nothing with
2246         signals at the moment...
2247
2248 2005-11-07  Robert McQueen  <robot101@debian.org>
2249
2250         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2251         instances to stop madness of creating new instances representing
2252         the same bus connection all the time, rendering any tracking of
2253         match rules and bus names quite meaningless. Caught a bug where
2254         the private argument to SessionBus() and friends was being passed
2255         in as use_default_mainloop by mistake. Still some problems with
2256         multiple dbus_binding.Connection instances representing the same
2257         low-level connection (eg when you use both SessionBus() and
2258         StarterBus() in same process), but it's a lot better now than it
2259         was.
2260
2261         * python/dbus_bindings.pyx: Add constants with the return values
2262         for bus_request_name().
2263
2264         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2265         and retrieve the same instances for the same name, so deletion can be
2266         done with refcounting. Also now throws some kind of error if you
2267         don't actually get the name you requested, unlike previously...
2268
2269         * test/python/test-client.py: Add tests for instance caching of buses
2270         and bus name objects.
2271
2272 2005-11-04  Robert McQueen  <robot101@debian.org>
2273
2274         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2275         marshalling of boolean values. Add some booleans to the values in
2276         the test client.
2277
2278         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2279         argument to the dbus.service.method decorator, which allows you to
2280         name arguments to take two callback functions for replying with
2281         return values or an exception.
2282
2283         * test/python/test-client.py, test/python/test-service.py: Add test
2284         case using asynchronous method reply functions, both return values and
2285         errors, and from within both the function itself and from a mainloop
2286         callback.
2287
2288         * python/decorators.py, python/service.py: Perform checking that the
2289         number of method/signal arguments matches the number of types in the
2290         signature at class loading time, not when you first introspect the
2291         class.
2292
2293         * python/service.py: Remove debug print left by the last commit.
2294
2295 2005-11-03  Robert McQueen  <robot101@debian.org>
2296
2297         * python/service.py: Heavy refactoring of method invocation, with
2298         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2299         in favour of a new _message_cb that uses seperate functions for
2300         looking up the method to call, marshalling the return values, and
2301         sending exceptions as errors, and is easier to follow as a
2302         consequence.  Fixes some corner cases about returning things that
2303         don't match your declared out_signature, allows exceptions to define
2304         _dbus_error_name and have it be sent over the bus as the error name,
2305         and paves the way for cool stuff like heeding the message no reply
2306         flag, asynchronous method implementations, informing the method of the
2307         sender, and including backtraces in the error messages.
2308
2309         * test/python/test-client.py: Catch and print exceptions thrown in the
2310         async callback tests, rather than passing them to the low-level
2311         bindings to be ignored in a noisy and frustrating manner.
2312
2313 2005-11-03  Robert McQueen  <robot101@debian.org>
2314
2315         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2316         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2317         tweak others to be consistent.
2318
2319         * test/python/test-client.py: Tweak output of testInheritance.
2320
2321 2005-10-29  Robert McQueen  <robot101@debian.org>
2322
2323         * python/service.py: Major changes to allow multiple inheritance
2324         from classes that define D-Bus interfaces:
2325         
2326          1. Create a new Interface class which is the parent class of
2327             Object, and make the ObjectType metaclass into InterfaceType.
2328         
2329          2. Patch written with Rob Taylor to replace use of method_vtable
2330             with code that walks the class's __MRO__ (method resolution order)
2331             to behave like Python does when invoking methods and allow
2332             overriding as you'd expect. Code is quite tricky because
2333             we have to find two methods, the one to invoke which has the
2334             right name and isn't decorated with the /wrong/ interface,
2335             and the one to pick up the signatures from which is decorated
2336             with the right interface.
2337         
2338             The same caveats apply as to normal multiple inheritance -
2339             this has undefined behaviour if you try and inherit from two
2340             classes that define a method with the same name but are
2341             decorated with different interfaces. You should decorate
2342             your overriding method with the interface you want.
2343         
2344          3. Replace grungy introspection XML generation code in the metaclass
2345             with dictionaries that cope correctly with multiple inheritance
2346             and the overriding of methods. This also uses the signature
2347             decorations to provide correct introspection data, including
2348             the debut appearance of the types of your return values. :D
2349
2350         * test/python/test-client.py, test/python/test-service.py: Add a test
2351         case to try invoking an method that overrides one inherited from a
2352         D-Bus interface class.
2353
2354 2005-10-29  Robert McQueen  <robot101@debian.org>
2355
2356         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2357         Add checking for the end of struct character when marshalling a
2358         struct in MessageIter.append_strict.
2359
2360         * python/examples/example-service.py,
2361         python/examples/gconf-proxy-service.py,
2362         python/examples/gconf-proxy-service2.py: Update to use gobject
2363         mainloop directly rather than appearing to depend on gtk.
2364
2365         * python/test/test-client.py, python/test/test-server.py: Remove
2366         obsolete and broken test scripts for old bindings. We have up to date
2367         and working tests in test/python/.
2368
2369 2005-10-29  Robert McQueen  <robot101@debian.org>
2370
2371         * python/decorators.py: Add optional arguments to the method and
2372         signal decorators to allow you to specify the signature of arguments
2373         and return values. Preserve the doc strings of signal functions in the
2374         decorated version, for pydoc and friends.
2375
2376         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2377         parse_signature_block function with an iterable dbus.Signature()
2378         type. Fix a bug in MessageIter.append_strict where you could append
2379         anything by claiming it was a string.
2380
2381         * python/service.py: Use the out_signature decoration on methods to
2382         marshal return values, meaning you no longer require dbus.Array()
2383         or dbus.Dictionary() to indicate the type when returning empty
2384         arrays or dictionaries. Fix a bug where exceptions which are defined
2385         in __main__ are not turned into error replies.
2386
2387         * test/python/test-client.py, test/python/test-service.py: Add test
2388         for correct marshalling of return values according to out_signature.
2389         Fix a bug in the async call test where the error_handler is missing a
2390         self argument.
2391
2392 2005-10-29  Robert McQueen  <robot101@debian.org>
2393
2394         * glib/Makefile.am, glib/examples/Makefile.am,
2395         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2396         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2397
2398         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2399
2400         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2401         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2402         the command line.
2403
2404 2005-10-27  Ross Burton  <ross@openedhand.com>
2405
2406         * dbus/dbus-marshal-header.c:
2407         Remove dead code.
2408
2409         * glib/dbus-gobject.c:
2410         Stop compiler warning.
2411
2412 2005-10-25  Ross Burton  <ross@openedhand.com>
2413
2414         * dbus/dbus-auth.c:
2415         * dbus/dbus-server-unix.c:
2416         * dbus/dbus-transport-unix.c:
2417         * glib/dbus-gmain.c:
2418         * glib/dbus-gobject.c:
2419         Add some const keywords.
2420
2421 2005-10-25  Ross Burton  <ross@openedhand.com>
2422
2423         * doc/dbus-specification.xml:
2424         Document the NoReply annotation.
2425
2426         * glib/dbus-binding-tool-glib.h:
2427         * glib/dbus-binding-tool-glib.c:
2428         Respect the NoReply annotation.
2429
2430 2005-10-24  Robert McQueen <robot101@debian.org>
2431
2432         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2433         derive from unicode instead of str, and encode/decode UTF-8 when
2434         marshalling/unmarshalling bus messages
2435
2436         * python/introspect_parser.py: encode introspection data as UTF-8
2437         before passing the buffer into libxml2
2438
2439         * test/python/test-client.py: add unicode test strings
2440
2441         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2442         ignore generated python test files
2443
2444 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2445
2446         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2447         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2448         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2449
2450         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2451         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2452         when constructing struct signatures
2453
2454         * python/_dbus.py (Bus): handle private connections using the
2455         private keyword in the constructor. defaults to private=False
2456         (Bus::close): new method to close a connection to the bus
2457
2458         * python/dbus_bindings.pyx (Connection::close): renamed method
2459         was previously called disconnect
2460         (bus_get): now supports getting a private connection
2461
2462         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2463         keyword is set to True.  if it is, execute the method without waiting
2464         for a reply
2465         (ProxyObject::_introspect_execute_queue): new method for executing
2466         all the pending methods that were waiting for the introspect to
2467         finish.  this is called when introspect either succeeds or fails
2468         (ProxyObject::_introspect_error_handler): call queued methods
2469
2470 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2471
2472         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2473         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2474
2475         * python/service.py (Object::_message_cb): handle exceptions correctly
2476         by sending them over the wire to the calling app.  This makes sure
2477         the client returns immediately instead of waiting the 15 seconds to
2478         timeout.
2479
2480         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2481         Add a test to benchmark how long it takes to introspect a service and 
2482         call a method which returns a large element (pretty fast)
2483
2484         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2485         method which pushes a lot of data
2486
2487 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2488
2489         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2490         reclaim memory outside of the loop and use del istead of just setting
2491         the key to None
2492
2493 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2494
2495         * python/service.py (ObjectType::_reflect_on_signal): Always close
2496         signal tag even when there are no arguments
2497
2498 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2499
2500         * configure.in: Set mono, mono-docs and Qt3 to default
2501         to no instead of auto when building.  These bindings do not
2502         have full time maintainers and will not be supported for the
2503         1.0 release.
2504
2505 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2506
2507         patches from Michael Krivoruchko <misha at sun.com>: 
2508         
2509         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2510         _dbus_connection_message_sent, 
2511         _dbus_connection_send_preallocated_unlocked_no_update, 
2512         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2513         is NULL when calling _dbus_verbose
2514
2515         * configure.in: check for functions getpeerucred and getpeereid
2516
2517         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2518         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2519         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2520         Patch was only tested on Solaris 10 x86 so it might be issues
2521         with other platforms (i.e. BSDs and MacOSX)
2522         
2523
2524 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2525
2526         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2527         instead of marshal basic so we can handle recursive types in a variant
2528
2529         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2530         in variants
2531
2532         * test/glib/test-service-glib.c, test-service-glib.xml
2533         (my_object_echo_variant [EchoVariant], 
2534         my_object_process_variant_of_array_of_ints123
2535         [ProcessVariantOfArrayOfInts123]): 
2536         Add two test methods
2537
2538         * python/introspect_parser.py: New module for parsing introspect
2539         data.
2540
2541         * python/dbus_bindings.pyx:
2542         (various places): when throwing errors fix to use errormsg instead 
2543         of message local variable because Pyrex can get confused with other 
2544         message variables (initial patch by Robert McQueen 
2545         <robert.mcqueen at collabora.co.uk>)
2546         (MessageIter::parse_signature_block): new method for getting the next
2547         block in a signiture.
2548         (MessageIter::append_strict): new method for appending values strictly
2549         using the passed in signature instead of guessing at the type
2550         (MessageItter:: append_dict, append_struct, append_array): use 
2551         signatures to marshal children if the signature is available
2552         
2553         * python/exceptions.py (IntrospectionParserException): new exception
2554
2555         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2556         introspected signatures if available, else we fall back to the
2557         old way of doing things.
2558         (ProxyObject::_introspect_reply_handler ): parse introspection data
2559         
2560         * python/service.py (ObjectType::_reflect_on_method): Properly
2561         terminate <method> if there are no args in the reflection data
2562
2563         * test/python/test-client.py: add tests for talking with the GLib
2564         test server.  This gives us better coverage for introspection since
2565         python to python will always generate arguments as variants.  It also
2566         allows us to test the robustness of the GLib bindings and interlanguage
2567         communications.
2568
2569         
2570 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2571
2572         * bus/driver.c (bus_driver_handle_introspect): Add signals
2573         to the introspect data. (patch from Daniel P. Berrange 
2574         <dan at berrange.com>)
2575
2576         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2577         
2578         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2579         _dbus_connection_run_builtin_filters): Changed these to
2580         be unlock_no_update functions and call 
2581         _dbus_connection_send_unlocked_no_update instead of
2582         dbus_connection_send to avoid locking errors.
2583         
2584         * doc/TODO: Removed the make Ping test TODO
2585         
2586 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2587
2588         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2589         We now copy the message from a DBusError and then free 
2590         the error object befor throwing the error
2591
2592         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2593         DBusBindingOutputMode enum which was causing a warning.
2594         #include <time.h> so using time_t is explicitly defined
2595
2596 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2597
2598         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2599         - dbus/dbus-bus.c
2600         (internal_bus_get): new method that take over the heavy lifting
2601         of dbus_bus_get and adds the ability to get a private connection
2602         to the bus
2603         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2604         interface as in previous versions
2605         (dbus_bus_get_private): new method that is a wrapper to 
2606         internal_bus_get to get a private connection to the bus
2607
2608         - dbus/dbus-bus.h
2609         (dbus_bus_get_private): add as a public libdbus interface
2610
2611         - dbus-1.pc.in: output system_bus_default_address and 
2612         sysconfdir variables so apps can use them when compiling
2613
2614 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2615         * dbus/qt: New Qt bindings
2616
2617 2005-09-12  Waldo Bastian  <bastian@kde.org>
2618
2619         * dbus/dbus-marshal-validate.c,
2620         doc/dbus-specification.xml, test/Makefile.am,
2621         test/test-names.c: allow hyphens in bus names.
2622
2623 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2624
2625         * test/data/auth/fallback.auth-script: we don't
2626         retry the EXTERNAL method when we know its going
2627         to fail anymore.
2628
2629 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2630
2631         * dbus/dbus-connection-internal.h: rename
2632         (add|remove|toggle)_(watch|timeout) to unlocked()
2633         
2634         * dbus/dbus-connection.c: ditto.
2635         
2636         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2637         Update some callers for the renaming.
2638
2639 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2640
2641         * dbus/dbus-auth.c: (record_mechanisms): don't
2642         retry the first auth mechanism because we know
2643         we're just going to get rejected again.
2644         
2645         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2646         Fix thinko ... and what a nasty little bugger to
2647         track down you were ...
2648
2649         * dbus/dbus-connection.c:
2650         (_dbus_connection_add_watch),
2651         (_dbus_connection_remove_watch): add note about
2652         these needing the connection to be locked.
2653         (_dbus_connection_get_dispatch_status_unlocked):
2654         set status to DATA_REMAINS when we queue the
2655         disconnected message.
2656         
2657         * bus/dispatch.c:
2658         (bus_dispatch): fix warning.
2659         (check_existent_service_no_auto_start):
2660         Expect ChildSignaled error too.
2661         (check_existent_hello_from_self): fix another
2662         couple of warnings.
2663         
2664 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2665
2666         Patches from James Willcox <snorp@snorp.net>
2667
2668         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2669
2670         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2671         support array "out" parameters.
2672
2673         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2674         for 16-bit int support.
2675
2676 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2677
2678         * Released 0.50
2679
2680         * Patch from Steve Grubb:
2681         - bus/activation.c (bus_activation_service_reload_test): clean up
2682         some indentation
2683         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2684         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2685         buffer overflows in the test suite.  This is non critical because
2686         it can not be exploited and this code is only run when doing a 
2687         make check.
2688
2689         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2690         - configure.in: Don't check and link against kdecore, only qt headers
2691         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2692         - gcj/org/freedesktop/dbus/Makefile.am:
2693         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2694         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2695         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2696         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2697         - tools/Makefile.am: Add platform extentions to binaries 
2698         (i.e. .exe on windows)
2699
2700         * configure.in: 
2701         - Make it so if no suitable version of python is found we only 
2702         disable building python instead of exiting the configure script
2703         - Require version 2.4 of glib for glib bindings
2704         - Up version to 0.50
2705
2706         * python/__init__.py: Sync version with libdbus to (0,50,0)
2707         
2708 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2709
2710         * dbus/dbus-object-tree.c (find_subtree_recurse):
2711         a couple of optimizations (bug #710):
2712         - do a binary search in the tree
2713         - insert a new child at the right place directly, no need for
2714           qsort anymore
2715         - do the "double alloc" thing when allocating children
2716
2717 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2718
2719         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2720
2721         * python/dbus_bindings.pyx: Memory management foo
2722         (global): remove hacky _user_data_references global list
2723         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2724         tuples. Unref user_data
2725         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2726         (Connection::__del__): Remove and replace with __dealloc__ method
2727         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2728         to keep tuple from being deallocated instead of the global var hack
2729         (Connection::register_object_path): Stuff user_data into a tuple.
2730         Use Py_INCREF to keep tuple from being deallocated instead of the 
2731         global var hack
2732         (Connection::register_fallback): Stuff user_data into a tuple.
2733         Use Py_INCREF to keep tuple from being deallocated instead of the 
2734         global var hack
2735         (GIL_safe_pending_call_notification): Don't unref the message
2736         because it gets unreffed when going out of scope.  Py_XDECREF
2737         the user_data
2738         (PendingCall::__del__): Remove and replace with __dealloc__ method
2739         (PendingCall::set_notify): ref the pending call because we will
2740         need it to stick around for when the notify callback gets called
2741         (Message::__del__): Remove and replace with __dealloc__ method
2742
2743         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2744         gthreads_init to match up with the dbus call
2745
2746         * python/glib.py (init_threads): Changed to threads_init to match
2747         up with gobject.threads_init().  init_threads is kept for backwards
2748         compat but will most likely be deprecated in the future
2749
2750         * test/python/test-client.py: 
2751         - revamp to use Python's unittest functionality
2752         - add async call tests
2753         - setup threads in glib and dbus so we make sure locks are working
2754         
2755 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2756
2757         * python/dbus_bindings.pyx 
2758         (_pending_call_notification, cunregister_function_handler, 
2759         cmessage_function_handler): All callback functions have been rearranged 
2760         to workaround a bug in Pyrex when working with the GIL which is Python's 
2761         global lock when dealing with threads.  They have been split into
2762         a wrapper function (which assumes the name of the old function) and
2763         a _GIL_safe_<function name> function which contains the functionality
2764         of the old function.  This ensures that Pyrex does not write code
2765         the lock is released.
2766         
2767
2768 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2769
2770         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2771         GIL global lock when calling back into Python
2772
2773 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2774
2775         * Release 0.36.2
2776
2777         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2778
2779         * bus/policy.c (bus_policy_allow_user): change default "user is
2780         allowed" to be "user has same uid as the bus itself"; any
2781         allow/deny rules will override.
2782
2783         * bus/session.conf.in: don't allow all users, since now by default
2784         the user that ran the bus can connect.
2785
2786 2005-08-26  Colin Walters  <walters@verbum.org>
2787
2788         * tools/dbus-print-message.c (print_message): Flush stdout
2789         after printing a message, so that redirecting to a file, then
2790         hitting Ctrl-C works.
2791
2792 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2793
2794         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2795         (EmptyMessage): new class that subclasses Message.  This is a workaround
2796         to a Pyrex bug that fails to call __del__ when the Message object goes out
2797         of scope.  For some reason subclassing Message fixes this bug
2798         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2799         - s/Message(_create=0)/EmptyMessage everywhere else
2800         
2801         * test/python/test-{server|client}.py: add the python/.libs directory
2802         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2803         get picked up from the system
2804
2805 2005-08-25  Colin Walters  <walters@verbum.org>
2806
2807         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2808         to Ryan Lortie for the suggestion.
2809
2810 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2811
2812         * test/python: Add python regression test
2813
2814         * configure.in: Add test/python/Makefile
2815
2816         * test/Makefile.am: Add the python directory to SUBDIRS
2817
2818 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2819
2820         * Release 0.36.1
2821
2822         * python/_dbus.py: 
2823         (Interface::connect_to_signal): propigate keywords for match on args
2824         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2825
2826         * python/proxies.py (ProxyObject::connect_to_signal):
2827         propigate keywords for match on args
2828
2829         * Makefile.am: point everything to pyexecdir since python borks
2830         on multilib
2831
2832 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2833
2834         * Release 0.36
2835
2836 2005-08-23  Colin Walters  <walters@verbum.org>
2837
2838         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2839
2840 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2841
2842         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2843         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2844         of defining DBusConnection ourselves.
2845
2846 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2847
2848         * python/dbus.pth: New path file to fix up problems when installing
2849         c libraries to lib64 and python files to lib.
2850
2851         * python/Makefile.am: install dbus.pth in the correct spot
2852
2853 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2854         * ChangeLog: clean up my last entry a bit
2855
2856         * doc/introspect.xsl: New stylesheet for converting introspection data
2857         into browser renderable xhtml. Contributed by Lennart Poettering.
2858
2859         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2860         Poettering.
2861
2862         * doc/dbus-tutorial.xml: 
2863         - Add Colin Walter to the Authors section for authoring the GLib
2864         section
2865         - Add descriptions of the new signature and type functionality
2866         in the Python complex type mapping section
2867         - Add a sidenote on the new args matching functionality in 
2868         the Python bindings
2869         - Fixed up some of the examples to use the gobject.MainLoop
2870         instead of gtk.main
2871         
2872         * python/_dbus.py:
2873         (Bus::_create_args_dict): New. Converts a hash of arg matches
2874         to a more useable format
2875         (Bus::add_signal_receiver): add a **keywords parameter for catching
2876         arg match parameters
2877         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2878         arg match parameters
2879         
2880         * python/matchrules.py:
2881         (MatchTree::exec_matches): Check for arg matches
2882         (SignalMatchRule::add_args_match): New method
2883         (SignalMatchRule::execute): Added args_list parameter as an optimization
2884         so we don't have to marshal the args more than once
2885         (SignalMatchRule::match_args_from_list): New method that checks to see
2886         if the rule's arg matches match an argument list.  Only arguments
2887         set in the rule are checked.
2888         (SignalMatchRule::match_args_from_rule): New method that checks to see
2889         if the rule's arg matches match another rule's.  All args have to match
2890         in order for this method to return true.  If either rule has more args
2891         then it is not a match.
2892         (SignalMatchRule::is_match): Add args match
2893         (SignalMatchRule::repr): Add args to the final output if they exist
2894
2895 2005-08-17  Ross Burton  <ross@burtonini.com>
2896
2897         * glib/dbus-gproxy.c:
2898         (dbus_g_proxy_call_no_reply): unref the message once sent.
2899         (dbus_g_proxy_call): protect against NULL proxy.
2900
2901 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2902
2903         * python/__init__.py: Version updated (0, 43, 0)
2904         
2905         * python/dbus_bindings.pyx: 
2906         - Fixed type objects to have self passed into __init__
2907         - Added the Variant type
2908         - Add the ability to specify types or signatures for Array, Variant 
2909         and Dictionary
2910         (Connection::send_with_reply_handlers): return a PendingCall object
2911         (_pending_call_notification): handle the case when an error is returned 
2912         without an error message in the body
2913         (MessageIter::get_boolean): return True or False instead of an integer
2914         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2915         and add checks for objects with embeded signatures or types (Array, 
2916         Variant and Dictionary)
2917         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2918         (MessageIter::append_dict): handle embeded types or signatures
2919         (MessageIter::append_array): handle embeded types or signatures
2920         (MessageIter::append_variant): new method
2921         
2922         * python/proxies.py:
2923         (DeferedMethod): New. Dummy executable object used when queuing calls 
2924         blocking on introspection data
2925         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2926         or shorter timeouts for method calls
2927         (ProxyObject): Add first pass at an introspection state machine
2928         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2929         introspection. 
2930         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2931         the usual mechanisms for sending messages.  This is to avoid a deadlock
2932         where the Intospect call would be queued waiting for the Introspect 
2933         call to finish ;-)
2934         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2935         when introspection returns with no error
2936         (ProxyObject::_introspect_error_handler): New.  This method is called 
2937         when introspection encounters an error
2938         (ProxyObject::__getattr__): Code to handle different introspection 
2939         states.  Queue async calls or block blocking calls if we are 
2940         introspecting.  Pass through as normal if we are not or are done with 
2941         introspecting.
2942         
2943         * python/service.py: Import signal and method from decorators.py
2944
2945         * python/types.py: Add Variant type
2946
2947 2005-08-16  Colin Walters  <walters@verbum.org>
2948
2949         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2950         DBusError message is NULL.
2951
2952 2005-08-09  Havoc Pennington  <hp@redhat.com>
2953
2954         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2955         malloc'd copy of the name parameter
2956
2957 2005-08-09  Havoc Pennington  <hp@redhat.com>
2958
2959         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2960         warning if the reply serial is set to 0
2961
2962 2005-08-04  Colin Walters  <walters@verbum.org>
2963
2964         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2965         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2966         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2967         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2968         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2969         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2970         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2971         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2972         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2973         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2974         
2975         Prefix name with _ to ensure they're not exported.  All callers
2976         updated.
2977
2978         * glib/dbus-gvalue.c (typecode_to_gtype)
2979         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2980         (signature_iter_to_g_type_dict)
2981         (signature_iter_to_g_type_array)
2982         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2983         (dbus_gtypes_from_arg_signature):
2984         Move to dbus-gsignature.c.
2985
2986         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2987         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2988         (dbus_binding_tool_output_glib_client): Ditto.
2989
2990         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2991         and dbus-gsignature.h
2992
2993         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2994         unused variable.
2995
2996 2005-08-03  Colin Walters  <walters@verbum.org>
2997
2998         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2999         catch any incompatible changes accidentally made.
3000
3001 2005-08-03  Havoc Pennington  <hp@redhat.com>
3002
3003         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3004         typo, from Julien Puydt
3005
3006         * bus/connection.c (bus_connection_disconnected): we were always
3007         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3008
3009 2005-08-01  Colin Walters  <walters@verbum.org>
3010
3011         Patch from Joe Markus Clarke:   
3012         
3013         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3014         use-after-free.
3015
3016 2005-08-01  Colin Walters  <walters@verbum.org>
3017         
3018         Patch from Joe Markus Clarke:   
3019         
3020         * tools/dbus-send.c (main): 
3021         
3022         Don't use C99 style initializers (bug #3933).
3023         
3024 2005-08-01  Colin Walters  <walters@verbum.org>
3025
3026         Patch from Joe Markus Clarke:   
3027
3028         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3029         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3030         * glib/dbus-gobject.c (write_interface):
3031
3032         Don't use C99 style initializers (bug #3933).
3033
3034 2005-07-31  Havoc Pennington  <hp@redhat.com>
3035
3036         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3037         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3038
3039 2005-07-30  Havoc Pennington  <hp@redhat.com>
3040
3041         * fix a bunch of Doxygen warnings and mistakes
3042
3043 2005-07-30  Havoc Pennington  <hp@redhat.com>
3044
3045         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3046         DBUS_BUILD_TESTS since it's now used in production code
3047
3048 2005-07-29  Havoc Pennington  <hp@redhat.com>
3049
3050         * test/glib/test-profile.c (write_junk): initialize the junk
3051         buffer so valgrind doesn't have a breakdown
3052
3053 2005-07-29  Havoc Pennington  <hp@redhat.com>
3054
3055         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3056         (match_rule_matches): remove unused arg
3057         (test_matching): add tests for match_rule_matches()
3058
3059         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3060         do arg0='foo' arg5='bar' in the match rules
3061         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3062
3063         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3064
3065 2005-07-29  Ross Burton  <ross@openedhand.com>
3066
3067         * dbus/dbus-connection.c:
3068         Don't create a DBusCondVar which is never used.
3069
3070 2005-07-27  Ross Burton  <ross@openedhand.com>
3071
3072         * dbus/dbus-message.c:
3073         Reduce the size of the maximum cached message to 10K.
3074
3075 2005-07-25  Ross Burton  <ross@openedhand.com>
3076
3077         * glib/dbus-gproxy.c:
3078         Remove matches when all proxies are unregistered.
3079
3080 2005-07-24  Colin Walters  <walters@verbum.org>
3081
3082         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3083         typedata; recursive arrays won't have it.
3084
3085         * test/glib/test-dbus-glib.c:
3086         * test/glib/test-service-glib.c:
3087         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3088         
3089 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3090
3091         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3092         proxies.py, service.py: Cleanup of code after running it through the
3093         pyflakes code checker mostly dealing with undefined names.  
3094         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3095
3096 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3097
3098         * NEWS: Update to 0.35.2
3099
3100 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3101
3102         * python/_dbus.py: Remove import of the dbus.services
3103         module as it no longer exists (patch from Dimitur Kirov)
3104
3105         * python/service.py (Object::__init__): Fixed typo
3106         s/name/bus_name (patch from Dimitur Kirov)
3107
3108         * python/examples/example-signal-emitter.py: import dbus.glib
3109         to get the main loop and use glib mainloop instead of gtk so
3110         X doesn't have to be running.
3111
3112         * python/examples/example-signal-recipient.py: import dbus.glib
3113         to get the main loop and use glib mainloop instead of gtk so
3114         X doesn't have to be running. Import the decorators module
3115         directly.
3116
3117         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3118         didn't pick up on but are needed to build
3119
3120         * configure.in: upped version to 0.35.2
3121
3122         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3123         added Colin Walters' SELinux API rename patch from head 
3124         s/unix sercurity context/selinux security context/
3125
3126 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3127
3128         * python/Makefile.am: dbus_binding.pxd.in should be included 
3129         in EXTRA_DIST not dbus_binding.pxd
3130         fix up $(srcdir) hopefully for the last time
3131
3132         * NEWS: Update to 0.35.1
3133
3134 2005-07-16  Colin Walters  <walters@verbum.org>
3135
3136         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3137         from bus_driver_handle_get_connection_unix_security_context.  Update for
3138         error usage.
3139         (message_handlers): Update for renames.
3140
3141         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3142         _dbus_string_init failure correctly.
3143         (bus_selinux_append_context): Convert SID to context.  Append it
3144         as a byte array.
3145         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3146         hasn't been called.
3147
3148         * bus/selinux.h: Update prototype.
3149
3150         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3151         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3152
3153 2005-07-15  Colin Walters  <walters@verbum.org>
3154
3155         * doc/TODO: Add note about convenience wrappers.
3156
3157 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3158
3159         * NEWS: Update to 0.35
3160
3161 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3162
3163         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3164         so distcheck doesn't fail
3165
3166         * glib/examples/Makefile.am: Add example-service.xml and 
3167         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3168
3169         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3170         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3171
3172         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3173         compiler looks in the right places during distcheck
3174
3175 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3176
3177         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3178         to fail
3179
3180 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3181
3182         * python/examples/example-service.py,
3183         python/examples/example-signal-emitter.py: Fixed up examples
3184         for API changes
3185
3186 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3187
3188         * python/__init__.py: Upped to version (0,42,0) because of
3189         the API change
3190
3191 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3192
3193         * ChangeLog: fix date in last entry
3194
3195         * configure.in, bus/system.conf.in: add the ability to configure 
3196         the system bus user at compiletime with the --with-dbus-user flag
3197         (patch from Kristof Vansant)
3198
3199 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3200
3201         * bus/dispatch.c, test/test-service.c: Add testcase
3202         for sending messages to oneself (TODO item).
3203
3204         * python/service.py (class Object): Swap ordering of bus_name 
3205         and object_path parameters to better support inheritance.
3206
3207         * doc/dbus-tutorial.xml: change Python docs to reflect change
3208         in parameter ordering and fix the inheritance section.
3209
3210         * doc/TODO: remove sending message to oneself TODO item
3211
3212 2005-07-15  Ross Burton  <ross@openedhand.com>
3213
3214         * glib/dbus-gproxy.c:
3215         Fix a leak when calling methods via the proxy.
3216
3217 2005-07-15  Colin Walters  <walters@verbum.org>
3218
3219         * bus/selinux.c (bus_selinux_append_context): Wrap in
3220         HAVE_SELINUX.
3221
3222 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3223
3224         * python/_dbus.py (Bus::remove_signal_receiver):
3225         don't add a callback to the match if none has been passed in
3226         
3227         * python/matchrules.py (SignalMatchTree::remove): if the rule
3228         being matched does not have a callback treat it as a wildcard
3229         fix matching logic
3230
3231         * doc/dbus-tutorial.xml: Add Python tutorial
3232
3233 2005-07-14  Colin Walters  <walters@verbum.org>
3234
3235         * bus/driver.c
3236         (bus_driver_handle_get_connection_unix_security_context): New function.
3237         (message_handlers): Add.
3238
3239         * bus/selinux.c (bus_selinux_append_context): New function; appends
3240         security context to message.
3241
3242         * bus/selinux.h: Prototype.
3243
3244         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3245
3246 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3247
3248         * bus/activation.c: clean up all tabs to be 8 spaces 
3249         (bus_activation_activate_service): make sure we clean up
3250         if activation fails
3251
3252         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3253         (check_shell_fail_service_auto_start): New function
3254         tests to make sure we get fail properly when trying to auto start a service
3255         with a faulty command line
3256         (check_shell_service_success_auto_start): New function tests to make sure
3257         auto started services get the arguments on the command line
3258
3259         * test/test-shell-service.c: Added service for testing auto-starting with 
3260         command line arguments
3261
3262         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3263         test/data/valid-service-files/debug-shell-echo-success.service.in:
3264         Added service files for testing auto-starting with command line arguments
3265
3266         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3267
3268 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3269
3270         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3271         
3272         * dbus/Makefile.am: added new files to build.
3273
3274         * bus/activation.c (bus_activation_activate_service): support
3275         activation commands with parameters.
3276
3277         * test/shell-test.c: added test program for the shell parsing
3278         code.
3279
3280 2005-07-13  David Zeuthen  <davidz@redhat.com>
3281
3282         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3283         64 bit signed and unsigned parameters
3284
3285 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3286
3287         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3288
3289         * python/service.py (class Name): renamed BusName to make it clearer
3290         what the object is for (a name on the bus)
3291
3292         * python/examples/example-service.py,
3293         python/examples/example-signal-emitter.py: change the Name object to
3294         BusName
3295
3296 2005-07-12  Colin Walters  <walters@verbum.org>
3297
3298         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3299
3300         * tools/dbus-launch.c: Include sys/select.h.
3301
3302 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3303         * python/dbus_bindings.pyx.in: removed
3304
3305         * python/dbus_bindings.pyx: Added.
3306         - Fixed some memleaks (patch from 
3307         Sean Meiners <sean.meiners@linspireinc.com>)
3308         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3309         own pxd file (Pyrex definition)
3310         - Broke out glib dependancies into its own pyx module
3311         
3312         * python/dbus_bindings.pdx: Added.
3313         - Defines C class Connection for exporting to other modules
3314
3315         * python/dbus_glib_bindings.pyx: Added.
3316         - New module to handle lowlevel dbus-glib mainloop integration
3317
3318         * python/glib.py: Added.
3319         - Registers the glib mainloop when you import this module
3320
3321         * python/services.py: Removed (renamed to service.py)
3322         
3323         * python/service.py: Added.
3324         - (class Server): renamed Name
3325
3326         * python/__init__.py: Bump ro version (0,41,0)
3327         -don't import the decorators or service module
3328         by default.  These now reside in the dbus.service namespace
3329
3330         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3331         setup function on creation 
3332
3333         * python/examples/example-service.py,
3334         python/examples/example-signal-emitter.py: update examples
3335
3336         * python/examples/gconf-proxy-service.py,
3337         python/examples/gconf-proxy-service2.py: TODO fix these up
3338
3339         * doc/TODO: Addition
3340         - Added a Python Bindings 1.0 section
3341         - added "Add match on args or match on details to match rules"
3342
3343
3344 2005-07-12  Colin Walters  <walters@verbum.org>
3345
3346         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3347         (statemachine-glue.h): 
3348         * glib/examples/Makefile.am (example-service-glue.h) 
3349         (example-signal-emitter-glue.h): 
3350         * glib/Makefile.am (dbus-glib-error-switch.h): 
3351         Add libtool --mode=execute so we use the built library instead
3352         of any installed one.
3353
3354 2005-07-11  Colin Walters  <walters@verbum.org>
3355
3356         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3357         (dbus_g_value_types_init): Remove assertion.
3358         (dbus_g_value_get_g_type, dbus_g_value_open)
3359         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3360         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3361         functions related to DBusGValue.  Now we marshal/demarshal
3362         structures as GValueArray.
3363         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3364         structures.
3365         (signature_iter_to_g_type_array): Don't call
3366         signature_iter_to_g_type_struct.
3367         (signature_iter_to_g_type_struct): Delete.
3368         (dbus_gvalue_to_signature): Delete.
3369         (dbus_gvalue_to_signature): New function with same name as other
3370         one; we can convert structures to signatures.
3371         (demarshal_valuearray): New function.
3372         (get_type_demarshaller): Use it.
3373         (demarshal_recurse): Delete.
3374         (marshal_proxy): New function.
3375         (marshal_map): Warn if we can't determine signature from type.
3376         (marshal_collection_ptrarray): Ditto.
3377         (marshal_collection_array): Ditto.
3378         (get_type_marshaller): Use marshal_valuearray.
3379         (marshal_recurse): Delete.
3380         (_dbus_gvalue_test): Add some tests.
3381
3382         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3383         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3384         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3385         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3386         (dbus_g_value_free): Remove prototypes.
3387
3388         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3389         G_TYPE_VALUE_ARRAY.
3390
3391         * glib/examples/example-service.c:
3392         * glib/examples/example-client.c: Implement GetTuple.
3393
3394         * test/glib/test-dbus-glib.c:
3395         * test/glib/test-service-glib.c:
3396         * test/glib/test-service-glib.xml: Add structure tests.
3397
3398 2005-07-10  Colin Walters  <walters@verbum.org>
3399
3400         * doc/TODO: Knock off some GLib items with this patch.
3401
3402         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3403         (_dbus_gvalue_signals_error): New functions.
3404
3405         * glib/dbus-gvalue-utils.h: Prototype them.
3406
3407         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3408         and change to not output const/retval flags for input args.  All
3409         callers updated.
3410         (invoke_object_method): Refactor to handle return values.  Add
3411         some more comments in various places.  Remove debug g_print.
3412
3413         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3414
3415         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3416         Handle G_TYPE_NONE.
3417         (compute_gsignature): New function; refactored from code from
3418         compute_marshaller and compute_marshaller_name.  Enhance to
3419         handle return values and async ops more cleanly.  Update for
3420         async ops returning NONE instead of BOOLEAN.
3421         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3422         and output appropriate string.
3423         (generate_glue): Handle return value annotation.  Also don't dump
3424         constness flag for input arguments.
3425
3426         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3427         files shared between installed library and utilities.
3428         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3429         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3430         binding tool can access gtype utility functions.
3431
3432         * test/glib/test-service-glib.c: 
3433         * test/glib/test-service-glib.xml: 
3434         * test/glib/test-dbus-glib.c: Add some tests for return values.
3435
3436 2005-07-09  Colin Walters  <walters@verbum.org>
3437
3438         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3439         argument if available, not method.
3440
3441         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3442         (invoke_object_method): First, remove some redundant
3443         GValues (object_value, error_value) in favor of working on
3444         array directly.  Second, rework constness to be less buggy.
3445         Now we iterate directly over the argument metadata instead
3446         of parallel iterating over output signature and metadata.
3447
3448         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3449
3450         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3451         annotation on input args.
3452         
3453 2005-07-09  Colin Walters  <walters@verbum.org>
3454
3455         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3456         Define.
3457
3458         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3459         annotation.
3460
3461         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3462         (method_dir_signature_from_object_info): Handle arg_iterate change.
3463         (write_interface): Ditto.
3464         (lookup_object_info): Don't barf if format_version is > 0.
3465         (invoke_object_method): Handle arg constness.
3466
3467         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3468         (arg_info_new): Create.
3469         (arg_info_unref): Destroy.
3470         (arg_info_get_annotations, arg_info_get_annotation) 
3471         (arg_info_add_annotation): New functions.
3472
3473         * glib/dbus-gidl.h: Prototype them.
3474
3475         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3476         args, disallow them in properties.
3477         (parse_annotation): Handle arg annotations.
3478
3479         * test/glib/test-service-glib.xml: 
3480         * test/glib/test-service-glib.c: Update to make some methods
3481         const.
3482
3483 2005-07-08  Colin Walters  <walters@verbum.org>
3484
3485         * test/glib/test-service-glib.xml: 
3486         * test/glib/test-service-glib.c:
3487         * test/glib/test-dbus-glib.c: Test a{sv}.
3488
3489         * glib/examples/statemachine/statemachine.c:
3490         * glib/examples/statemachine/statemachine-server.c:
3491         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3492         add progress bar, etc.
3493
3494         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3495         needed anymore due to generic array/map marshalling.
3496         (dbus_g_value_types_init): Don't register basic arrays or the
3497         string/string hash.
3498         (dbus_gtype_from_signature_iter): Don't try to recurse into
3499         variants.
3500         (dbus_gtype_to_signature): Check collection/map before type
3501         metadata.
3502         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3503         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3504         generic map creation/append functions instead of hash table
3505         specifically.
3506         (get_type_demarshaller): Handle maps.
3507         (demarshal_collection): Dispatch on collection type to either
3508         demarshal_collection_ptrarray or demarshal_collection_array.
3509         (get_type_marshaller): Handle maps.
3510         (marshal_collection): Dispatch collection type to either
3511         marshal_collection_ptrarray or marshal_collection_array.
3512         (_dbus_gvalue_test): New test.
3513
3514         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3515         (hash_free_from_gtype): Use it to free GValues.
3516         (hashtable_append): New function.
3517         (ptrarray_append): Fix prototype.
3518         (slist_append): Ditto.
3519         (_dbus_gvalue_utils_test): Extend tests.
3520
3521         * glib/dbus-gtype-specialized.c
3522         (dbus_g_type_specialized_init_append): Renamed from
3523         dbus_g_type_specialized_collection_init_append.  Remove const from
3524         value, since we steal it.
3525         (dbus_g_type_specialized_map_append): New function.
3526
3527         * glib/dbus-gtype-specialized.h: Update prototypes.
3528         Add DBusGTypeSpecializedMapAppendFunc.
3529
3530         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3531         _dbus_gvalue_test.
3532         
3533         * glib/dbus-gtest.h: Prototype it.
3534
3535 2005-07-08  Ross Burton  <ross@openedhand.com>
3536
3537         * dbus/dbus-glib.h:
3538         Add DBysGAsyncData for the async bindings.
3539
3540         * glib/dbus-binding-tool-glib.c:
3541         Re-enable the async bindings.
3542
3543         * test/glib/test-dbus-glib.c:
3544         Add a test for the generated async bindings.
3545
3546 2005-07-08  Colin Walters  <walters@verbum.org>
3547
3548         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3549         connection concept.
3550         
3551 2005-07-08  Colin Walters  <walters@verbum.org>
3552         
3553         * tools/Makefile.am: Kill of print-introspect in favor of using
3554         dbus-send --print-reply=literal.
3555
3556         * test/glib/test-service-glib.xml: 
3557         * test/glib/test-service-glib.c (my_object_get_objs): New test
3558         for "ao".
3559
3560         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3561         (main): Test GetObjs.
3562
3563         * glib/examples/statemachine/Makefile.am:
3564         * glib/examples/statemachine/sm-marshal.list:
3565         * glib/examples/statemachine/statemachine-client.c:
3566         * glib/examples/statemachine/statemachine-server.c:
3567         * glib/examples/statemachine/statemachine-server.xml:
3568         * glib/examples/statemachine/statemachine.c:
3569         * glib/examples/statemachine/statemachine.h:
3570         * glib/examples/statemachine/statemachine.xml:
3571
3572         New example.
3573
3574         * glib/examples/example-service.c (main): Move invocation
3575         of dbus_g_object_type_install_info earlier, to emphasize it
3576         should only be done once.
3577
3578         * glib/examples/example-signal-emitter.c (main): Ditto.
3579
3580         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3581
3582         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3583         (dbus_gvalue_marshal): Update prototypes.
3584
3585         * glib/dbus-gvalue.c: Update all marshalling functions to take
3586         const GValue instead of GValue.
3587         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3588         types.
3589         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3590         change.
3591         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3592         Return a newly-allocated string.
3593         (demarshal_proxy, demarshal_object_path, demarshal_object)
3594         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3595         we get the wrong types from message.
3596         (get_type_demarshaller): New function, extracted from
3597         dbus_gvalue_demarshal.
3598         (demarshal_collection): New function, demarshals generic
3599         collection.
3600         (dbus_gvalue_demarshal): Just invoke result of
3601         get_type_demarshaller.  Throw error if we don't have one.
3602         (marshal_garray_basic): Abort on OOM.
3603         (get_type_marshaller): New function, extracted from
3604         dbus_gvalue_marshal.
3605         (collection_marshal_iterator, marshal_collection): New functions;
3606         implements generic marshalling for an iteratable specialized
3607         collection.
3608         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3609
3610         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3611         G_TYPE_STRING.
3612         (ptrarray_value_from_gvalue): Ditto.
3613         (ptrarray_append, ptrarray_free): New functions.
3614         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3615         (slist_append, slist_end_append, slist_free): New functions.
3616         (dbus_g_type_specialized_builtins_init): Add append fuctions
3617         for GPtrArray and GSList.  Register GSList.
3618         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3619
3620         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3621         New.
3622         (dbus_g_type_specialized_collection_init_append)
3623         (dbus_g_type_specialized_collection_append)
3624         (dbus_g_type_specialized_collection_end_append): Prototype.
3625         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3626         end_append_func.
3627
3628         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3629         (dbus_g_type_specialized_collection_append) 
3630         (dbus_g_type_specialized_collection_end_append): New functions.
3631         (dbus_g_type_map_value_iterate): Take const GValue.
3632         (dbus_g_type_collection_value_iterate): Ditto.
3633
3634         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3635         _dbus_gvalue_utils_test.
3636         
3637         * glib/dbus-gtest.h: Prototype it.
3638
3639         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3640         using uninitialized owner_list.
3641         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3642         public API.
3643         (dbus_g_proxy_end_call_internal): Update to use error set
3644         from dbus_gvalue_demarshal instead of setting it here.
3645         (dbus_g_proxy_begin_call): Move return_if_fail here.
3646
3647         * glib/dbus-gobject.c (write_interface): Update for
3648         dbus_gtype_to_signature returning new string.
3649
3650         * configure.in: Add glib/examples/statemachine.
3651
3652 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3653
3654         * configure.in: Add a configure option, --with-console-auth-dir
3655         
3656         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3657         new setting.  Patch from Kay Sievers.
3658
3659 2005-07-06  Colin Walters  <walters@verbum.org>
3660
3661         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3662         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3663         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3664         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3665         Delete in favor of dbus_g_proxy_begin_call and
3666         dbus_g_proxy_cancel_call.
3667         (DBusGProxyCall, DBusGProxyCallNotify): New.
3668         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3669         data, and destroy function.  This replaces
3670         dbus_g_pending_call_set_notify.
3671         (dbus_g_proxy_cancel_call): Prototype.
3672         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3673
3674         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3675         pending_calls map.
3676         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3677         internal proxy for calls to the bus. Remove
3678         pending_nameowner_calls, now the internal proxy keeps track.
3679         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3680         pending_nameowner_calls.
3681         (got_name_owner_cb): Update prototype, and use
3682         dbus_g_proxy_end_call.
3683         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3684         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3685         favor of using internal proxy.
3686         (dbus_g_proxy_manager_unregister): Update to use
3687         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3688         (dbus_g_proxy_init): Initialize pending calls map.
3689         (dbus_g_proxy_constructor): New.
3690         (dbus_g_proxy_class_init): Add get/set property functions,
3691         constructor, and add NAME, PATH, and INTERFACE properties.
3692         (cancel_pending_call): New function.
3693         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3694         cancel them.
3695         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3696         (GPendingNotifyClosure): New structure.
3697         (d_pending_call_notify, d_pending_call_free): Moved here from
3698         dbus-glib.c.
3699         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3700         ordering.
3701         (manager_begin_bus_call): New internal function for talking to
3702         internal bus proxy.
3703         (dbus_g_proxy_new): Construct object using GObjet properties.
3704         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3705         Create closure of same, and insert call into map of pending calls.
3706         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3707         call.  Look up pending call in current set.  Remove it when we've
3708         completed.
3709         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3710         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3711         and destroy function directly.
3712         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3713         (dbus_g_proxy_call): Invoke with NULL callback.
3714         (dbus_g_proxy_cancel_call): New function, replaces
3715         dbus_g_pending_call_cancel.
3716
3717         * glib/dbus-gparser.c (validate_signature): Fix call to
3718         dbus_set_g_error.
3719
3720         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3721         New quark for attaching metadata to GType.
3722         (info_hash): Delete.
3723         (lookup_object_info): Look up using quark.
3724         (dbus_g_object_type_install_info): Check that a type is classed,
3725         not that it's an object.  Also just install type data using quark
3726         instead of using global hash.
3727
3728         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3729         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3730         (GPendingNotifyClosure): Delete.
3731         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3732         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3733
3734         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3735         client method generation until we can fix it...
3736         
3737         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3738         (load_from_service_thread_func): Ditto.
3739
3740         * tools/dbus-names-model.c (struct NamesModel): Hold
3741         DBusGProxyCall.
3742         (have_names_notify): Update prototype, use
3743         dbus_g_proxy_cancel_call.
3744         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3745
3746         * tools/dbus-monitor.c (filter_func): Update for print_message
3747         API change.
3748
3749         * test/glib/test-dbus-glib.c: Add more tests for async
3750         invocations.  Update many begin_call/end_call pairs to just use
3751         dbus_g_proxy_call.
3752
3753         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3754         allows us to dump print-introspect.c.
3755
3756         * tools/dbus-print-message.h (print_message): Add literal argument
3757         to print_message which is intended to allow printing arguments without
3758         metadata like "string=".
3759
3760         * tools/dbus-print-message.c (print_iter): Add literal argument.
3761         (print_message): Allow printing string messages literally.
3762
3763 2005-07-05  Colin Walters  <walters@verbum.org>
3764
3765         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3766         Remove value refcount leak, original patch from Jorn Baayen
3767         <jorn@openedhand.com>.  Also remove useless extra value in favor
3768         of prepending to value array directly.
3769
3770 2005-07-02  Colin Walters  <walters@verbum.org>
3771
3772         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3773
3774 2005-07-01  Colin Walters  <walters@verbum.org>
3775
3776         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3777         
3778         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3779         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3780         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3781         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3782
3783 2005-06-30  Colin Walters  <walters@verbum.org>
3784
3785         * test/glib/test-dbus-glib.c:
3786         * test/glib/test-service-glib.c:
3787         * test/glib/test-service-glib.xml: Update tests for new error
3788         setting bits, also add async tests (patch from Ross Burton).
3789
3790         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3791         DBUS_GLIB_THREADS_LIBS.
3792
3793         * glib/dbus-gproxy.c (get_name_owner)
3794         (dbus_g_pending_call_end_valist): Ditto.
3795
3796         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3797         domain (GQuark) to DBusGErrorInfo.  
3798         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3799         quark in error_metadata.  Take message interface as default
3800         error message interface.
3801         (gerror_to_dbus_error_message): Pass message interface.
3802         (dbus_set_g_error): Resurrected.
3803         (dbus_g_error_info_free): New function.
3804         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3805         of _peek to actually create the object class if it hasn't been
3806         created yet.
3807         (dbus_g_error_domain_register): New function.
3808
3809         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3810
3811         * glib/dbus-gparser.c (validate_signature): Ditto.
3812
3813         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3814         (dbus_g_error_domain_register): Prototype.
3815
3816         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3817         Update tests.
3818
3819 2005-06-29  Colin Walters  <walters@verbum.org>
3820
3821         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3822         DBUS_TYPE_G_OBJECT_PATH.
3823
3824         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3825         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3826         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3827         (dbus_g_object_path_get_g_type): New function.
3828         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3829         to DBUS_TYPE_G_OBJECT_PATH by default.
3830         (demarshal_proxy): Remove unused name variable.
3831         (demarshal_object_path, marshal_object_path): New functions.
3832         (demarshal_proxy_array, marshal_proxy_array): Delete.
3833         
3834         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3835         DBUS_TYPE_G_OBJECT_PATH to char *.
3836         (dbus_g_type_get_lookup_function): Map builtin
3837         DBUS_TYPE_G_OBJECT_PATH.
3838
3839         * test/glib/test-dbus-glib.c
3840         * test/glib/test-service-glib.c (my_object_objpath): 
3841         Adapt tests to new object path marshalling.
3842
3843 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3844
3845         * configure.in: force check for Python >= 2.4
3846
3847 2005-06-29  Colin Walters  <walters@verbum.org>
3848         
3849         Patch from Ross Burton <ross@openedhand.com>
3850         
3851         * glib/dbus-gobject.c (invoke_object_method): Unset object
3852         value in all cases, not only in async case.
3853
3854 2005-06-29  Colin Walters  <walters@verbum.org>
3855
3856         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3857         name_call for keeping track of any outgoing GetNameOwner call.
3858         Also add for_owner and associated.
3859         (struct _DBusGProxyManager): Add owner_names, which is hash table
3860         that maps a base name to a list of names it owns (that we're
3861         interested in).  Add pending_nameowner_calls which is a list of
3862         all outstanding GetNameOwner; avoids us having to iterate over
3863         every proxy.  Add unassociated_proxies which keeps track of name
3864         proxies with no associated name owner.
3865         (dbus_g_proxy_manager_unref): Destroy owner_names.
3866         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3867         name refcounts.
3868         (find_name_in_info, name_owner_foreach)
3869         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3870         (dbus_g_proxy_manager_monitor_name_owner)
3871         (dbus_g_proxy_manager_unmonitor_name_owner)
3872         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3873         New functions; they manipulate the owner_names mapping.
3874         (got_name_owner_cb): New function.
3875         (get_name_owner): New function, extracted from
3876         dbus_g_proxy_new_for_name_owner.
3877         (dbus_g_proxy_manager_register): For now we need to keep track of
3878         all NameOwnerChanged.  Also if the proxy is for a name, if we
3879         don't already know the name owner, queue a new GetNameOwner
3880         request and add it to our list of unassociated proxies.  Otherwise
3881         inc the refcount.
3882         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3883         cancel any pending GetNameOwner call, etc.
3884         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3885         the owner_names mapping to look up the current names for the
3886         signal source, and dispatch to any proxies for that name.
3887         (dbus_g_proxy_new): Initialize new members.
3888         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3889         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3890         (dbus_g_pending_call_end_valist): New function, extracted from
3891         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3892         but want to use the GLib infrastructure.  Also note how many
3893         arguments in reply were over.
3894         (dbus_g_pending_call_end): New function, just call
3895         dbus_g_pending_call_end_valist.
3896         (dbus_g_proxy_end_call_internal): Just call
3897         dbus_g_pending_call_end_valist.
3898
3899         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3900         of builtin marshaller for STRING_STRING_STRING.
3901
3902         * test/glib/test-dbus-glib.c: 
3903         * test/glib/test-service-glib.c:
3904         * test/glib/test-service-glib.xml:
3905         Extend tests to cover name proxies, destruction of owner proxies,
3906         etc.
3907         
3908         * glib/examples/example-signal-recipient.c
3909         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3910         
3911         * tools/dbus-send.c (main): Print D-BUS error name in addition
3912         to message.
3913
3914 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3915
3916         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3917         cmessage_function_handler): Patch from 
3918         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3919         by using the Py_GILState_Ensure/Release to synchronize with the
3920         python runtime.
3921         
3922 2005-06-28  Ray Strode  <rstrode@redhat.com>
3923
3924         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3925         babysitter helper process on last unref, bug #2813.
3926
3927 2005-06-27  Colin Walters  <walters@verbum.org>
3928
3929         * test/glib/test-dbus-glib.c: 
3930         * test/glib/test-service-glib.c:
3931         * test/glib/test-service-glib.xml:
3932         Test hash table signal emitting.
3933
3934         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3935         types to their fundamental basis types, since this is what
3936         marshallers operate on.  Also add an entry for VOID__BOXED.
3937         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3938
3939 2005-06-26  Havoc Pennington  <hp@redhat.com>
3940
3941         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3942         from Don Park
3943
3944 2005-06-26  Colin Walters  <walters@verbum.org>
3945
3946         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3947         (dbus_g_error_set): New public function from its ashes; used by
3948         both service-side method implementation and GLib bindings
3949         internals.
3950         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3951         (_dbus_glib_test): Add some tests.
3952
3953         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3954
3955         * test/glib/test-service-glib.c (my_object_throw_error): Use
3956         dbus_g_error_set.
3957
3958         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3959         errors thrown by dbus_g_error_set.
3960
3961         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3962
3963         * glib/dbus-gparser.c (validate_signature): Ditto.
3964
3965         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3966         (dbus_g_proxy_end_call_internal): Ditto.
3967
3968         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3969         converts DBUS_ERROR_x to DBUS_GERROR_x.
3970         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3971
3972         * doc/TODO: Remove error TODO.
3973
3974         * doc/dbus-tutorial.xml: Update with documentation about error
3975         handling.
3976
3977         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3978         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3979         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3980
3981 2005-06-22  Colin Walters  <walters@verbum.org>
3982         
3983         Patch from Ross Burton <ross@openedhand.com>
3984
3985         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3986
3987 2005-06-20  Colin Walters  <walters@verbum.org>
3988
3989         * configure.in: Add glib/examples.
3990
3991         * glib/Makefile.am: Add examples/
3992
3993         * glib/examples/.cvsignore
3994         * glib/examples/Makefile.am
3995         * glib/examples/example-client.c
3996         * glib/examples/example-service.c
3997         * glib/examples/example-service.xml
3998         * glib/examples/example-signal-emitter.c
3999         * glib/examples/example-signal-emitter.xml
4000         * glib/examples/example-signal-recipient.c:
4001         New files; GLib binding examples, ported from
4002         python/examples.
4003
4004 2005-06-20  Colin Walters  <walters@verbum.org>
4005
4006         * dbus/dbus-glib.h: 
4007         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4008         dbus_g_proxy_call.
4009
4010         * glib/dbus-binding-tool-glib.c: 
4011         * doc/dbus-tutorial.xml: 
4012         * test/glib/test-dbus-glib.c: Update for rename.
4013         
4014 2005-06-20  Colin Walters  <walters@verbum.org>
4015
4016         Patch suggested by Ross Burton <ross@openedhand.com>
4017
4018         * glib/dbus-gobject.c (export_signals): Free signal name.
4019         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4020         memory leak.  Add a bit of documentation.
4021         (dbus_g_method_return_error): Free context, and note we do
4022         so.
4023
4024 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4025
4026         * dbus/dbus-glib.h:
4027         * glib/dbus-gobject.c:
4028         * glib/dbus-gproxy.c:
4029         * glib/dbus-gvalue.c: Predeclare structs as 
4030         typedef struct _Something Something instead of 
4031         typedef struct Something Something, so we can 
4032         redeclare the prototypes. Other GNOME libraries 
4033         do this already.
4034
4035 2005-06-17  Colin Walters  <walters@verbum.org>
4036
4037         * tools/dbus-names-model.c (have_names_notify): Fix call
4038         to dbus_g_proxy_end_call.
4039         
4040 2005-06-17  Colin Walters  <walters@verbum.org>
4041
4042         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4043         spew warnings if we get malformed remote signals.
4044
4045         * glib/dbus-gobject.c (propsig_iterate): New function.
4046         (lookup_object_info): New function, extracted from
4047         lookup_object_and_method.
4048         (introspect_properties, introspect_signals): Delete; these
4049         are merged into write_interface.
4050         (write_interface): Write out signals and properties here;
4051         dump the org.gtk.object stuff and use the interface given
4052         in the introspection data blob.  Also fix up property XML.
4053         (lookup_values): New function.
4054         (introspect_interfaces): Gather a mapping from interface to a
4055         list of its methods, signals, and properties, then write out
4056         each interface.
4057         (lookup_object_and_method): Use lookup_object_info.
4058         (struct DBusGSignalClosure): Add interface.
4059         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4060         we can just use the constant data.
4061         (dbus_g_signal_closure_finalize): Don't free signal name.
4062         (signal_emitter_marshaller): Use interface from signal closure.
4063         (export_signals): Only export signals mentioned in introspection
4064         blob.
4065         (dbus_g_connection_register_g_object): Warn if we have no
4066         introspection data for an object.
4067         (funcsig_equal): Remove unused variable.
4068         (dbus_g_object_register_marshaller): Take varargs instead of
4069         list.
4070         (dbus_g_object_register_marshaller_array): New function,
4071         extracted from old dbus_g_object_register_marshaller.
4072
4073         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4074         signals and property data.
4075         (write_quoted_string): New function, extracted from generate_glue.
4076         (generate_glue): Write signals and properties to introspection
4077         blob.
4078
4079         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4080         exported_signals and exported_properties.
4081         (dbus_g_object_register_marshaller): Update prototype.
4082         (dbus_g_object_register_marshaller_array): Prototype.
4083         
4084         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4085
4086         * test/glib/test-service-glib.c: Add new test signals and method
4087         to emit them.
4088
4089         * test/glib/test-service-glib.xml: Add some test signals.
4090
4091         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4092         and my-object-marshal.h
4093         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4094         my-object-marshal.c.
4095         (my-object-marshal.c, my-object-marshal.h): Implement.
4096
4097         * test/glib/.cvsignore: Update.
4098
4099         * doc/TODO: Remove two GLib TODO items fixed by this
4100         patch.
4101
4102 2005-06-16  Colin Walters  <walters@verbum.org>
4103
4104         * doc/TODO: Update for GLib bindings.
4105         
4106 2005-06-16  Colin Walters  <walters@verbum.org>
4107
4108         * glib/dbus-binding-tool-glib.c:
4109         * glib/dbus-gobject.c:
4110         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4111         from Ross Burton, for his GLib bindings work.
4112
4113 2005-06-16  Colin Walters  <walters@verbum.org>
4114
4115         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4116         to iterate instead of walking to G_TYPE_INVALID.
4117
4118         Patch based on a patch from Ryan Gammon.
4119
4120 2005-06-16  Colin Walters  <walters@verbum.org>
4121
4122         * bus/bus.c (bus_context_new): Set parser to NULL
4123         after we unref it (Patch from Chris Boscolo, #2174).
4124         
4125 2005-06-16  Colin Walters  <walters@verbum.org>
4126
4127         * python/dbus_bindings.pyx.in: Import size_t,
4128         __int64_t, __uint64_t, and __signed.
4129
4130         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4131         Define cmsg struct, output it.
4132         (_dbus_read_credentials_unix_socket):
4133         Use cmsg struct.
4134         
4135         Patch from Joe Markus Clarke for FreeBSD support.
4136         
4137 2005-06-16  Colin Walters  <walters@verbum.org>
4138
4139         * tools/dbus-send.c (append_array): Use strtok.
4140         (append_dict): New function.
4141         (type_from_name): New function, extracted from main.
4142         (main): Handle sending dicts.
4143
4144         * tools/dbus-print-message.c (print_iter): Print dict
4145         entries.
4146         
4147 2005-06-16  Colin Walters  <walters@verbum.org>
4148
4149         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4150         values as the empty string (#2948).
4151         
4152 2005-06-16  Colin Walters  <walters@verbum.org>
4153
4154         * dbus/Makefile.am:
4155         * mono/doc/Makefile.am:
4156         * test/glib/Makefile.am:
4157
4158         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4159
4160 2005-06-16  Colin Walters  <walters@verbum.org>
4161
4162         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4163         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4164
4165         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4166         Increment pointer after swapping fixed array.  Add assertion
4167         for array length.
4168                 
4169 2005-06-15  Colin Walters  <walters@verbum.org>
4170
4171         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4172         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4173         
4174 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4175
4176         * NEWS: Update to 0.34
4177
4178 2005-06-15  David Zeuthen  <davidz@redhat.com>
4179
4180         * configure.in (LT_CURRENT): Revert back to 1 as the library
4181         hasn't changed and we've certainly not committed to protocol
4182         stability yet.  All this does is to break ABI. See commit note
4183         from hp@redhat.com 2005-05-05 for details.
4184         
4185 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4186
4187         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4188         (_dbus_connection_run_builtin_filters): New method
4189         (dbus_connection_dispatch): Run the builtin filters which in turn
4190         runs the peer filter which handles Ping messages.
4191
4192         * doc/TODO: 
4193          - Ping isn't handled: This patch fixes it
4194          
4195          - Add a test case for the Ping message: added TODO item
4196
4197 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4198
4199         * dbus/dbus-message.c:
4200         (dbus_message_has_path): New method
4201         (dbus_message_has_interface): New method
4202         (dbus_message_has_member): New method
4203
4204         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4205         New method
4206
4207         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4208         the keyring directory is private to the user
4209
4210         * doc/TODO:
4211          - The convenience functions in dbus-bus.h should perhaps have
4212          the signatures that they would have if they were autogenerated
4213          stubs. e.g. the acquire service function. We should also evaluate
4214          which of these functions to include, in light of the fact that
4215          GLib/Qt native stubs will probably also exist.: Punted
4216
4217          - add dbus_message_has_path(), maybe has_member/interface:
4218          fixed in this patch
4219
4220          - in dbus-keyring.c, enforce that the keyring dir is not
4221          world readable/writable: Fixed in this patch
4222
4223 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4224
4225         * dbus/dbus-marshal-validate.h: Added a new validation
4226         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4227         out of memory errors when validating signitures
4228
4229         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4230         in places where we previously used DBUS_VALID and a FALSE return 
4231         value to indicate OOM
4232         
4233         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4234         Use a stack to track the number of elements inside containers.  The 
4235         stack values are then used to validate that dict entries have only two
4236         elements within them.
4237         (validate_body_helper): check the reason for failure when validating
4238         varients
4239         
4240         * dbus/dbus-message.c (load_message): use 
4241         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4242         DBUS_VALID and a FALSE return value to indicate OOM
4243
4244         * doc/TODO: remove "- validate dict entry number of fields" as this
4245         patch fixes it
4246
4247 2005-06-14  David Zeuthen  <davidz@redhat.com>
4248
4249         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4250         watches (if applicable) and add new watches
4251
4252         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4253         (main): Setup SIGIO signal handler if using D_NOTIFY
4254
4255         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4256
4257         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4258         (merge_included): Also merge conf_dirs list
4259         (bus_config_parser_unref): Clear conf_dirs list
4260         (include_dir): Add directory to conf_dirs list
4261         (bus_config_parser_get_conf_dirs): New function
4262
4263         * bus/dir-watch.[ch]: New files
4264
4265         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4266
4267         * configure.in: Add checks for D_NOTIFY on Linux
4268
4269 2005-06-14  Colin Walters  <walters@verbum.org>
4270
4271         * glib/dbus-binding-tool-glib.c:
4272         * glib/dbus-gobject.c:
4273         * glib/dbus-gvalue.c: Fix indentation and brace style.
4274         
4275 2005-06-14  Ross Burton <ross@openedhand.com>.
4276
4277         * glib/dbus-glib.h: Make DBusGMethodInvocation
4278         a private structure.  Rearrange prototypes a bit.
4279         
4280         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4281         documentation for first_arg_type.
4282         
4283         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4284         here, add documentation.  Move dbus_g_method_return
4285         and dbus_g_method_return_error into public API
4286         section.
4287
4288 2005-06-14  Colin Walters  <walters@verbum.org>
4289
4290         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4291         Add missing return statements, noticed by Ross Burton.
4292         
4293 2005-06-13  Ross Burton <ross@openedhand.com>.
4294
4295         * glib/dbus-gobject.c: Handle errors on message
4296         demarshalling by sending error message back.
4297         * glib/dbus-gvalue.c: Initialize return variables.
4298
4299 2005-06-13  Colin Walters  <walters@verbum.org>
4300
4301         * glib/Makefile.am: Fix thinko in last patch.
4302
4303 2005-06-13  Colin Walters  <walters@verbum.org>
4304
4305         * glib/Makefile.am: Move dbus-gtype-specialized.c
4306         and dbus-gtype-specialized.h into a _HEADERS variable,
4307         install them.
4308
4309 2005-06-12  Colin Walters  <walters@verbum.org>
4310
4311         Async signals and various bugfixes and testing by
4312         Ross Burton <ross@openedhand.com>.
4313
4314         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4315         (dbus_gvalue_genmarshal_name_from_type)
4316         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4317         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4318         (dbus_g_value_types_init, dbus_gtype_from_signature)
4319         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4320         (dbus_gtypes_from_arg_signature): New function prototypes.
4321         (dbus_gvalue_demarshal): Take context and error arguments.
4322         (dbus_gvalue_demarshal_variant): New function.
4323         (dbus_gvalue_demarshal_message): New function.
4324         (dbus_gvalue_store): Delete.
4325
4326         * glib/dbus-gvalue.c:
4327
4328         File has been almost entirely rewritten; now we special-case
4329         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4330         hash tables correctly, etc.  Full support for recursive values
4331         is not yet complete.
4332
4333         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4334         argument of signal to G_TYPE_POINTER since we now pass a
4335         structure.
4336         (lookup_g_marshaller): Delete in favor of
4337         _dbus_gobject_lookup_marshaller.
4338         (marshal_dbus_message_to_g_marshaller): Use
4339         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4340         to handle remote signal callbacks.
4341         (dbus_g_proxy_new_from_proxy): New function; creates a new
4342         DBusGProxy by copying an existing one.
4343         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4344         (dbus_g_proxy_get_path): New functions.
4345         (dbus_g_proxy_marshal_args_to_message): New function;
4346         factored out of existing code.
4347         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4348         from a varargs array.
4349         (dbus_g_proxy_begin_call_internal): New function.
4350         (dbus_g_proxy_end_call_internal): New function.
4351         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4352         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4353         after collecting args into value array.
4354         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4355         invoke dbus_g_proxy_end_call_internal.
4356         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4357         end_call_internal.
4358         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4359         types.
4360         (array_free_all): New function.
4361         (dbus_g_proxy_add_signal): Take GTypes.
4362
4363         * glib/dbus-gobject.h:
4364         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4365         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4366         Prototype.
4367
4368         * glib/dbus-gobject.c: Add a global marshal_table hash which
4369         stores mappings from type signatures to marshallers.  Change lots
4370         of invocations of dbus_gtype_to_dbus_type to
4371         dbus_gtype_to_signature.
4372         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4373         (introspect_signals): Fix test for query.return_type.
4374         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4375         (invoke_object_method): Many changes.  Handle asynchronous
4376         invocations.  Convert arguments with
4377         dbus_gvalue_demarshal_message.  Handle errors.  Use
4378         DBusSignatureIter instead of strlen on args. Handle all arguments
4379         generically.  Special-case variants.
4380         (dbus_g_method_return, dbus_g_method_return_error): New function.
4381         (DBusGSignalClosure): New structure, closes over signal
4382         information.
4383         (dbus_g_signal_closure_new): New function.
4384         (dbus_g_signal_closure_finalize): New function.
4385         (signal_emitter_marshaller): New function; is special marshaller
4386         which emits signals on bus.
4387         (export_signals): New function; introspects object signals and
4388         connects to them.
4389         (dbus_g_object_type_install_info): Take GType instead of
4390         GObjectClass.
4391         (dbus_g_connection_register_g_object): Invoke export_signals.
4392         (dbus_g_connection_lookup_g_object): New function.
4393         (DBusGFuncSignature) New structure; used for mapping type
4394         signatures to marshallers.
4395         (funcsig_hash): New function; hashes DBusGFuncSignature.
4396         (funcsig_equal): New function; compares DBusGFuncSignature.
4397         (_dbus_gobject_lookup_marshaller): New function.
4398         (dbus_g_object_register_marshaller): New function; used to
4399         register a marshaller at runtime for a particular signature.
4400
4401         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4402
4403         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4404         which notes a server method implementation should be
4405         asynchronous.
4406
4407         * glib/dbus-binding-tool-glib.c
4408         (dbus_binding_tool_output_glib_server): Call
4409         dbus_g_value_types_init.
4410         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4411         variants specially.
4412         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4413         of a lookup function.
4414         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4415         (write_untyped_out_args): New method; write output arguments.
4416         (write_formal_declarations_for_direction): Function for
4417         writing prototypes.
4418         (write_formal_parameters_for_direction): Function for
4419         writing implementations.
4420         (write_typed_args_for_direction): Function for writing
4421         arguments prefixed with GTypes.
4422         (write_async_method_client): Write out async version
4423         of method.
4424
4425         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4426         (dbus_g_type_get_marshal_name): Move mapping from GType
4427         to marshal name into here.
4428         (dbus_g_type_get_c_name): Move into here.
4429         (compute_marshaller): Convert signature to type with
4430         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4431         (compute_marshaller_name): Ditto.
4432         (compute_marshaller): Handle async signal annotations.
4433         (gather_marshallers): Return if we don't have a known
4434         prefix.
4435         (generate_glue): Collect introspection blob here, and
4436         write all of the blob at the end.  This allows an object
4437         with multiple interfaces to work.
4438         Mark async methods in introspection blob.
4439
4440         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4441         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4442         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4443
4444         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4445         avoids people accidentally using DBUS_TYPE_* which should
4446         not be necessary anymore.
4447         Do include dbus-gtype-specialized.h, which are utilities
4448         for GLib container types.
4449         Add various #defines for types such as
4450         DBUS_TYPE_G_BOOLEAN_ARRAY.
4451         (DBusGValueIterator, DBusGValue): Define, not fully used
4452         yet.
4453         (dbus_g_value_get_g_type): Type for recursive value.
4454         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4455         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4456         (dbus_g_value_free): Prototypes.
4457         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4458         (dbus_g_proxy_set_interface): Prototype.
4459         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4460         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4461         types.
4462         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4463         Accessors.
4464         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4465         doing async invocations.
4466         (dbus_g_method_return, dbus_g_method_return_error):
4467         Prototypes.
4468         * doc/dbus-tutorial.xml: Update GLib section.
4469         
4470         * tools/dbus-viewer.c (load_child_nodes): Update
4471         for new invocation type of dbus_g_proxy_end_call.
4472         (load_from_service_thread_func): Ditto.
4473
4474         * tools/print-introspect.c (main): Ditto.
4475
4476         * tools/dbus-names-model.c (have_names_notify)
4477         (names_model_reload, names_model_set_connection)
4478         Use GTypes.
4479
4480         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4481         needed since Python bindings use GLib bindings.
4482
4483         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4484         Add --prefix argument.
4485
4486         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4487         unneeded --ignore-unsupported arg.
4488         
4489         * test/glib/test-service-glib.c: 
4490         * test/glib/test-service-glib.xml:
4491         * test/glib/test-dbus-glib.c: Add many more tests.
4492
4493 2005-06-06  David Zeuthen  <davidz@redhat.com>
4494
4495         * doc/TODO: Add item about need to remove deprecated functions.
4496
4497         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4498
4499         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4500         to repair the ABI which was broken with the last commit.
4501
4502 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4503
4504         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4505         (dbus_connection_disconnect): renamed to dbus_connection_close 
4506         for API symmetry with dbus_connection_open
4507         (_dbus_connection_open_internal): 
4508         s/dbus_connection_disconnect/dbus_connection_close
4509
4510         * dbus/dbus-bus.c (dbus_bus_get):
4511         s/dbus_connection_disconnect/dbus_connection_close
4512
4513         * bus/connection.c (bus_connections_unref, 
4514         bus_connections_setup_connection, bus_connections_expire_incomplete):
4515         s/dbus_connection_disconnect/dbus_connection_close
4516
4517         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4518         kill_client_connection_unchecked, check_hello_connection):
4519         s/dbus_connection_disconnect/dbus_connection_close
4520
4521         * bus/bus.c (new_connection_callback):
4522         s/dbus_connection_disconnect/dbus_connection_close
4523
4524         * tools/dbus-send.c (main):
4525         s/dbus_connection_disconnect/dbus_connection_close
4526
4527         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4528         s/dbus_connection_disconnect/dbus_connection_close
4529         
4530         * test/test-service.c (path_message_func, filter_func):
4531         s/dbus_connection_disconnect/dbus_connection_close
4532         
4533         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4534         
4535 2005-05-25  Colin Walters  <walters@verbum.org>
4536
4537         * dbus/dbus-protocol.h: Move various bus service #defines such
4538           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4539           dbus/dbus-shared.h.
4540         * dbus/dbus-shared.h: Various defines moved here.
4541         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4542
4543 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4544
4545         * python/__init__.py: Python bindings deserve a minor version
4546         update.  Upped to (0, 40, 2)
4547
4548 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4549
4550         * python/decorators.py: add explicitly_pass_message decorator
4551         for passing in the dbus message as keyword for edge case signal
4552         handling
4553
4554         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4555         to conform with what dbus expects for match rules
4556         (SignalMatchRule.execute): add the dbus message as a keyword
4557         if the signal handler has requested it
4558
4559         * python/examples/example/signal-recipient.py: added some more
4560         examples on how to hook up to signals
4561
4562 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4563
4564         * python/decorators.py: import dbus_bindings
4565
4566         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4567         SignalMatchNode): new classes that implement wildcard signal
4568         callback matching using a tree lookup. Heavily modified from a
4569         patch sent by Celso Pinto (fd.o bug #3241)
4570
4571         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4572         use new match classes to handle signals.
4573
4574 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4575         
4576         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4577
4578 2005-05-18  Havoc Pennington  <hp@redhat.com>
4579
4580         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4581         gettext. Not really worth requiring yet perhaps, but any
4582         production quality 1.0 would require it so we should go ahead and
4583         get things set up. We do have a couple token calls to
4584         bindtextdomain in the code already.
4585
4586 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4587
4588         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4589         when using recursive g_main_loops
4590
4591         * python/_dbus.py (class Bus): add the ProxyObjectClass
4592         alias for ProxyObject to make it easier for the Twisted 
4593         networking framework to integrate dbus.
4594
4595         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4596         alias for ProxyMethod to make it easier for the Twisted 
4597         networking framework to integrate dbus. 
4598
4599 2005-05-11  Ross Burton  <ross@openedhand.com>
4600
4601         * glib/dbus-glib-tool.c: Add --prefix argument.
4602         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4603         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4604         Add prefix argument.
4605         (generate_glue): Pass prefix argument down.
4606         (dbus_binding_tool_output_glib_server): Pass prefix to
4607         glib-genmarshal.
4608         
4609 2005-05-11  Colin Walters  <walters@verbum.org>
4610
4611         * tools/dbus-send.c (append_array): New function.
4612         (append_arg): Broken out from main.
4613         (main): Add cheesy hack to send arrays and variants.
4614         (usage): Update.
4615         * tools/dbus-print-message.c (print_iter): Broken out
4616         from main.
4617
4618 2005-05-11  Colin Walters  <walters@verbum.org>
4619
4620         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4621         New function, returns signature string for signature iter.
4622         * dbus/dbus-signature.h: Prototype it.
4623         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4624         New function, returns signature string for message iter.
4625         (dbus_message_iter_get_array_len): New function, returns
4626         length of array.
4627         (dbus_message_iter_get_fixed_array): Fix assertion; this
4628         function should be used when the iter is pointing to the
4629         contents of an array
4630         * dbus/dbus-message.h: Prototypes.
4631         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4632         New function; returns length of an array.
4633         * dbus/dbus-marshal-recursive.h: Prototype it.
4634         
4635 2005-05-11  Colin Walters  <walters@verbum.org>
4636
4637         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4638         compilation error.
4639         
4640 2005-05-08  Havoc Pennington  <hp@redhat.com>
4641
4642         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4643         daemon's pid, not the parent's pid, to the file descriptor.
4644         Reported by Taj Morton.
4645
4646 2005-05-05  Havoc Pennington  <hp@redhat.com>
4647
4648         * configure.in (LT_*): add notes on how the libtool versioning
4649         works to save thinking. Increment soname to indicate protocol
4650         breakage (though really the library interface hasn't changed I
4651         guess)
4652
4653         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4654         verify the GUID received from server matches what we were
4655         expecting, if we had an expectation
4656
4657         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4658         (_dbus_auth_get_guid_from_server): new function
4659         (send_begin): parse the OK args
4660
4661         * doc/dbus-specification.xml: add GUID to the auth protocol
4662
4663 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4664
4665         * Fix my name in previous changelog ;)
4666
4667         * python/proxies.py (ProxyObject.__getattr__): add further patch
4668         from Anthony Baxter to throw an AttributeError when python 
4669         __special__ functions are called instead of marshling them over 
4670         the bus (Bug#1685 comment 3).
4671
4672 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4673
4674         * python/Makefile.am: changed to use pyexecdir for the binding
4675         shared libraries (Bug#2494)
4676
4677         * python/exceptions.py: bring exceptions over from the bindings
4678         so they can be used in applications (Bug#2036)
4679         Make all exceptions derive from DBusException
4680
4681         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4682         of classes so that print obj doesn't throw an exception (Bug #1685)
4683
4684 2005-05-03  Ross Burton  <ross@openedhand.com>
4685
4686         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4687         Return if we get an error during registration.  Set up a
4688         weak reference on object to unregister if object is destroyed.
4689         (unregister_gobject): New function.
4690         
4691 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4692
4693         * python/dbus_bindings.pyx.in: 
4694         - added new type classes for hinting to the marashaler what type 
4695         to send over the wire
4696         - added int16 and uint16 marshalers
4697         - Fixed a bug in the type constants that caused int32 to go out
4698         as uint16 over the wire
4699         * python/dbus.py: split up into different files and renamed _dbus.py
4700         * python/__init__.py, python/_util.py, python/decorators.py, 
4701         python/exceptions.py, python/proxies.py, python/services.py,
4702         python/types.py: new files split off from dbus.py
4703         * python/Makefile.am: Add new files, remove dbus.py and 
4704         install all python files to <python module dir>/dbus
4705         * python/examples/*: Added #!/usr/bin/env python to the top of
4706         every example.  Patch provided by Tatavarty Kalyan
4707
4708 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4709
4710         * NEWS: Update to 0.33
4711
4712 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4713
4714         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4715         method for doing async calls
4716         (_pending_call_notification): New C function for handling pendning call
4717         callbacks
4718         (set_notify): New method for setting pending call notification
4719         
4720         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4721         Async capabilities added to remote method calls
4722         (Sender): class removed
4723         (RemoteService): class removed
4724         (ObjectTree): class removed for now
4725         (RemoteObject): Renamed to ProxyObject
4726         (RemoteMethod): Renamed to ProxyMethod
4727         (method): Decorator added for decorating python methods as dbus methods
4728         (signal): Decorator added for decorating python methods as signal emitters
4729         (ObjectType): Metaclass added for generating introspection data and the
4730         method callback vtable
4731         (Interface): Wrapper class added to wrap objects in a dbus interface
4732         (Object): Uses ObjectType as its metaclass and exports Introspect
4733         of the org.freedesktop.DBus.Introspectable interface
4734         (ValidationException, UnknownMethodException): new exceptions
4735
4736         * python/examples/*: Modified to fit with the new bindings
4737
4738 2005-04-23  Havoc Pennington  <hp@redhat.com>
4739
4740         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4741         reported by Tony Houghton
4742
4743         * test/test-service.c (main): test
4744         dbus_connection_get_object_path_data()
4745
4746         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4747         the exact_match
4748         (_dbus_object_tree_get_user_data_unlocked): new function used by
4749         dbus_connection_get_object_path_data()
4750         (do_register): add assertion test for get_user_data_unlocked
4751         (object_tree_test_iteration): more tests
4752
4753         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4754         new function from Dan Reed to let you get the user data from 
4755         dbus_connection_register_object_path()
4756
4757 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4758
4759         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4760         in numerous places that did not account for the NULL terminator
4761         (signature_from_seed): changed the manual string copy loop to 
4762         just use strcpy instead
4763         make check should now pass
4764
4765 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4766
4767         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4768         so that it allows messages that are not signals to pass in 
4769         NULL as the interface.
4770
4771 2005-04-18  David Zeuthen  <davidz@redhat.com>
4772
4773         * glib/dbus-gmain.c (io_handler_destroy_source): 
4774         (timeout_handler_destroy_source, connection_setup_free): 
4775         Also unref the source to avoid memory leaks.
4776
4777 2005-04-13  David Zeuthen  <davidz@redhat.com>
4778
4779         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4780         more reasonable, yet still totally arbitrary, value :-). 
4781
4782 2005-04-13  David Zeuthen  <davidz@redhat.com>
4783
4784         * doc/TODO: Added an "important for 1.0" item about selinux
4785         allow/deny messages
4786
4787 2005-04-13  David Zeuthen  <davidz@redhat.com>
4788
4789         * bus/selinux.c: Add c-file-style to top of file
4790         (log_audit_callback): Don't free the data here anymore
4791         (bus_selinux_check): Don't take spid and tpid since appending
4792         that to auxdata may OOM.
4793         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4794         to the caller if we are OOM by taking an error object.
4795         (bus_selinux_allows_send): -do-
4796
4797         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4798         and bus_selinux_allows_send
4799
4800         * bus/bus.c (bus_context_check_security_policy): Pass error and
4801         pass on OOM thrown by bus_selinux_allows_send()
4802
4803         * bus/services.c (bus_registry_acquire_service): Pass error and
4804         pass on OOM thrown by bus_selinux_allows_acquire_service()
4805
4806 2005-04-13  Havoc Pennington  <hp@redhat.com>
4807
4808         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4809         message at a time to avoid monopolizing the main loop, bug 
4810         #2953 from Benjamin Otte
4811
4812 2005-04-09  Havoc Pennington  <hp@redhat.com>
4813
4814         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4815         possible overlap, fix from Daniel Reed
4816         (fixup_alignment): fix signedness warnings
4817         (_dbus_string_append_unichar): ditto
4818
4819 2005-04-09  Havoc Pennington  <hp@redhat.com>
4820
4821         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4822
4823         * glib/dbus-glib-tool.c (main): fix warning
4824
4825         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4826
4827         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4828         add a new function that can be used in simple applications that
4829         don't have a main loop and are willing to block
4830
4831 2005-04-05  David Zeuthen  <davidz@redhat.com>
4832
4833         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4834
4835         * glib/dbus-gmain.c:
4836         (io_handler_destroy_source): Remove from list of IO handlers
4837         of the ConnectionSetup object
4838         (timeout_handler_destroy_source): -do- for timeout handlers
4839         (io_handler_source_finalized): Don't remove from list since
4840         we now do that in io_handler_destroy_source(). Renamed from
4841         io_handler_source_destroyed
4842         (timeout_handler_source_destroyed): -do- for timeout handlers
4843         (connection_setup_free): It is now safe to iterate over all
4844         IO and timeout handlers as the _destroy_source removes them
4845         from the list synchronously
4846
4847 2005-03-30  Havoc Pennington  <hp@redhat.com>
4848
4849         * configure.in: change check to gtk 2.4
4850
4851         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4852         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4853         to 2.4
4854
4855 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4856
4857         * News: Update 0.32
4858
4859         * HACKING: Fixed realease instructions.  configure.in should be updated to
4860           the next release by the person who made the last release.
4861
4862 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4863
4864         * python/lvalue_cast_post_process.py - removed.  Patch has been
4865           submitted to Pyrex maintainers that fixes gcc4.0 errors
4866
4867         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4868
4869 2005-03-24  Daniel Reed  <n@ml.org>
4870
4871         * tools/Makefile.am: Make print-introspect and
4872         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4873
4874 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4875
4876         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4877
4878         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4879           had in Red Hat packages for a while but for some reason never 
4880           got merged upstream
4881           (_dbus_is_a_number): New checks if a string
4882           can be converted to a number and does the conversion if it can
4883           (_dbus_user_database_lookup): Add check to see if the given username
4884           is a udi.  This allows udi's to be used instead of usernames in the
4885           config file.
4886           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4887           is a gdi.  This allows gdi's to be used instead of groupnames in the
4888           config file.
4889
4890 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4891
4892         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4893           code so that it compiles with gcc4.0
4894
4895         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4896           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4897           results back to dbus_binding.c
4898
4899 2005-03-20  Colin Walters  <walters@verbum.org>
4900
4901         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4902
4903         * configure.in: Require GTK+ 2.6.
4904         
4905 2005-03-20  Colin Walters  <walters@verbum.org>
4906
4907         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4908
4909 2005-03-17  Tom Parker  <palfrey@tevp.net>
4910
4911         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4912         print DBUS_UID_UNSET; instead print passed username.  Also
4913         be sure to actually use gid looked up in cache.
4914         
4915         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4916         for DBUS_GID_UNSET and groupname.
4917
4918 2005-03-17  Colin Walters  <walters@verbum.org>
4919
4920         * bus/print-introspect.c: Move to tools/.
4921         * bus/run-with-tmp-session-bus.sh: Ditto.
4922         
4923         * glib/Makefile.am (dbus-glib-bindings.h): Move
4924         generation to tools/Makefile.am.
4925
4926         * test/glib/run-test.sh: Update to handle move
4927         of run-with-tmp-session-bus.sh.
4928
4929         * test/glib/test-service-glib.c: Update to handle
4930         move of dbus-glib-bindings.h.
4931
4932         * tools/print-introspect.c: Moved here
4933         from bus/, and ported to GLib bindings.
4934
4935         * tools/run-with-tmp-session-bus.sh: Moved here
4936         from bus/.
4937
4938         * tools/Makefile.am: Generate dbus-glib-bindings.h
4939         and dbus-bus-introspect.xml here.
4940
4941         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4942         Update.
4943
4944 2005-03-17  Colin Walters  <walters@verbum.org>
4945
4946         * bus/driver.c (write_args_for_direction): Use
4947         _dbus_string_get_const_data to retrieve string;
4948         _dbus_string_get_const_data_len doesn't actually return
4949         a NULL-terminated substring.
4950
4951         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4952         (main): Change to use org_freedesktop_DBus_request_name
4953         instead of using g_proxy_begin_call/end_call.
4954
4955 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4956
4957         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4958         generating the finalizer.  Fixes from Ben Maurer.
4959
4960 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4961
4962         * mono/BusDriver.cs: Update method names: ListServices
4963         becomes ListNames; GetOwner becomes GetNameOwner.
4964
4965         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4966         onto the eval stack when removing the delegate.
4967
4968 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4969
4970         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4971         LT_CURRENT.  Set it to the autoconf variable.
4972                                                                                 
4973         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4974         classes that disconnects the signal handler delegate from the
4975         service object.  Fixes a big leak of proxy objects on the
4976         client side of things.  Patch from Ben Maurer
4977         <bmaurer@ximian.com>
4978
4979 2005-03-12  Colin Walters  <walters@verbum.org>
4980
4981         * bus/driver.c (write_args_for_direction): New function,
4982         parses a type signature into arguments and outputs to
4983         XML.
4984         (bus_driver_handle_introspect): Use it instead of
4985         hardcoding XML for certain signatures.
4986         
4987         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4988         dependency on dbus-daemon.
4989
4990         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4991         argument, pass it to dbus_binding_tool_output_glib_client.
4992
4993         * glib/dbus-binding-tool-glib.c
4994         (generate_client_glue): Protect against multiple inclusion.
4995         (dbus_binding_tool_output_glib_client): Add
4996         G_BEGIN_DECLS/G_END_DECLS.
4997
4998         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4999         Change to just take iface prefix directly.
5000         (write_formal_parameters): Clarify error message.
5001         (check_supported_parameters): New function; checks to see type
5002         signatures of method parameters are supported.
5003         (generate_client_glue): Handle ignore_unsupported flag.
5004         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5005         parameter.
5006
5007         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5008         --ignore-unsupported by default until glib bindings
5009         support arrays.
5010
5011 2005-03-11  Colin Walters  <walters@verbum.org>
5012
5013         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5014         install it.
5015
5016         * bus/print-introspect.c: New file; prints introspection
5017         data for a given name and object path.
5018
5019         * bus/run-with-tmp-session-bus.sh: New file, refactored
5020         from test/glib/run-test.sh.  Creates a temporary session
5021         bus and runs another program.
5022
5023         * test/glib/run-test.sh: Refactor to invoke
5024         run-with-tmp-session-bus.sh.
5025
5026         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5027         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5028         macros instead of hardcoding.
5029
5030         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5031
5032 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5033
5034         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5035         this unref; it doesn't match up evenly in some codepaths.
5036         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5037         this evenly matches with the ref near the top of this function.
5038
5039 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5040
5041         * dbus/dbus-object-tree.c
5042         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5043         and we try to unregister a path that's not registered, still go
5044         through the process of unlocking and don't just return.
5045
5046 2005-03-09  Colin Walters  <walters@verbum.org>
5047
5048         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5049         to this are generated for client-side wrappers.  Invokes a
5050         D-BUS method and returns reply values.  
5051
5052         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5053         function; writes signature string for argument direction.
5054         (write_args_for_direction): Change to pass input values directly
5055         instead of via address, and fix indentation.
5056         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5057         make generated wrappers inlineable.
5058
5059         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5060         note about using dbus_type_is_fixed.
5061
5062         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5063         dbus/dbus-signature.c as dbus_type_is_fixed.
5064
5065         All callers updated.
5066
5067         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5068         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5069
5070         * dbus/dbus-signature.h: Prototype.
5071
5072         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5073         error printf code.
5074
5075         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5076         appropriate instead of just freeing it.
5077         (main): Free returned strings using g_free.
5078
5079         * test/glib/Makefile.am (test-service-glib-glue.h)
5080         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5081
5082         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5083         simply maps a simple D-BUS type to GType.
5084         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5085         GType.
5086         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5087         initialize the value with it.
5088         (dbus_gvalue_binding_type_from_type): Unused, delete.
5089         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5090         various types instead of unmarshalling to value data directly.
5091         Remove can_convert boolean.
5092         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5093         returning directly instead of using can_convert boolean.
5094         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5095         Stores a GValue in a pointer to a value of its corresponding C
5096         type.
5097
5098         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5099         add dbus_gvalue_store.
5100
5101 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5102
5103         Fix a bunch of lifecycle and memory management problems
5104         in the mono bindings.
5105
5106         * mono/Arguments.cs (Arguments): Implement IDisposable
5107
5108         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5109         strictly a static class.
5110
5111         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5112         delegates into this file.
5113         (Connection): Implement IDisposable.
5114         (Dispose): Disconnect the connection and set the raw connection
5115         pointer to IntPtr.Zero.
5116         (~Connection): Call Dispose().
5117         (RegisterObjectPath): Added.  Manages the registration of object
5118         paths so we can cleanly disconnect them at dispose/finalize time.
5119         (UnregisterObjectPath): Ditto.
5120         (set_RawConnection): Unregister all of the object paths when
5121         changing the underlying DBusConnection.  Add them back onto the
5122         new connection, if any.
5123
5124         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5125         more unmanaged resources anymore, so it's not necessary.  Move all
5126         the DBusObjectPathVTable stuff out of here.
5127         (Handler): Save references to our delegates so that they don't get
5128         finalized.  Call Connection.RegisterObjectPath() instead of
5129         dbus_connection_register_object_path() directly.
5130         (Message_Called): Dispose the message after we're finished with
5131         it.
5132
5133         * mono/Message.cs (Message): Implement IDisposable.
5134         (Dispose): Dispose the Arguments, and set the RawMessage to
5135         IntPtr.Zero.
5136         (SendWithReplyAndBlock): We own the ref to the reply that comes
5137         back from dbus_connection_send_with_reply_and_block() so add a
5138         comment about that and unref it after we've constructed a managed
5139         MethodReturn class around it.  Fixes a big, big leak.
5140
5141         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5142         method.
5143         (BuildSignalHandler): After we've sent the Signal message, dispose
5144         of it.
5145         (BuildMethod): Dispose of the method call and reply messages after
5146         we've sent the message and extracted the data we want from the
5147         reply.
5148
5149         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5150         anymore.
5151         (Service_FilterCalled): Dispose of the message after we're
5152         finished with it.
5153
5154 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5155
5156         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5157         After we attach our pending call to the connection, unref
5158         it.  Fixes a leak.
5159  
5160         * mono/Connection.cs (set_RawConnection): Disconnect our
5161         filter and match callbacks from the old connection and
5162         reconnect them to the new connection, if any.
5163
5164         * mono/DBusType/Array.cs: "Code" is a static member, so
5165         don't use "this" to refer to it.  Fix for stricter checking
5166         in Mono 1.1.4.
5167  
5168         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5169         object path that we pass into unmanaged code.
5170  
5171         * mono/DBusType/String.cs (Append): Don't leak the string
5172         that we pass into unmanged code.
5173
5174 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5175         * NEWS: Update for 0.31
5176
5177         * configure.in: Release 0.31
5178         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5179
5180         * qt/Makefile.am: fixed build
5181
5182         * dbus/Makefile.am: soname bump for libdbus
5183
5184         * glib/Makefile.am: soname bump for libdbus-glib
5185
5186 2005-03-05  Havoc Pennington  <hp@redhat.com>
5187
5188         * dbus/dbus-sysdeps.c:
5189         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5190         value
5191         (_dbus_generate_random_bytes_buffer): fix return value
5192
5193         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5194         checks actually work, from Tom Parker <fdo@tevp.net>
5195
5196 2005-03-01  Colin Walters  <walters@verbum.org>
5197
5198         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5199         functions copied from dbus-glib-tool.c.
5200         (main): Convert lots of error code to use them.
5201         Also add some testing for introspection bits.
5202
5203 2005-03-01  Colin Walters  <walters@verbum.org>
5204         
5205         * doc/TODO: Remove introspection signature TODO.
5206
5207 2005-02-27  Colin Walters  <walters@verbum.org>
5208
5209         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5210         Change return value to const char * instead of int so we can do
5211         full signatures.
5212         (struct PropertyInfo, struct ArgInfo): Store char *.
5213         (property_info_new, arg_info_new): Update parameters, strdup.
5214         (property_info_unref, arg_info_unref): Free.
5215
5216         * glib/dbus-gidl.h: Update prototypes.
5217
5218         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5219         (validate_signature): New function, just validates signature and
5220         sets GError.
5221         (parse_property, parse_arg): Invoke validate_signature.  Store
5222         signature instead of just type code.
5223
5224         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5225         function to return a primary type for a signature, dropping
5226         information about types in container types.
5227         (dbus_gvalue_genmarshal_name_from_type)
5228         (dbus_gvalue_binding_type_from_type)
5229         (dbus_gvalue_ctype_from_type): Update to take full signature
5230          instead of type code.
5231         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5232
5233         * glib/dbus-gvalue.h: Update prototypes for above.
5234
5235         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5236         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5237         (introspect_properties, introspect_signals, write_interface):
5238         Update to handle signatures, and remove usage of
5239         _dbus_gutils_type_to_string.
5240         (handle_introspect): Print out type codes instead of e.g. "string"
5241         in hardcoded introspection XML; also use x_AS_STRING constants
5242         instead of hardcoding in string.
5243
5244         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5245         to string.  Remove usage of _dbus_gutils_type_to_string.
5246
5247         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5248
5249         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5250         deletion.
5251         
5252         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5253         (compute_marshaller_name, generate_glue): Handle signature change
5254         to string.
5255         (write_formal_parameters, write_args_for_direction): Ditto, and
5256         remove FIXME.
5257
5258         * tools/dbus-tree-view.c (type_to_string): Delete.
5259         (info_set_func_text): Update to print full signatures.
5260
5261         * test/glib/test-service-glib.xml: Change types to new
5262         introspection format.
5263
5264 2005-02-26  Havoc Pennington  <hp@redhat.com>
5265
5266         * doc/TODO: remove the "guid" item
5267
5268         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5269         (with_bus_thread_func): use open_private
5270
5271         * dbus/dbus-connection.c (dbus_connection_open_private): new
5272         function that works like the old dbus_connection_open()
5273         (dbus_connection_open): now returns an existing connection if
5274         possible
5275
5276         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5277         through the GUID to the transport
5278
5279         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5280         GUID in hex-encoded form.
5281
5282         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5283         pass GUID argument in to the transport
5284
5285         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5286         guid argument
5287
5288         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5289
5290         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5291
5292 2005-02-25  Havoc Pennington  <hp@redhat.com>
5293
5294         * doc/dbus-specification.xml: document the GUID thing
5295
5296         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5297         globally unique ID for the server, and put a "guid=hexencoded"
5298         field in the address
5299
5300         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5301
5302         * dbus/dbus-message.c: ditto
5303
5304         * dbus/dbus-dataslot.c: ditto
5305
5306         * dbus/dbus-list.c: ditto
5307
5308         * dbus/dbus-internals.h: wait, just include
5309         dbus-threads-internal.h here
5310         
5311         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5312         use in main library
5313
5314         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5315
5316 2005-02-24  Colin Walters  <walters@verbum.org>
5317
5318         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5319
5320 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5321
5322         * glib/Makefile.am: added dbus-gobject.h to sources list
5323         so distcheck doesn't fail
5324         
5325 2005-02-24  Havoc Pennington  <hp@redhat.com>
5326
5327         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5328         you must disconnect before unref, since locking and other things
5329         are screwed up otherwise. Fix assorted other locking stuff.
5330
5331         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5332         fix compilation
5333
5334         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5335         into a private header and don't export from the library
5336
5337         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5338
5339 2005-02-24  Colin Walters  <walters@verbum.org>
5340         
5341         * dbus/dbus-signature.c: New file; implements various functions
5342         related to type signatures.  Includes an interator for parsing,
5343         validation functions.
5344         (dbus_type_is_basic): Moved here from
5345         dbus-marshal-basic.c:_dbus_type_is_basic.
5346         (dbus_type_is_container): Moved here from
5347         dbus-marshal-basic.c:_dbus_type_is_container.
5348
5349         All callers of _dbus_type_is_container and _dbus_type_is_basic
5350         updated, and include dbus-signature.h.
5351
5352         * dbus/dbus-signature.h: New file; prototypes for the above.
5353
5354         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5355         dbus-signature.h.
5356
5357         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5358         function factored out of _dbus_first_type_in_signature.
5359         (_dbus_first_type_in_signature_c_str): New function; returns first
5360         type code for a type signature character.
5361
5362         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5363         handle function moves.
5364
5365         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5366
5367         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5368         function; skips to next complete type in type signature.
5369         Implemented using previous skip_one_complete_type.  Now
5370         skip_one_complete_type just delegates to
5371         _dbus_type_signature_next.
5372
5373         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5374         to dbus-signature.c
5375         (_dbus_type_is_container): Ditto.
5376
5377         * doc/dbus-specification.xml: Update introspection sample to
5378         use real type signatures.
5379
5380         * dbus/dbus-test.h: Prototype signature test.
5381
5382         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5383         signature tests.
5384
5385         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5386
5387 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5388
5389         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5390         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5391
5392 2005-02-21  Colin Walters  <walters@verbum.org>
5393
5394         * dbus/dbus-test-main.c (main): Take optional specific test
5395         argument.
5396
5397         * dbus/dbus-test.c (run_test): New function, runs a test function
5398         with no data directory.
5399         (run_data_test): Like above, but takes data directory.
5400         (dbus_internal_do_not_use_run_tests): Take
5401         specific test argument.  Replace lots of cut n' paste code
5402         with run_test and run_data_test.
5403
5404         * dbus/dbus-test.h: Update prototype for
5405         dbus_internal_do_not_use_run_tests.
5406
5407 2005-02-20  Havoc Pennington  <hp@redhat.com>
5408
5409         Fix bugs reported by Daniel P. Berrange
5410         
5411         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5412         (protected_change_watch): new function
5413         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5414         (_dbus_server_add_watch): change to work like the
5415         dbus-connection.c equivalents; like those, probably kind of
5416         busted, but should at least mostly work for now
5417         (dbus_server_disconnect): drop the lock if we were already
5418         disconnected, patch from Daniel P. Berrange
5419
5420         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5421         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5422         same stuff
5423
5424         * doc/TODO: todo about unscrewing this mess
5425
5426 2005-02-19  Colin Walters  <walters@verbum.org>
5427
5428         * glib/dbus-binding-tool-glib.c
5429         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5430
5431         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5432         as errno.h and sys/stat.h.
5433         (lose): New function, prints error with
5434         newline and exits.
5435         (lose_gerror): Similar, but takes GError for message.
5436         (main): Add --output argument to specify output file to write to,
5437         instead of always printing to stdout.  In this mode, determine
5438         timestamps on source files to see whether any are newer than the
5439         target file.  If not, exit.  Also convert a number of error
5440         messages to use lose (since it's shorter), and switch to using
5441         g_io_channel_shutdown.
5442
5443 2005-02-19  Havoc Pennington  <hp@redhat.com>
5444
5445         * glib/dbus-gobject.c
5446         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5447
5448         * glib/dbus-glib.c: fix doxygen warnings
5449
5450         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5451         is found on an <arg>
5452
5453 2005-02-17  Colin Walters  <walters@verbum.org>
5454
5455         * glib/dbus-gobject.h: Don't export
5456         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5457         
5458         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5459         (invoke_object_method): Handle it.
5460
5461         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5462         Handle rename.
5463         
5464 2005-02-17  Colin Walters  <walters@verbum.org>
5465
5466         * bus/.cvsignore, doc/.cvsignore
5467         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5468         Update.
5469
5470 2005-02-17  Colin Walters  <walters@verbum.org>
5471         
5472         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5473         Rename to DBUS_SERVICE_DBUS.
5474         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5475         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5476         Change the value from "org.freedesktop.Local"
5477         to "org.freedesktop.DBus.Local".
5478         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5479         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5480         DBUS_INTERFACE_INTROSPECTABLE.
5481         Change the value from "org.freedesktop.Introspectable"
5482         to "org.freedesktop.DBus.Introspectable".
5483         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5484         DBUS_INTERFACE_PROPERTIES.
5485         Change the value from "org.freedesktop.Properties"
5486         to "org.freedesktop.DBus.Properties".
5487         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5488         DBUS_INTERFACE_PEER.
5489         Change the value from "org.freedesktop.Peer"
5490         to "org.freedesktop.DBus.Peer".
5491         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5492         DBUS_INTERFACE_LOCAL.
5493         Change the value from "org.freedesktop.Local"
5494         to "org.freedesktop.DBus.Local".
5495
5496         All other users of those constants have been changed.
5497
5498         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5499
5500         * glib/dbus-gobject.c (handle_introspect): Use constants.
5501
5502         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5503
5504 2005-02-17  Colin Walters  <walters@verbum.org>
5505
5506         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5507         (parse_node, parse_interface, parse_method, parse_signal)
5508         (parse_property, parse_annotation): Lose if we're currently in an
5509         annotation.
5510         (parse_annotation): New function.
5511         (parser_start_element, parser_end_element): Handle annotation.
5512         (parse_method, parse_interface): Remove support for c_name attribute,
5513         switch to annotations.
5514
5515         * glib/dbus-gidl.h (interface_info_get_binding_names)
5516         (method_info_get_binding_names)
5517         (interface_info_get_binding_name, method_info_get_binding_name)
5518         (interface_info_set_binding_name, method_info_set_binding_name):
5519         Remove.
5520         (interface_info_get_annotations, method_info_get_annotations)
5521         (interface_info_get_annotation, method_info_get_annotation)
5522         (interface_info_add_annotation, method_info_add_annotation):
5523         Prototype.
5524
5525         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5526         for "bindings".
5527         (struct MethodInfo): Ditto.
5528         Straightfoward conversion of binding methods into annotation methods
5529         as prototyped.
5530
5531         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5532
5533         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5534
5535         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5536         Use new annotation API.
5537
5538         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5539         annotation element.
5540         
5541         * doc/dbus-specification.xml: Discuss introspection annotations,
5542         include list of well-known annotations.
5543
5544         * test/glib/test-service-glib.xml: Make validate against new DTD.
5545
5546 2005-02-17  Colin Walters  <walters@verbum.org>
5547
5548         This patch is based on initial work from
5549         Paul Kuliniewicz <kuliniew@purdue.edu>.
5550
5551         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5552         initialization of GValue from dbus type to here.
5553         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5554         for the "glib-genmarshal" program from a DBus type.
5555         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5556         into the C name for it we use in the glib bindings.
5557         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5558         glib C type (not GValue).
5559         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5560
5561         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5562         from dbus-gobject.c.
5563
5564         * glib/dbus-gutils.h: Prototype it.
5565
5566         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5567         (marshal_dbus_message_to_g_marshaller): Use new shared function
5568         dbus_glib_marshal_dbus_message_to_gvalue_array.
5569
5570         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5571         Will be changed once we have annotations.
5572
5573         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5574         GStaticRWLock.  Callers updated.
5575         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5576         (string_table_next): New function for iterating over zero-terminated
5577         string value array.
5578         (string_table_lookup): New function; retrieves specific entry in
5579         array.
5580         (get_method_data): New function; look up method data in object data chunk.
5581         (object_error_domain_prefix_from_object_info)
5582         (object_error_code_from_object_info): New functions, but not implemented yet.
5583         (method_interface_from_object_info): New function; retrieve interface name.
5584         (method_name_from_object_info): New function; retrieve method name.
5585         (method_arg_info_from_object_info): New function; retrieve argument data.
5586         (arg_iterate): New function; iterates over serialized argument data.
5587         (method_dir_signature_from_object_info): New function; returns a
5588         GString holding type signature for arguments for just one
5589         direction (input or output).
5590         (method_input_signature_from_object_info)
5591         (method_output_signature_from_object_info): New functions.
5592         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5593         converts dbus message arguments into a GValue array.  Used for both
5594         signal handling and method invocation.
5595         (struct DBusGlibWriteIterfaceData): New utility structure.
5596         (write_interface): New function; generate introspection XML for
5597         an interface.
5598         (introspect_interfaces): New function; gathers all interface->methods,
5599         generates introspection XML for them.
5600         (handle_introspect): Invoke introspect_interfaces.
5601         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5602         (lookup_object_and_method): New function; examines an incoming message
5603         and attempts to match it up (via interface, method name, and argument
5604         signature) with a known object and method.
5605         (gerror_domaincode_to_dbus_error_name): New function; converts a
5606         GError domain and code into a DBus error name.  Needs GError data
5607         added to object introspection to work well.
5608         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5609         GError.
5610         (invoke_object_method): New function to invoke an object method
5611         looked up via lookup_object_and_method.  Parses the incoming
5612         message, turns it into a GValue array, then invokes the marshaller
5613         specified in the DBusGMethodInfo.  Creates a new message with
5614         either return values or error message as appropriate.
5615         (gobject_message_function): Invoke lookup_object_and_method and
5616         invoke_object_method.
5617
5618         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5619         (enum DBusBindingOutputMode): New enum for binding output modes.
5620         (pretty_print): Print binding names.
5621         (dbus_binding_tool_error_quark): GError bits.
5622         (version): Fix typo.
5623         (main): Create GIOChannel for output.  Parse new --mode argument,
5624         possible values are "pretty-print", "glib-server", "glib-client".
5625         Use mode to invoke appropriate function.
5626         
5627         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5628
5629         * glib/dbus-glib-tool.h: New header, just includes GError bits
5630         for now.
5631
5632         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5633         maps binding style to name.
5634         (struct MethodInfo): Ditto.
5635         (get_hash_keys, get_hash_key): Utility function, returns keys for
5636         a GHashTable.
5637         (interface_info_new, method_info_new): Initialize bindings.
5638         (interface_info_unref, method_info_unref): Destroy bindings.
5639         (method_info_get_binding_names, method_info_get_binding_name)
5640         (interface_info_get_binding_names, interface_info_get_binding_name):
5641         Functions for retrieving binding names.
5642         (method_info_set_binding_name, interface_info_set_binding_name):
5643         Functions for setting binding names.
5644
5645         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5646         for glib binding generation.
5647
5648         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5649         and client-side glib glue generation.
5650
5651         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5652         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5653         dbus-glib-tool.h.
5654
5655         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5656         of using GClosureMarshal directly.
5657         (struct DBusGObjectInfo): Add n_infos member.
5658
5659         * test/glib/test-service-glib.xml: New file; contains introspection data
5660         for MyTestObject used in test-service-glib.c.
5661
5662         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5663         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5664         (my_object_uppercase, my_object_many_args): New test methods.
5665         (main): Use dbus_g_object_class_install_info to include generated object
5666         info.
5667
5668         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5669         as well as client-side bindings.
5670
5671         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5672         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5673         using both the dbus_gproxy stuff directly as well as the generated bindings.
5674
5675 2005-02-15  Havoc Pennington  <hp@redhat.com>
5676
5677         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5678         complete a pending call, don't run filters first.
5679
5680         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5681         dbus_pending_call_steal_reply
5682
5683         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5684         _dbus_connection_block_pending_call
5685         (dbus_pending_call_get_reply): change to steal_reply and return a
5686         ref
5687
5688         * dbus/dbus-connection.c
5689         (dbus_connection_send_with_reply_and_block): port to work in terms
5690         of DBusPendingCall
5691         (_dbus_connection_block_pending_call): replace block_for_reply
5692         with this
5693
5694 2005-02-14  Havoc Pennington  <hp@redhat.com>
5695
5696         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5697         properly handle looking up group information by name; fix 
5698         from j@bootlab.org
5699
5700 2005-02-13  Havoc Pennington  <hp@redhat.com>
5701
5702         * dbus/dbus-connection.c (dbus_connection_return_message) 
5703         (dbus_connection_borrow_message): hold dispatch lock while message
5704         is outstanding
5705         (_dbus_connection_block_for_reply): hold dispatch lock while we
5706         block for the reply, so nobody steals our reply
5707         (dbus_connection_pop_message): hold the dispatch lock while we
5708         pluck the message
5709
5710 2005-02-13  Havoc Pennington  <hp@redhat.com>
5711
5712         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5713         (_dbus_connection_release_dispatch)
5714         (_dbus_connection_acquire_io_path)
5715         (_dbus_connection_release_io_path): make the mutex and condvar
5716         control access to the "acquired" flag. Drop the connection lock
5717         while waiting on the condvar. Hopefully these are baby steps in
5718         roughly the right direction.
5719
5720 2005-02-13  Havoc Pennington  <hp@redhat.com>
5721
5722         * dbus/dbus-connection.c: use separate mutexes for the condition
5723         variables; this is some kind of baseline for sanity, but the
5724         condition variables still aren't used correctly afaict
5725
5726 2005-02-13  Havoc Pennington  <hp@redhat.com>
5727
5728         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5729         fix a double-unlock
5730
5731         * dbus/dbus-connection.c
5732         (_dbus_connection_detach_pending_call_unlocked): add this
5733
5734         Initial semi-correct pass through to fix thread locking; there are
5735         still some issues with the condition variable paths I'm pretty
5736         sure
5737         
5738         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5739         lock/unlock calls
5740
5741         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5742         rename to add _unlocked
5743         (struct DBusConnection): move "dispatch_acquired" and
5744         "io_path_acquired" to use only one bit each.
5745         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5746         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5747         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5748         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5749         (_dbus_connection_remove_timeout) 
5750         (_dbus_connection_toggle_timeout): drop lock when calling out to
5751         user functions; done in a hacky/bad way.
5752         (_dbus_connection_send_and_unlock): add a missing unlock
5753         (_dbus_connection_block_for_reply): add a missing unlock
5754
5755         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5756         drop lock in a hacky probably unsafe way to call out to user
5757         function
5758
5759 2005-02-12  Havoc Pennington  <hp@redhat.com>
5760
5761         * tools/dbus-tree-view.c (info_set_func_text): display more
5762         details on args
5763
5764         * bus/driver.c (bus_driver_handle_list_services): list the bus
5765         driver
5766
5767         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5768
5769         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5770         (method_info_get_n_args): new function
5771
5772 2005-02-12  Havoc Pennington  <hp@redhat.com>
5773
5774         * bus/driver.c (bus_driver_handle_introspect): add introspection
5775         for bus driver
5776
5777 2005-02-12  Havoc Pennington  <hp@redhat.com>
5778
5779         * bus/driver.c: put the signature of each bus driver method in the
5780         table of handlers and check it on incoming calls; this isn't
5781         really useful, but going to add introspect support in a minute.
5782
5783 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5784
5785         * mono/Connection.cs: The unpredictability of finalizers in mono
5786         prevents us from deterministically disconnecting the filters from
5787         the Service class's finalizer, so move tracking of filters and
5788         matches here.  Add API for that.
5789
5790         * mono/Service.cs: Remove the code, add code which calls the
5791         methods now on the Connection class.
5792
5793 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5794
5795         * python/dbus.py (class Sender): added to support dbus signals better
5796         (Bus::add_signal_receiver): added expand_args parameter which defaults
5797         to True.  When expand args is True the signal handler will pass the 
5798         message arguments as parameters to the signal handler.  If False
5799         revert to previous behavior where the signal handler must get the
5800         argument list from the message.  This is to help port applications
5801         like HAL that have a tendancy to send variable length argument lists.
5802         self._match_rule_to_receivers is now a dict of dicts.
5803         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5804         removing it from a list
5805         (Bus::_signal_func): change signal handlers so that interface,
5806         signal_name, service, path and message are packed into a Sender
5807         object and that is passed to the handler.  If expand_args is True
5808         extract the args list from the message and append it to the parameter
5809         list
5810         
5811         * python/dbus_bindings.pyx.in (class Signature): added to support 
5812         signiature types
5813         (MessageIter::__init__): changed iteration limit to match D-BUS
5814         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5815         STRUCT and VARIENT type support
5816         (MessageIter::python_value_to_dbus_sig): made recursive to support
5817         recursive types
5818         (MessageIter::append*): added Signature, dict, tuple 
5819         support
5820
5821         * python/examples/example-client.py: added examples of getting tuples
5822         and dicts
5823
5824         * python/examples/example-service.py: added examples of sending tuples
5825         and dicts
5826
5827         * python/examples/example-signal-recipient.py: Fixed to handle new
5828         signal callback format
5829
5830 2005-02-10  Havoc Pennington  <hp@redhat.com>
5831
5832         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5833         (call dbus_g_proxy_add_signal)
5834
5835         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5836         escape the hostname
5837         (_dbus_server_new_for_domain_socket): escape the path
5838
5839         * dbus/dbus-address.c (dbus_address_escape_value): new
5840         (dbus_address_unescape_value): new
5841         (dbus_parse_address): unescape values
5842
5843         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5844
5845         * doc/dbus-specification.xml: explain how to escape values in
5846         addresses
5847
5848 2005-02-10  Havoc Pennington  <hp@redhat.com>
5849
5850         * dbus/dbus-message-factory.c (generate_special): modify test to
5851         avoid using a non-basic dict key
5852
5853         * dbus/dbus-marshal-validate-util.c: add test for the below
5854
5855         * doc/dbus-specification.xml: require that dict keys are a basic
5856         type
5857
5858         * dbus/dbus-marshal-validate.c
5859         (_dbus_validate_signature_with_reason): require that dict key is a
5860         basic type
5861
5862 2005-02-10  Havoc Pennington  <hp@redhat.com>
5863
5864         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5865         change to be _and_unlock instead of _unlocked
5866
5867         * dbus/dbus-connection.c
5868         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5869         have no_update so we can find this bug quickly in future
5870
5871 2005-02-10  Havoc Pennington  <hp@redhat.com>
5872
5873         * dbus/dbus-message-util.c (verify_test_message): tests for string
5874         array
5875
5876         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5877         support for arrays of string/signature/path
5878
5879 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5880
5881         * dbus/dbus-connection.c
5882         (_dbus_connection_queue_received_message_link,
5883         _dbus_connection_message_sent): Add the path to
5884         the verbose output.
5885         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5886         _dbus_connection_send_preallocated_unlocked(), updated the
5887         dispatch status, and unlocks.  Fixes a bug where certain
5888         situations (like a broken pipe) could cause a Disconnect message
5889         to not be sent, tricking the bus into thinking a service was still
5890         there when the process had quit.
5891         (_dbus_connection_send_preallocated): Call
5892         _dbus_connection_send_preallocated_and_unlock().
5893         (_dbus_connection_send_and_unlock): Added.  Calls
5894         _dbus_connection_send_preallocated_and_unlock().
5895         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5896         (dbus_connection_send_with_reply): Update the dispatch status and
5897         unlock.
5898
5899         * mono/Service.cs (~Service): Added.  Removes the filter so that
5900         we don't get unmanaged code calling back into a GCed delegate.
5901         (RemoveFilter); Added.
5902
5903 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5904
5905         * dbus/dbus-message.c (dbus_message_iter_open_container):
5906         - Removed check for iterator type being an array because
5907         get_arg_type does not work with writer iterators
5908         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5909
5910 2005-02-07  Havoc Pennington  <hp@redhat.com>
5911
5912         * doc/dbus-specification.xml: some more language cleanups; add
5913         stuff about how to deal with invalid protocol and extension
5914         points; add _ to allowed chars in auth commands; add EXTENSION_
5915         auth command prefix
5916
5917 2005-02-06  Havoc Pennington  <hp@redhat.com>
5918
5919         * s/expected/required/ in a couple places for clarity
5920
5921 2005-02-07  Colin Walters  <walters@verbum.org>
5922
5923         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5924         sender or proposed_recipient.
5925
5926 2005-02-06  Havoc Pennington  <hp@redhat.com>
5927
5928         * dbus/dbus-message-factory.c (generate_special): more tests
5929
5930         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5931         array length that exceeds the maximum
5932
5933 2005-02-05  Havoc Pennington  <hp@redhat.com>
5934
5935         * dbus/dbus-message-factory.c (generate_special): more test cases,
5936         increasing coverage
5937
5938         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5939         reason why a signature was invalid
5940
5941         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5942         skip the length of the string before we look at it in validation
5943
5944         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5945         equal_substring
5946
5947         * dbus/dbus-message.c (_dbus_message_loader_new): default
5948         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5949
5950 2005-02-05  Havoc Pennington  <hp@redhat.com>
5951
5952         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5953         if the signature of a variant was empty
5954         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5955         struct with no element type)
5956
5957         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5958         mangled messages to break things
5959
5960 2005-02-04  Havoc Pennington  <hp@redhat.com>
5961
5962         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5963         g_quark_try_string() so it actually can return 0
5964         (dbus_g_proxy_connect_signal): ditto
5965
5966 2005-02-04  Havoc Pennington  <hp@redhat.com>
5967
5968         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5969         bogus warning
5970         (tristring_from_message): assert cleanly on null path/interface
5971         (should not be possible though I decided later)
5972         (dbus_g_proxy_dispose): move proxy manager unregistration here
5973         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5974         g_return_if_fail() checks
5975
5976 2005-02-04  Havoc Pennington  <hp@redhat.com>
5977
5978         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5979
5980         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5981         (with some minor changes)
5982
5983         * doc/dbus-specification.xml: add deprecated attribute to
5984         introspection format
5985
5986 2005-01-31  Havoc Pennington  <hp@redhat.com>
5987
5988         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5989         think it's sort of right
5990
5991 2005-01-30  Havoc Pennington  <hp@redhat.com>
5992
5993         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5994
5995 2005-01-30  Havoc Pennington  <hp@redhat.com>
5996
5997         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5998
5999         * autogen.sh: change to autotools 1.9
6000
6001         * glib/dbus-gproxy.c: completely change how signals work
6002         (dbus_g_proxy_add_signal): new function to specify signature of a
6003         signal
6004         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6005         and g_warning if the incoming message has the wrong signature.
6006
6007 2005-01-30  Havoc Pennington  <hp@redhat.com>
6008
6009         * tools/dbus-names-model.c (have_names_notify): fix this
6010
6011         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6012         up the string array handling a bit 
6013
6014 2005-01-30  Havoc Pennington  <hp@redhat.com>
6015
6016         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6017         (dbus_g_pending_call_cancel): new function
6018
6019         * dbus/dbus-glib.h: move GType decls for connection/message here;
6020         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6021         here, just kind of rationalizing how we handle all that
6022
6023         * tools/dbus-names-model.c: new file for a tree model listing the
6024         services on a bus
6025
6026         * tools/dbus-tree-view.c (model_new): use proper typing on the
6027         model rows
6028
6029 2005-01-30  Havoc Pennington  <hp@redhat.com>
6030
6031         * glib/dbus-gmain.c: add a custom GSource back that just checks
6032         whether the message queue has anything in it; otherwise, there are 
6033         cases where we won't see messages in the queue since there was no 
6034         IO visible to the glib main loop
6035
6036         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6037         increase default message timeout to 25 seconds
6038
6039 2005-01-30  Havoc Pennington  <hp@redhat.com>
6040
6041         * test/glib/test-profile.c (no_bus_stop_server): remove the
6042         warning about the g_warning that I just fixed
6043
6044         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6045         custom source, seems to be a lot easier to understand and work
6046         better.
6047
6048 2005-01-30  Havoc Pennington  <hp@redhat.com>
6049
6050         I think this main loop thing is conceptually broken, but here are 
6051         some band aids. I'll maybe rewrite it in a minute.
6052         
6053         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6054         custom GSource, so don't pass it in; confusing
6055         (gsource_server_finalize, gsource_connection_finalize): add
6056         finalize handlers that remove all the watches.  
6057
6058 2005-01-30  Havoc Pennington  <hp@redhat.com>
6059
6060         * glib/dbus-gobject.c (introspect_properties): fix the XML
6061         generated
6062
6063         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6064         which effectively detects the use of freed messages
6065
6066         * glib/dbus-gobject.c (handle_introspect): modify and return the
6067         reply message instead of the incoming message
6068
6069         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6070         gee, maybe it should SEND THE XML instead of just making a string
6071         and freeing it again ;-)
6072
6073         * tools/dbus-print-message.c (print_message): improve printing of
6074         messages
6075
6076         * configure.in: add debug-glib.service to the output
6077
6078 2005-01-30  Havoc Pennington  <hp@redhat.com>
6079
6080         dbus-viewer introspected and displayed the bus driver
6081         
6082         * dbus/dbus-object-tree.c 
6083         (object_tree_test_iteration): add tests for a handler registered on "/"
6084
6085         * dbus/dbus-object-tree.c
6086         (_dbus_decompose_path): fix to handle path "/" properly
6087         (run_decompose_tests): add tests for path decomposition
6088         
6089         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6090         properly
6091
6092         * glib/dbus-gobject.c (handle_introspect): fix quotes
6093
6094         * test/glib/run-test.sh: support launching the bus, then running
6095         dbus-viewer
6096
6097         * test/glib/test-service-glib.c (main): put in a trivial gobject
6098         subclass and register it on the connection
6099
6100         * bus/driver.c (bus_driver_handle_introspect): implement
6101         introspection of the bus driver service
6102
6103         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6104         identifiers, doctype decl
6105
6106         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6107         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6108         returning the service unchanged.
6109         (bus_driver_handle_message): remove old check for reply_serial in
6110         method calls, now the message type deals with that
6111         (bus_driver_handle_message): handle NULL interface
6112
6113         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6114
6115         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6116         -1 for len
6117
6118         * tools/dbus-viewer.c: add support for introspecting a service on
6119         a bus
6120
6121         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6122         (dbus_g_pending_call_unref): add
6123
6124 2005-01-29  Havoc Pennington  <hp@redhat.com>
6125
6126         * tools/dbus-tree-view.c: add support for displaying properties.
6127         (run dbus-viewer with an introspect xml file as arg, then resize
6128         the window so the tree elements show up, not sure what that is)
6129
6130         * glib/dbus-gobject.c (handle_introspect): return
6131         org.freedesktop.Properties and org.freedesktop.Introspectable
6132         interfaces when we are introspected.
6133
6134         * doc/dbus-specification.xml: allow empty interface name when 
6135         Get/Set a property
6136
6137 2005-01-29  Havoc Pennington  <hp@redhat.com>
6138
6139         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6140         though it uses glib, it could be extended for any binding in
6141         principle
6142
6143         * glib/dbus-gobject.c (gobject_message_function): change to the
6144         new way properties work
6145
6146         * dbus/dbus-protocol.h: add the new interfaces
6147
6148         * doc/dbus-specification.xml: document the introspection format,
6149         Introspectable interface, and add an org.freedesktop.Properties
6150         interface.
6151
6152         * glib/dbus-gparser.c: add support for a <property> element
6153
6154         * glib/dbus-gidl.c: add PropertyInfo
6155
6156         * glib/dbus-gobject.c (handle_introspect): put the outermost
6157         <node> outside the signal and property descriptions.
6158         (introspect_properties): export properties as <property> rather
6159         than as method calls
6160
6161 2005-01-28  Havoc Pennington  <hp@redhat.com>
6162
6163         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6164         related to authentication protocol
6165
6166 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6167
6168         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6169                 - BUS_ACTIVATION -> BUS_STARTER
6170                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6171                 - class MessageIter (__init__): Added recursion checking 
6172                 so we throw a nice error instead of just disconnecting from the
6173                 bus.
6174                 (get): Added arg_type parameter for recursion.
6175                 Removed the nil type
6176                 Added signiture type placeholder (not implemented)
6177                 Added struct type placeholder (not implemented)
6178                 Added varient type placeholder (not implemented)
6179                 Commented out dict type for now     
6180                 (get_element_type): renamed from get_array_type
6181                 (get_*): changed to use the dbus_message_iter_get_basic API
6182                 (get_*_array): removed in favor of recursive get_array method
6183                 (get_array): new recursive method which calls get to marshal
6184                 the elements of the array
6185                 (value_to_dbus_sig): New method returns the corrasponding
6186                 dbus signiture to a python value
6187                 (append): Comment out dict handling for now
6188                 Handle lists with the new recursive API
6189                 Comment out None handling for now
6190                 (append_nil): removed
6191                 (append_*): changed to use dbus_message_iter_append_basic API
6192                 (append_*_array): removed in favor of recursive append_array 
6193                 method
6194                 (__str__): Make it easier to print out recursive iterators
6195                 for debugging
6196                 - class Message (__str__): moved type inspection to the
6197                 MessageIter class' __str__ method
6198                 (get_iter): Added an append parameter wich defaults to False
6199                 If True use the new API's to create an append iterator
6200
6201         * python/dbus.py: Update to use new bindings API
6202                 - TYPE_ACTIVATION -> TYPE_STARTER
6203                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6204                 - class ActivationBus -> class StarterBus
6205                 - class RemoteObject (__call__): get an append iterator
6206                 - (_dispatch_dbus_method_call): get an append iterator
6207                 - class Object (emit_signal): get an append iterator
6208
6209         * python/examples/: Fixed up the examples to work with the new API
6210                 
6211 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6212
6213         * configure.in: Bump version up to 0.30.
6214
6215         * HACKING: Add a release item to bump the version number up after 
6216         a release.
6217
6218 2005-01-28  Havoc Pennington  <hp@redhat.com>
6219
6220         * doc/dbus-specification.xml: update to describe 16-bit types and
6221         dict entries
6222
6223         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6224         assertion
6225
6226         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6227         type
6228
6229         * dbus/dbus-marshal-recursive.c: implement
6230
6231 2005-01-27  Havoc Pennington  <hp@redhat.com>
6232
6233         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6234
6235         * configure.in: find the right type for 16 and 32 bit ints as well
6236         as 64
6237
6238         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6239         the 16-bit types so people don't have to stuff them in 32-bit or
6240         byte arrays.
6241
6242 2005-01-27  Havoc Pennington  <hp@redhat.com>
6243
6244         * dbus/dbus-message.c: byteswap the message if you init an
6245         iterator to read/write from it
6246         
6247         * dbus/dbus-marshal-byteswap.c: new file implementing 
6248         _dbus_marshal_byteswap()
6249
6250         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6251
6252 2005-01-26  Havoc Pennington  <hp@redhat.com>
6253         
6254         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6255         build, apparently - nobody noticed?)
6256         
6257 2005-01-26  Havoc Pennington  <hp@redhat.com>
6258
6259         * dbus/dbus-marshal-recursive.h: remove todo comment
6260
6261 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6262
6263         * Land the mono binding changes to conform to the new APIs.
6264
6265         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6266         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6267
6268         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6269         type code as a string.
6270         (InitAppending): Rename dbus_message_append_iter_init() to
6271         dbus_message_iter_init_append().
6272
6273         * mono/BusDriver.cs: Rename ServiceEventHandler to
6274         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6275         Rename ServiceOwnerChanged to NameOwnerChanged.
6276
6277         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6278         underlying C call.
6279
6280         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6281
6282         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6283         dbus_bus_acquire_service() to dbus_bus_request_name().
6284
6285         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6286         of Type.UnderlyingSystemType to get the correct element type for
6287         the array.
6288         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6289         dbus_message_get_{element|arg}_type() instead of
6290         dbus_message_iter_init_array_iterator().
6291         (Append): Replace dbus_message_iter_append_array() with
6292         dbus_message_iter_open_container() and
6293         dbus_message_iter_close_container().
6294
6295         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6296         types have been removed.
6297         
6298         * mono/DBusType/*.cs: Replace calls of
6299         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6300         but specify the type in the DllImport extern declaration.  Ditto
6301         for dbus_message_iter_append_[type]() ->
6302         dbus_message_iter_append_basic().
6303
6304         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6305         NameOwnerChangedHandler.
6306
6307 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6308
6309         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6310                 - get_base_service -> get_unique_name
6311                 - bus_get_base_service -> bus_get_unique_name
6312                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6313                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6314                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6315                 - bus_activate_service -> bus_start_service_by_name
6316                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6317                 - bus_acquire_service -> bus_request_name
6318                 - dbus_bus_acquire_service -> dbus_bus_request_name
6319                 - bus_service_exists -> bus_name_has_owner
6320                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6321
6322         * python/dbus.py: Rename of methods
6323                 - activate_service -> start_service_by_name
6324                 - bus_acquire_service -> bus_request_name
6325                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6326                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6327
6328         
6329 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6330
6331         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6332         signature for the method that can't be found.
6333
6334         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6335         the message has any arguments, we need to call
6336         _dbus_type_reader_get_current_type(), not
6337         _dbus_type_reader_has_next().
6338
6339 2005-01-24  Havoc Pennington  <hp@redhat.com>
6340
6341         * dbus/dbus-message-factory.c: more testing of message validation
6342
6343         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6344         header
6345
6346 2005-01-23  Havoc Pennington  <hp@redhat.com>
6347
6348         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6349         get this all working, not many tests in the framework yet though
6350
6351 2005-01-22  Havoc Pennington  <hp@redhat.com>
6352
6353         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6354         tutorial, based on work from David Wheeler.
6355
6356 2005-01-21  Havoc Pennington  <hp@redhat.com>
6357
6358         * dbus/dbus-bus.c: add more return_if_fail checks
6359
6360         * dbus/dbus-message.c (load_message): have the "no validation"
6361         mode (have to edit the code to toggle the mode for now though)
6362
6363         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6364         skips all validation; I want to use this at least for benchmark
6365         baseline, I'm not sure if it should be a publicly-available switch.
6366
6367 2005-01-21  Havoc Pennington  <hp@redhat.com>
6368
6369         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6370         toplevel doxygen group as the low-level API stuff
6371
6372         * dbus/dbus.h: note that libdbus is the low-level API
6373
6374 2005-01-20  Havoc Pennington  <hp@redhat.com>
6375
6376         * update-dbus-docs.sh: script to update docs on the web site, only
6377         works for me though. neener.
6378
6379 2005-01-20  Havoc Pennington  <hp@redhat.com>
6380
6381         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6382         code can reveal bugs in it
6383
6384 2005-01-20  Havoc Pennington  <hp@redhat.com>
6385
6386         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6387         select() version, patches from Tor Lillqvist
6388
6389 2005-01-20  Havoc Pennington  <hp@redhat.com>
6390
6391         * doc/dbus-tutorial.xml: replace > with &gt;
6392
6393         * bus/services.c (bus_registry_acquire_service): validate the name
6394         and return a better error if it's no good.
6395
6396         * doc/dbus-specification.xml: note NO_AUTO_START change
6397
6398         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6399         from AUTO_START, we're toggling the default
6400
6401         * bus/dispatch.c: adapt the tests to change of auto-start default
6402
6403 2005-01-18  Havoc Pennington  <hp@redhat.com>
6404
6405         * rename dbus-daemon-1 to dbus-daemon throughout
6406
6407 2005-01-18  Havoc Pennington  <hp@redhat.com>
6408
6409         * Throughout, grand renaming to strip out the use of "service",
6410         just say "name" instead (or "bus name" when ambiguous).  Did not
6411         change the internal code of the message bus itself, only the
6412         programmer-facing API and messages.
6413         
6414         * doc/dbus-specification.xml: further update the message bus section
6415         
6416         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6417         in error case
6418
6419 2005-01-17  Havoc Pennington  <hp@redhat.com>
6420
6421         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6422         ever
6423
6424         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6425         "invalid name character" not only non-ASCII
6426
6427         * doc/dbus-specification.xml: further update spec, message bus 
6428         parts are still out-of-date but the marshaling etc. stuff is now
6429         accurate-ish
6430
6431 2005-01-17  Havoc Pennington  <hp@redhat.com>
6432
6433         * doc/dbus-specification.xml: partially update spec
6434
6435 2005-01-17  Havoc Pennington  <hp@redhat.com>
6436
6437         * Throughout, align variant bodies according to the contained
6438         type, rather than always to 8. Should save a fair bit of space in
6439         message headers.
6440         
6441         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6442         fix handling of case where p == end
6443
6444         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6445
6446 2005-01-17  Havoc Pennington  <hp@redhat.com>
6447
6448         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6449
6450         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6451         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6452         are marshaling/unmarshaling a boolean.
6453
6454 2005-01-16  Havoc Pennington  <hp@redhat.com>
6455
6456         This is about it on what can be disabled/deleted from libdbus
6457         easily, back below 150K anyhow. Deeper cuts are more work than 
6458         just turning the code off as I've done here.
6459         
6460         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6461         signed int convenience funcs
6462
6463         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6464         verbose mode
6465
6466         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6467         things out of libdbus
6468
6469         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6470         
6471         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6472         tests-enabled-only, though it should probably be deleted)
6473
6474         * dbus/dbus-message-util.c: same stuff
6475
6476         * dbus/dbus-auth-util.c: same stuff
6477
6478 2005-01-16  Havoc Pennington  <hp@redhat.com>
6479
6480         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6481
6482         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6483         way for stripping down dbus-userdb.c stuff included in libdbus.
6484         Rename _dbus_parse_uid for consistency.
6485
6486 2005-01-16  Havoc Pennington  <hp@redhat.com>
6487
6488         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6489         name the assertion failed in
6490
6491         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6492         (_dbus_return_val_if_fail): assert that the name of the function
6493         containing the check doesn't start with '_', since we only want to 
6494         use checks on public functions
6495         
6496         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6497         checks to assertions
6498
6499         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6500         change checks to asserts for private function
6501
6502         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6503         to asserts for private function
6504
6505         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6506         broken assertion that was breaking make check
6507         (_dbus_type_reader_array_is_empty): remove this rather than fix
6508         it, was only used in assertions
6509
6510 2005-01-16  Havoc Pennington  <hp@redhat.com>
6511
6512         * test/unused-code-gc.py: hacky script to find code that's used
6513         only by the bus (not libdbus) or used only by tests or not used at
6514         all. It has some false alarms, but looks like we can clean up a
6515         lot of size from libdbus.
6516
6517         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6518         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6519         
6520 2005-01-16  Havoc Pennington  <hp@redhat.com>
6521
6522         * Add and fix docs according to Doxygen warnings throughout
6523         source.
6524         
6525         * dbus/dbus-marshal-recursive.c
6526         (_dbus_type_reader_array_is_empty): change this to just call
6527         array_reader_get_array_len() and make it static
6528
6529         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6530         from get_array_type
6531         (dbus_message_iter_init_append): rename from append_iter_init
6532
6533         * dbus/dbus-marshal-recursive.c
6534         (_dbus_type_reader_get_element_type): rename from
6535         _dbus_type_reader_get_array_type
6536
6537 2005-01-15  Havoc Pennington  <hp@redhat.com>
6538
6539         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6540
6541         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6542         when DBUS_DISABLE_ASSERT
6543         (_dbus_marshal_set_basic): be sure we align for the string length
6544
6545         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6546         this look faster
6547
6548         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6549         inline macro version
6550         (_dbus_string_set_byte): provide inline macro version
6551
6552 2005-01-15  Havoc Pennington  <hp@redhat.com>
6553
6554         * Land the new message args API and type system.
6555
6556         This patch is huge, but the public API change is not 
6557         really large. The set of D-BUS types has changed somewhat, 
6558         and the arg "getters" are more geared toward language bindings;
6559         they don't make a copy, etc.
6560
6561         There are also some known issues. See these emails for details
6562         on this huge patch:
6563         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6564         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6565         
6566         * dbus/dbus-marshal-*: all the new stuff
6567
6568         * dbus/dbus-message.c: basically rewritten
6569
6570         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6571         freed blocks to be all non-nul bytes so using freed memory is less
6572         likely to work right
6573
6574         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6575         DBUS_FAIL_MALLOC=N environment variable, so you can do
6576         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6577         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6578         thorough.
6579
6580         * qt/message.cpp: port to the new message args API
6581         (operator<<): use str.utf8() rather than str.unicode()
6582         (pretty sure this is right from the Qt docs?)
6583
6584         * glib/dbus-gvalue.c: port to the new message args API
6585
6586         * bus/dispatch.c, bus/driver.c: port to the new message args API
6587
6588         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6589         "locked" flag to TRUE and align_offset to 0; I guess we never
6590         looked at these anyhow, but seems cleaner.
6591
6592         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6593         move allocation padding macro to this header; use it to implement
6594         (_DBUS_STRING_STATIC): ability to declare a static string.
6595
6596         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6597         change to return TRUE if the interface is not set.
6598
6599         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6600         to dbus-marshal-validate.[hc]
6601
6602         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6603         dbus-internals.c
6604
6605         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6606         to dbus-marshal-*.[hc]
6607
6608         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6609         function here from dbus-marshal.c
6610
6611 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6612
6613         * NEWS: Update for 0.23.
6614
6615         * configure.in: Release 0.23.
6616
6617 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6618
6619         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6620         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6621         behind.
6622
6623         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6624         uninstall"
6625
6626         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6627         is an enum, get the enum's underlying type.  Another mono
6628         1.1.3 fix.
6629
6630 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6631
6632         Patch from Sjoerd Simons <sjoerd@luon.net>
6633
6634         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6635         DESTDIR.  It breaks stuff.
6636
6637 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6638
6639         Patch from Tambet Ingo <tambet@ximian.com>
6640
6641         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6642         calling type.GetElementType().  The code previously depended on
6643         broken Mono behavior, which was fixed in Mono 1.1.3.
6644
6645         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6646         Activator.CreateInstance() so that the class's constructor is
6647         called with the right parameters.
6648
6649 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6650
6651         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6652
6653         * dbus/dbus-connection.c
6654         (_dbus_connection_queue_received_message_link): Call
6655         _dbus_connection_remove_timeout() instead of the _locked()
6656         variant, since it's always called from
6657         _dbus_connection_handle_watch(), which handles the locking.
6658         Removed the _locked() variant since it's no longer used.
6659
6660 2005-01-03  Havoc Pennington  <hp@redhat.com>
6661
6662         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6663         return
6664         
6665 2004-12-26  Havoc Pennington  <hp@redhat.com>
6666
6667         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6668
6669 2005-01-03  Havoc Pennington  <hp@redhat.com>
6670
6671         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6672         floating point
6673
6674         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6675
6676 2005-01-02  Havoc Pennington  <hp@redhat.com>
6677
6678         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6679
6680 2005-01-01  Havoc Pennington  <hp@redhat.com>
6681
6682         * configure.in: add -Wfloat-equal
6683
6684 2005-01-01  Havoc Pennington  <hp@redhat.com>
6685
6686         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6687         for a variety of reasons '==' doesn't do this.
6688
6689 2004-12-31  Havoc Pennington  <hp@redhat.com>
6690
6691         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6692         I keep wishing I had
6693
6694 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6695
6696         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6697
6698 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6699
6700         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6701         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6702         dbus-protocol.h.  Because they are defines and not enums they are not
6703         autogenerated.
6704
6705 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6706
6707         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6708         dbus_bus_activate_service
6709
6710         * python/dbus.py (Bus.activate_service): activate a service on the
6711         bus.
6712
6713 2004-12-24  Havoc Pennington  <hp@redhat.com>
6714
6715         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6716         file format has also changed and I haven't adapted to that yet
6717         
6718         * Makefile.am: load .gcno files from latest gcc
6719
6720 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6721         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6722
6723         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6724         lowlevel binding
6725
6726         * python/dbus.py (get_unix_user): Added binding to 
6727         call dbus_bindings.bus_get_unix_user
6728
6729         * python/extract.py: Modified the proto_pat regex to
6730         handle unsigned long
6731
6732 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6733
6734         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6735         better POSIX compliance.
6736
6737 2004-12-19  Havoc Pennington  <hp@redhat.com>
6738
6739         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6740         (_dbus_string_insert_8_aligned): new functions
6741
6742         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6743
6744 2004-12-18  Havoc Pennington  <hp@redhat.com>
6745
6746         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6747         macro
6748
6749         * dbus/dbus-message.c: fix a comment, and add a still-unused
6750         not-implemented function
6751
6752         * dbus/dbus-marshal.h: fix comment
6753
6754         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6755
6756 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6757
6758         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6759         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6760         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6761         Type.UnderlyingSystemType to get the actual system type
6762         underneath.  This code previously depended on the broken Mono
6763         behavior, which was fixed in 1.1.3.
6764
6765 2004-11-27  Havoc Pennington  <hp@redhat.com>
6766
6767         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6768         are disabled
6769         (_dbus_string_get_const_data): inline when asserts are disabled
6770
6771         * dbus/dbus-message.c: record the _dbus_current_generation of
6772         creation so we can complain if dbus_shutdown() is used improperly.
6773         Do this only if checks are enabled.
6774
6775         * dbus/dbus-connection.c: ditto
6776         
6777 2004-11-26  Havoc Pennington  <hp@redhat.com>
6778
6779         * test/glib/test-profile.c: add with_bus mode to profile echoes
6780         that go through the bus.
6781
6782         * test/glib/run-test.sh: add ability to run test-profile
6783
6784         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6785         config file reload.
6786
6787 2004-11-26  Havoc Pennington  <hp@redhat.com>
6788
6789         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6790         thing was implemented
6791
6792 2004-11-26  Havoc Pennington  <hp@redhat.com>
6793
6794         * test/glib/test-profile.c: tweak a bit, add support for some
6795         made-up minimal malloc overhead with plain sockets, since in 
6796         real life some sort of buffers are unavoidable thus we could 
6797         count them in the theoretical best case
6798
6799 2004-11-26  Havoc Pennington  <hp@redhat.com>
6800
6801         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6802         where I was trying to cache one too many messages
6803
6804 2004-11-26  Havoc Pennington  <hp@redhat.com>
6805
6806         * dbus/dbus-message.c: reimplement message cache as an array which 
6807         makes the cache about twice as fast and saves maybe 1.5% overall
6808
6809 2004-11-26  Havoc Pennington  <hp@redhat.com>
6810
6811         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6812         message cache lock here
6813
6814 2004-11-26  Havoc Pennington  <hp@redhat.com>
6815
6816         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6817         the "char byte_order" next to each other to save 4 bytes
6818         (dbus_message_new_empty_header): reduce preallocation, since the
6819         message cache should achieve a similar effect
6820         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6821         message cache that keeps a few DBusMessage around in a pool,
6822         another 8% speedup or so.
6823
6824         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6825
6826 2004-11-25  Havoc Pennington  <hp@redhat.com>
6827
6828         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6829         to write, without reading or blocking, try it before the poll()
6830         and skip the poll() if nothing remains to write. This is about a
6831         3% speedup in the echo client/server
6832
6833 2004-11-25  Havoc Pennington  <hp@redhat.com>
6834
6835         The primary change here is to always write() once before adding
6836         the write watch, which gives us about a 10% performance increase.
6837         
6838         * dbus/dbus-transport-unix.c: a number of modifications to cope
6839         with removing messages_pending
6840         (check_write_watch): properly handle
6841         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6842         messages_pending stuff
6843         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6844         AUTHENTICATED cases
6845         (unix_handle_watch): after writing, see if the write watch can be
6846         removed
6847         (unix_do_iteration): assert that write_watch/read_watch are
6848         non-NULL rather than testing that they aren't, since they 
6849         aren't allowed to be NULL. check_write_watch() at the end so 
6850         we add the watch if we did not finish writing (e.g. got EAGAIN)
6851
6852         * dbus/dbus-transport-protected.h: remove messages_pending call,
6853         since it resulted in too much inefficient watch adding/removing; 
6854         instead we now require that the transport user does an iteration 
6855         after queueing outgoing messages, and after trying the first
6856         write() we add a write watch if we got EAGAIN or exceeded our 
6857         max bytes to write per iteration setting
6858
6859         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6860         function
6861
6862         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6863         freed and then accessed, valgrind flagged this bug, fix it
6864
6865         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6866         as the last valid field plus 1, where really it is equal to the
6867         last valid field. Corrects some message corruption issues.
6868
6869         * dbus/dbus-mainloop.c: verbosity changes
6870
6871         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6872         instead of aborting in one of the test codepaths
6873
6874         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6875         caused not printing the pid ever again if a verbose was missing
6876         the newline at the end
6877         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6878
6879         * dbus/dbus-connection.c: verbosity changes; 
6880         (dbus_connection_has_messages_to_send): new function
6881         (_dbus_connection_message_sent): no longer call transport->messages_pending
6882         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6883         try to write() immediately, so we can avoid the write watch. This
6884         is the core purpose of this patchset
6885         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6886         dump the outgoing message queue, so nobody will get confused
6887         trying to send them or thinking stuff is pending to be sent
6888
6889         * bus/test.c: verbosity changes
6890
6891         * bus/driver.c: verbosity/assertion changes
6892
6893         * bus/dispatch.c: a bunch of little tweaks to get it working again
6894         because this patchset changes when/where you need to block.
6895
6896 2004-11-23  Havoc Pennington  <hp@redhat.com>
6897
6898         * test/glib/test-profile.c: modify to accept a plain_sockets
6899         argument in which case it will bench plain sockets instead of
6900         libdbus, for comparison purposes.
6901
6902 2004-11-22  Havoc Pennington  <hp@redhat.com>
6903
6904         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6905         threads for more time, so sysprof can get a grip on it.
6906
6907         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6908         pointless variable
6909
6910 2004-11-13  Havoc Pennington  <hp@redhat.com>
6911
6912         * test/glib/test-profile.c: fix this thing up a bit
6913
6914         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6915         preallocation sizes by a fair bit; not sure if this will be an
6916         overall performance win or not, but it does reduce reallocs.
6917
6918         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6919         the test hack that forced constant realloc if asserts are
6920         disabled, so we can profile sanely. Sprinkle in some
6921         _DBUS_UNLIKELY() which are probably pointless, but before I
6922         noticed the real performance problem I put them in.
6923         (_dbus_string_validate_utf8): micro-optimize this thing a little
6924         bit, though callgrind says it didn't help; then special-case
6925         ascii, which did help a lot; then be sure we detect nul bytes as
6926         invalid, which is a bugfix.
6927         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6928         superstition; use memset to nul the padding instead of a manual
6929         loop.
6930         (_dbus_string_get_length): inline this as a
6931         macro; it showed up in the profile because it's used for loop
6932         tests and so forth
6933
6934 2004-11-10  Colin Walters  <walters@verbum.org>
6935
6936         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6937         for extra paranoia.
6938
6939 2004-11-09  Colin Walters  <walters@verbum.org>
6940
6941         * dbus/dbus-string.c (_dbus_string_get_length): New
6942         function, writes DBusString to C buffer.
6943
6944         * dbus/dbus-string.h: Prototype it.
6945
6946         * dbus/dbus-message.c (dbus_message_type_to_string): New
6947         function, converts message type into C string.
6948
6949         * dbus/dbus-message.h: Prototype it.
6950
6951         * bus/selinux.c (bus_selinux_check): Take source pid,
6952         target pid, and audit data.  Pass audit data to
6953         avc_has_perm.
6954         (log_audit_callback): New function, appends extra
6955         audit information.
6956         (bus_selinux_allows_acquire_service): Also take
6957         service name, add it to audit data.
6958         (bus_selinux_allows_send): Also take message
6959         type, interface, method member, error name,
6960         and destination, and add them to audit data.
6961         (log_cb): Initialize func_audit.
6962         
6963         * bus/selinux.h (bus_selinux_allows_acquire_service)
6964         (bus_selinux_allows_send): Update prototypes 
6965
6966         * bus/services.c (bus_registry_acquire_service): Pass
6967         service name to bus_selinux_allows_acquire_service.
6968
6969         * bus/bus.c (bus_context_check_security_policy): Pass
6970         additional audit data.  Move assignment of dest
6971         to its own line.
6972
6973 2004-11-07  Colin Walters  <walters@verbum.org>
6974
6975         * dbus/dbus-transport-unix.c (do_authentication): Always
6976         initialize auth_completed.
6977         
6978 2004-11-07  Colin Walters  <walters@verbum.org>
6979
6980         * bus/bus.c (load_config): Break into three
6981         separate functions: process_config_first_time_only,
6982         process_config_every_time, and process_config_postinit.
6983         (process_config_every_time): Move call of
6984         bus_registry_set_service_context_table into
6985         process_config_postinit.
6986         (process_config_postinit): New function, does
6987         any processing that needs to happen late
6988         in initialization (and also on reload).
6989         (bus_context_new): Instead of calling load_config,
6990         open config parser here and call process_config_first_time_only
6991         and process_config_every_time directly.  Later, after
6992         we have forked but before changing UID,
6993         invoke bus_selinux_full_init, and then call
6994         process_config_postinit.
6995         (bus_context_reload_config): As in bus_context_new,
6996         load parse file inside here, and call process_config_every_time
6997         and process_config_postinit.
6998
6999         * bus/services.h, bus/services.c
7000         (bus_registry_set_service_context_table): Rename
7001         from bus_registry_set_sid_table.  Take string hash from config
7002         parser, and convert them here into SIDs.
7003
7004         * bus/config-parser.c (struct BusConfigParser): Have
7005         config parser only store a mapping of service->context
7006         string.
7007         (merge_service_context_hash): New function.
7008         (merge_included): Merge context string hashes instead
7009         of using bus_selinux_id_table_union.
7010         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7011         simply create a new string hash.
7012         (bus_config_parser_unref): Unref it.
7013         (start_selinux_child): Simply insert strings into hash,
7014         don't call bus_selinux_id_table_copy_over.
7015
7016         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7017         (bus_selinux_id_table_copy_over): Delete.
7018
7019 2004-11-03  Colin Walters  <walters@verbum.org>
7020
7021         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7022         variables.
7023         
7024 2004-11-03  Colin Walters  <walters@verbum.org>
7025
7026         * bus/test-main.c (test_pre_hook): Fix test logic,
7027         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7028
7029 2004-11-02  Colin Walters  <walters@redhat.com>
7030
7031         * bus/selinux.c (bus_selinux_init): Split into two functions,
7032         bus_selinux_pre_init and bus_selinux_post_init.
7033         (bus_selinux_pre_init): Just determine whether SELinux is
7034         enabled.
7035         (bus_selinux_post_init): Do everything else.
7036
7037         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7038         config file, and bus_selinux_post_init after.  This ensures that
7039         we don't lose the policyreload notification thread that
7040         bus_selinux_init created before forking previously.
7041         
7042         * bus/test-main.c (test_pre_hook): Update for split.
7043
7044 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7045
7046         Patch from Johan Fischer <linux@fischaz.com>
7047         
7048         * mono/doc/Makefile.am (install-data-local): Added directory
7049         install for DESTDIR
7050
7051 2004-10-29  Colin Walters  <walters@redhat.com>
7052
7053         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7054         parameter for fd to write pid to.       
7055
7056         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7057         
7058         * bus/bus.c (bus_context_new): Pass print_pid_fd
7059         to _dbus_become_daemon (bug #1720)
7060
7061 2004-10-29  Colin Walters  <walters@redhat.com>
7062
7063         Patch from Ed Catmur <ed@catmur.co.uk>
7064
7065         * mono/doc/Makefile.am (install-data-local): Handle
7066         DESTDIR.
7067
7068 2004-10-29  Colin Walters  <walters@redhat.com>
7069
7070         * bus/.cvsignore, qt/.cvsignore: Update.
7071
7072 2004-10-29  Colin Walters  <walters@redhat.com>
7073
7074         Patch from Kristof Vansant <de_lupus@pandora.be>
7075
7076         * configure.in: Detect Slackware.
7077         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7078         * bus/rc.messagebus.in: New file.
7079
7080 2004-10-29  Colin Walters  <walters@redhat.com>
7081
7082         * tools/dbus-monitor.c (filter_func): Return
7083         DBUS_HANDLER_RESULT_HANDLED in filter function
7084         for now.  See:
7085         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7086
7087 2004-10-29  Colin Walters  <walters@redhat.com>
7088
7089         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7090
7091         * bus/services.c (bus_registry_acquire_service): 
7092         Correctly retrieve service name from DBusString
7093         for printing.
7094
7095 2004-10-29  Colin Walters  <walters@redhat.com>
7096
7097         * dbus/dbus-glib.h: Update documentation to not
7098         refer to internal APIs.
7099
7100 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7101
7102         * mono/Arguments.cs (GetDBusTypeConstructor):
7103         type.UnderlyingSystemType will return "System.Byte" if you do it
7104         on "byte[]", which is not what we want.  So check the type.IsArray
7105         property and use System.Array instead.
7106
7107 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7108
7109         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7110         the DBusUserInfo structure since this is passed into the function.
7111         This would cause a double free when the function that allocated
7112         the structure would try to free it when an error occured.
7113
7114         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7115         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7116         for service activation to avoid 32bit/64bit parallel install issues
7117
7118 2004-10-21  Colin Walters  <walters@verbum.org>
7119
7120         * AUTHORS: Fix my email address, the @gnu.org one
7121         has been bouncing for some time.  Also add J5.
7122         
7123 2004-10-21  Colin Walters  <walters@verbum.org>
7124
7125         * dbus/dbus-transport-unix.c (do_authentication): Return
7126         authentication status to callers.
7127         (unix_handle_watch): If we completed authentication this round,
7128         don't do another read.  Instead wait until the next iteration,
7129         after we've read any pending data in the auth buffer.
7130         (unix_do_iteration): Ditto.
7131         (unix_handle_watch): Updated for new do_authentication prototype.
7132
7133 2004-10-18  Colin Walters  <walters@verbum.org>
7134
7135         * bus/selinux.c (bus_selinux_enabled): Handle
7136         --disable-selinux case.
7137         
7138 2004-10-18  Colin Walters  <walters@verbum.org>
7139
7140         * bus/selinux.h: Add bus_selinux_enabled.
7141         
7142         * bus/selinux.c (bus_selinux_enabled): Implement it.
7143         
7144         * bus/config-parser.c (struct include): Add
7145         if_selinux_enabled member.
7146         (start_busconfig_child): Parse if_selinux_enabled
7147         attribute for include.
7148         (bus_config_parser_content): Handle it.
7149
7150         * bus/session.conf.in, bus/system.conf.in: Add
7151         inclusion of context mapping to default config files;
7152         conditional on SELinux being enabled.
7153         
7154         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7155         
7156         * test/data/invalid-config-files/badselinux-1.conf, 
7157         test/data/invalid-config-files/badselinux-2.conf:
7158         Test files for bad syntax.
7159         
7160 2004-10-17  Colin Walters  <walters@verbum.org>
7161
7162         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7163         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7164         format specifier mismatches.
7165
7166 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7167
7168         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7169         format string.
7170
7171         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7172         pointer (bug #1540, Leonardo Boiko).
7173
7174 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7175
7176         * mono/BusDriver.cs: Changed BusDriver struct to remove
7177         the ServiceCreated and ServiceDeleted events and replace them
7178         with the new ServiceOwnerChanged event.
7179
7180         * mono/example/BusListener.cs: Added a new example program,
7181         which listens for and reports any ServiceOwnerChanged events
7182         on the bus driver.
7183
7184         * mono/example/Makefile.am (DESTDIR): Build changes for the
7185         new BusListener.cs example.
7186
7187 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7188
7189         * bus/signals.c (bus_match_rule_parse): validate the components of
7190         match rules (bug #1439).
7191
7192         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7193
7194 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7195
7196         * doc/dbus-specification.xml: document ServiceOwnerChanged
7197         signal.
7198         
7199         * bus/driver.c, bus/driver.h, bus/services.c: Use
7200         ServiceOwnerChanged signal instead of ServiceCreated and
7201         ServiceDeleted.
7202         
7203         * bus/dispatch.c: update testcase for the new signal.
7204
7205 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7206
7207         Patch from Nat Friedman <nat@novell.com>
7208
7209         * mono/Makefile.am: A number of small build fixes to allow "make
7210         distcheck" to succeed.
7211
7212         * mono/example/Makefile.am: "make distcheck" fixes.
7213
7214         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7215         key in @srcdir@.
7216
7217         * test/Makefile.am: "make distcheck" fixes.
7218
7219 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7220
7221         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7222
7223         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7224
7225         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7226         messages after the first one (bug #1389).
7227         
7228         * bus/dispatch.c (check_double_hello_message): add a test case for
7229         the double hello message bug.
7230         (check_existent_service_activation): fix check of spawning error.
7231         
7232 2004-09-16  David Zeuthen  <david@fubar.dk>
7233
7234         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7235
7236 2004-09-12  David Zeuthen  <david@fubar.dk>
7237
7238         Patch from Kay Sievers <kay.sievers@vrfy.org>
7239
7240         * bus/bus.c (bus_context_new):
7241         * bus/bus.h:
7242         * bus/main.c (usage)
7243         (main):
7244         Add commandline option --nofork to override configuration file
7245         setting.
7246
7247 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7248
7249         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7250         compilers don't like it (bug #974).
7251
7252 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7253
7254         * qt/connection.*: Applied patch by Jérôme Lodewyck
7255         <lodewyck@clipper.ens.fr> to integrate an existing
7256         connection into the Qt eventloop
7257
7258 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7259
7260         * mono/BusDriver.cs: Added.  This is a class for interacting with
7261         the org.freedesktop.DBus service.
7262
7263         * mono/Message.cs: Added a mechanism to expose the message that is
7264         currently being dispatched via the static Message.Current
7265         property.  Added Message.Sender and Message.Destination
7266         properties.
7267
7268         * mono/Handler.cs: Expose the dispatched message via
7269         Message.Current when handling method calls.
7270
7271         * mono/Service.cs: Expose the dispatched message via
7272         Message.Current when handling signal emissions.
7273         
7274         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7275         Connection.BaseService property.
7276
7277 2004-08-28  Havoc Pennington  <hp@redhat.com>
7278
7279         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7280
7281         More fixes from Steve Grubb
7282         
7283         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7284         (_dbus_listen_tcp_socket): fix fd leak
7285
7286         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7287         EINTR to a bit lower in the code
7288
7289 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7290
7291         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7292         TRUE if we are inquiring about the existence of the built-in
7293         org.freedesktop.DBus service.
7294
7295 2004-08-25  John Palmieri  <johnp@redhat.com>
7296         * bus/config-parser.c:
7297         (struct PolicyType): Add POLICY_CONSOLE
7298         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7299         (start_busconfig_child): Sets up console element when
7300         <policy at_console=""> is encountered in a policy file
7301         (append_rule_from_element): Convert console elements to console
7302         rules.
7303
7304         * bus/policy.c: 
7305         (bus_policy_create_client_policy): Add console rules to the client
7306         policy based on if the client is at the console
7307         (bus_policy_append_console_rule): New function for adding a
7308         console rule to a policy
7309         (bus_policy_merge): Handle console rule merging
7310
7311         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7312         where we check for console user files
7313         
7314         * dbus/dbus-sysdeps.c:
7315         (_dbus_file_exists): New function which checks if the given
7316         file exists
7317         (_dbus_user_at_console): New function which does the system
7318         specific process of checking if the user is at the console
7319
7320         * dbus/dbus-userdb.c:
7321         (_dbus_is_console_user): New function converts a UID to user name
7322         and then calls the system specific _dbus_user_at_console to 
7323         see if the user is at the console and therefor a console user
7324
7325 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7326
7327         * bus/config-parser.c (set_limit):
7328         * bus/dbus-daemon-1.1.in:
7329         * test/data/valid-config-files/many-rules.conf: set the
7330         max_match_rules_per_connection limt from the config file. 
7331
7332         * doc/busconfig.dtd: update the DTD.
7333
7334         * bus/driver.c: remove some unused variables.
7335
7336 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7337
7338         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7339         it's been replaced by dbus_g_bus_get
7340
7341 2004-08-23  Colin Walters  <walters@redhat.com>
7342
7343         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7344
7345         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7346
7347         * bus/selinux.c: Create a thread for policy reload notification.
7348         (bus_selinux_get_policy_root): Implement.
7349
7350         * bus/config-parser.c (start_busconfig_child)
7351         (bus_config_parser_content): Support SELinux-root relative
7352         inclusion.
7353
7354         * configure.in <HAVE_SELINUX>: Add -lpthread.
7355         
7356         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7357         (test_post_hook): Move memory checking into here.
7358         (test_pre_hook, test_post_hook): Move SELinux checks in
7359         here, but conditional on a DBUS_TEST_SELINUX environment
7360         variable.  Unfortunately we can't run the SELinux checks
7361         as a normal user, since they won't have any permissions
7362         for /selinux.  So this will have to be tested manually
7363         for now, until we have virtualization for most of
7364         libselinux.
7365         
7366 2004-08-23  Havoc Pennington  <hp@redhat.com>
7367
7368         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7369         drop supplementary groups, suggested by Steve Grubb
7370
7371 2004-08-20  Colin Walters  <walters@redhat.com>
7372
7373         * bus/config-parser.c (start_busconfig_child): Remove some unused
7374         variables.
7375         
7376         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7377         warning.
7378
7379 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7380
7381         * configure.in: If --enable-mono is passed in, if we can't find
7382         mono error out.
7383
7384         * mono/Makefile.am: Use /gacutil to install assemblies into the
7385         GAC and not /root.
7386
7387 2004-08-12  Havoc Pennington  <hp@redhat.com>
7388
7389         * NEWS: update for 0.22
7390
7391         * configure.in: release 0.22
7392
7393 2004-08-11  Colin Walters  <walters@redhat.com>
7394
7395         * tools/dbus-send.c (main, usage): Add --reply-timeout
7396         argument.
7397
7398 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7399
7400         * bus/bus.c (process_config_first_time_only): get rid of an unused
7401         DBusError that was causing a memoy leak (bug #989).
7402
7403         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7404         fix compilation on Solaris/Forte C (bug #974)
7405
7406         * bus/main.c (main): plug two minuscule memleaks.
7407
7408 2004-08-10  Havoc Pennington  <hp@redhat.com>
7409
7410         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7411
7412 2004-08-09  Havoc Pennington  <hp@redhat.com>
7413
7414         * COPYING: switch to Academic Free License version 2.1 instead of
7415         2.0, to resolve complaints about patent termination clause.
7416
7417 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7418
7419         * README: added documentation for the --enable-python 
7420         configure switch.
7421
7422 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7423
7424         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7425         _unref in the SELinux support.
7426
7427         * doc/busconfig.dtd: update DTD for SELinux support.
7428
7429         * bus/config-loader-libxml.c: fix error handler and parser
7430         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7431
7432         * configure.in: remove the warning about libxml2.
7433
7434         * dbus/dbus-bus.c: silence doxygen warning.
7435
7436 2004-07-31  Colin Walters  <walters@redhat.com>
7437
7438         * configure.in: Move #error in SELinux check to its own line.
7439
7440 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7441
7442         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7443         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7444         dbus_error_set.
7445
7446         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7447         broken by the change in the _SET_OOM macros.
7448
7449 2004-07-31  Colin Walters  <walters@redhat.com>
7450
7451         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7452         BUS_SET_OOM.
7453
7454 2004-07-31  Colin Walters  <walters@redhat.com>
7455
7456         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7457         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7458         AC_MSG_CHECKING.
7459
7460 2004-07-24  Havoc Pennington  <hp@redhat.com>
7461
7462         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7463
7464         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7465         functionality
7466
7467         * configure.in: add --enable-selinux
7468         
7469         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7470
7471         * bus/main.c (main): initialize and shut down selinux
7472
7473         * bus/connection.c: store SELinux ID on each connection, to avoid 
7474         repeated getting of the string context and converting it into 
7475         an ID
7476
7477         * bus/bus.c (bus_context_get_policy): new accessor, though it
7478         isn't used
7479         (bus_context_check_security_policy): check whether the security
7480         context of sender connection can send to the security context of
7481         recipient connection
7482
7483         * bus/config-parser.c: add parsing for <selinux> and <associate>
7484         
7485         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7486         implement dbus_connection_get_unix_fd()
7487
7488         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7489         function, used by the selinux stuff
7490         
7491 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7492
7493         * bus/config-loader-libxml.c: complete the implementation of
7494         libxml backend for config file loader. Doesn't work with full OOM
7495         test yet. 
7496         
7497         * configure.in: change error when selecting libxml into a warning.
7498         
7499         * test/data/invalid-config-files: add two non-well-formed XML
7500         files. 
7501         
7502         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7503         
7504         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7505         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7506         be necessary to read all the buffer. (bug #894)
7507
7508         * bus/activation.c (bus_activation_activate_service): fix a
7509         potential assertion failure (bug #896). Small optimization in the
7510         case of auto-activation messages.
7511
7512         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7513         add test case for byte-through-vararg bug (#901). patch by Kimmo
7514         Hämäläinen. 
7515
7516 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7517
7518         * python/dbus.py:
7519         * python/dbus_bindings.pyx.in:
7520         Add dbus.init_gthreads (), allow emit_signal to pass
7521         arguments to the signal.
7522         
7523 2004-07-24  Havoc Pennington  <hp@redhat.com>
7524
7525         * AUTHORS: add some people, not really comprehensively, let me
7526         know if I missed you
7527
7528 2004-07-24  Havoc Pennington  <hp@redhat.com>
7529
7530         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7531         Owen
7532
7533         * test/Makefile.am (DIST_SUBDIRS): here also
7534
7535 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7536
7537         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7538         breaking build on Solaris, reported by Farhad Saberi on the ML.
7539
7540         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7541         va_arg invocation to account for integer promotion in the case of
7542         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7543
7544         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7545         _dbus_list_get_first_link, not _dbus_list_get_first.
7546
7547         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7548
7549         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7550         handler functions so that the asserts in _dbus_object_subtree_unref
7551         do not fail.
7552
7553         * dbus/dbus-transport-unix.c (do_reading):
7554         _dbus_transport_queue_messages return value is of type
7555         dbus_bool_t, not DBusDispatchStatus.
7556         
7557 2004-07-19  David Zeuthen  <david@fubar.dk>
7558
7559         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7560
7561         * bus/dispatch.c:
7562         (check_get_connection_unix_user): Debug says GetProperty; but the
7563         method is called GetConnectionUnixUser
7564         (check_get_connection_unix_process_id): New function
7565         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7566         also call check_get_connection_unix_process_id()
7567         
7568         * bus/driver.c:
7569         (bus_driver_handle_get_connection_unix_process_id): New function,
7570         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7571         interface
7572         
7573         * dbus/dbus-auth.c:
7574         (handle_server_data_external_mech): Set pid from the credentials
7575         obtained from the socket
7576         
7577         * dbus/dbus-connection.c:
7578         (dbus_connection_get_unix_process_id): New function
7579         
7580         * dbus/dbus-connection.h: 
7581         Add prototype for dbus_connection_get_unix_process_id
7582         
7583         * dbus/dbus-transport.c:
7584         (_dbus_transport_get_unix_process_id): New function
7585         
7586         * dbus/dbus-transport.h:
7587         Add prototype for _dbus_transport_get_unix_process_id
7588         
7589 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7590
7591         * dbus/dbus-message.c: Message counter fix, patch by Christian
7592         Hammond <chipx86@gnupdate.org>
7593
7594 2004-07-18  Seth Nickell  <seth@gnome.org>
7595
7596         * python/dbus.py:
7597         * python/dbus_bindings.pyx.in:
7598         * python/tests/test-client.py:
7599
7600         Add dbus.ByteArray and dbus_bindings.ByteArray
7601         types so that byte streams can be passed back.
7602
7603         Give jdahlin the heaps of credit that are so
7604         rightfully his.
7605         
7606 2004-07-12  Seth Nickell  <seth@gnome.org>
7607
7608         * python/dbus.py:
7609
7610         Add message argument to the default object_method_handler
7611         function.
7612         
7613         * python/dbus_bindings.pyx.in:
7614
7615         Automatically return NIL when passed an empty list
7616         (we can't pass back a list since lists are typed
7617         and we don't have any idea what type the the client
7618         intended the list to be... :-( )
7619         
7620 2004-07-10  Seth Nickell  <seth@gnome.org>
7621
7622         * python/examples/Makefile.am:
7623
7624         Fix distcheck breakage caused by new examples.
7625
7626 2004-07-10  Seth Nickell  <seth@gnome.org>
7627
7628         * python/dbus.py:
7629
7630         Add "message" argument to service-side dbus.Object
7631         methods. This will break existing services written
7632         using the python bindings, but will allow extraction
7633         of all the message information (e.g. who its from).
7634
7635         Add improved "object oriented" signal handling/emission.
7636         
7637         * python/examples/example-service.py:
7638
7639         Nix this example.
7640         
7641         * python/examples/example-signal-emitter.py:
7642         * python/examples/example-signal-recipient.py:
7643
7644         Two new examples that show how to emit and receive
7645         signals using the new APIs.
7646         
7647         * python/examples/example-signals.py:
7648         * python/examples/gconf-proxy-service.py:
7649         * python/examples/gconf-proxy-service2.py:
7650
7651         Add "message" argument to service methods.
7652
7653 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7654
7655         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7656         * dbus/bus.c (dbus_bus_get_unix_user)
7657         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7658         method of org.freedesktop.DBus interface.
7659
7660         * bus/dispatch.c: test case
7661
7662 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7663
7664         * python/Makefile.am: switched include directory from glib/ to dbus/
7665         since dbus-glib.h moved
7666  
7667 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7668
7669         * configure.in: prevent building the gcj stuff and libxml loader
7670         since they are broken.
7671
7672 2004-06-20  Havoc Pennington  <hp@redhat.com>
7673
7674         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7675         codes from the dbus error names
7676         
7677         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7678         as dbus/dbus-glib.h and that breakage is now visible due to 
7679         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7680         
7681         * glib/dbus-glib.h: s/gproxy/g_proxy/
7682
7683         * dbus/dbus-shared.h: new header to hold stuff shared with
7684         binding APIs
7685         
7686         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7687         than dbus-errors.h
7688
7689         * glib/dbus-glib.h (dbus_set_g_error): move to
7690         dbus-glib-lowlevel.h
7691
7692         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7693         of stuff to enable this
7694
7695         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7696
7697         * a bunch of other changes with the same basic "separate glib 
7698         bindings from dbus.h" theme
7699         
7700 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7701
7702         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7703
7704         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7705
7706 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7707
7708         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7709         the reply value of the ServiceExists message.
7710
7711 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7712
7713         * python/dbus_bindings.pyx.in: No longer need to parse path
7714         elements and pass them as arrays of strings.  The C API now
7715         accepts plain path strings.
7716         (_build_parsed_path): removed 
7717
7718 2004-06-07  Havoc Pennington  <hp@redhat.com>
7719
7720         * doc/TODO: remove auto-activation item since it's done; sort
7721         items by importance/milestone
7722
7723 2004-06-07  Havoc Pennington  <hp@redhat.com>
7724
7725         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7726         random signature when using REQUIRED_FIELDS (this hack won't work
7727         in the long term)
7728
7729         * dbus/dbus-message.c: change the signature to be a header field,
7730         instead of message->signature special-case string. Incremental
7731         step forward. Then we can fix up code to send the signature in the
7732         message, then fix up code to validate said signature, then fix up
7733         code to not put the typecodes inline, etc.
7734         (load_one_message): don't make up the signature after the fact
7735         (decode_header_data): require signature field for the known
7736         message types
7737
7738         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7739
7740         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7741
7742 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7743
7744         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7745
7746         * mono/Handler.cs: Updated to follow new path argument for
7747         (un-)registering objects.
7748
7749         * mono/example/Makefile.am:
7750         * mono/Makefile.am:
7751         * configure.in: Bumped required version for mono and use new -pkg
7752         syntax for deps
7753
7754 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7755
7756         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7757         registration functions take the path argument as char* instead of
7758         char**.
7759
7760         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7761         split off the path decompostion part of
7762         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7763         warnings. 
7764
7765         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7766         
7767 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7768  
7769         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7770         machine approach.  A state is implemented as a function that
7771         handles incoming events as specified for that state.
7772         
7773         * doc/dbus-specification.xml: Update auth protocol state machine
7774         specification to match implementation.  Remove some leftover
7775         base64 examples.
7776
7777 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7778
7779         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7780         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7781         quiet doxygen.
7782
7783         * Doxyfile.in: remove deprecated options.
7784
7785         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7786         glib/test-thread.h, glib/test-thread-client.c,
7787         glib/test-thread-server.c, glib/test-profile.c,
7788         glib/test-dbus-glib.c: remove these unused files.
7789
7790 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7791
7792         * dbus/dbus-object-tree.c
7793         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7794         non-fallback handlers (bug #684).
7795         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7796         (find_subtree_recurse): report wether the returned subtree is an
7797         exact match or a "fallback" match higher up in the tree.
7798         (object_tree_test_iteration): update test case.
7799
7800 2004-06-01  Seth Nickell  <seth@gnome.org>
7801
7802         * python/dbus_bindings.pyx.in:
7803         * python/tests/test-client.py:
7804
7805         Round off basic type support. Add dicts (yay!), and 
7806         remaining array types.
7807
7808         Make MessageIter more general so it works for dicts too.
7809
7810         Mark all loop variables as C integers.
7811         
7812 2004-05-31  Havoc Pennington  <hp@redhat.com>
7813
7814         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7815         "in" before "out"
7816
7817         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7818
7819         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7820         option that runs the tests, and start filling in some code
7821         including for starters just dumping the interfaces to stdout
7822
7823         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7824
7825         * test/data/valid-introspection-files/lots-of-types.xml: test of
7826         an example introspection file
7827
7828         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7829         "node" (I think...)
7830
7831 2004-05-31  Seth Nickell  <seth@gnome.org>
7832
7833         * python/dbus_bindings.pyx.in:
7834         * python/tests/test-client.py:
7835
7836         Test Suite: 1
7837         Python Bindings: 0
7838
7839         Fix string array memory trashing bug... oops...
7840
7841 2004-05-30  Seth Nickell  <seth@gnome.org>
7842
7843         * python/dbus.py:
7844
7845         Add a nicer-but-less-flexible alternate API for handling 
7846         calls to virtual objects in dbus.ObjectTree.
7847
7848         Screw up the argument order to the dbus.Object constructor
7849         for consistency with dbus.ObjectTree (and to make dbus_methods
7850         optional for future extension)
7851         
7852         * python/examples/Makefile.am:
7853         * python/examples/gconf-proxy-service.py:
7854         * python/examples/gconf-proxy-service2.py:
7855
7856         Alternate implementation of gconf-proxy-service using the
7857         nicer dbus.ObjectTree API.
7858         
7859         * python/examples/example-service.py:
7860         * python/tests/test-server.py
7861
7862         Reverse the argument order to deal with dbus.Object constructor
7863         changes.
7864         
7865 2004-05-30  Seth Nickell  <seth@gnome.org>
7866
7867         * python/examples/example-client.py:
7868         * python/examples/example-service.py:
7869
7870         Take it back. Lists seem to work but they're broken
7871         in the test suite. Make the base examples use
7872         lists (works fine).
7873
7874 2004-05-30  Seth Nickell  <seth@gnome.org>
7875
7876         * python/dbus_bindings.pyx.in:
7877         * python/tests/test-client.py:
7878
7879         Add some more tests and fix errors that crop up.
7880         Unfortunately, currently it seems like marshalling
7881         and unmarshalling of lists is completely broken :-(
7882
7883 2004-05-30  Seth Nickell  <seth@gnome.org>
7884
7885         * python/dbus_bindings.pyx.in:
7886
7887         Add support for ObjectPath type.
7888
7889         * python/dbus.py:
7890
7891         Refactor message handling code to a common function.
7892         
7893         * python/tests/test-client.py:
7894         * python/tests/test-server.py:
7895
7896         Add tests that check to make sure values of all types
7897         can be echoed from a service w/o mangling.
7898         
7899 2004-05-29  Seth Nickell  <seth@gnome.org>
7900
7901         * python/dbus.py:
7902
7903         Add ObjectTree class which allows implementation
7904         of trees of "virtual" objects. Basically the python
7905         wrapper for "register_fallback".
7906         
7907         * python/examples/Makefile.am
7908         * python/examples/gconf-proxy-client.py:
7909         * python/examples/gconf-proxy-service.py:
7910
7911         Implement a simple GConf proxy service that supports
7912         get/set on string and int GConf keys using the ObjectTree.
7913         
7914 2004-05-29  Seth Nickell  <seth@gnome.org>
7915
7916         * python/dbus.py:
7917         * python/examples/example-client.py:
7918         * python/examples/example-service.py:
7919         * python/examples/list-system-services.py:
7920
7921         Add SessionBus, SystemBus and ActivationBus classes
7922         so you don't need to know the special little BUS_TYPE
7923         flag.
7924         
7925 2004-05-29  Havoc Pennington  <hp@redhat.com>
7926
7927         * bus/config-parser.c (process_test_valid_subdir): temporarily
7928         stop testing config parser OOM handling, since expat has issues
7929         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7930
7931         * bus/dbus-daemon-1.1.in: change requested_reply to
7932         send_requested_reply/receive_requested_reply so we can send the
7933         replies, not just receive them.
7934
7935         * bus/config-parser.c: parse the new
7936         send_requested_reply/receive_requested_reply
7937
7938         * bus/policy.c (bus_client_policy_check_can_send): add
7939         requested_reply argument and use it
7940
7941         * bus/bus.c (bus_context_check_security_policy): pass through
7942         requested_reply status to message send check
7943
7944         * bus/system.conf.in: adapt to requested_reply change
7945         
7946 2004-05-28  Havoc Pennington  <hp@redhat.com>
7947
7948         * test/glib/test-service-glib.c (main): remove unused variable
7949
7950         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7951
7952         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7953         from the enum, no longer in use.
7954
7955         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7956         works right.
7957
7958         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7959         whether error_name passed in is a valid error name.
7960
7961 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7962
7963         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7964         OBJECT_PATH and OBJECT_PATH_ARRAY
7965
7966 2004-05-28  Seth Nickell  <seth@gnome.org>
7967
7968         * python/examples/Makefile.am:
7969
7970         Forget to add Makefile.am. Do not pass go.
7971
7972 2004-05-28  Michael Meeks  <michael@ximian.com>
7973
7974         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7975         fix no int64 case.
7976
7977         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7978
7979         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7980         (_dbus_message_iter_get_basic_type_array): impl.
7981         drastically simplify ~all relevant _get methods to use these.
7982         (_dbus_message_iter_append_basic_array),
7983         (dbus_message_iter_append_basic): impl
7984         drastically simplify ~all relevant _append methods to use these.
7985
7986         * dbus/dbus-message-builder.c (parse_basic_type) 
7987         (parse_basic_array, lookup_basic_type): impl.
7988         (_dbus_message_data_load): prune scads of duplicate /
7989         cut & paste coding.
7990
7991         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7992         (_dbus_demarshal_basic_type): implement,
7993         (demarshal_and_validate_len/arg): beef up debug.
7994         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7995
7996 2004-05-27  Seth Nickell  <seth@gnome.org>
7997
7998         * configure.in:
7999         * python/Makefile.am:
8000
8001         Include the example python apps in the tarball.
8002         
8003         * python/examples/list-system-services.py
8004
8005         Add a python new example that fetches the list of services
8006         from the system bus.
8007         
8008 2004-05-27  Seth Nickell  <seth@gnome.org>
8009
8010         * python/dbus.py:
8011         * python/dbus_bindings.pyx.in:
8012
8013         Fix failure to notify that a signal was not handled,
8014         resulted in hung functions.
8015         
8016 2004-05-25  Colin Walters  <walters@redhat.com>
8017
8018         * tools/dbus-monitor.c (main): Monitor all types of messages.
8019
8020 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8021
8022         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8023         which unregisters the object path and disposes the handler.
8024
8025 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8026  
8027         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8028          
8029         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8030         operands to && so we call dbus_message_iter_next () for the last
8031         argument also.
8032
8033 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8034
8035         * dbus/dbus-object-tree.c
8036         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8037         children even if the requested path isn't registered.
8038         (object_tree_test_iteration): test object_tree_list_registered.
8039
8040         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8041         it to 0.
8042         
8043 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8044
8045         * doc/TODO: Remove resolved items.
8046
8047         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8048         field.
8049         
8050         * bus/connection.c (bus_connections_expect_reply): Enforce the
8051         per-connection limit on pending replies.
8052         
8053         Patch from Jon Trowbridge <trow@ximian.com>:
8054  
8055         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8056         up a watch that triggers a config reload when one end of the pipe
8057         becomes readable.
8058         (signal_handler): Instead of doing the config reload in our SIGHUP
8059         handler, just write to the reload pipe and let the associated
8060         watch handle the reload when control returns to the main loop.
8061  
8062         * bus/driver.c (bus_driver_handle_reload_config): Added.
8063         Implements a ReloadConfig method for requesting a configuration
8064         file reload via the bus driver.
8065  
8066 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8067
8068         * HACKING: Updated release instructions concerning the wiki page.
8069
8070 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8071
8072         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8073         filter against auth->allowed_mechs; we only add allowed mechs in
8074         record_mechanisms().
8075  
8076         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8077         ALLOWED_MECHS to auth-script format so we can set the list of
8078         allowed mechanisms.
8079  
8080         * data/auth/client-out-of-mechanisms.auth-script: New test to
8081         check client disconnects when it is out of mechanisms to try.
8082  
8083         * dbus/dbus-auth.c (process_command): Remove check for lines
8084         longer that 1 MB; we only buffer up maximum 16 kB.
8085  
8086         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8087         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8088         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8089         assume there might be unused bytes.
8090  
8091         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8092         client-out-of-mechs, it is handled in process_reject(). Move check
8093         for max failures to send_rejected(), as it's a server-only thing.
8094
8095         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8096         send_auth(), send_data(), send_rejected(), send_error(),
8097         send_ok(), send_begin() and send_cancel().
8098
8099 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8100
8101         Remove base64 encoding, replace with hex encoding. Original patch
8102         from trow@ximian.com, added error handling.
8103
8104         * dbus/dbus-string.c (_dbus_string_base64_encode)
8105         (_dbus_string_base64_decode): Remove.
8106         (_dbus_string_hex_decode): Add end_return argument so we can
8107         distinguish between OOM and invalid hex encoding.
8108         (_dbus_string_test): Remove base64 tests and add test case for
8109         invalid hex.
8110
8111         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8112         Replace base64 with hex.
8113
8114         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8115         for invalid hex encoded data in auth protocol.
8116
8117 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8118
8119         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8120         leak.
8121
8122 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8123
8124         * mono/dbus-sharp.dll.config.in: Added for GAC
8125         * mono/dbus-sharp.snk: Added for GAC
8126         * mono/Assembly.cs.in: Added for GAC
8127         * mono/Makefile.am: Changes for GAC installation        
8128         * configure.in: Added refs for dbus-sharp.dll.config.in and
8129         Assembly.cs.in. More fixes for mono testing
8130         * mono/example/Makefile.am: Changed var to CSC
8131         * Makefile.am: Changed flag name to DBUS_USE_CSC
8132
8133 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8134
8135         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8136         * mono/doc/*: Added documentation framework
8137         * configure.in: Added monodoc check
8138         * README: Added description of mono configure flags
8139
8140 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8141
8142         * doc/dbus-specification.xml: Added a "Required" column to the 
8143         header fields table and changed the "zero or more" verbage in
8144         the above paragraph to read "The header must contain the required 
8145         named header fields and zero or more of the optional named header 
8146         fields".
8147         * test/data/invalid-messages/*.message: Added the required PATH 
8148         named header field to the tests so that they don't fail on 
8149         'Missing path field'
8150
8151 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8152
8153         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8154         the stack by implicitly defining variable and parameter types and
8155         removing the hack of defining C pointers as python objects and later
8156         casting them.
8157
8158 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8159
8160         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8161
8162 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8163
8164         * mono/DBusType/Dict.cs: Handle empty dicts
8165         * mono/DBusType/Array.cs: Handle empty arrays
8166         * mono/Arguments.cs: Handle empty arguments
8167
8168 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8169
8170         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8171         field
8172
8173 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8174
8175         * test/data/valid-messages/standard-*.message: Update message
8176         test scripts to new header field names.
8177
8178 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8179
8180         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8181         overflow to times_we_did_each_thing array which would chop off the
8182         first character of the failure_dir string. Increased the size of
8183         the array to 7 to reflect the number of random mutation functions
8184         we have.
8185
8186 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8187
8188         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8189         unix_server->watch here, it is unreffed in disconnect.
8190         (_dbus_server_new_for_tcp_socket): convert NULL host to
8191         "localhost" here so we don't append NULL to address.
8192         
8193         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8194         various addresses, including tcp with no explicit host.
8195
8196 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8197
8198         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8199         fix incorrect setting of .name_offset in the HeaderField (it was
8200         off by two bytes, positioned right after the name and typecode)
8201
8202         * bus/bus.c (bus_context_new, bus_context_unref): test before
8203         calling dbus_server_free_data_slot and _dbus_user_database_unref
8204         in case of an error.
8205
8206         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8207         by libdbus-gtool.
8208
8209 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8210
8211         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8212         _dbus_poll() instead of select().
8213
8214 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8215
8216         * bus/main.c (signal_handler): Reload the configuration files
8217         on SIGHUP.
8218         (main): Set up our SIGHUP handler.
8219
8220         * bus/bus.c (struct BusContext): Store the config file, user and
8221         fork flag in the BusContext.
8222         (process_config_first_time_only): Added.  Contains the code
8223         (previously in bus_context_new) for setting up the BusContext from
8224         the BusConfigParser that should only be run the first time the
8225         config files are read.
8226         (process_config_every_time): Added.  Contains the code (previously
8227         in bus_context_new) for setting up the BusContext from the
8228         BusConfigParser that should be run every time the config files are
8229         read.
8230         (load_config): Added.  Builds a BusConfigParser from the config
8231         files and passes the resulting structure off to
8232         process_config_first_time_only (assuming this is the first time)
8233         and process_config_every_time.
8234         (bus_context_new): All of the config-related code has been moved
8235         to process_config_first_time_only and process_config_every_time.
8236         Now this function just does the non-config-related initializations
8237         and calls load_config.
8238         (bus_context_reload_config): Added.
8239
8240 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8241
8242         * bus/driver.c (bus_driver_handle_get_service_owner):
8243         implement a GetServiceOwner method.
8244         * doc/dbus-specification.xml: document it.
8245         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8246         
8247         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8248         implement, using the bus GetServiceOwner method.
8249
8250         * test/glib/test-dbus-glib.c:
8251         use dbus_gproxy_new_for_service_owner so that we can receive the
8252         signal. 
8253
8254 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8255
8256         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8257         dbus/dbus-message.c, dbus/dbus-protocol.h
8258         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8259
8260         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8261         dbus/dbus-message.c, dbus/dbus-protocol.h
8262         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8263
8264         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8265         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8266         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8267
8268         * doc/dbus-specification.xml (Header Fields Table):
8269         s/SERVICE/DESTINATION
8270         s/SENDER_SERVICE/SENDER
8271
8272
8273 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8274
8275         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8276         a few seconds.
8277
8278 2004-04-13  Michael Meeks  <michael@ximian.com>
8279
8280         * glib/dbus-gobject.c (handle_introspect): split out
8281         (introspect_properties): this.
8282         (handle_introspect): implement this.
8283
8284         * test/glib/Makefile.am: use the absolute path so the bus
8285         daemon's chdir ("/") doesn't kill us dead.
8286
8287         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8288
8289 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8290
8291         * bus/config-parser.c (struct BusConfigParser): Added
8292         included_files field.
8293         (seen_include): Added.  Checks whether or not a file has already
8294         been included by any parent BusConfigParser.
8295         (bus_config_parser_new): Copy the parent's included_files.
8296         (include_file): Track which files have been included, and fail on
8297         circular inclusions.
8298         (process_test_valid_subdir): Changed printf to report if we are
8299         testing valid or invalid conf files.
8300         (all_are_equiv): Changed printf to be a bit clearer about
8301         what we are actually doing.
8302         (bus_config_parser_test): Test invalid configuration files.
8303
8304 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8305
8306         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8307         argument.  If non-null, the newly-constructed BusConfigParser will
8308         be initialized with the parent's BusLimits instead of the default
8309         values.
8310         (include_file): When including a config file, pass in
8311         the current parser as the parent and then copy the BusLimits
8312         from the included BusConfigParser pack to the current parser.
8313         (process_test_valid_subdir): Renamed from process_test_subdir.
8314         (process_test_equiv_subdir): Added.  Walks through a directory,
8315         descending into each subdirectory and loading the config files
8316         it finds there.  If any subdirectory contains two config files
8317         that don't produce identical BusConfigParser structs, fail.
8318         For now, the BusConfigParser's BusPolicies are not compared.
8319         (bus_config_parser_test): Call both process_test_valid_subdir and
8320         process_test_equiv_subdir.
8321
8322         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8323         argument and pass it along to the call to bus_config_parser_new.
8324         Also made a few small changes to allow this code to compile.
8325
8326         * bus/config-loader-expat.c (bus_config_load): Take a parent
8327         argument and pass it along to the call to bus_config_parser_new.
8328
8329         * bus/bus.c (bus_context_new): Load the config file
8330         with a NULL parent argument.
8331
8332 2004-03-29  Michael Meeks  <michael@ximian.com>
8333
8334         * glib/dbus-gobject.c (introspect_properties): split
8335         out, fix mangled 'while' flow control.
8336         (introspect_signals): implement.
8337         (handle_introspect): update.
8338
8339 2004-03-29  Michael Meeks  <michael@ximian.com>
8340
8341         * glib/dbus-gobject.c (set_object_property): split out / 
8342         re-work, use the property type, and not the message type(!)
8343         (get_object_property): ditto.
8344
8345         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8346         (dbus_gvalue_marshal): make this code re-usable, needed
8347         for signals too, also on both proxy and server side.
8348         Re-write for more efficiency / readability.
8349
8350 2004-03-29  Michael Meeks  <michael@ximian.com>
8351
8352         * dbus/dbus-message.c
8353         (dbus_message_new_error_printf): impl.
8354
8355         * dbus/dbus-connection.c
8356         (dbus_connection_unregister_object_path): fix warning.
8357
8358         * configure.in: fix no-mono-installed situation.
8359
8360 2004-03-27  Havoc Pennington  <hp@redhat.com>
8361
8362         Patch from Timo Teräs:
8363         
8364         * tools/dbus-send.c (main): if --print-reply, assume type is
8365         method call; support boolean type args
8366         
8367         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8368         bunch of memleak and logic bugs
8369         
8370 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8371
8372         * mono/Arguments.cs:
8373         * mono/Introspector.cs:
8374         * mono/Handler.cs:
8375         * mono/InterfaceProxy.cs:
8376         * mono/Message.cs
8377         * mono/ProxyBuilder.cs:
8378         * mono/Service.cs:
8379         Added InterfaceProxy class to avoid building proxies for every
8380         object.
8381
8382         * dbus-message.h:
8383         * dbus-message.c (dbus_message_append_args_valist)
8384         (dbus_message_iter_get_object_path)
8385         (dbus_message_iter_get_object_path_array)
8386         (dbus_message_iter_append_object_path)
8387         (dbus_message_iter_append_object_path_array):
8388         Added object_path iter functions to handle OBJECT_PATH arguments
8389         
8390 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8391
8392         First checkin of mono bindings.
8393         * configure.in:
8394         * Makefile.am:
8395         Build stuff for the bindings
8396         * dbus-sharp.pc.in: Added for pkgconfig
8397         
8398 2004-03-21  Havoc Pennington  <hp@redhat.com>
8399
8400         * test/test-service.c (main): remove debug spew
8401
8402 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8403
8404         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8405         arrays
8406
8407         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8408         (dbus_message_iter_init_array_iterator)
8409         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8410         indicate whether the iterator is empty
8411
8412         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8413         warnings
8414
8415 2004-03-19  Havoc Pennington  <hp@redhat.com>
8416
8417         * NEWS: 0.21 updates
8418
8419         * configure.in: 0.21
8420
8421         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8422         
8423         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8424         you don't need pyrex to make dist
8425
8426         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8427         sources; run moc
8428         
8429 2004-03-18  Richard Hult  <richard@imendio.com>
8430
8431         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8432         (dbus_message_set_auto_activation): Add doxygen docs.
8433
8434 2004-03-16  Richard Hult  <richard@imendio.com>
8435
8436         * bus/activation.c: (bus_activation_service_created),
8437         (bus_activation_send_pending_auto_activation_messages),
8438         (bus_activation_activate_service):
8439         * bus/activation.h:
8440         * bus/dispatch.c: (bus_dispatch),
8441         (check_nonexistent_service_auto_activation),
8442         (check_service_auto_activated),
8443         (check_segfault_service_auto_activation),
8444         (check_existent_service_auto_activation), (bus_dispatch_test):
8445         * bus/driver.c: (bus_driver_handle_activate_service):
8446         * bus/services.c: (bus_registry_acquire_service):
8447         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8448         (dbus_message_get_auto_activation):
8449         * dbus/dbus-message.h:
8450         * dbus/dbus-protocol.h: Implement auto-activation.
8451         
8452         * doc/dbus-specification.xml: Add auto-activation to the spec.
8453
8454 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8455
8456         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8457         fix a bug with CUSTOM types.
8458
8459         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8460         a unit test for this bug (used to fail).
8461
8462 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8463
8464         * bus/activation.c:
8465         (babysitter_watch_callback): notify all pending activations waiting for
8466           the same exec that the activation failed.
8467         (bus_activation_activate_service): shortcut the activation if we 
8468           already waiting for the same executable to start up.
8469
8470 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8471
8472         * bus/activation.c: 
8473         - Added service file reloading. 
8474           Each service files directory is kept in an hash table in 
8475           BusActivation and each BusActivationEntry knows what .service-file it
8476           was read from. So when you try to activate a service the bus will 
8477           check if it's been updated, removed or if new .service-files has 
8478           been installed.
8479         - Test code at the bottom for the service file reloading.
8480         * bus/test-main.c: (main):
8481         * bus/test.h:
8482         - added service reloading test.
8483         * dbus/dbus-sysdeps.c: 
8484         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8485
8486 2004-03-08  Michael Meeks  <michael@ximian.com>
8487
8488         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8489         bail immediately if disconnected, to avoid busy loop.
8490
8491         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8492         cleanup cut/paste/inefficiency.
8493
8494 2004-03-01  David Zeuthen  <david@fubar.dk>
8495
8496         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8497         bug where args were used twice. This bug resulted in a segfault
8498         on a Debian/PPC system when starting the messagebus daemon. Include
8499         dbus-sysdeps.h for DBUS_VA_COPY
8500
8501         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8502
8503         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8504         appropriate va_copy implementation. From GLib
8505         
8506 2004-02-24  Joe Shaw  <joe@ximian.com>
8507
8508         * bus/services.c (bus_registry_acquire_service): We need to pass
8509         in the service name to dbus_set_error() to prevent a crash.
8510
8511 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8512
8513         * AUTHORS: Reveal my True identity.
8514
8515 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8516
8517         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8518         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8519
8520 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8521
8522         * doc/TODO: Added not about better error check of configuration files.
8523
8524 2003-12-02  Richard Hult  <richard@imendio.com>
8525
8526         * Update AFL version to 2.0 throughout the source files to reflect
8527         the update that was done a while ago.
8528
8529 2003-12-02  Richard Hult  <richard@imendio.com>
8530
8531         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8532         wrote_dict_key to FALSE on the iter that the dict is appended to,
8533         just like when appending other types. Fixes a bug where a dict
8534         couldn't be put inside a dict.
8535         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8536         (message_iter_test, _dbus_message_test): Add test case for dict
8537         inside dict.
8538
8539 2003-12-01  David Zeuthen  <david@fubar.dk>
8540
8541         * python/dbus.py: Add the actual message when calling the reciever
8542         of a signal such that parameters can be inspected. Add the method
8543         remove_signal_receiver
8544         
8545 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8546
8547         * bus/*.[ch]:
8548         * dbus/*.[ch]:
8549         * glib/*.[ch]: Made ref functions return the pointer
8550
8551 2003-11-25  Zack Rusin  <zack@kde.org>
8552
8553         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8554
8555         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8556         wrappers,
8557
8558         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8559         the Integrator and to better fit with the server,
8560
8561 2003-11-24  Zack Rusin  <zack@kde.org>
8562
8563         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8564         the integrator handles it now
8565
8566         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8567         since QTimer wasn't really meant to be used the way DBusTimeout is
8568
8569 2003-11-24  Zack Rusin  <zack@kde.org>
8570
8571         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8572         Integrator class which integrates D-BUS with the Qt event loop,
8573
8574         * qt/connection.h, qt/connection.cpp: Move all the code which
8575         was dealing with D-BUS integration to the Integrator class,
8576         and start using Integrator,
8577
8578 2003-11-23  Zack Rusin  <zack@kde.org>
8579
8580         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8581         wrapper
8582
8583         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8584         switching namespaces to DBusQt, reworking the class,
8585
8586         * Makefile.cvs: switching dependencies so that it matches KDE 
8587         schematics,
8588         
8589         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8590         the library
8591
8592 2003-11-19  Havoc Pennington  <hp@redhat.com>
8593
8594         * NEWS: update
8595
8596         * configure.in: bump version to 0.20
8597
8598         * configure.in (have_qt): add yet another place to look for qt
8599         (someone hand trolltech a .pc file...)
8600
8601 2003-11-01  Havoc Pennington  <hp@redhat.com>
8602
8603         * doc/dbus-specification.xml: add state machine docs on the auth
8604         protocol; just a first draft, I'm sure it's wrong.      
8605
8606 2003-10-28  David Zeuthen  <david@fubar.dk>
8607
8608         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8609         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8610         
8611 2003-10-28  Havoc Pennington  <hp@redhat.com>
8612
8613         * dbus/dbus-message.c (get_next_field): delete unused function
8614
8615 2003-10-28  Havoc Pennington  <hp@redhat.com>
8616
8617         * bus/expirelist.c (do_expiration_with_current_time): detect
8618         failure of the expire_func due to OOM
8619
8620         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8621
8622         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8623         NoReply error that's now created by the bus when the service exits
8624
8625 2003-10-28  Havoc Pennington  <hp@redhat.com>
8626
8627         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8628         tests for set_path, set_interface, set_member, etc.
8629
8630         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8631
8632         * dbus/dbus-message.c (set_string_field): always just delete and
8633         re-append the field; accept NULL for deletion
8634         (re_align_fields_recurse): reimplement
8635         
8636 2003-10-26  Havoc Pennington  <hp@redhat.com>
8637
8638         * dbus/dbus-connection.c: fix docs to properly describe the
8639         disconnected message
8640         (_dbus_connection_notify_disconnected): remove this function; 
8641         we can't synchronously add the disconnected message, we have to 
8642         do it after we've queued any remaining real messages
8643         (_dbus_connection_get_dispatch_status_unlocked): queue the
8644         disconnect message only if the transport has finished queueing all
8645         its real messages and is disconnected.
8646         (dbus_connection_disconnect): update the dispatch status here
8647
8648 2003-10-22  Havoc Pennington  <hp@redhat.com>
8649
8650         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8651
8652         * bus/connection.c (bus_transaction_send_from_driver): set the
8653         destination to the connection's base service
8654
8655 2003-10-20  Havoc Pennington  <hp@redhat.com>
8656
8657         hmm, make check is currently not passing.
8658         
8659         * doc/dbus-specification.xml: add requirement that custom type
8660         names follow the same rules as interface names.
8661
8662         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8663         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8664         'map'
8665
8666         * doc/dbus-specification.xml: update type codes to match
8667         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8668         CUSTOM. Add type OBJECT_PATH to the spec.
8669
8670 2003-10-17  Havoc Pennington  <hp@redhat.com>
8671
8672         * bus/driver.c (create_unique_client_name): use "." as separator
8673         in base service names instead of '-'
8674
8675         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8676         byte at the end of the string
8677
8678         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8679         optimization macros since string validation seems to be a slow
8680         point.
8681         
8682         * doc/dbus-specification.xml: restrict valid
8683         service/interface/member/error names. Add test suite code for the
8684         name validation.
8685
8686         * dbus/dbus-string.c: limit service/interface/member/error names 
8687         to [0-9][A-Z][a-z]_
8688
8689         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8690         format arg to verbose spew
8691
8692         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8693         memory, return instead of g_error
8694
8695         * test/test-service.c (path_message_func): support emitting a
8696         signal on request
8697
8698         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8699         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8700         assuming the activation bus was the session bus so that services
8701         started manually will still register.
8702         (init_connections_unlocked): fix so that in OOM situation we get
8703         the same semantics when retrying the function
8704         
8705         * test/test-service.c (main): change to use path registration, to
8706         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8707         than DBUS_BUS_SESSION
8708
8709 2003-10-16  Havoc Pennington  <hp@redhat.com>
8710
8711         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8712
8713         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8714         coverage of the tests
8715         (coverage-report.txt): don't move the .da and .bbg files around
8716
8717 2003-10-16  Havoc Pennington  <hp@redhat.com>
8718
8719         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8720         to put there
8721
8722 2003-10-16  Havoc Pennington  <hp@redhat.com>
8723
8724         * bus/connection.c (bus_pending_reply_expired): either cancel or
8725         execute, not both
8726         (bus_connections_check_reply): use unlink, not remove_link, as we
8727         don't want to free the link; fixes double free mess
8728
8729         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8730         where no reply was received
8731
8732         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8733         fix a refcount leak
8734
8735         * bus/signals.c (match_rule_matches): add special cases for the
8736         bus driver, so you can match on sender/destination for it.
8737
8738         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8739         DBUS_PRINT_BACKTRACE is set
8740
8741         * dbus/dbus-internals.c: add pid to assertion failure messages
8742
8743         * dbus/dbus-connection.c: add message type code to the debug spew
8744
8745         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8746         sender=foo not service=foo
8747
8748         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8749         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8750         DBUS_ACTIVATION_ADDRESS instead
8751
8752         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8753         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8754
8755         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8756         context struct
8757
8758         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8759         (dbus_message_iter_get_object_path_array): new function (half
8760         finished, disabled for the moment)
8761         
8762         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8763         DBUS_MESSAGE_TYPE_ERROR
8764
8765         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8766         avoid redirecting stderr to /dev/null
8767         (babysit): close stdin if not doing the "exit_with_session" thing
8768
8769         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8770         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8771         stdout/stdin, so things don't get confused
8772         
8773         * bus/system.conf.in: fix to allow replies, I modified .conf
8774         instead of .conf.in again.
8775
8776 2003-10-14  David Zeuthen  <david@fubar.dk>
8777
8778         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8779         argtype to arg_type when raising unknown arg type exception.
8780         Changed type list to reflect the changes in dbus-protocol.h so 
8781         the bindings actually work.
8782
8783 2003-10-14  Havoc Pennington  <hp@redhat.com>
8784
8785         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8786         to have a bug keeping it from outputting the .da files sometimes
8787         (string_get_string): don't append garbage nul bytes to the string.
8788
8789 2003-10-15  Seth Nickell  <seth@gnome.org>
8790
8791         * python/Makefile.am:
8792
8793         Include dbus_h_wrapper.h in the dist tarball.
8794
8795 2003-10-14  Havoc Pennington  <hp@redhat.com>
8796
8797         * bus/bus.c (bus_context_check_security_policy): revamp this to
8798         work more sanely with new policy-based requested reply setup
8799
8800         * bus/connection.c (bus_transaction_send_from_driver): set bus
8801         driver messages as no reply
8802
8803         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8804         requested_reply attribute on allow/deny rules
8805
8806         * bus/system.conf: add <allow requested_reply="true"/>
8807
8808         * bus/driver.c (bus_driver_handle_message): fix check for replies
8809         sent to the bus driver, which was backward. How did this ever work
8810         at all though? I think I'm missing something.
8811
8812         * dbus/dbus-message.c (decode_header_data): require error and
8813         method return messages to have a reply serial field to be valid
8814         (_dbus_message_loader_queue_messages): break up this function;
8815         validate that reply serial and plain serial are nonzero; 
8816         clean up the OOM/error handling.
8817         (get_uint_field): don't return -1 from this
8818         (dbus_message_create_header): fix signed/unsigned bug
8819
8820         * bus/connection.c (bus_connections_expect_reply): save serial of
8821         the incoming message, not reply serial
8822
8823 2003-10-14  Havoc Pennington  <hp@redhat.com>
8824
8825         * bus/connection.c: implement pending reply tracking using
8826         BusExpireList
8827
8828         * bus/bus.c (bus_context_check_security_policy): verify that a
8829         reply is pending in order to allow a reply to be sent. Deny 
8830         messages of unknown type.
8831
8832         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8833
8834         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8835         (bus_context_get_reply_timeout): new
8836
8837 2003-10-13  Seth Nickell  <seth@gnome.org>
8838
8839         * python/Makefile.am:
8840
8841         Pass "make distcheck": remove a couple files from DIST_FILES
8842         that weren't included in the final version.
8843
8844 2003-10-12  Havoc Pennington  <hp@pobox.com>
8845
8846         Added test code that 1) starts an actual bus daemon and 2) uses
8847         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8848         more testing possible, but this is the basic framework.
8849         
8850         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8851         empty proxy lists from the proxy list hash
8852
8853         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8854         couple of return_if_fail checks
8855
8856         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8857         to allocate, so everything is cleared to NULL as it should be.
8858
8859         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8860         source as data to dbus_connection_set_timeout_functions() as the 
8861         timeout functions expected
8862
8863         * test/glib/run-test.sh: add a little script to start up a message
8864         bus and run tests using it
8865
8866         * tools/dbus-launch.1: updates
8867
8868         * tools/dbus-launch.c (main): add --config-file option
8869
8870         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8871         that could never be reached.
8872
8873         * dbus/dbus-message.c (dbus_message_new_method_return) 
8874         (dbus_message_new_error, dbus_message_new_signal): set the
8875         no-reply-expected flag on all these. Redundant, but may
8876         as well be consistent.
8877
8878 2003-10-11  Havoc Pennington  <hp@pobox.com>
8879
8880         * test/decode-gcov.c (function_solve_graph): make broken block
8881         graph a nonfatal error since it seems to be broken. Need to debug
8882         this.
8883
8884         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8885         can't just check type > INVALID < LAST anymore
8886
8887         * dbus/dbus-message.c (dbus_message_get_signature): new function
8888         (dbus_message_has_signature): new function
8889         (struct DBusMessage): add signature field (right now it isn't sent
8890         over the wire, just generated on the fly)
8891         (dbus_message_copy): copy the signature, and init strings to
8892         proper length to avoid some reallocs
8893         (dbus_message_iter_init_array_iterator): return void, since it
8894         can't fail
8895         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8896         (_dbus_message_loader_queue_messages): add silly temporary hack to
8897         fill in message->signature on load
8898
8899         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8900         characters, so they are relatively human-readable.
8901
8902 2003-10-11  Havoc Pennington  <hp@pobox.com>
8903
8904         * dbus/dbus-message.c (_dbus_message_test): add more test
8905         coverage, but #if 0 for now since they uncover a bug 
8906         not fixed yet; I think in re_align_field_recurse()
8907         (re_align_field_recurse): add FIXME about broken assertion
8908
8909         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8910
8911         * bus/connection.c: share a couple code bits with expirelist.c
8912
8913         * bus/expirelist.h, bus/expirelist.c: implement a generic
8914         expire-items-after-N-seconds facility, was going to share between
8915         expiring connections and replies, decided not to use for expiring
8916         connections for now.
8917
8918         * COPYING: include AFL 2.0 (still need to change all the file headers)
8919
8920 2003-10-09  Havoc Pennington  <hp@redhat.com>
8921
8922         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8923         gcc 3.3. Not that we do anything about it yet.
8924
8925         * bus/signals.c (bus_match_rule_parse): impose max length on the
8926         match rule text
8927
8928         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8929
8930 2003-10-09  Havoc Pennington  <hp@redhat.com>
8931
8932         Make matching rules theoretically work (add parser).
8933         
8934         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8935         the case where destination is explicitly specified as bus driver
8936         and someone else is eavesdropping.
8937         
8938         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8939         definition of eavesdropping and assertion
8940
8941         * tools/dbus-send.c (main): use dbus_message_type_from_string
8942
8943         * bus/signals.c (bus_match_rule_parse): implement
8944
8945         * dbus/dbus-message.c (dbus_message_type_from_string): new
8946
8947         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8948
8949 2003-10-02  Havoc Pennington  <hp@pobox.com>
8950
8951         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8952         dbus_gproxy_oneway_call
8953
8954         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8955         (dbus_server_setup_with_g_main): fix to allow calling them more
8956         than once on the same args
8957         (dbus_bus_get_with_g_main): new function
8958
8959 2003-10-02  Havoc Pennington  <hp@redhat.com>
8960
8961         * doc/dbus-tutorial.xml: write some stuff
8962
8963 2003-09-29  Havoc Pennington  <hp@pobox.com>
8964
8965         * configure.in: split checks for Doxygen from XML docs, check for
8966         xmlto
8967
8968         * doc/Makefile.am: XML-ify all the docs, and add a blank
8969         dbus-tutorial.xml
8970
8971 2003-09-29  Havoc Pennington  <hp@pobox.com>
8972
8973         * Merge dbus-object-names branch. To see the entire patch 
8974         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8975         it's huuuuge though.
8976         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8977         
8978 2003-09-28  Havoc Pennington  <hp@pobox.com>
8979
8980         * HACKING: update to reflect new server
8981
8982 2003-09-26  Seth Nickell  <seth@gnome.org>
8983
8984         * python/dbus.py:
8985         * python/examples/example-signals.py:
8986
8987         Start implementing some notions of signals. The API
8988         is really terrible, but they sort of work (with the
8989         exception of being able to filter by service, and to
8990         transmit signals *as* a particular service). Need to
8991         figure out how to make messages come from the service
8992         we registered :-(
8993         
8994         * python/dbus_bindings.pyx.in:
8995
8996         Removed duplicate message_handler callbacks.
8997         
8998 2003-09-25  Havoc Pennington  <hp@redhat.com>
8999
9000         * bus/session.conf.in: fix my mess
9001
9002 2003-09-25  Havoc Pennington  <hp@pobox.com>
9003
9004         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9005
9006 2003-09-25  Seth Nickell  <seth@gnome.org>
9007
9008         * python/examples/example-service.py:
9009
9010         Johan notices complete wrong code in example-service, but
9011         completely wrong in a way that works exactly the same (!).
9012         Johan is confused, how could this possibly work? Example
9013         code fails to serve purpose of making things clear.
9014         Seth fixes.
9015
9016 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9017
9018         * doc/dbus-specification.sgml: don't require header fields
9019         to be 4-byte aligned and specify that fields should be
9020         distinguished from padding by the fact that zero is not
9021         a valid field name.
9022         
9023         * doc/TODO: remove re-alignment item and add item to doc
9024         the OBJECT_PATH type.
9025         
9026         * dbus/dbus-message.c:
9027         (HeaderField): rename the original member to value_offset
9028         and introduce a name_offset member to keep track of where
9029         the field actually begins.
9030         (adjust_field_offsets): remove.
9031         (append_int_field), (append_uint_field),
9032         (append_string_field): don't align the start of the header
9033         field to a 4-byte boundary.
9034         (get_next_field): impl finding the next marhsalled field
9035         after a given field.
9036         (re_align_field_recurse): impl re-aligning a number of
9037         already marshalled fields.
9038         (delete_field): impl deleting a field of any type and
9039         re-aligning any following fields.
9040         (delete_int_or_uint_field), (delete_string_field): remove.
9041         (set_int_field), (set_uint_field): no need to re-check
9042         that we have the correct type for the field.
9043         (set_string_field): ditto and impl re-aligning any
9044         following fields.
9045         (decode_header_data): update to take into account that
9046         the fields aren't 4-byte aligned any more and the new
9047         way to distinguish padding from header fields. Also,
9048         don't exit when there is too much header padding.
9049         (process_test_subdir): print the directory.
9050         (_dbus_message_test): add test to make sure a following
9051         field is re-aligned correctly after field deletion.
9052         
9053         * dbus/dbus-string.[ch]:
9054         (_dbus_string_insert_bytes): rename from insert_byte and
9055         allow the insert of multiple bytes.
9056         (_dbus_string_test): test inserting multiple bytes.
9057
9058         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9059         warning note to docs about having to re-align any
9060         marshalled values following the string.
9061         
9062         * dbus/dbus-message-builder.c:
9063         (append_string_field), (_dbus_message_data_load):
9064         don't align the header field.
9065         
9066         * dbus/dbus-auth.c: (process_test_subdir): print the
9067         directory.
9068         
9069         * test/break-loader.c: (randomly_add_one_byte): upd. for
9070         insert_byte change.
9071         
9072         * test/data/invalid-messages/bad-header-field-alignment.message:
9073         new test case.
9074         
9075         * test/data/valid-messages/unknown-header-field.message: shove
9076         a dict in the unknown field.
9077
9078 2003-09-25  Seth Nickell  <seth@gnome.org>
9079
9080         * python/dbus.py:
9081         * python/dbus_bindings.pyx.in:
9082
9083         Handle return values.
9084         
9085         * python/examples/example-client.py:
9086         * python/examples/example-service.py:
9087
9088         Pass back return values from the service to the client.
9089         
9090 2003-09-24  Seth Nickell  <seth@gnome.org>
9091
9092         * python/dbus.py:
9093
9094         Connect Object methods (when you are sharing an object) up... pass
9095         in a list of methods to be shared. Sharing all the methods just
9096         worked out too weird. You can now create nice Services over the
9097         DBus in Python. :-)
9098         
9099         * python/dbus_bindings.pyx.in:
9100
9101         Keep references to user_data tuples passed into C functions so 
9102         Python doesn't garbage collect on us.
9103
9104         Implement MethodReturn and Error subclasses of Message for creating
9105         DBusMessage's of those types.
9106         
9107         * python/examples/example-client.py:
9108         * python/examples/example-service.py:
9109
9110         Simple example code showing both how create DBus services and objects,
9111         and how to use them.
9112
9113 2003-09-23  Havoc Pennington  <hp@pobox.com>
9114
9115         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9116
9117 2003-09-23  Havoc Pennington  <hp@redhat.com>
9118
9119         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9120         (dbus_gproxy_disconnect_signal): implement
9121         (dbus_gproxy_manager_remove_signal_match): implement
9122         (dbus_gproxy_manager_add_signal_match): implement
9123         (dbus_gproxy_oneway_call): implement
9124
9125 2003-09-23  Havoc Pennington  <hp@pobox.com>
9126
9127         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9128         subclass. This means dropping the transparent thread safety of the
9129         proxy; you now need a separate proxy per-thread, or your own
9130         locking on the proxy. Probably right anyway.
9131         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9132
9133 2003-09-22  Havoc Pennington  <hp@redhat.com>
9134
9135         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9136
9137 2003-09-21  Seth Nickell  <seth@gnome.org>
9138
9139         First checkin of the Python bindings.
9140         
9141         * python/.cvsignore:
9142         * python/Makefile.am:
9143         * python/dbus_bindings.pyx.in:
9144         * python/dbus_h_wrapper.h:
9145
9146         Pieces for Pyrex to operate on, building a dbus_bindings.so
9147         python module for low-level access to the DBus APIs.
9148         
9149         * python/dbus.py:
9150
9151         High-level Python module for accessing DBus objects.
9152
9153         * configure.in:
9154         * Makefile.am:
9155
9156         Build stuff for the python bindings.
9157
9158         * acinclude.m4:
9159
9160         Extra macro needed for finding the Python C header files.
9161
9162 2003-09-21  Havoc Pennington  <hp@pobox.com>
9163
9164         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9165         implementing the proxy manager, didn't get very far.
9166
9167         * dbus/dbus-bus.c (dbus_bus_add_match): new
9168         (dbus_bus_remove_match): new
9169
9170         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9171         path_name argument; adjust the other not-yet-implemented 
9172         gproxy constructors to be what I think they should be.
9173
9174 2003-09-21  Havoc Pennington  <hp@pobox.com>
9175
9176         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9177         by default for message bus connections.
9178
9179         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9180         exit_on_disconnect flag is set and we process the disconnected
9181         signal.
9182         (dbus_connection_set_exit_on_disconnect): new function
9183
9184 2003-09-21  Havoc Pennington  <hp@pobox.com>
9185
9186         Get matching rules mostly working in the bus; only actually
9187         parsing the rule text remains. However, the client side of
9188         "signal connections" hasn't been started, this patch is only the
9189         bus side.
9190         
9191         * dbus/dispatch.c: fix for the matching rules changes
9192         
9193         * bus/driver.c (bus_driver_handle_remove_match)
9194         (bus_driver_handle_add_match): send an ack reply from these
9195         method calls
9196
9197         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9198         arguments, reported by Seth Nickell
9199
9200         * bus/config-parser.c (append_rule_from_element): support
9201         eavesdrop=true|false attribute on policies so match rules 
9202         can be prevented from snooping on the system bus.
9203
9204         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9205         and "destination" in attribute names; fix some docs bugs; 
9206         add eavesdrop=true|false attribute
9207
9208         * bus/driver.c (bus_driver_handle_add_match)
9209         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9210         messages
9211
9212         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9213         rid of broadcast service concept, signals are just always broadcast
9214
9215         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9216         mostly implement matching rules stuff (currently only exposed as signal
9217         connections)
9218
9219 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9220
9221         * doc/dbus-specification.sgml: Change the header field name
9222         to be an enum and update the rest of the spec to reference
9223         the fields using the conventinal name.
9224
9225         * dbus/dbus-protocol.h: update to reflect the spec.
9226
9227         * doc/TODO: add item to remove the 4 byte alignment requirement.
9228         
9229         * dbus/dbus-message.c: Remove the code to generalise the
9230         header/body length and serial number header fields as named
9231         header fields so we can reference field names using the 
9232         protocol values.
9233         (append_int_field), (append_uint_field), (append_string_field):
9234         Append the field name as a byte rather than four chars.
9235         (delete_int_or_uint_field), (delete_string_field): reflect the
9236         fact that the field name and typecode now occupy 4 bytes instead
9237         of 8.
9238         (decode_string_field), (decode_header_data): update to reflect
9239         protocol changes and move the field specific encoding from
9240         decode_string_field() back into decode_header_data().
9241         
9242         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9243         Add utility to aid debugging.
9244         
9245         * dbus/dbus-message-builder.c:
9246         (append_string_field), (_dbus_message_data_load): Update to
9247         reflect protocol changes; Change the FIELD_NAME directive
9248         to HEADER_FIELD and allow it to take the field's conventional
9249         name rather than the actual value.
9250         
9251         * test/data/*/*.message: Update to use HEADER_FIELD instead
9252         of FIELD_NAME; Always align the header on an 8 byte boundary
9253         *before* updating the header length.
9254
9255 2003-09-15  Havoc Pennington  <hp@pobox.com>
9256
9257         * dbus/dbus-pending-call.c: add the get/set object data
9258         boilerplate as for DBusConnection, etc. Use generic object data
9259         for the notify callback.
9260
9261         * glib/dbus-gparser.c (parse_node): parse child nodes
9262
9263         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9264         
9265         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9266         contain functions shared between the convenience lib and the
9267         installed lib
9268
9269         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9270         -export-symbols-regex to the GLib library
9271
9272         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9273         fix the locking in here, and add a default handler for
9274         Introspect() that just returns sub-nodes.
9275
9276 2003-09-14  Havoc Pennington  <hp@pobox.com>
9277
9278         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9279         rather than gfoo consistent
9280
9281         * glib/dbus-gproxy.h: delete for now, move contents to
9282         dbus-glib.h, because the include files don't work right since we
9283         aren't in the dbus/ subdir.
9284         
9285         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9286         (dbus_gproxy_end_call): finish
9287         (dbus_gproxy_begin_call): finish
9288
9289         * glib/dbus-gmain.c (dbus_set_g_error): new
9290
9291         * glib/dbus-gobject.c (handle_introspect): include information
9292         about child nodes in the introspection
9293
9294         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9295         function to help in implementation of introspection
9296
9297         * dbus/dbus-object-tree.c
9298         (_dbus_object_tree_list_registered_and_unlock): new function
9299
9300 2003-09-12  Havoc Pennington  <hp@pobox.com>
9301
9302         * glib/dbus-gidl.h: add common base class for all the foo_info
9303         types
9304
9305         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9306         similar to kdcop
9307
9308         * test/Makefile.am: try test srcdir -ef . in addition to test
9309         srcdir = ., one of them should work (yeah lame)
9310         
9311         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9312         library
9313         
9314         * glib/dbus-gparser.h: make description_load routines return
9315         NodeInfo* not Parser*
9316
9317         * Makefile.am (SUBDIRS): build test dir after all library dirs
9318
9319         * configure.in: add GTK+ detection
9320
9321 2003-09-07  Havoc Pennington  <hp@pobox.com>
9322
9323         * Make Doxygen contented.
9324
9325 2003-09-07  Havoc Pennington  <hp@pobox.com>
9326
9327         * doc/dbus-specification.sgml: more updates
9328
9329 2003-09-06  Havoc Pennington  <hp@pobox.com>
9330
9331         * doc/dbus-specification.sgml: partial updates
9332
9333         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9334         zillionth time; hopefully I edited the right file this time.
9335
9336         * bus/config-parser.c (append_rule_from_element): support
9337         send_type, send_path, receive_type, receive_path
9338
9339         * bus/policy.c: add message type and path to the list of things
9340         that can be "firewalled"
9341
9342 2003-09-06  Havoc Pennington  <hp@pobox.com>
9343
9344         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9345         (dbus_connection_register_object_path): make this not handle
9346         messages to paths below the given path
9347
9348 2003-09-03  Havoc Pennington  <hp@pobox.com>
9349
9350         * test/glib/Makefile.am: add this with random glib-linked test
9351         programs
9352
9353         * glib/Makefile.am: remove the random test programs from here,
9354         leave only the unit tests
9355
9356         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9357         uscore/javacaps conversion, and fix     
9358         (get_object_property, set_object_property): change to .NET
9359         convention for mapping props to methods, set_FooBar/get_FooBar, 
9360         since one language has such a convention we may as well copy it. 
9361         Plus real methods in either getFooBar or get_foo_bar style won't 
9362         collide with this convention.
9363
9364 2003-09-01  Havoc Pennington  <hp@pobox.com>
9365
9366         * glib/dbus-gparser.c: implement
9367
9368         * glib/dbus-gobject.c: start implementing skeletons support
9369
9370         * configure.in: when disabling checks/assert, also define
9371         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9372
9373 2003-09-01  Havoc Pennington  <hp@pobox.com>
9374
9375         * glib/Makefile.am: rearrange a bunch of files and get "make
9376         check" framework set up
9377
9378 2003-08-31  Havoc Pennington  <hp@pobox.com>
9379
9380         * fix build with --disable-tests
9381
9382 2003-08-30  Havoc Pennington  <hp@pobox.com>
9383
9384         * dbus/dbus-connection.c: purge DBusMessageHandler
9385
9386         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9387         use callbacks everywhere
9388
9389 2003-08-30  Havoc Pennington  <hp@pobox.com>
9390
9391         * test/data/valid-config-files/system.d/test.conf: change to 
9392         root for the user so warnings don't get printed
9393
9394         * dbus/dbus-message.c: add dbus_message_get_path,
9395         dbus_message_set_path
9396         
9397         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9398         dispatching to a path
9399
9400         * dbus/dbus-string.c (_dbus_string_validate_path): add
9401
9402         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9403         (_dbus_marshal_object_path): implement
9404
9405         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9406         to contain the path to the target object
9407         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9408         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9409
9410 2003-08-30  Havoc Pennington  <hp@pobox.com>
9411
9412         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9413
9414 2003-08-29  Havoc Pennington  <hp@pobox.com>
9415
9416         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9417         registered
9418         (struct DBusObjectSubtree): shrink this
9419         a lot, since we may have a lot of them
9420         (_dbus_object_tree_free_all_unlocked): implement
9421         (_dbus_object_tree_dispatch_and_unlock): implement
9422
9423 2003-08-29  Havoc Pennington  <hp@pobox.com>
9424
9425         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9426
9427 2003-08-28  Havoc Pennington  <hp@pobox.com>
9428
9429         purge DBusObjectID
9430         
9431         * dbus/dbus-connection.c: port to no ObjectID, create a
9432         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9433
9434         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9435         everything except UnregisterFunction and MessageFunction
9436         
9437         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9438         add DBUS_TYPE_OBJECT_PATH
9439         
9440         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9441         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9442         path-based object IDs
9443
9444 2003-08-25  Havoc Pennington  <hp@pobox.com>
9445
9446         Just noticed that dbus_message_test is hosed, I wonder when I
9447         broke that. I thought make check was passing earlier...
9448         
9449         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9450         container tree, will replace most of dbus-object-registry
9451
9452         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9453         screwup
9454
9455 2003-08-19  Havoc Pennington  <hp@pobox.com>
9456
9457         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9458         (dbus_message_is_error): fix this function
9459
9460         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9461         match
9462
9463         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9464         reflect clarified man page
9465         (bus_client_policy_check_can_send): ditto
9466         
9467         * bus/session.conf.in: fixup
9468
9469         * bus/system.conf.in: fixup
9470
9471 2003-08-18  Havoc Pennington  <hp@redhat.com>
9472
9473         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9474
9475         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9476         dumb bug created earlier (wrong order of args to
9477         decode_header_data())
9478         
9479         * tools/dbus-send.c: port
9480
9481         * tools/dbus-print-message.c (print_message): port
9482
9483         * test/data/*messages: port all messages over
9484         
9485         * dbus/dbus-message-builder.c: support including 
9486         message type
9487         
9488         * bus/driver.c: port over
9489         
9490         * bus/dispatch.c: port over to new stuff
9491
9492         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9493         rename disconnect signal to "Disconnected"
9494
9495 2003-08-17  Havoc Pennington  <hp@pobox.com>
9496
9497         This doesn't compile yet, but syncing up so I can hack on it from
9498         work. What are branches for if not broken code? ;-)
9499         
9500         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9501         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9502         DBUS_HEADER_FIELD_ERROR_NAME
9503         
9504         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9505         for the interface+member pairs
9506         (string_hash): change to use g_str_hash algorithm
9507         (find_direct_function, find_string_function): refactor these to
9508         share most code.
9509         
9510         * dbus/dbus-message.c: port all of this over to support 
9511         interface/member fields instead of name field
9512
9513         * dbus/dbus-object-registry.c: port over
9514         
9515         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9516         from _dbus_string_validate_name
9517
9518         * bus/dbus-daemon-1.1: change file format for the 
9519         <deny>/<allow> stuff to match new message naming scheme
9520
9521         * bus/policy.c: port over
9522
9523         * bus/config-parser.c: parse new format
9524         
9525 2003-08-16  Havoc Pennington  <hp@pobox.com>
9526
9527         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9528         broken assertion
9529
9530         * glib/dbus-gproxy.c: some hacking
9531
9532 2003-08-15  Havoc Pennington  <hp@redhat.com>
9533
9534         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9535
9536         * dbus/dbus-connection.c
9537         (dbus_connection_send_with_reply_and_block): factor out internals;
9538         change to convert any error replies to DBusError instead of 
9539         returning them as a message
9540
9541 2003-08-15  Havoc Pennington  <hp@pobox.com>
9542
9543         * dbus/dbus-connection.c, 
9544         dbus/dbus-pending-call.c: Finish the pending call stuff
9545
9546 2003-08-14  Havoc Pennington  <hp@redhat.com>
9547
9548         * dbus/dbus-pending-call.c: start on new object that will replace
9549         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9550         replies
9551
9552         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9553         with remote interfaces
9554
9555         * dbus/dbus-gidl.c: do the boring boilerplate in here
9556         
9557 2003-08-12  Havoc Pennington  <hp@pobox.com>
9558
9559         * bus/dispatch.c (bus_dispatch): make this return proper 
9560         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9561
9562         * dbus/dbus-errors.c (dbus_set_error): use
9563         _dbus_string_append_printf_valist
9564
9565         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9566         (_dbus_string_append_printf): new
9567
9568         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9569         UNKNOWN_METHOD
9570
9571         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9572         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9573         message is unhandled.
9574
9575 2003-08-11  Havoc Pennington  <hp@pobox.com>
9576
9577         * bus/test.c (client_disconnect_handler): change to return
9578         HANDLED (would have been REMOVE_MESSAGE)
9579
9580         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9581         HANDLED/NOT_YET_HANDLED instead of
9582         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9583         should be used.
9584
9585 2003-08-10  Havoc Pennington  <hp@pobox.com>
9586
9587         * tools/dbus-send.c (main): add --type argument, for now
9588         supporting only method_call and signal types.
9589
9590         * tools/dbus-print-message.c: print message type
9591
9592         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9593         init connection->objects
9594
9595         * doc/dbus-specification.sgml: fix sgml
9596
9597         * bus/*.c: port over to object-instance API changes
9598
9599         * test/test-service.c: ditto
9600         
9601         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9602         name, we will have to fix up the rest of the code to also handle
9603         this
9604         (dbus_message_new): generic message-creation call
9605         (set_string_field): allow appending name field
9606
9607 2003-08-06  Havoc Pennington  <hp@pobox.com>
9608
9609         * dbus/dbus-object-registry.c: implement signal connection 
9610         and dispatch
9611
9612         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9613
9614         * dbus/dbus-internals.c (_dbus_memdup): new function
9615
9616 2003-08-02  Havoc Pennington  <hp@pobox.com>
9617
9618         * dbus/dbus-message.c (dbus_message_get_no_reply)
9619         (dbus_message_set_no_reply): add these and remove
9620         set_is_error/get_is_error
9621
9622         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9623         remove the ERROR flag, since there's now an ERROR type
9624
9625 2003-08-01  Havoc Pennington  <hp@pobox.com>
9626
9627         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9628         implement
9629
9630         * dbus/dbus-message.c (dbus_message_get_type): new function
9631
9632         * doc/dbus-specification.sgml: add "type" byte to messages
9633
9634 2003-08-01  Havoc Pennington  <hp@pobox.com>
9635
9636         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9637         a message type enum to distinguish kinds of message
9638         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9639         that need not be replied to
9640
9641 2003-08-01  Havoc Pennington  <hp@pobox.com>
9642
9643         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9644         (unpack_8_octets): fix no-64-bit-int bug
9645
9646         * dbus/dbus-object-registry.c (validate_id): validate the 
9647         connection ID bits, not just the instance ID.
9648
9649         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9650         the connection-global 33 bits of the object ID
9651
9652         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9653         object ID in the new way
9654
9655         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9656         define server/client/instance bits.
9657
9658 2003-07-30  Havoc Pennington  <hp@pobox.com>
9659
9660         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9661         build
9662
9663 2003-07-13  Havoc Pennington  <hp@pobox.com>
9664
9665         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9666         fields to DBusObjectVTable and DBusObjectInfo
9667
9668 2003-07-12  Havoc Pennington  <hp@pobox.com>
9669
9670         * dbus/dbus-object-registry.c: implement unit test,
9671         fix bugs discovered in process
9672
9673         * dbus/dbus-connection.c: remove handler_table and
9674         register_handler(), add DBusObjectRegistry usage
9675
9676         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9677         (dbus_object_id_set_null): new functions
9678
9679 2003-07-08  Havoc Pennington  <hp@pobox.com>
9680
9681         * dbus/dbus-object.c: implement some of this
9682
9683         * dbus/dbus-object-registry.c
9684         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9685         param
9686         (_dbus_object_registry_new): handle OOM
9687
9688 2003-07-08  Havoc Pennington  <hp@pobox.com>
9689
9690         * dbus/dbus-object.h: sketch out an API for registering objects
9691         with a connection, that allows us to use as little as 24 bytes
9692         per object and lets application code represent an object in 
9693         any conceivable way.
9694
9695         * dbus/dbus-object-registry.c: implement the hard bits of the
9696         DBusConnection aspect of object API. Not yet wired up.
9697         
9698 2003-07-06  Havoc Pennington  <hp@pobox.com>
9699
9700         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9701         (_dbus_marshal_object_id): new
9702         (_dbus_demarshal_object_id): new
9703         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9704         consolidate identical switch cases. Don't conditionalize handling
9705         of DBUS_TYPE_UINT64, need to handle the type always.
9706         (_dbus_marshal_validate_arg): consolidate identical cases, and
9707         handle DBUS_TYPE_OBJECT_ID
9708
9709         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9710
9711         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9712
9713 2003-09-28  Havoc Pennington  <hp@pobox.com>
9714
9715         * real 0.13 release
9716
9717 2003-09-28  Havoc Pennington  <hp@pobox.com>
9718
9719         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9720         to work with Debian db2html
9721
9722 2003-09-28  Havoc Pennington  <hp@pobox.com>
9723
9724         * configure.in: 0.13
9725
9726         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9727         stylesheet-images for benefit of Debian
9728         
9729         Change back to using filesystem-linked sockets for the system
9730         bus, so only root can create the default system bus address.
9731         
9732         * bus/system.conf.in: change to use
9733         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9734
9735         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9736         from here.
9737
9738         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9739         here, and AC_DEFINE DBUS_SYSTEM_PATH
9740
9741 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9742
9743         * doc/TODO:
9744         * doc/busconfig.dtd:
9745         Add busconfig DTD.
9746         
9747 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9748
9749         * doc/dbus-specification.sgml:
9750         Add activation reply values.
9751         
9752 2003-08-05  Havoc Pennington  <hp@redhat.com>
9753
9754         * configure.in: 0.12
9755
9756 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9757
9758         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9759         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9760         (add_watch), (remove_watch), (create_source):
9761         Refcount fds, fixes some reentrancy issues.
9762         
9763 2003-07-30  Havoc Pennington  <hp@redhat.com>
9764
9765         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9766         bus address to be abstract if we have abstract sockets
9767
9768         * NEWS: update
9769
9770 2003-07-28  Havoc Pennington  <hp@redhat.com>
9771
9772         * bus/messagebus.in: fix to avoid processname/servicename 
9773         confusion, from Michael Kearey
9774         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9775         
9776 2003-07-23  Havoc Pennington  <hp@pobox.com>
9777
9778         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9779         fix from Andy Hanton to remove broken "+1"
9780
9781 2003-07-16  Havoc Pennington  <hp@pobox.com>
9782
9783         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9784         babysitter process, as suggested by Thomas Leonard, so 
9785         an "eval `dbus-launch --exit-with-session`" will actually 
9786         return
9787
9788 2003-07-16  Havoc Pennington  <hp@pobox.com>
9789
9790         * configure.in: print out EXPANDED_* variables in the summary at
9791         the end; clean up the code that computes EXPANDED_ variables and
9792         get the ones using exec_prefix right. Should make things work
9793         when you build without --prefix
9794
9795 2003-06-29  Havoc Pennington  <hp@pobox.com>
9796
9797         * mono/Test.cs (class Test): fire up a main loop and run it
9798
9799         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9800         done once, the app has to do it
9801
9802 2003-06-26  Havoc Pennington  <hp@pobox.com>
9803
9804         * mono/Connection.cs: set up connection with the glib main loop
9805
9806 2003-07-01  Havoc Pennington  <hp@redhat.com>
9807
9808         * doc/dbus-specification.sgml: clarify the format of a type code,
9809         change suggested by Jim Blandy
9810
9811 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9812
9813         * doc/Makefile.am:
9814         * tools/Makefile.am: Don't assume srcdir == builddir.
9815
9816         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9817         the allocated block.
9818         (_dbus_memory_test): New function.
9819         * dbus/dbus-test.h: Add _dbus_memory_test ().
9820         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9821
9822         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9823         of %c%c%c%c.
9824         (dbus_message_new): Remove obsolete @todo.
9825
9826         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9827         (_dbus_marshal_set_uint64): Fix comment.
9828
9829         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9830         hardcode FIELD_REPLY_SERIAL.
9831
9832         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9833         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9834
9835         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9836         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9837
9838 2003-06-24  Havoc Pennington  <hp@pobox.com>
9839
9840         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9841
9842 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9843
9844         * configure.in:
9845         * gcj/.cvsignore:
9846         * gcj/Hello.java:
9847         * gcj/Makefile.am:
9848         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9849         * gcj/org/.cvsignore:
9850         * gcj/org/Makefile.am:
9851         * gcj/org/freedesktop/.cvsignore:
9852         * gcj/org/freedesktop/Makefile.am:
9853         * gcj/org/freedesktop/dbus/.cvsignore:
9854         * gcj/org/freedesktop/dbus/Makefile.am:
9855         * gcj/org/freedesktop/dbus/Message.java: (Message),
9856         (Message.Message):
9857         * gcj/org/freedesktop/dbus/natMessage.cc:
9858         Fix the build system.
9859
9860 2003-06-22  Havoc Pennington  <hp@pobox.com>
9861
9862         * mono/Connection.cs: add more bindings
9863
9864         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9865         more than once.
9866
9867 2003-06-22  Havoc Pennington  <hp@pobox.com>
9868
9869         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9870         Start wrapping more stuff.
9871
9872 2003-06-22  Havoc Pennington  <hp@pobox.com>
9873
9874         * mono/Message.cs: implement Message.Wrap() that ensures we only
9875         have a single C# wrapper per DBusMessage, assuming it works which
9876         it probably doesn't.
9877
9878         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9879         (dbus_message_free_data_slot): new
9880         (dbus_message_set_data): new
9881         (dbus_message_get_data): new
9882
9883 2003-06-22  Havoc Pennington  <hp@pobox.com>
9884
9885         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9886         (_dbus_data_slot_allocator_alloc): rework these to keep a
9887         reference count on each slot and automatically manage a global
9888         slot ID variable passed in by address
9889
9890         * bus/bus.c: convert to new dataslot API
9891
9892         * dbus/dbus-bus.c: convert to new dataslot API
9893
9894         * dbus/dbus-connection.c: convert to new dataslot API
9895
9896         * dbus/dbus-server.c: convert to new dataslot API
9897
9898         * glib/dbus-gmain.c: ditto
9899
9900         * bus/test.c: ditto
9901
9902         * bus/connection.c: ditto
9903
9904 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9905
9906         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9907         after the gcj checks so that the correct configuration tags
9908         will be added to libtool.
9909
9910         * dbus-glib-1.pc.in: No need to specify any includes since
9911         dbus-1.pc.in has those.
9912
9913 2003-06-22  Havoc Pennington  <hp@pobox.com>
9914
9915         * mono/*, gcj/*, configure.in, Makefile.am:
9916         Check in makefiles and subdirs for mono and gcj bindings.
9917         Neither binding actually exists, just trying to get through
9918         all the build and other boring bits.
9919
9920 2003-06-21  Philip Blundell  <philb@gnu.org>
9921
9922         * tools/dbus-monitor.1: Updated.
9923
9924         * tools/dbus-send.1: Likewise.
9925
9926 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9927
9928         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9929         for hangup and error after checking read so we won't discard
9930         pending data if both hangup and read are set.
9931
9932 2003-06-19  Philip Blundell  <philb@gnu.org>
9933
9934         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9935
9936         * tools/dbus-send.c: Accept both --system and --session.
9937
9938         * tools/dbus-monitor.c: Same here.
9939
9940 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9941
9942         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9943         from C++ (Patch by Miloslav Trmac).
9944
9945 2003-06-15  Joe Shaw  <joe@assbarn.com>
9946
9947         * configure.in: Check for socklen_t.
9948
9949         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9950
9951         * test/test-segfault.c: Add #include <sys/time.h>
9952
9953         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9954         dbus-launch needs it.
9955
9956 2003-06-09  Havoc Pennington  <hp@redhat.com>
9957
9958         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9959         SUN_LEN, it breaks abstract socket usage
9960
9961         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9962         starts of lines.
9963
9964 2003-06-04  Havoc Pennington  <hp@pobox.com>
9965
9966         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9967         using unix:abstract=/foo, and when listening in a tmpdir
9968         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9969
9970         * dbus/dbus-transport.c (_dbus_transport_open): support
9971         unix:abstract=/foo
9972
9973         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9974         support abstract sockets
9975
9976         * dbus/dbus-transport-unix.c
9977         (_dbus_transport_new_for_domain_socket): support abstract sockets
9978
9979         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9980         toggle as an argument, implement abstract namespace support
9981         (_dbus_listen_unix_socket): ditto
9982
9983         * configure.in: add --enable-abstract-sockets and implement
9984         a configure check for autodetection of the right value.
9985
9986 2003-06-01  Havoc Pennington  <hp@pobox.com>
9987
9988         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9989         in /tmp (though on Linux this will end up being useless,
9990         when we add abstract namespace support)
9991
9992         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9993         subst'ing it
9994
9995 2003-05-28  Colin Walters  <walters@verbum.org>
9996
9997         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9998
9999 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10000
10001         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10002
10003 2003-05-17  Colin Walters  <walters@gnu.org>
10004
10005         * tools/dbus-send.c: Don't exit with an error code if --help was
10006         passed.  Default to using the session bus instead of the system
10007         one.
10008
10009         * tools/dbus-launch.c: Ditto.
10010
10011         * tools/dbus-monitor.c: Ditto.
10012
10013         * tools/dbus-send.1: Update with new arguments.
10014
10015         * tools/dbus-launch.c: Emit code to export variables.  New
10016         arguments -s and -c to specify shell syntax, and a bit of code to
10017         autodetect syntax.  Also, allow specifying a program to run.
10018
10019         * tools/dbus-launch.1: Update with new arguments.
10020
10021         * tools/dbus-send.1: Ditto.
10022
10023         * tools/dbus-monitor.1: Ditto.
10024
10025 2003-05-17  Havoc Pennington  <hp@pobox.com>
10026
10027         * bus/config-parser.c (merge_included): merge in policies from
10028         child configuration file.
10029
10030         * bus/policy.c (bus_policy_merge): function to merge two policies
10031         together
10032
10033 2003-05-16  Havoc Pennington  <hp@redhat.com>
10034
10035         * dbus/dbus-connection.c: disable verbose lock spew
10036
10037         * tools/dbus-send.c: add --print-reply command line option
10038
10039         * tools/dbus-print-message.h (print_message): new util function
10040         shared by dbus-send and dbus-monitor
10041
10042         * tools/dbus-monitor.c (handler_func): exit on disconnect
10043
10044         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10045         disconnected, don't try to use the read_watch
10046
10047         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10048         so we can find this bug more easily
10049
10050 2003-05-16  Havoc Pennington  <hp@redhat.com>
10051
10052         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10053         NULL as DBusHashTable is annoyingly likely to do.
10054
10055 2003-05-16  Colin Walters  <walters@verbum.org>
10056
10057         * tools/dbus-monitor.c: Add --session argument and usage()
10058         function.
10059
10060         * tools/dbus-monitor.1: Update with new --session arg.
10061
10062         * bus/Makefile.am (install-data-hook): Create
10063         $(libdir)/dbus-1.0/services so that the session bus is happy.
10064
10065 2003-05-15  Havoc Pennington  <hp@redhat.com>
10066
10067         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10068         on non-x86. ifdef's are evil.
10069
10070 2003-05-15  Havoc Pennington  <hp@redhat.com>
10071
10072         * configure.in: 0.11
10073
10074         * NEWS: update
10075
10076         * bus/Makefile.am (initddir): apparently we are supposed to put
10077         init scripts in /etc/rc.d/init.d not /etc/init.d
10078
10079         * bus/Makefile.am: remove the "you must --enable-tests to make
10080         check" as it broke distcheck
10081
10082         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10083
10084 2003-05-13  James Willcox  <jwillcox@gnome.org>
10085
10086         * configure.in:
10087         * bus/activation.c: (bus_activation_service_created),
10088         (bus_activation_activate_service):
10089         * bus/driver.c: (bus_driver_send_service_deleted),
10090         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10091         (bus_driver_send_service_acquired),
10092         (bus_driver_send_welcome_message),
10093         (bus_driver_handle_list_services):
10094         * bus/session.conf.in:
10095         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10096         (dbus_bus_service_exists), (dbus_bus_activate_service):
10097         * dbus/dbus-bus.h:
10098
10099         Add some convenience API which lets you activate a service, and did a
10100         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10101         and dbus_message_get_args()
10102
10103 2003-05-11  Havoc Pennington  <hp@pobox.com>
10104
10105         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10106         calling _dbus_marshal_validate_arg() for every byte in a byte
10107         array, etc.
10108
10109         * dbus/dbus-message-handler.c: use atomic reference counting to
10110         reduce number of locks slightly; the global lock in here sucks
10111
10112         * dbus/dbus-connection.c
10113         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10114         update_dispatch_status that can be called with lock held; then use
10115         in a couple places to reduce locking/unlocking
10116         (dbus_connection_send): hold the lock over the whole function
10117         instead of acquiring it twice.
10118
10119         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10120
10121         * bus/connection.c (bus_connections_setup_connection): fix access
10122         to already-freed memory.
10123
10124         * dbus/dbus-connection.c: keep a little cache of linked list
10125         nodes, to avoid using the global linked list alloc lock in the
10126         normal send-message case. Instead we just use the connection lock
10127         that we already have to take.
10128
10129         * dbus/dbus-list.c (_dbus_list_find_last): new function
10130
10131         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10132         change to use a struct for the atomic type; fix docs,
10133         they return value before increment, not after increment.
10134
10135         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10136         (_dbus_string_append_8_aligned): new functions to try to
10137         microoptimize this operation.
10138         (reallocate_for_length): break this out of set_length(), to
10139         improve profile info, and also so we can consider inlining the
10140         set_length() part.
10141
10142         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10143         strings with some preallocation, cuts down on our calls to realloc
10144         a fair bit. Though if we can get the "move entire string to empty
10145         string" optimization below to kick in here, it would be better.
10146
10147         * dbus/dbus-string.c (_dbus_string_move): just call
10148         _dbus_string_move_len
10149         (_dbus_string_move_len): add a special case for moving
10150         an entire string into an empty string; we can just
10151         swap the string data instead of doing any reallocs.
10152         (_dbus_string_init_preallocated): new function
10153
10154 2003-05-11  Havoc Pennington  <hp@pobox.com>
10155
10156         Write a "test-profile" that does echo client-server with threads;
10157         profile reveals lock contention, memcpy/realloc of buffers, and
10158         UTF-8 validation as hot spots. 20% of lock contention eliminated
10159         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10160         contention is global mempool locks for GList and DBusList.
10161
10162         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10163         x86 implementation
10164
10165         * dbus/dbus-connection.c (struct DBusConnection): use
10166         dbus_atomic_t for the reference count
10167
10168         * dbus/dbus-message.c (struct DBusMessage): declare
10169         dbus_atomic_t values as volatile
10170
10171         * configure.in: code to detect ability to use atomic integer
10172         operations in assembly, from GLib patch
10173
10174         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10175         time, tired of it being wrong in threads and forked processes
10176
10177         * glib/test-profile.c: a little program to bounce messages back
10178         and forth between threads and eat CPU
10179
10180         * dbus/dbus-connection.c: add debug spew macros for debugging
10181         thread locks; include config.h at top; fix deadlock in
10182         dbus_connection_flush()
10183
10184 2003-05-08  Havoc Pennington  <hp@pobox.com>
10185
10186         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10187         data from getting written, and there wasn't a good reason to
10188         use _exit really.
10189
10190         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10191         dbus_verbose lines in test coverage
10192         (main): add list of functions sorted by # of untested blocks
10193         to the coverage report
10194
10195         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10196
10197         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10198
10199         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10200         extend test coverage
10201
10202         * test/data/auth/cancel.auth-script: test canceling an
10203         authentication
10204
10205         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10206         aren't used. in CVS history if we end up needing them.
10207
10208 2003-05-04  Havoc Pennington  <hp@pobox.com>
10209
10210         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10211         unit test
10212
10213         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10214         function, which assumed length was in # of strings, not bytes
10215
10216         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10217         missing coverage
10218
10219         * dbus/dbus-connection.c
10220         (_dbus_connection_queue_received_message): disable function for
10221         now, we are only using it in test mode
10222
10223         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10224         remove a mistaken FIXME
10225
10226 2003-05-04  Havoc Pennington  <hp@pobox.com>
10227
10228         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10229         unlock mutex on successful return, patch from Anders Gustafsson
10230
10231 2003-05-04  Havoc Pennington  <hp@pobox.com>
10232
10233         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10234         Anders Gustafsson
10235
10236 2003-05-04  Havoc Pennington  <hp@pobox.com>
10237
10238         * tools/dbus-launch.c: implement
10239
10240         * bus/main.c (main), bus/bus.c (bus_context_new):
10241         implement --print-pid and --fork
10242
10243 2003-05-03  Havoc Pennington  <hp@redhat.com>
10244
10245         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10246         the address had no value, and add to test suite. Fix and
10247         regression test from Miloslav Trmac
10248
10249 2003-05-03  Havoc Pennington  <hp@pobox.com>
10250
10251         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10252         watch is invalid when handled
10253
10254         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10255         dbus-launch utility to launch the bus from a shell script.  Didn't
10256         actually implement dbus-launch yet, it's just a placeholder still.
10257
10258 2003-05-03  Havoc Pennington  <hp@pobox.com>
10259
10260         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10261         daemon; also documents daemon config file, so replaces
10262         doc/config-file.txt. Corrected some stuff from config-file.txt in
10263         the process of moving it.
10264
10265 2003-05-03  Havoc Pennington  <hp@pobox.com>
10266
10267         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10268         add some man pages
10269
10270 2003-05-03  Colin Walters  <walters@verbum.org>
10271
10272         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10273         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10274
10275         * Makefile.am: Update to use new .pc versioning scheme.
10276
10277 2003-05-02  Havoc Pennington  <hp@redhat.com>
10278
10279         * bus/system.conf.in: allow send/receive to/from message bus
10280         service
10281
10282 2003-04-30  Havoc Pennington  <hp@redhat.com>
10283
10284         * configure.in: print a note when building with unit tests and
10285         without assertions
10286
10287 2003-04-30  Havoc Pennington  <hp@redhat.com>
10288
10289         * Makefile.am: add a check-local that complains if you didn't
10290         configure with --enable-tests
10291
10292 2003-04-29  Havoc Pennington  <hp@redhat.com>
10293
10294         * glib/dbus-gmain.c: docs cleanups
10295
10296         * dbus/dbus-types.h: add docs on int64 types
10297
10298         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10299         public API docs section
10300
10301 2003-04-29  Havoc Pennington  <hp@redhat.com>
10302
10303         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10304         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10305         parallel install API version, not with the D-BUS package version.
10306
10307         * HACKING: move some of README over here
10308
10309         * README: updates, and document API/ABI policy
10310
10311         * configure.in: reindentation
10312
10313 2003-04-29  Havoc Pennington  <hp@redhat.com>
10314
10315         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10316         to use this library" to be sure people have the right
10317         expectations.
10318
10319 2003-04-28  Havoc Pennington  <hp@redhat.com>
10320
10321         * configure.in: add --enable-docs which by default is auto yes if
10322         doxygen and db2html found, no otherwise; but can be forced on/off
10323
10324         * doc/Makefile.am: conditionalize whether to build docs on
10325         --enable-docs
10326
10327 2003-04-28  Havoc Pennington  <hp@redhat.com>
10328
10329         * configure.in: 0.10
10330
10331         * NEWS: update
10332
10333         * bus/system.conf.in: add <includedir>system.d</includedir>
10334
10335         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10336         username was provided but not uid
10337
10338         * bus/config-parser.c (struct BusConfigParser): keep track of
10339         whether the parser is toplevel or was included; change some
10340         of the error handling if it's included.
10341
10342 2003-04-27  Havoc Pennington  <hp@pobox.com>
10343
10344         Unbreak my code...
10345
10346         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10347         report correct status if we finish processing authentication
10348         inside this function.
10349
10350         * bus/activation.c (try_send_activation_failure): use
10351         bus_transaction_send_error_reply
10352
10353         * bus/connection.c (bus_connection_get_groups): return an error
10354         explaining the problem
10355
10356         * bus/bus.c (bus_context_check_security_policy): implement
10357         restriction here that inactive connections can only send the
10358         hello message. Also, allow bus driver to send anything to
10359         any recipient.
10360
10361         * bus/connection.c (bus_connection_complete): create the
10362         BusClientPolicy here instead of on-demand.
10363         (bus_connection_get_policy): don't return an error
10364
10365         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10366         sender field in message being replied to
10367
10368         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10369         causing it to return FALSE always
10370
10371         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10372         we checked sender rather than destination
10373
10374 2003-04-25  Havoc Pennington  <hp@redhat.com>
10375
10376         test suite is slightly hosed at the moment, will fix soon
10377
10378         * bus/connection.c (bus_connections_expire_incomplete): fix to
10379         properly disable the timeout when required
10380         (bus_connection_set_name): check whether we can remove incomplete
10381         connections timeout after we complete each connection.
10382
10383         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10384         probably still broken.
10385
10386         * bus/services.c (bus_registry_acquire_service): implement max
10387         number of services owned, and honor allow/deny rules on which
10388         services a connection can own.
10389
10390         * bus/connection.c (bus_connection_get_policy): report errors here
10391
10392         * bus/activation.c: implement limit on number of pending
10393         activations
10394
10395 2003-04-25  Havoc Pennington  <hp@redhat.com>
10396
10397         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10398         where we used >= 0 instead of != DBUS_UID_UNSET.
10399
10400 2003-04-25  Havoc Pennington  <hp@redhat.com>
10401
10402         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10403         were toggled without add/remove, fix from Anders Gustafsson
10404
10405 2003-04-24  Havoc Pennington  <hp@redhat.com>
10406
10407         * test/data/valid-config-files/basic.conf: add <limit> tags to
10408         this test
10409
10410         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10411         <limit> tag in configuration file.
10412
10413 2003-04-24  Havoc Pennington  <hp@redhat.com>
10414
10415         * bus/dispatch.c: somehow missed some name_is
10416
10417         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10418         (_dbus_timeout_set_interval): new
10419
10420         * bus/connection.c (bus_connections_setup_connection): record time
10421         when each connection is first set up, and expire them after the
10422         auth timeout passes.
10423
10424 2003-04-24  Havoc Pennington  <hp@redhat.com>
10425
10426         * dbus/dbus-message.c (dbus_message_name_is): rename
10427         (dbus_message_service_is): rename
10428         (dbus_message_sender_is): rename
10429         (dbus_message_get_service): rename
10430
10431 2003-04-24  Havoc Pennington  <hp@redhat.com>
10432
10433         * configure.in: add --enable-checks
10434
10435         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10436
10437         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10438         to use thread locks.
10439         (_dbus_connection_handler_destroyed_locked): move some private
10440         functions into proper docs group
10441
10442         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10443         _dbus_return_val_if_fail
10444
10445         Throughout: use dbus_return_if_fail
10446
10447 2003-04-23  James Willcox  <jwillcox@gnome.org>
10448
10449         * glib/dbus-glib.h:
10450         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10451         (dbus_connection_setup_with_g_main),
10452         (dbus_server_setup_with_g_main):
10453         * glib/test-dbus-glib.c: (main):
10454         * glib/test-thread-client.c: (main):
10455         * glib/test-thread-server.c: (new_connection_callback), (main):
10456         * tools/dbus-monitor.c: (main):
10457
10458         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10459         and dbus_server_setup_with_g_main().
10460
10461 2003-04-20  Havoc Pennington  <hp@pobox.com>
10462
10463         * doc/dbus-specification.sgml: document the restrictions on
10464         message and service names
10465
10466 2003-04-22  Havoc Pennington  <hp@redhat.com>
10467
10468         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10469         support, and do some code cleanups to share more code and
10470         speed up array marshal/demarshal.
10471
10472         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10473
10474         * configure.in: generate dbus-arch-deps.h
10475
10476         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10477         64-bit typecodes
10478
10479 2003-04-22  Havoc Pennington  <hp@redhat.com>
10480
10481         * test/data/valid-messages/opposite-endian.message: fix test
10482         to use proper type for rply field
10483
10484         * test/data/invalid-messages: add tests for below validation
10485
10486         * dbus/dbus-message.c (decode_header_data): validate field types,
10487         and validate that named fields are valid names
10488         (decode_name_field): consider messages in the
10489         org.freedesktop.Local. namespace to be invalid.
10490
10491         * dbus/dbus-string.c (_dbus_string_validate_name): new
10492
10493 2003-04-19  Havoc Pennington  <hp@pobox.com>
10494
10495         * bus/driver.c (bus_driver_handle_hello): check limits and
10496         return an error if they are exceeded.
10497
10498         * bus/connection.c: maintain separate lists of active and inactive
10499         connections, and a count of each. Maintain count of completed
10500         connections per user. Implement code to check connection limits.
10501
10502         * dbus/dbus-list.c (_dbus_list_unlink): export
10503
10504         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10505         number of bytes in the message queue for a connection
10506
10507 2003-04-18  Havoc Pennington  <hp@pobox.com>
10508
10509         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10510
10511         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10512         memleaks
10513
10514         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10515         on realloc be sure to update the pointer in the keyring
10516
10517         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10518         offset to avoid writing to unallocated memory
10519
10520         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10521         try the next mechanism, so we properly handle OOM
10522
10523         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10524         on OOM.
10525         (_dbus_keyring_new): fix OOM bug
10526         (_dbus_keyring_new_homedir): always set error; impose a maximum
10527         number of keys we'll load from the file, mostly to speed up the
10528         test suite and make its OOM checks more useful, but also for
10529         general sanity.
10530
10531         * dbus/dbus-auth.c (process_error_server): reject authentication
10532         if we get an error from the client
10533         (process_cancel): on cancel, send REJECTED, per the spec
10534         (process_error_client): send CANCEL if we get an error from the
10535         server.
10536
10537 2003-04-18  Havoc Pennington  <hp@pobox.com>
10538
10539         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10540         debug spew
10541
10542         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10543         handling problem
10544
10545         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10546         about DBUS_TEST_HOMEDIR once
10547
10548         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10549         the environment
10550
10551         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10552         config file so we test the right thing
10553
10554         Throughout: assorted docs improvements
10555
10556 2003-04-18  Havoc Pennington  <hp@pobox.com>
10557
10558         * glib/dbus-gmain.c: adapt to watch changes
10559
10560         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10561
10562         * dbus/dbus-server.h: remove dbus_server_handle_watch
10563
10564         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10565
10566         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10567         like DBusTimeout, so we don't need dbus_connection_handle_watch
10568         etc.
10569
10570 2003-04-17  Havoc Pennington  <hp@redhat.com>
10571
10572         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10573         database usage so it all goes via the DBusUserDatabase cache.
10574
10575 2003-04-17  Havoc Pennington  <hp@redhat.com>
10576
10577         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10578         there was an OOM watch we skipped, we always return TRUE so we
10579         iterate again to have a look at it again. Fixes test suite hang.
10580         Code rearrangement also lets us lose some memset and only iterate
10581         over callbacks once.
10582
10583         * bus/driver.c (bus_driver_handle_message): sense of test for
10584         reply was backward
10585
10586 2003-04-16  Havoc Pennington  <hp@pobox.com>
10587
10588         * doc/dbus-specification.sgml: make spec say serials are unsigned
10589
10590         * dbus/dbus-message.h: change message serials to unsigned
10591
10592         * dbus/dbus-connection.c: adapt to message serials being unsigned
10593
10594 2003-04-15  Havoc Pennington  <hp@pobox.com>
10595
10596         * bus/bus.c: create and keep around a shared DBusUserDatabase
10597         object.
10598
10599         * bus/connection.c (bus_connection_get_groups): don't cache
10600         groups for user in the connection object, since user database
10601         object now does that.
10602
10603 2003-04-16  Havoc Pennington  <hp@redhat.com>
10604
10605         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10606         list of size counters
10607         (_dbus_message_loader_putback_message_link): put back a popped link
10608
10609         * dbus/dbus-connection.c
10610         (dbus_connection_set_max_live_messages_size): rename
10611         max_received_size
10612         (dbus_connection_get_outgoing_size): get size of outgoing
10613         queue
10614         (_dbus_connection_set_connection_counter): remove this cruft
10615
10616 2003-04-14  Havoc Pennington  <hp@redhat.com>
10617
10618         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10619         caching, but at some point we might want to be able to use a
10620         different database.
10621
10622         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10623         SHA1 conf file to test the sha1 auth mechanism, since the regular
10624         test always uses EXTERNAL when available.
10625
10626         * configure.in,
10627         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10628         add conf file that requires use of sha1 auth
10629
10630 2003-04-13  Havoc Pennington  <hp@pobox.com>
10631
10632         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10633         from Philip Blundell to send messages and monitor them.
10634
10635 2003-04-13  Havoc Pennington  <hp@pobox.com>
10636
10637         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10638         callbacks
10639
10640         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10641         users
10642
10643         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10644         fix to only recover unused bytes if we're already authenticated
10645         (_dbus_transport_get_is_authenticated): fix to still mark us
10646         authenticated if there are unused bytes.
10647
10648         * bus/dispatch.c: implement security policy checking
10649
10650         * bus/connection.c (bus_transaction_send_from_driver): new
10651
10652         * bus/bus.c (bus_context_check_security_policy): new
10653
10654         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10655         now we just set the DBusError and it gets converted to an error
10656         reply.
10657
10658         * bus/connection.c (allow_user_function): enable code using actual
10659         data from the config file
10660
10661         * bus/policy.c (list_allows_user): handle wildcard rules for
10662         user/group connection perms
10663
10664 2003-04-13  Havoc Pennington  <hp@pobox.com>
10665
10666         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10667
10668         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10669
10670         * bus/policy.c (bus_policy_append_mandatory_rule)
10671         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10672         (bus_policy_append_group_rule): new functions
10673
10674 2003-04-12  Havoc Pennington  <hp@pobox.com>
10675
10676         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10677
10678         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10679         the pid/gid/uid, just for paranoia.
10680
10681         * test/break-loader.c (randomly_do_n_things): find a byte
10682         containing a type code, and randomly change it to a different
10683         type code.
10684
10685 2003-04-12  Havoc Pennington  <hp@pobox.com>
10686
10687         * bus/policy.h: change BusPolicy to be the thing from the config
10688         file, and rename old BusPolicy to BusClientPolicy
10689
10690         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10691         match change in how policy works
10692
10693         * dbus/dbus-internals.h: mark assert_not_reached as
10694         __attribute((noreturn))__
10695
10696 2003-04-11  Havoc Pennington  <hp@redhat.com>
10697
10698         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10699         the broadcast service. Use boolean return for ServiceExists.
10700
10701 2003-04-11  Havoc Pennington  <hp@redhat.com>
10702
10703         * configure.in: add another directory to look for qt in.
10704
10705 2003-04-11  Havoc Pennington  <hp@redhat.com>
10706
10707         * AUTHORS: add Colin Walters
10708
10709 2003-04-11  Havoc Pennington  <hp@redhat.com>
10710
10711         * NEWS: update
10712
10713         * configure.in: 0.9
10714
10715 2003-04-11  Havoc Pennington  <hp@redhat.com>
10716
10717         * bus/messagebus.in: remove pid file when stopping the
10718         message bus, since the bus won't have privileges to remove it
10719         itself.
10720
10721 2003-04-11  Havoc Pennington  <hp@redhat.com>
10722
10723         * bus/bus.c (bus_context_new): move credentials change after
10724         creating pidfile
10725
10726 2003-04-11  Havoc Pennington  <hp@pobox.com>
10727
10728         * test/decode-gcov.c: add "below average functions" to the
10729         coverage report, and change how some of the code works.
10730
10731         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10732         not in the coverage stats.
10733
10734         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10735         couple places so running the test suite doesn't result in megaspam.
10736
10737 2003-04-11  Havoc Pennington  <hp@pobox.com>
10738
10739         * bus/dispatch.c (check_existent_service_activation): accept a no
10740         memory error in a place we didn't before
10741
10742         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10743         in case the first one failed," since the test suite is less
10744         broken now.
10745
10746 2003-04-10  Havoc Pennington  <hp@pobox.com>
10747
10748         * bus/dispatch.c (check_segfault_service_activation): add test
10749         for launching an executable that just crashes.
10750
10751         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10752         don't leave a million cores. We'll see how portable this is.
10753
10754 2003-04-10  Havoc Pennington  <hp@pobox.com>
10755
10756         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10757         the possible parent failures before we fork, so that we don't
10758         fail to create a babysitter after creating the child.
10759
10760         * bus/activation.c (bus_activation_activate_service): kill child
10761         if we don't successfully complete the activation.
10762
10763 2003-04-10  Havoc Pennington  <hp@redhat.com>
10764
10765         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10766         the connection if it's disconnected
10767
10768         * bus/activation.c (bus_activation_service_created): use new
10769         transaction features to roll back removal of pending activation if
10770         we don't successfully create the service after all. Don't remove
10771         pending activation if the function fails.
10772
10773         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10774         (_dbus_list_insert_after_link): new code to facilitate
10775         services.c fixes
10776
10777         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10778         new functionality, so we can preallocate the ability to insert
10779         into a hash table.
10780
10781         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10782         allowing us to put custom hooks in a transaction to be used for
10783         cancelling said transaction
10784
10785         * doc/dbus-specification.sgml: add some discussion of secondary
10786         service owners, and disallow zero-length service names
10787
10788         * bus/services.c (bus_registry_acquire_service): new function,
10789         splits out part of bus_driver_handle_acquire_service() and fixes
10790         a bug where we didn't remove the service doing the acquiring
10791         from the secondary queue if we failed to remove the current owner
10792         from the front of the queue.
10793
10794 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10795
10796         * doc/dbus-specification.sgml:
10797         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10798
10799 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10800
10801         * bus/.cvsignore:
10802         * glib/.cvsignore:
10803         * test/.cvsignore:
10804         Added files to cvsignore
10805
10806         * dbus/dbus-message.h:
10807         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10808         Make get_named() take two out argument and return a boolean.
10809         (dbus_message_iter_get_args_valist):
10810         Update usage of get_named().
10811         (dbus_message_iter_append_byte):
10812         Fix typo
10813         (dbus_message_iter_append_named)
10814         Fix typo
10815         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10816         More tests.
10817
10818 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10819
10820         * dbus/dbus-marshal.[ch]:
10821         Add array_type_pos argument to _dbus_marshal_validate_arg.
10822         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10823
10824         * dbus/dbus-message.[ch]:
10825         Multi-dimensional arrays have full type specification in the
10826         outermost array. Iter code re-arranged to handle this.
10827         Added some more iter tests.
10828
10829         * doc/dbus-specification.sgml:
10830         Add me to authors.
10831         Remove old FIXME.
10832         Update new array encoding description.
10833         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10834
10835         * test/data/invalid-messages/array-with-mixed-types.message:
10836         * test/data/valid-messages/array-of-array-of-uint32.message:
10837         Change to the new array format.
10838
10839         * test/data/invalid-messages/too-short-dict.message:
10840         Fix bug in test.
10841
10842         * test/data/valid-messages/recursive-types.message:
10843         Fix up and extend test.
10844
10845 2003-04-10  Havoc Pennington  <hp@pobox.com>
10846
10847         * bus/dispatch.c: lots of fixes
10848
10849         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10850         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10851         that was crack, broke the test service.
10852
10853         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10854         handling to avoid piling up errors if we get a failure on the
10855         first address.
10856
10857         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10858         pid in assertion failures.
10859
10860         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10861         to some fixed size of file descriptor array. Don't return TRUE
10862         anytime a timeout exists, that led to lots of busy loop silliness
10863         in the tests.
10864
10865 2003-04-09  Havoc Pennington  <hp@redhat.com>
10866
10867         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10868         I'd checked this in earlier but hadn't.
10869
10870 2003-04-09  Havoc Pennington  <hp@redhat.com>
10871
10872         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10873         the activation test (man this is getting old!)
10874
10875 2003-04-09  Havoc Pennington  <hp@redhat.com>
10876
10877         * test/test-utils.c: use dispatch status function to fix this up
10878
10879         * bus/connection.c (connection_watch_callback): don't dispatch
10880         from here
10881         (connection_timeout_callback): don't dispatch from here
10882         (bus_connections_setup_connection): set the dispatch status function
10883         (bus_connection_disconnected): unset it
10884
10885         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10886         used to add a connection to be dispatched
10887         (_dbus_loop_iterate): do the dispatching at the end of each
10888         iteration
10889
10890         * dbus/dbus-connection.c
10891         (dbus_connection_set_dispatch_status_function): new function
10892         allowing us to fix up main loop usage
10893         (_dbus_connection_last_unref): free all the various function
10894         user data
10895         (dbus_connection_dispatch): call the DispatchStatusFunction
10896         whenever this function returns
10897         (dbus_connection_handle_watch): call DispatchStatusFunction
10898         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10899         (reply_handler_timeout): call DispatchStatusFunction
10900         (dbus_connection_flush): call DispatchStatusFunction
10901
10902 2003-04-09  Havoc Pennington  <hp@redhat.com>
10903
10904         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10905         a memory leak
10906
10907         * bus/dispatch.c (check_service_activated): fix bug in test
10908
10909         * dbus/dbus-mainloop.c (check_timeout): fix this up
10910
10911         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10912         verbose output so we can sort out output from different processes,
10913         e.g. in the activation case.
10914
10915 2003-04-08  Colin Walters  <walters@gnu.org>
10916
10917         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10918         the pid file.
10919         (bus_context_new): Set it.
10920         (bus_context_unref): Use it to delete the pid file.
10921
10922 2003-04-08  Havoc Pennington  <hp@redhat.com>
10923
10924         * test/data/invalid-messages/array-with-mixed-types.message:
10925         regression test that fails for the moment
10926
10927         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10928         tests for convenience
10929
10930         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10931         array of nil, it broke things.
10932
10933         * test/data/invalid-messages/array-of-nil.message: regression test
10934
10935         * test/data/valid-messages/array-of-array-of-uint32.message:
10936         happened to write this so added it to suite
10937
10938 2003-04-08  Havoc Pennington  <hp@redhat.com>
10939
10940         * bus/driver.c (bus_driver_handle_acquire_service): init
10941         retval/reply before checking name
10942
10943         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10944         recursion depth argument
10945
10946         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10947         in the public struct for future extension
10948
10949         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10950         typo
10951
10952         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10953         message
10954
10955         * doc/dbus-specification.sgml: fix typo
10956
10957 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10958
10959         Implemented recursive types, named types and new-style iters
10960
10961         * bus/driver.c:
10962         * glib/test-thread-client.c: (thread_func):
10963         * glib/test-thread-server.c: (handle_test_message):
10964         * test/test-service.c: (handle_echo):
10965         Update to new api
10966
10967         * dbus/Makefile.am:
10968         * dbus/dbus-dict.c:
10969         * dbus/dbus-dict.h:
10970         * dbus/dbus.h
10971         Remove DBusDict
10972
10973         * dbus/dbus-internals.c: (_dbus_type_to_string):
10974         Update for new types.
10975
10976         * dbus/dbus-marshal.[ch]:
10977         Implement recursive types and the new marshalling format.
10978         Remove hardcoded dict marshalling.
10979         Marshal named types.
10980
10981         * dbus/dbus-message-builder.c:
10982         Add BYTE_ARRAY.
10983         Remove references to old types
10984
10985         * dbus/dbus-message.[ch]:
10986         New non-refcounted iter API that supports recursive iters.
10987         Use iters for appending, including support for recursive
10988         iters.
10989         Add byte and named type support.
10990         Update everything to new marshalling formats.
10991         Add tests for new API.
10992
10993         * dbus/dbus-protocol.h:
10994         Remove old array types.
10995         Add types: BYTE, ARRAY, DICT, NAMED
10996
10997         * dbus/dbus-string.c:
10998         * dbus/dbus-sysdeps.c:
10999         Make parse_double locale safe.
11000
11001         * dbus/dbus-test-main.c:
11002         Call setlocale.
11003
11004         * dbus/dbus-test.c:
11005         Kill dict test
11006
11007         * doc/dbus-specification.sgml:
11008         Update spec
11009
11010         * test/data/incomplete-messages/missing-body.message:
11011         * test/data/invalid-messages/bad-boolean.message:
11012         * test/data/invalid-messages/bad-boolean-array.message:
11013         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11014         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11015         * test/data/invalid-messages/too-short-dict.message:
11016         * test/data/valid-messages/dict-simple.message:
11017         * test/data/valid-messages/dict.message:
11018         * test/data/valid-messages/emptiness.message:
11019         * test/data/valid-messages/lots-of-arguments.message:
11020         * test/data/valid-messages/no-padding.message:
11021         * test/data/valid-messages/recursive-types.message:
11022         Add missing NAME fields
11023         Fix up dicts & arrays
11024
11025         * test/data/invalid-messages/dict-with-nil-value.message:
11026         Removed, this is not invalid anymore.
11027
11028         * test/data/valid-messages/recursive-types.message:
11029         Add new test for deeply recursive types.
11030
11031 2003-04-07  Havoc Pennington  <hp@pobox.com>
11032
11033         * bus/driver.c (bus_driver_handle_acquire_service): return an
11034         error if you try to acquire a service that starts with ':'
11035
11036 2003-04-07  Havoc Pennington  <hp@redhat.com>
11037
11038         * doc/dbus-specification.sgml: require that base service names
11039         start with ':' and that the base service is created/deleted
11040         as first and last things a connection does on the bus
11041
11042         * bus/dispatch.c (check_existent_service_activation): lots more
11043         work on the activation test; it doesn't fully pass yet...
11044
11045         * test/test-service.c (main): fix so we don't memleak the
11046         connection to the message bus
11047         (filter_func): accept a message asking us to exit
11048
11049 2003-04-06  Havoc Pennington  <hp@pobox.com>
11050
11051         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11052         from Colin Walters
11053
11054         * configure.in: fixes to Qt detection from Colin Walters
11055
11056         * doc/Makefile.am: Only remove generated docbook dirs if they
11057         exist, from Colin Walters
11058
11059         * dbus/dbus-bus.c: change how we set well-known connections to
11060         NULL, so that it works if a single connection is stored in
11061         two well-known array slots.
11062
11063         * test/Makefile.am: remove a lot of stuff that isn't immediately
11064         useful, it's in CVS history if we want it.
11065
11066         * test/test-service.c: use dbus-mainloop instead of that
11067         watch.[hc] crack
11068
11069 2003-04-06  Havoc Pennington  <hp@pobox.com>
11070
11071         * dbus/Makefile.am: split lists of sources into stuff that goes in
11072         the library, util functions that go in the lib and are also used
11073         elsewhere, and util functions that are used in tests/daemon but
11074         don't go in the lib.
11075
11076         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11077         here so it can be used in test binaries also
11078
11079 2003-04-06  Havoc Pennington  <hp@pobox.com>
11080
11081         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11082         here in the parent process, so we can return an error if it
11083         fails. Also, move some of the code into the child so the parent
11084         is less hosed if we fail midway through.
11085
11086         * bus/bus.c (bus_context_new): move pidfile detection further up
11087         in the function, before we start overwriting sockets and such.
11088
11089         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11090
11091         * configure.in: add --with-system-pid-file and --with-system-socket
11092
11093 2003-04-06  Colin Walters  <walters@verbum.org>
11094
11095         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11096
11097         * bus/system.conf.in: Declare a pidfile.
11098
11099         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11100         create one (if appropriate).
11101
11102         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11103         (struct BusConfigParser) [pidfile]: New.
11104         (element_type_to_name, merge_included, start_busconfig_child)
11105         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11106         (bus_config_parser_unref): Free it.
11107         (bus_config_parser_get_pidfile): New function.
11108
11109         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11110
11111         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11112
11113         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11114
11115         * dbus/dbus-sysdeps.h: Prototype it.
11116
11117 2003-04-06  Havoc Pennington  <hp@pobox.com>
11118
11119         * bus/bus.c (bus_context_new): print the address in here, rather
11120         than in main(), because we need to do it before forking the daemon
11121
11122         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11123         on the service nonexistent error
11124
11125         * bus/driver.c (bus_driver_handle_acquire_service): set the
11126         sender on the AcquireService reply
11127
11128         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11129         server also listen on a UNIX socket so services can connect to it.
11130
11131 2003-04-06  Havoc Pennington  <hp@pobox.com>
11132
11133         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11134         so it detects deadlocks and also we actually init threads when
11135         debugging.
11136
11137 2003-04-06  Havoc Pennington  <hp@pobox.com>
11138
11139         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11140         save the domain socket name, and unlink it when we disconnect the
11141         server. Means that at least when we exit normally, we won't leave
11142         a bunch of junk in /tmp
11143
11144         * dbus/dbus-transport-unix.c
11145         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11146         memory management). (I was making a real change here but then
11147         didn't)
11148
11149 2003-04-06  Havoc Pennington  <hp@pobox.com>
11150
11151         * bus/bus.c (bus_context_new): fix wrong handling of
11152         server_data_slot_unref() in the error case.
11153
11154         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11155         "(condition) != 0" to _dbus_real_assert so that
11156         "_dbus_assert (pointer)" doesn't cause a warning
11157
11158         * bus/main.c (main): accept --print-address option to print out
11159         the message bus address
11160
11161         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11162
11163         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11164         "tmpdir" option to unix: address on client side
11165
11166         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11167         to unix: address
11168
11169         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11170         we can use to create sockets in the test suite.
11171
11172         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11173         cleanly. To be used for testing.
11174
11175         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11176
11177         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11178
11179         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11180         handle trying to call this when there's no servers active
11181
11182 2003-04-05  Havoc Pennington  <hp@pobox.com>
11183
11184         * NEWS: update
11185
11186         * configure.in: 0.8
11187
11188 2003-04-05  Havoc Pennington  <hp@pobox.com>
11189
11190         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11191         crash on startup. Need to get "try starting the daemon"
11192         in the test suite I guess. ;-)
11193
11194         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11195         tracked the number of open connections; it's better done in
11196         application-specific code as you want it to span all servers etc.
11197
11198 2003-04-05  Havoc Pennington  <hp@pobox.com>
11199
11200         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11201         patch from Colin Walters
11202
11203 2003-04-05  Havoc Pennington  <hp@pobox.com>
11204
11205         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11206         reality; in fact multiple mechanisms are allowed.
11207
11208         * dbus/dbus-internals.c (_dbus_real_assert)
11209         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11210         _dbus_assert_not_reached() into functions, so that they don't show
11211         up in basic block counts for test coverage, and don't use up as
11212         much disk space. Does mean slower execution speed though, so
11213         assumes --disable-asserts is the normal production case.
11214
11215 2003-04-05  Havoc Pennington  <hp@pobox.com>
11216
11217         * test/Makefile.am (dist-hook): also dist *.in files
11218
11219         * NEWS: update
11220
11221         * configure.in: 0.7
11222
11223 2003-04-05  Havoc Pennington  <hp@pobox.com>
11224
11225         * dbus/dbus-string.c: docs warning
11226
11227         * dbus/dbus-spawn.c: missing docs
11228
11229         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11230
11231 2003-04-05  Havoc Pennington  <hp@pobox.com>
11232
11233         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11234         magic from GLib
11235
11236         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11237         to -1 once we've reaped the babysitter
11238         (_dbus_babysitter_handle_watch): do as much work as we can, not
11239         just one go of it
11240
11241         * bus/activation.c: add code using DBusBabysitter so that we
11242         handle it when a service fails to start up properly.
11243         (bus_activation_service_created): don't remove the activation
11244         entries as we go, just let them get removed when we free the pending
11245         activation. Unref reply messages after sending them.
11246
11247 2003-04-05  Havoc Pennington  <hp@pobox.com>
11248
11249         * test/decode-gcov.c (main): print per-directory stats in the report
11250
11251         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11252
11253 2003-04-05  Havoc Pennington  <hp@pobox.com>
11254
11255         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11256
11257         * test/decode-gcov.c: hack up a little program to suck data
11258         out of gcov files. Yes this is sort of silly.
11259
11260         * configure.in: define something in config.h and do an
11261         AM_CONDITIONAL when gcov is enabled
11262
11263 2003-04-04  Havoc Pennington  <hp@redhat.com>
11264
11265         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11266         return a "babysitter" object that is used to monitor the status of
11267         the spawned process and reap it when required.
11268
11269         * test/test-segfault.c, test/test-exit.c,
11270         test/test-sleep-forever.c: binaries that do various lame things,
11271         used in the test suite.
11272
11273         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11274
11275 2003-04-03  Havoc Pennington  <hp@pobox.com>
11276
11277         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11278         in preparation for modifying it, dbus-sysdeps is getting
11279         a bit unmanageable.
11280
11281 2003-04-03  Havoc Pennington  <hp@redhat.com>
11282
11283         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11284         have multiple ones
11285
11286         * bus/*.[hc]: adapt to mainloop change
11287
11288 2003-04-03  Havoc Pennington  <hp@redhat.com>
11289
11290         * bus/activation.c (load_directory): fix up memleaks
11291         (bus_activation_entry_free): free the entry
11292
11293         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11294         we get one from the message bus; fix memleaks.
11295
11296         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11297
11298 2003-04-03  Havoc Pennington  <hp@pobox.com>
11299
11300         * bus/config-parser.c (bus_config_parser_unref): free
11301         list of mechanisms, bug discovered by test suite enhancements
11302         (putting system.conf and session.conf into suite)
11303
11304         * test/Makefile.am, test/test-service.c: add placeholder for a
11305         test service that we'll activate as part of test suite. Doesn't
11306         do anything yet.
11307
11308         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11309         setting NULL value, and use system malloc not dbus_malloc()
11310         when we have unavoidable memleakage.
11311
11312         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11313         didn't work, and support DBUS_BUS_ACTIVATION.
11314
11315         * bus/activation.c (child_setup): pass our well-known bus type to
11316         the child
11317
11318         * bus/config-parser.c: support <type> to specify well-known type
11319
11320         * doc/dbus-specification.sgml: document the env variables to
11321         locate well-known buses and find service activator
11322
11323 2003-04-02  Havoc Pennington  <hp@redhat.com>
11324
11325         * test/Makefile.am (all-local): add a rule to copy tests to
11326         builddir, so we can have generated tests. Use this to remove the
11327         silly hack for testing system.conf and session.conf. Will use this
11328         shortly to generate .service files pointing to test binaries.
11329
11330 2003-04-02  Havoc Pennington  <hp@redhat.com>
11331
11332         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11333         current alloc and needed new length, not max of the doubled
11334         allocation and needed new length. Also, when building tests,
11335         don't do the double-allocation stuff, just realloc every time.
11336
11337 2003-04-02  Havoc Pennington  <hp@redhat.com>
11338
11339         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11340         in error messages
11341         (_dbus_string_get_dirname): new
11342         (_dbus_sysdeps_test): new
11343         (_dbus_directory_open): include dirnames in error messages
11344
11345         * bus/config-parser.c: interpret <include> and <includedir> and
11346         <servicedir> relative to config file location if the given
11347         filename is not absolute.
11348
11349         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11350
11351 2003-04-02  Havoc Pennington  <hp@redhat.com>
11352
11353         * bus/connection.c (bus_transaction_send_error_reply): set sender
11354         service for the error, and unref the reply on success
11355
11356         * bus/activation.c: convert to use BusTransaction so OOM can be
11357         handled correctly
11358         (bus_activation_service_created): set sender of the message
11359
11360 2003-04-01  Havoc Pennington  <hp@redhat.com>
11361
11362         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11363         <includedir> (at least mostly)
11364
11365         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11366         first, then the user ID
11367
11368 2003-04-01  Havoc Pennington  <hp@pobox.com>
11369
11370         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11371         function
11372
11373         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11374
11375         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11376
11377         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11378         socket 0777, and unlink any existing socket.
11379
11380         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11381         the configuration file so specifies; set up auth mechanism
11382         restrictions
11383
11384         * bus/config-parser.c (bus_config_parser_content): add support
11385         for <fork> option and fill in code for <auth>
11386
11387         * bus/system.conf.in: add <fork/> to default configuration,
11388         and limit auth mechanisms to EXTERNAL
11389
11390         * doc/config-file.txt (Elements): add <fork>
11391
11392         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11393         (_dbus_change_identity): new function
11394
11395 2003-03-31  Havoc Pennington  <hp@redhat.com>
11396
11397         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11398         (_dbus_listen_unix_socket): fix off-by-one error in null
11399         termination spotted by Nalin
11400
11401 2003-03-31  Havoc Pennington  <hp@redhat.com>
11402
11403         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11404         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11405         having a real home directory available.
11406
11407 2003-03-31  Havoc Pennington  <hp@redhat.com>
11408
11409         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11410
11411         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11412
11413         * configure.in: add support for specifying a style of init script
11414         to install
11415
11416 2003-03-31  Havoc Pennington  <hp@redhat.com>
11417
11418         Fix some annoying DBusString API and fix all affected code.
11419
11420         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11421         max_length argument
11422         (_dbus_string_get_data): change to return string instead of using
11423         an out param
11424         (_dbus_string_get_const_data): ditto
11425         (_dbus_string_get_data_len): ditto
11426         (_dbus_string_get_const_data_len): ditto
11427
11428 2003-03-31  Havoc Pennington  <hp@redhat.com>
11429
11430         * bus/main.c (main): fix up the command line arguments to be nicer
11431
11432 2003-03-31  Havoc Pennington  <hp@redhat.com>
11433
11434         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11435         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11436         final location that lands in the config file
11437
11438         * bus/config-loader-expat.c (bus_config_load): fix type of
11439         XML_Parser variable
11440
11441         * doc/TODO: remove TODO item for dbus_bus_get()
11442
11443         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11444
11445 2003-03-31  Havoc Pennington  <hp@pobox.com>
11446
11447         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11448         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11449         argument since they are always client side
11450
11451         * dbus/dbus-server.c (dbus_server_get_address): new function
11452
11453         * bus/main.c (main): take the configuration file as an argument.
11454
11455         * test/data/valid-config-files/debug-allow-all.conf: new file to
11456         use with dispatch.c tests for example
11457
11458         * bus/test-main.c (main): require test data dir
11459
11460         * bus/bus.c (bus_context_new): change this to take a
11461         configuration file name as argument
11462
11463         * doc/config-file.txt (Elements): add <servicedir>
11464
11465         * bus/system.conf, bus/session.conf: new files
11466
11467         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11468         well-known socket if none set
11469
11470         * configure.in: create system.conf and session.conf
11471
11472 2003-03-30  Havoc Pennington  <hp@pobox.com>
11473
11474         * bus/config-parser.c: hacking
11475
11476         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11477         to shut down, since it could cause weirdness with the DBusList
11478         lock
11479
11480         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11481         link-oriented stack routines
11482         (alloc_link): free the mempool if the first alloc from it fails
11483
11484         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11485
11486         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11487         from GLib
11488         (_dbus_string_skip_white): new
11489
11490         * doc/config-file.txt (Elements): add <includedir>
11491
11492 2003-03-28  Havoc Pennington  <hp@pobox.com>
11493
11494         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11495         (_dbus_string_copy_data): new functions
11496
11497 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11498
11499         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11500         * dbus/dbus-bus.h:
11501         Add dbus_bus_get.
11502
11503         * dbus/dbus-memory.c:
11504         Fix a doc comment.
11505
11506 2003-03-28  Havoc Pennington  <hp@pobox.com>
11507
11508         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11509         I think it may have just been superstition. Not sure.
11510
11511         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11512         failures that were not being handled.
11513
11514         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11515
11516         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11517         row that will fail on out-of-memory.
11518
11519         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11520         function for testing out-of-memory handling.
11521
11522         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11523         allocation functions, they do map exactly to the expat ones.
11524
11525 2003-03-27  Havoc Pennington  <hp@redhat.com>
11526
11527         * bus/config-loader-libxml.c (bus_config_load): add another error
11528         check
11529
11530 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11531
11532         * doc/TODO:
11533         Add note about automatic service activation.
11534
11535         * doc/dbus-specification.sgml:
11536         Rename the specification and clarify a few things.
11537
11538 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11539
11540         * Doxyfile.in:
11541         * dbus/dbus-address.c:
11542         * dbus/dbus-dict.c:
11543         * dbus/dbus-marshal.c:
11544         * dbus/dbus-server-debug-pipe.c:
11545         * dbus/dbus-transport-unix.c:
11546         Fix documentation warnings.
11547
11548 2003-03-26  Havoc Pennington  <hp@pobox.com>
11549
11550         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11551         after every test so it's quick and easy to see which leaked, and
11552         so we test multiple dbus_shutdown() calls
11553
11554         * configure.in: change configure.in XML stuff to also support
11555         expat
11556
11557         * config-loader-libxml.c: some hacking
11558
11559         * config-loader-expat.c: some hacking
11560
11561         * config-parser.c: some hacking, plus tests
11562
11563 2003-03-25  Havoc Pennington  <hp@redhat.com>
11564
11565         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11566
11567         * configure.in: add --with-xml option to specify XML library,
11568         right now only libxml is supported.
11569
11570         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11571         nonworking code between home and work, still just stubs
11572
11573 2003-03-24  Havoc Pennington  <hp@redhat.com>
11574
11575         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11576         file
11577
11578         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11579         NULL argument for "message" if the error is a well-known one,
11580         fill in a generic message in this case.
11581
11582         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11583         favor of DBusError
11584
11585         * bus/test.c (bus_test_flush_bus): add
11586
11587         * bus/policy.c (bus_policy_test): test code stub
11588
11589 2003-03-24  Havoc Pennington  <hp@pobox.com>
11590
11591         * bus/connection.c (bus_connections_setup_connection): set up
11592         the "can this user connect" function, but it always returns
11593         TRUE until we have a config file parser so we can have a config
11594         file that allows connections.
11595
11596 2003-03-23  Havoc Pennington  <hp@pobox.com>
11597
11598         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11599         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11600         the mutex, so we can check for proper memory management
11601         and OOM handling.
11602
11603         * dbus/dbus-dataslot.c: remove the mutex from
11604         DBusDataSlotAllocator and lock it manually when using it,
11605         to simplify fitting it into the global slots framework.
11606
11607         * dbus/dbus-threads.c (init_static_locks): rework how we're
11608         handling global locks so they are easily shut down.
11609
11610         * bus/policy.c (bus_policy_append_rule): fix
11611
11612         * bus/test-main.c (main): check for memleaks
11613
11614         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11615         test suite check for memleaks
11616
11617         * dbus/dbus-memory.c: add support in test mode for tracking
11618         number of outstanding blocks
11619
11620 2003-03-23  Havoc Pennington  <hp@pobox.com>
11621
11622         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11623         policies code
11624
11625         * dbus/dbus-hash.h: add ULONG hash keys
11626
11627         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11628         (_dbus_get_group_id): new function
11629
11630 2003-03-20  Havoc Pennington  <hp@redhat.com>
11631
11632         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11633         new function
11634         (dbus_connection_get_unix_user): new function
11635
11636 2003-03-20  Havoc Pennington  <hp@pobox.com>
11637
11638         * bus/connection.c (bus_connection_send_oom_error): assert that
11639         message has a sender
11640         (connection_execute_transaction): ditto
11641         (bus_connection_preallocate_oom_error): fix to set the sender, and
11642         set recipient to the destination service, not the bus driver
11643
11644         * bus/policy.c: hacking
11645
11646         * dbus/dbus-message.c (dbus_message_service_is): new function
11647         (dbus_message_sender_is): new
11648
11649 2003-03-19  Havoc Pennington  <hp@redhat.com>
11650
11651         * bus/policy.c: start sketching code for policy restrictions on
11652         what connections can do.
11653
11654 2003-03-18  Havoc Pennington  <hp@redhat.com>
11655
11656         * doc/TODO: some notes on high-level todo items. Little nitpick
11657         stuff is all in @todo, so no need to add it here.
11658
11659         * doc/config-file.txt: some notes on how config file might look
11660
11661 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11662
11663         * configure.in: 0.6
11664
11665         * NEWS: Update.
11666
11667 2003-03-17  Havoc Pennington  <hp@redhat.com>
11668
11669         * dbus/dbus-internals.h: add gcc attributes so that
11670         our printf-style functions warn on bad arguments to
11671         format
11672
11673         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11674         format bug
11675
11676         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11677         printf format bug
11678
11679 2003-03-17  Havoc Pennington  <hp@redhat.com>
11680
11681         * bus/test-main.c (main): make it print something as it runs
11682         so make check doesn't look stuck
11683
11684         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11685         from CVS, now obsolete
11686
11687 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11688
11689         * bus/dispatch.c: (bus_dispatch):
11690         Refetch the service name since it may have been reallocated
11691         when dbus_message_set_sender was called.
11692
11693         * dbus/dbus-sysdeps.c: (_dbus_accept):
11694         Add address and address length variables and use them to stop
11695         valgrind from complaining.
11696
11697 2003-03-17  Havoc Pennington  <hp@pobox.com>
11698
11699         All tests pass, no memleaks, no valgrind complaints.
11700
11701         * bus/test.c: refcount handler_slot
11702
11703         * bus/connection.c (bus_connections_new): refcount
11704         connection_data_slot
11705
11706         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11707         bytes so that auth scripts pass.
11708
11709         * bus/dispatch.c: init message_handler_slot so it gets allocated
11710         properly
11711
11712         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11713
11714         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11715         dealloc server_pipe_hash when no longer used for benefit of
11716         leak checking
11717
11718         * dbus/dbus-auth.c (process_command): memleak fix
11719
11720         * bus/dispatch.c (check_hello_message): memleak fix
11721
11722 2003-03-16  Havoc Pennington  <hp@pobox.com>
11723
11724         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11725
11726 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11727
11728         * bus/activation.c (bus_activation_activate_service): Append
11729         the pending activation entry to the list of pending activations.
11730
11731 2003-03-16  Havoc Pennington  <hp@pobox.com>
11732
11733         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11734         connections
11735
11736         * dbus/dbus-address.c (create_entry): fix OOM handling when
11737         failing to alloc entry->method
11738
11739 2003-03-16  Havoc Pennington  <hp@pobox.com>
11740
11741         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11742         the watch
11743
11744         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11745         add some missing dbus_set_result
11746
11747         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11748         alloc the DBusMessageHandler
11749
11750         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11751         the transport here, since we call this from the finalizer; it
11752         resulted in a double-finalize.
11753
11754         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11755         where we tried to use transport->connection that was NULL,
11756         happened when transport was disconnected early on due to OOM
11757
11758         * bus/*.c: adapt to handle OOM for watches/timeouts
11759
11760         * dbus/dbus-transport-unix.c: port to handle OOM during
11761         watch handling
11762
11763         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11764         reference to unused bytes instead of a copy
11765
11766         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11767         out of memory
11768
11769         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11770         FALSE on OOM
11771
11772         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11773         of memory
11774
11775 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11776
11777         * doc/dbus-specification.sgml:
11778         Document reply message for ActivateService.
11779
11780 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11781
11782         * bus/activation.c: (bus_pending_activation_entry_free),
11783         (bus_pending_activation_free), (bus_activation_new),
11784         (bus_activation_unref), (bus_activation_service_created),
11785         (bus_activation_activate_service):
11786         * bus/activation.h:
11787         * bus/bus.c: (bus_context_new):
11788         * bus/desktop-file.c: (new_section):
11789         * bus/driver.c: (bus_driver_send_service_deleted),
11790         (bus_driver_handle_activate_service):
11791         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11792         * bus/services.h:
11793         * dbus/dbus-connection.c:
11794         (dbus_connection_send_with_reply_and_block):
11795         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11796         * dbus/dbus-protocol.h:
11797         Make activation work better. Now pending activations will be queued
11798         and the daemon won't try to activate services that are already registered.
11799
11800 2003-03-16  Havoc Pennington  <hp@pobox.com>
11801
11802         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11803         connection data
11804
11805         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11806         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11807
11808 2003-03-16  Havoc Pennington  <hp@pobox.com>
11809
11810         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11811         this. always run the test suite before commit...
11812
11813         * bus/*: adapt to DBusConnection API changes
11814
11815         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11816         requires renaming stuff to avoid dbus_connection_dispatch name
11817         conflict.
11818
11819         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11820         function
11821
11822         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11823         separate from _dbus_message_loader_return_buffer()
11824
11825         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11826         this, because it's now always broken to use; the number of
11827         messages in queue vs. the number still buffered by the message
11828         loader is undefined/meaningless. Should use
11829         dbus_connection_get_dispatch_state().
11830         (dbus_connection_dispatch): rename from
11831         dbus_connection_dispatch_message
11832
11833 2003-03-16  Havoc Pennington  <hp@pobox.com>
11834
11835         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11836         implementation
11837
11838 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11839
11840         * dbus/dbus-connection.c:
11841         (dbus_connection_send_with_reply_and_block):
11842         Decrease connection->n_incoming when removing an entry
11843         from the list.
11844         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11845         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11846         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11847         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11848         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11849         (dbus_dict_get_byte_array):
11850         Handle NULL arrays and strings. Also add support for byte arrays.
11851
11852         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11853         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11854         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11855         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11856         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11857         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11858         * dbus/dbus-marshal.h:
11859         Add support for marshalling and demarshalling empty arrays and strings.
11860
11861         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11862         (dbus_message_append_string_array),
11863         (dbus_message_iter_get_boolean),
11864         (dbus_message_iter_get_boolean_array),
11865         (dbus_message_iter_get_int32_array),
11866         (dbus_message_iter_get_uint32_array),
11867         (dbus_message_iter_get_double_array),
11868         (dbus_message_iter_get_byte_array),
11869         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11870         (check_message_handling):
11871         Add support for getting empty arrays and dicts.
11872
11873         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11874         Don't do any validation at all for now, that's better than just checking
11875         for ASCII.
11876
11877         * test/data/valid-messages/emptiness.message:
11878         New test message with lots of empty arrays.
11879
11880 2003-03-16  Havoc Pennington  <hp@pobox.com>
11881
11882         * dbus/dbus-connection.c
11883         (_dbus_connection_queue_received_message_link): new function that
11884         can't fail due to OOM
11885
11886         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11887         new function pops a message together with a list link
11888         containing it.
11889
11890         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11891         message queuing functions to avoid needing to alloc memory
11892
11893 2003-03-16  Havoc Pennington  <hp@pobox.com>
11894
11895         Oops - test code was only testing failure of around 30 of the
11896         mallocs in the test path, but it turns out there are 500+
11897         mallocs. I believe this was due to misguided linking setup such
11898         that there was one copy of dbus_malloc etc. in the daemon and one
11899         in the shared lib, and only daemon mallocs were tested. In any
11900         case, the test case now tests all 500+ mallocs, and doesn't pass
11901         yet, though there are lots of fixes in this patch.
11902
11903         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11904         this so that it doesn't need to allocate memory, since it
11905         has no way of indicating failure due to OOM (and would be
11906         annoying if it did).
11907
11908         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11909
11910         * bus/Makefile.am: rearrange to create two self-contained
11911         libraries, to avoid having libraries with overlapping symbols.
11912         that was resulting in weirdness, e.g. I'm pretty sure there
11913         were two copies of global static variables.
11914
11915         * dbus/dbus-internals.c: move the malloc debug stuff to
11916         dbus-memory.c
11917
11918         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11919         empty.
11920
11921         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11922
11923         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11924         on failure.
11925
11926         * bus/dispatch.c (bus_dispatch_add_connection): free
11927         message_handler_slot when no longer using it, so
11928         memory leak checkers are happy for the test suite.
11929
11930         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11931
11932         * bus/bus.c (new_connection_callback): disconnect in here if
11933         bus_connections_setup_connection fails.
11934
11935         * bus/connection.c (bus_connections_unref): fix to free the
11936         connections
11937         (bus_connections_setup_connection): if this fails, don't
11938         disconnect the connection, just be sure there are no side
11939         effects.
11940
11941         * dbus/dbus-string.c (undo_alignment): unbreak this
11942
11943         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11944         leaking
11945         (_dbus_auth_new): fix the order in which we free strings
11946         on OOM failure
11947
11948         * bus/connection.c (bus_connection_disconnected): fix to
11949         not send ServiceDeleted multiple times in case of memory
11950         allocation failure
11951
11952         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11953         get the base service name
11954         (dbus_bus_register_client): don't return base service name,
11955         instead store it on the DBusConnection and have an accessor
11956         function for it.
11957         (dbus_bus_register_client): rename dbus_bus_register()
11958
11959         * bus/dispatch.c (check_hello_message): verify that other
11960         connections on the bus also got the correct results, not
11961         just the one sending hello
11962
11963 2003-03-15  Havoc Pennington  <hp@pobox.com>
11964
11965         Make it pass the Hello handling test including all OOM codepaths.
11966         Now to do other messages...
11967
11968         * bus/services.c (bus_service_remove_owner): fix crash when
11969         removing owner from an empty list of owners
11970         (bus_registry_ensure): don't leave service in the list of
11971         a connection's owned services if we fail to put the service
11972         in the hash table.
11973
11974         * bus/connection.c (bus_connection_preallocate_oom_error): set
11975         error flag on the OOM error.
11976
11977         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11978         handle _dbus_transport_set_connection failure
11979
11980         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11981         to create watches up front and simply enable/disable them as
11982         needed.
11983         (unix_connection_set): this can now fail on OOM
11984
11985         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11986         of enabling/disabling a watch or timeout.
11987
11988         * bus/loop.c (bus_loop_iterate): don't touch disabled
11989         watches/timeouts
11990
11991         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11992
11993 2003-03-15  Havoc Pennington  <hp@pobox.com>
11994
11995         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11996         write useful test code, after all that futzing around ;-)
11997
11998         Test does not yet pass because we can't handle OOM in
11999         _dbus_transport_messages_pending (basically,
12000         dbus_connection_preallocate_send() does not prealloc the write
12001         watch). To fix this, I think we need to add new stuff to
12002         set_watch_functions, namely a SetEnabled function so we can alloc
12003         the watch earlier, then enable it later.
12004
12005         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12006         dbus-memory.c to the convenience lib
12007
12008         * bus/test.c: rename some static functions to keep them clearly
12009         distinct from stuff in connection.c. Handle client disconnection.
12010
12011 2003-03-14  Havoc Pennington  <hp@pobox.com>
12012
12013         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12014         transport, tests more of the real codepath. Set up clients
12015         with bus_setup_debug_client.
12016
12017         * bus/test.c (bus_setup_debug_client): function to set up debug
12018         "clients" on the main loop
12019
12020         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12021         support
12022
12023         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12024         server type
12025
12026         * dbus/dbus-server-debug.c: support a debug server based on pipes
12027
12028         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12029         (_dbus_close): new function
12030
12031         * configure.in: check for socketpair
12032
12033 2003-03-14  Havoc Pennington  <hp@redhat.com>
12034
12035         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12036         cheesy hack
12037
12038         * dbus/dbus-transport-debug.c: rework this a good bit to be
12039         less complicated. hopefully still works.
12040
12041         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12042         manually
12043
12044         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12045         after running it
12046
12047         * dbus/dbus-message.c (dbus_message_copy): rename from
12048         dbus_message_new_from_message, fix it up to copy
12049         all the message fields, add test case
12050
12051         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12052         not quite passing yet
12053
12054 2003-03-14  Havoc Pennington  <hp@pobox.com>
12055
12056         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12057         until no work remains" in test code. (the large diff here
12058         is just code movement, no actual changes)
12059
12060         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12061         1, no point waiting around for test code.
12062         (_dbus_server_debug_accept_transport): unref the timeout
12063         after adding it (right?)
12064
12065         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12066
12067 2003-03-13  Havoc Pennington  <hp@redhat.com>
12068
12069         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12070         out of memory
12071
12072         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12073         of memory
12074
12075         * dbus/dbus-connection.h: Make AddWatchFunction and
12076         AddTimeoutFunction return a bool so they can fail on out-of-memory
12077
12078         * bus/bus.c (bus_context_new): set up timeout handlers
12079
12080         * bus/connection.c (bus_connections_setup_connection): set up
12081         timeout handlers
12082
12083         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12084         can fail
12085
12086         * bus/bus.c (bus_context_new): adapt to changes
12087
12088         * bus/connection.c: adapt to changes
12089
12090         * test/watch.c: adapt to DBusWatch changes
12091
12092         * bus/dispatch.c (bus_dispatch_test): started adding this but
12093         didn't finish
12094
12095 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12096
12097         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12098
12099 2003-03-13  Havoc Pennington  <hp@pobox.com>
12100
12101         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12102         set up a test framework as for the library
12103
12104 2003-03-12  Havoc Pennington  <hp@pobox.com>
12105
12106         Throughout: purge global variables, introduce BusActivation,
12107         BusConnections, BusRegistry, etc. objects instead.
12108
12109         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12110         message bus object
12111
12112         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12113         going to redo this a bit differently I think
12114
12115 2003-03-12  Havoc Pennington  <hp@redhat.com>
12116
12117         Mega-patch that gets the message bus daemon initially handling
12118         out-of-memory. Work still needed. Also lots of random
12119         moving stuff to DBusError instead of ResultCode.
12120
12121         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12122
12123         * dbus/dbus-connection.c
12124         (dbus_connection_send_with_reply_and_block): use DBusError
12125
12126         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12127         DBusResultCode
12128
12129         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12130         code here, as the only failure possible is OOM.
12131
12132         * bus/connection.c (bus_connection_disconnect):
12133         rename bus_connection_disconnected as it's a notification only
12134
12135         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12136         "name" on get_args failure, should be done by get_args;
12137         don't disconnect client for bad args, just return an error.
12138         (bus_driver_handle_service_exists): ditto
12139
12140         * bus/services.c (bus_services_list): NULL-terminate returned array
12141
12142         * bus/driver.c (bus_driver_send_service_lost)
12143         (bus_driver_send_service_acquired): send messages from driver to a
12144         specific client to the client's unique name, not to the broadcast
12145         service.
12146
12147         * dbus/dbus-message.c (decode_header_data): reject messages that
12148         contain no name field
12149         (_dbus_message_get_client_serial): rename to
12150         dbus_message_get_serial and make public
12151         (_dbus_message_set_serial): rename from set_client_serial
12152         (_dbus_message_set_reply_serial): make public
12153         (_dbus_message_get_reply_serial): make public
12154
12155         * bus/connection.c (bus_connection_foreach): allow stopping
12156         iteration by returning FALSE from foreach function.
12157
12158         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12159         (dbus_connection_free_preallocated_send)
12160         (dbus_connection_preallocate_send): new API for sending a message
12161         without possibility of malloc failure.
12162         (dbus_connection_send_message): rename to just
12163         dbus_connection_send (and same for whole function family)
12164
12165         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12166
12167         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12168
12169         * bus/activation.c: handle/return errors
12170
12171         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12172
12173         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12174         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12175         (_dbus_result_from_errno): move to this file
12176
12177 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12178
12179         * dbus/dbus-marshal.c:
12180         (_dbus_marshal_set_string):
12181         Take a length argument so we can marshal the correct string
12182         length.
12183
12184         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12185         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12186         (_dbus_marshal_test):
12187         * dbus/dbus-marshal.h:
12188         Add support for marshalling and demarshalling dicts.
12189
12190         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12191         Add support for TYPE DICT.
12192
12193         * dbus/dbus-message.c: (set_string_field):
12194         Adjust header padding.
12195
12196         (dbus_message_append_args_valist), (dbus_message_append_dict),
12197         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12198         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12199         (check_message_handling), (check_have_valid_message):
12200         * dbus/dbus-message.h:
12201         Add functions for setting and getting dicts.
12202
12203         * dbus/dbus-protocol.h:
12204         Add DBUS_TYPE_DICT.
12205
12206         * dbus/dbus.h:
12207         Add dbus-dict.h
12208
12209         * doc/dbus-specification.sgml:
12210         Add information about how dicts are marshalled.
12211
12212         * test/data/invalid-messages/dict-with-nil-value.message:
12213         * test/data/invalid-messages/too-short-dict.message:
12214         * test/data/valid-messages/dict-simple.message:
12215         * test/data/valid-messages/dict.message:
12216         Add sample messages containing dicts.
12217
12218 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12219
12220         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12221
12222 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12223
12224         * dbus/Makefile.am:
12225         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12226         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12227         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12228         (dbus_dict_set_double), (dbus_dict_set_string),
12229         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12230         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12231         (dbus_dict_set_string_array), (_dbus_dict_test):
12232         * dbus/dbus-dict.h:
12233         Fix according to comments from Havoc.
12234
12235 2003-03-06  Michael Meeks  <michael@server.home>
12236
12237         * configure.in: if we don't have kde-config, disable have_qt.
12238
12239 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12240
12241         * dbus/Makefile.am:
12242         Add dbus-dict.[ch]
12243
12244         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12245         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12246         (dbus_dict_remove), (dbus_dict_get_value_type),
12247         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12248         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12249         (dbus_dict_put_double), (dbus_dict_put_string),
12250         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12251         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12252         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12253         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12254         (dbus_dict_get_double), (dbus_dict_get_string),
12255         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12256         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12257         (dbus_dict_get_string_array), (_dbus_dict_test):
12258         * dbus/dbus-dict.h:
12259         Add DBusDict implementation
12260
12261         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12262         * dbus/dbus-test.h:
12263         Add _dbus_dict_test
12264
12265 2003-03-04  Havoc Pennington  <hp@pobox.com>
12266
12267         * test/data/auth/*: adapt to changes
12268
12269         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12270         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12271         userid
12272
12273         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12274         more stuff from being in a context name, to make the protocol
12275         simpler to deal with
12276
12277         * dbus/dbus-errors.c (dbus_error_has_name): new function
12278         (dbus_error_is_set): new function
12279
12280         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12281         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12282
12283         * dbus/dbus-connection.c (dbus_connection_flush): also read
12284         messages during a flush operation
12285
12286         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12287
12288 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12289
12290         * configure.in: Check for gethostbyname on Solaris.
12291
12292         * dbus/dbus-transport.c: (_dbus_transport_open):
12293         Remove duplicate "tcp" entry.
12294
12295         * doc/dbus-specification.sgml:
12296         Clarify some things.
12297
12298 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12299
12300         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12301         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12302         (_dbus_keyring_test):
12303         * dbus/dbus-md5.c: (_dbus_md5_compute):
12304         * dbus/dbus-sha.c: (_dbus_sha_compute):
12305         Plug memory leaks.
12306
12307 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12308
12309         * README: Add some things.
12310
12311 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12312
12313         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12314         after case DBUS_TYPE_BOOELAN.
12315
12316 2003-03-02  Havoc Pennington  <hp@pobox.com>
12317
12318         * test/break-loader.c (randomly_set_extreme_ints): add test that
12319         sets really huge and small integers
12320
12321         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12322         that length of boolean array fits in the string, and that
12323         string has room for boolean value in single-bool case.
12324
12325         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12326         optional value to "ALIGN" command which is what to fill the
12327         alignment with.
12328
12329         * test/data/valid-messages/no-padding.message: add regression
12330         test for the message padding problem
12331
12332 2003-03-02  Havoc Pennington  <hp@pobox.com>
12333
12334         * dbus/dbus-message.c (decode_header_data): fix to always init
12335         message_padding, from Benjamin Dauvergne
12336
12337 2003-03-02  Havoc Pennington  <hp@pobox.com>
12338
12339         * configure.in: 0.5
12340
12341         * NEWS: Update.
12342
12343 2003-03-01  Joe Shaw  <joe@assbarn.com>
12344
12345         * configure.in: Check for "struct cmsgcred" and try to access its
12346         members for BSD-like unices.
12347
12348         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12349         _dbus_read_credentials_unix_socket().
12350         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12351         read() for reading the credential byte off the unix socket.  Use
12352         struct cmsgcred on systems that support it.
12353
12354 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12355
12356         * glib/Makefile.am:
12357         * configure.in:
12358         Make gthreads-2.0 dependency optional. Don't build thread test if
12359         its not found.
12360
12361 2003-02-27  Havoc Pennington  <hp@pobox.com>
12362
12363         * dbus/dbus-connection.c
12364         (dbus_connection_send_message_with_reply_and_block): fix doh!
12365         doh! doh! bug that resulted in never removing a reply from the
12366         queue, no wonder we called get_reply_serial so much ;-)
12367
12368         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12369         and client serial instead of demarshaling them every time
12370
12371 2003-02-27  Havoc Pennington  <hp@pobox.com>
12372
12373         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12374         more inlined, using dbus-string-private.h, speeds things up
12375         substantially
12376
12377         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12378         when freeing the string
12379         (_dbus_string_steal_data): fix for align offset
12380         (undo_alignment): new function
12381
12382 2003-02-26  Havoc Pennington  <hp@redhat.com>
12383
12384         All kinds of audit fixes from Owen, plus initial attempt to
12385         handle unaligned memory returned from malloc.
12386
12387         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12388         leave room for align_offset and nul byte
12389         (fixup_alignment): function to track an align_offset and
12390         ensure real->str is aligned
12391         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12392         to allow a nul byte plus align offset
12393         (_dbus_string_lock): fix overflow issue
12394         (_dbus_string_init_const_len): add assertions on sanity of len,
12395         assign allocated to be ALLOCATION_PADDING larger than len
12396         (set_length): fixup the overflow handling
12397         (_dbus_string_get_data_len): fix overflow in assertion
12398         (open_gap): detect overflow in size of gap to be opened
12399         (_dbus_string_lengthen): add overflow check
12400         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12401         (_dbus_string_append): add overflow check
12402         (_dbus_string_append_unichar): overflow
12403         (_dbus_string_delete): fix overflow in assertion
12404         (_dbus_string_copy_len): overflow in assertion
12405         (_dbus_string_replace_len): overflows in assertions
12406         (_dbus_string_find): change to implement in terms of
12407         _dbus_string_find_to
12408         (_dbus_string_find_to): assorted fixage
12409         (_dbus_string_equal_c_str): assert c_str != NULL,
12410         fix logic so the function works
12411         (_dbus_string_ends_with_c_str): fix overflow thingy
12412         (_dbus_string_base64_encode): overflow fix
12413         (_dbus_string_validate_ascii): overflow
12414         (_dbus_string_validate_nul): overflow
12415
12416 2003-02-26  Havoc Pennington  <hp@redhat.com>
12417
12418         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12419
12420 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12421
12422         * configure.in:
12423         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12424
12425         * dbus/dbus-connection.c:
12426         * dbus/dbus-connection.h:
12427         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12428         Add dbus_connection_set_wakeup_main_function and use it when queueing
12429         incoming and outgoing messages.
12430
12431
12432         * dbus/dbus-dataslot.c:
12433         Threadsafe usage of DBusDataSlotAllocator
12434
12435         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12436         dbus_new can fail.
12437
12438         * dbus/dbus-server-unix.c:
12439         Add todo comment
12440
12441         * glib/dbus-gmain.c:
12442         Implement the new wakeup functions for glib.
12443
12444         * glib/Makefile.am:
12445         * glib/test-thread-client.c:
12446         * glib/test-thread-server.c:
12447         * glib/test-thread.h:
12448         Initial cut at some thread test code. Not really done yet.
12449
12450 2003-02-26  Havoc Pennington  <hp@pobox.com>
12451
12452         * dbus/dbus-connection.c
12453         (dbus_connection_send_message_with_reply_and_block): fix crash
12454         where we ref'd the outgoing message instead of the returned reply
12455
12456         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12457         at the end of this function, so if we didn't need to read for
12458         authentication, we reinstall it for receiving messages
12459
12460         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12461         a NULL sender for peer-to-peer case
12462
12463         * dbus/dbus-transport-unix.c (check_read_watch): handle
12464         !authenticated case correctly
12465
12466         * glib/dbus-gmain.c: add support for DBusServer
12467
12468         * dbus/dbus-server.c: add data slot support
12469
12470         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12471         return values and handle errors
12472
12473         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12474         DBusConnection
12475
12476         * Doxyfile.in (INPUT): add glib subdir
12477
12478         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12479         setup_with_g_main instead of hookup_with_g_main; write docs
12480
12481 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12482
12483         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12484         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12485         * dbus/dbus-message.c: (dbus_message_append_boolean),
12486         (dbus_message_append_boolean_array),
12487         (dbus_message_get_args_valist), (_dbus_message_test):
12488         * dbus/dbus-message.h:
12489         * doc/dbus-specification.sgml:
12490         Various fixes as pointed out by Havoc.
12491
12492         * test/data/invalid-messages/bad-boolean-array.message:
12493         * test/data/invalid-messages/bad-boolean.message:
12494         Add invalid boolean value test cases.
12495
12496 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12497
12498         * dbus/dbus-internals.c: (_dbus_type_to_string):
12499         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12500         (_dbus_marshal_validate_arg):
12501         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12502         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12503         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12504         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12505         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12506         (dbus_message_iter_get_double),
12507         (dbus_message_iter_get_boolean_array), (message_iter_test):
12508         * dbus/dbus-message.h:
12509         * dbus/dbus-protocol.h:
12510         * doc/dbus-specification.sgml:
12511         * test/data/valid-messages/lots-of-arguments.message:
12512         Add support for boolean and boolean array types.
12513
12514 2003-02-23  Havoc Pennington  <hp@pobox.com>
12515
12516         * dbus/dbus-keyring.c: finish most of this implementation and
12517         simple unit test
12518
12519         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12520         these barf if the error isn't cleared to NULL
12521
12522         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12523         (_dbus_create_directory): new function
12524
12525         * dbus/dbus-errors.c (dbus_set_error): fix warning
12526
12527         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12528         (_dbus_string_hex_decode): new function
12529         (test_hex_roundtrip): test code
12530
12531         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12532
12533         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12534
12535         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12536         the save-to-temp/rename trick to atomically write the new file
12537         (_dbus_string_parse_uint): new function
12538
12539 2003-02-22  Havoc Pennington  <hp@pobox.com>
12540
12541         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12542
12543 2003-02-22  Havoc Pennington  <hp@pobox.com>
12544
12545         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12546         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12547
12548         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12549
12550         * dbus/test/data/sha-1: add US government test suite for SHA-1
12551
12552 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12553
12554         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12555         Make string arrays NULL-terminated.
12556
12557         * dbus/dbus-memory.c: (dbus_free_string_array):
12558         * dbus/dbus-memory.h:
12559         New function for freeing NULL-terminated string arrays.
12560
12561         * dbus/dbus-message-builder.c: (append_quoted_string),
12562         (_dbus_message_data_load):
12563         Add support for array types.
12564
12565         * dbus/dbus-message.c: (check_message_handling):
12566         Add more types as test cases.
12567
12568         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12569         (_dbus_string_parse_double):
12570         Add the start offset to the end offset.
12571
12572         * test/data/valid-messages/lots-of-arguments.message:
12573         New test message with lots of arguments.
12574
12575 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12576
12577         * dbus/dbus-message.c: (dbus_message_append_nil),
12578         (dbus_message_append_int32), (dbus_message_append_uint32),
12579         (dbus_message_append_double), (dbus_message_append_string),
12580         (dbus_message_append_int32_array),
12581         (dbus_message_append_uint32_array),
12582         (dbus_message_append_double_array),
12583         (dbus_message_append_byte_array),
12584         (dbus_message_append_string_array):
12585         Fix all out-of-memory handling in these functions.
12586
12587 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12588
12589         * dbus/dbus-message.c: (dbus_message_append_nil):
12590         Fix a silly.
12591
12592 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12593
12594         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12595         (dbus_message_append_nil), (dbus_message_append_int32_array),
12596         (dbus_message_append_uint32_array),
12597         (dbus_message_append_double_array),
12598         (dbus_message_append_byte_array),
12599         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12600         (dbus_message_iter_get_int32_array),
12601         (dbus_message_iter_get_uint32_array),
12602         (dbus_message_iter_get_double_array),
12603         (dbus_message_iter_get_byte_array),
12604         (dbus_message_iter_get_string_array):
12605
12606         * dbus/dbus-message.h:
12607         Add functions for appending and getting arrays.
12608
12609 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12610
12611         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12612         element size at least 8 bytes, fixes mempool tests on
12613         64-bit machines.
12614
12615 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12616
12617         * dbus/dbus-transport-unix.c (unix_do_iteration):
12618         Unlock the connection mutex during a blocking select call.
12619         Add todo about how we need a way to wake up the select.
12620
12621         * dbus/dbus-connection-internal.h:
12622         * dbus/dbus-connection.c:
12623         Add _dbus_connection_lock and _dbus_connection_unlock.
12624
12625 2003-02-19  Havoc Pennington  <hp@pobox.com>
12626
12627         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12628         Doxyfile.in, not Doxyfile
12629
12630         * dbus/dbus-keyring.c: do some hacking on this
12631
12632         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12633
12634         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12635         dbus_error_init
12636         (dbus_set_error): remove dbus_error_init, check for message ==
12637         NULL *before* we sprintf into it, and add @todo about including
12638         system headers in this file
12639
12640         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12641
12642         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12643
12644         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12645         get various bits of user information based on either username
12646         or user ID
12647         (_dbus_homedir_from_username): new function
12648
12649 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12650
12651         * configure.in:
12652         Add check for nonposix getpwnam_r
12653
12654         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12655         Align the pool element size to a sizeof (void *) boundary.
12656
12657         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12658         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12659         General Solaris fixes.
12660
12661         * test/data/valid-messages/simplest-manual.message:
12662         Explicitly state that we want little-endian packing.
12663
12664 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12665
12666         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12667
12668         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12669         Added to create a transport connecting using a tcp/ip socket.
12670
12671         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12672         to a tcp socket at given host and port.
12673         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12674         hostname and port.
12675
12676         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12677
12678         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12679         Added to create a server listening on a TCP/IP socket.
12680
12681 2003-02-19  Havoc Pennington  <hp@pobox.com>
12682
12683         Throughout: mop up all the Doxygen warnings and undocumented
12684         stuff.
12685
12686         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12687         to search any paths.
12688
12689         * dbus/dbus-threads.c: move global mutex initializers to
12690         dbus-internals.h, multiple prototypes was confusing doxygen
12691         besides being kind of ugly
12692
12693         * Doxyfile (PREDEFINED): have Doxygen define
12694         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12695         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12696         (do not abuse the feature! it's for stuff like the autogenerated
12697         macros in dbus-md5.c, not just for things you don't feel like
12698         documenting...)
12699
12700 2003-02-18  Havoc Pennington  <hp@pobox.com>
12701
12702         * dbus/dbus-string.c (_dbus_string_zero): new function
12703
12704         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12705         wrap it in some dbus-friendly API
12706
12707         * dbus/dbus-types.h: add 16-bit types
12708
12709 2003-02-18  Joe Shaw  <joe@assbarn.com>
12710
12711         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12712         credentials from our currently running process.
12713         (get_word): Fix a buglet where we were copying the entire length
12714         instead of relative to our position.
12715
12716         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12717         keys on the stack... it's 640k of data.
12718
12719         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12720         read the credentials byte off the socket, even if we don't have
12721         SO_PEERCRED.
12722         (_dbus_poll): Implement poll() using select() for systems which
12723         don't have it.
12724
12725         * glib/test-dbus-glib.c (main): Print out an error if no
12726         parameters are given.
12727
12728         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12729         can fallback to a secondary auth mechanism if the first fails.
12730
12731 2003-02-18  Havoc Pennington  <hp@pobox.com>
12732
12733         * AUTHORS: add Alex
12734
12735 2003-02-17  Havoc Pennington  <hp@pobox.com>
12736
12737         * doc/dbus-specification.sgml: lots of cosmetic
12738         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12739         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12740         s/server/bus/ (except in authentication section). Add a section
12741         "Message Bus Message Routing"
12742
12743 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12744
12745         Release 0.4
12746
12747         * NEWS: Update
12748
12749 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12750
12751         * doc/dbus-specification.sgml:
12752         Specification updates.
12753
12754 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12755
12756         * bus/activation.c: (bus_activation_init), (child_setup),
12757         (bus_activation_activate_service):
12758         * bus/activation.h:
12759         * bus/main.c: (main):
12760         Set DBUS_ADDRESS environment variable.
12761
12762         * dbus/dbus-errors.c: (dbus_set_error):
12763         Don't use va_copy since that's a C99 feature.
12764
12765         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12766         (_dbus_spawn_async):
12767         * dbus/dbus-sysdeps.h:
12768         Add child_setup_func to _dbus_spawn_async.
12769
12770         * doc/dbus-specification.sgml:
12771         Update specification.
12772
12773         * test/spawn-test.c: (setup_func), (main):
12774         Fix test.
12775
12776 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12777
12778         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12779         Added todo.
12780
12781 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12782
12783         * doc/.cvsignore:
12784         * doc/Makefile.am:
12785         * doc/dbus-test-plan.sgml:
12786         Add test plan document.
12787
12788         * test/Makefile.am:
12789         Fix distcheck.
12790
12791 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12792
12793         * dbus/dbus-message.c: (decode_header_data),
12794         (_dbus_message_loader_return_buffer):
12795         Set the header padding amount when loading a message.
12796
12797 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12798
12799         * bus/dispatch.c: (send_one_message):
12800         Only send broadcast messages to registered connections.
12801
12802         * dbus/dbus-message.c: (dbus_message_name_is):
12803         * dbus/dbus-message.h:
12804         New convenience function.
12805
12806         * dbus/dbus-transport-debug.c: (do_reading):
12807         Only dispatch one message per run.
12808
12809         * test/Makefile.am:
12810         * test/bus-test.c: (new_connection_callback), (die),
12811         (test_hello_client1_handler), (test_hello_client2_handler),
12812         (test_hello_replies), (main):
12813
12814         * test/bus-test-loop.[ch]:
12815         Add these.
12816
12817 2003-02-16  Havoc Pennington  <hp@pobox.com>
12818
12819         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12820         backward conditional
12821
12822 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12823
12824         * dbus/dbus-connection.c:
12825         Implement sent_message_with_reply. (with_reply_and block is still
12826         busted).
12827         Made dispatch_message not lose message if OOM.
12828
12829         * dbus/dbus-errors.h:
12830         Add NoReply error (for reply timeouts).
12831
12832 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12833
12834         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12835         Actually free keys and values when destroying hashtable.
12836
12837 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12838
12839         * dbus/dbus-auth.c: (client_try_next_mechanism):
12840         Plug a leak.
12841
12842         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12843         Return TRUE if there's no thread implementation around.
12844
12845         * glib/dbus-gmain.c: (free_source),
12846         (dbus_connection_hookup_with_g_main):
12847         Make sure to remove the GSource when the connection is finalized.
12848
12849 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12850
12851         * bus/dispatch.c: (bus_dispatch_message_handler):
12852         * dbus/dbus-errors.h:
12853         Return an error if someone tries to send a message to a service
12854         that doesn't exist.
12855
12856 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12857
12858         * bus/activation.c: (load_directory), (bus_activation_init),
12859         (bus_activation_activate_service):
12860         * bus/activation.h:
12861         * bus/driver.c:
12862         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12863         More work on the activation handling.
12864
12865         * dbus/dbus-errors.h:
12866         Add some error messages
12867
12868         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12869         * dbus/dbus-message.h:
12870         New function that creates an error message.
12871
12872         * dbus/dbus-protocol.h:
12873         Add ACTIVATE_SERVER message.
12874
12875         * dbus/dbus-server-unix.c: (unix_handle_watch),
12876         (_dbus_server_new_for_domain_socket):
12877         Call _dbus_fd_set_close_on_exec.
12878
12879         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12880         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12881         (_dbus_fd_set_close_on_exec):
12882         * dbus/dbus-sysdeps.h:
12883         Add _dbus_fd_set_close_on exec function. Also add function that checks
12884         that all open fds are set to close-on-exec and warns otherwise.
12885
12886         * dbus/dbus-transport-unix.c:
12887         (_dbus_transport_new_for_domain_socket):
12888         Call _dbus_fd_set_close_on_exec.
12889
12890 2003-02-16  Havoc Pennington  <hp@pobox.com>
12891
12892         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12893         allow people to avoid setting SIGPIPE to SIG_IGN
12894         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12895         we've been asked not to
12896
12897 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12898
12899         * dbus/dbus-list.c: (_dbus_list_append_link),
12900         (_dbus_list_prepend_link):
12901         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12902         (dbus_realloc):
12903         Warning fixes.
12904
12905 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12906
12907         * bus/Makefile.am:
12908         * bus/activation.c: (bus_activation_entry_free),
12909         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12910         * bus/activation.h:
12911         * bus/main.c: (main):
12912         Add simple activation support, doesn't work yet though.
12913
12914 2003-02-15   Zack Rusin  <zack@kde.org>
12915
12916         * qt/dbus-qthread.cpp:  small casting fix
12917
12918 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12919
12920         * dbus/dbus-errors.c: (dbus_set_error):
12921         * dbus/dbus-errors.h:
12922         Add a few errors and make dbus_set_error void.
12923
12924         * dbus/dbus-sysdeps.c:
12925         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12926         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12927         * dbus/dbus-sysdeps.h:
12928         Add _dbus_spawn_async.
12929
12930         * test/spawn-test.c: (main):
12931         Test for _dbus_spawn_async.
12932
12933 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12934
12935         * dbus/dbus-internals.h:
12936         Fix build without tests.
12937
12938         * dbus/dbus-list.c: (alloc_link):
12939         Fix a segfault when a malloc fails.
12940
12941         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12942         (dbus_malloc0), (dbus_realloc):
12943         Add support for malloc debugging.
12944
12945 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12946
12947         * dbus/dbus-threads.c:
12948         * dbus/dbus-threads.h:
12949         Add condvars. Remove static mutext from API.
12950         Implement static mutexes by initializing them from threads_init.
12951
12952         * glib/dbus-gthread.c:
12953         * qt/dbus-qthread.cpp:
12954         Update with the thread api changes.
12955
12956
12957         * dbus/dbus-list.c:
12958         * dbus/dbus-list.h:
12959         Turn StaticMutex into normal mutex + init function.
12960         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12961         _dbus_list_append_link, _dbus_list_prepend_link
12962
12963
12964         * dbus/dbus-sysdeps.c:
12965         * dbus/dbus-sysdeps.h:
12966         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12967         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12968
12969         * dbus/dbus-protocol.h:
12970         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12971
12972         * dbus/dbus-message.c:
12973         Make ref/unref atomic.
12974         Fix some docs.
12975
12976         * dbus/dbus-connection-internal.h:
12977         * dbus/dbus-connection.c:
12978         * dbus/dbus-connection.h:
12979         Make threadsafe.
12980         Change _peek to _borrow,_return & _steal_borrowed.
12981         Change disconnect callback to event.
12982         Make dbus_connection_dispatch_messages reentrant.
12983
12984         * dbus/dbus-transport.c:
12985         Don't ref the connection on calls to the transport
12986         implementation.
12987
12988         * dbus/dbus-message-handler.c:
12989         Make threadsafe.
12990
12991         * glib/dbus-gmain.c:
12992         Don't use peek_message anymore
12993
12994         * test/Makefile.am:
12995         * test/debug-thread.c:
12996         * test/debug-thread.h:
12997         Simple thread implementation that asserts() on deadlocks in
12998         single-threaded code.
12999
13000         * test/bus-test.c:
13001         (main) Call debug_threads_init.
13002
13003         * test/watch.c:
13004         Use disconnect message instead of disconnect callback.
13005
13006         * bus/connection.c:
13007         * bus/connection.h:
13008         Don't call dbus_connection_set_disconnect_function. Instead export
13009         bus_connection_disconnect.
13010
13011         * bus/dispatch.c:
13012         Call bus_connection_disconnect when we get a disconnected message.
13013
13014 2003-02-15  Havoc Pennington  <hp@pobox.com>
13015
13016         * dbus/dbus-message.c (dbus_message_new): fool around with the
13017         docs
13018
13019 2003-02-14  Havoc Pennington  <hp@pobox.com>
13020
13021         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13022
13023         * dbus/dbus-memory.c: fail if the debug functions indicate we
13024         should
13025
13026         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13027         (_dbus_decrement_fail_alloc_counter): debug functions to
13028         simulate memory allocation failures
13029
13030 2003-02-14  Havoc Pennington  <hp@pobox.com>
13031
13032         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13033         to DBusError
13034
13035 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13036
13037         * bus/driver.c: (bus_driver_handle_hello):
13038         * bus/driver.h:
13039         * bus/services.c: (bus_service_lookup):
13040         Reorder message sending so we get a more sane order.
13041
13042         * test/bus-test.c: (message_handler):
13043         Fix tyop.
13044
13045 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13046
13047         * bus/driver.c: (bus_driver_send_service_deleted),
13048         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13049         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13050         (bus_driver_send_welcome_message),
13051         (bus_driver_handle_list_services),
13052         (bus_driver_handle_acquire_service),
13053         (bus_driver_handle_service_exists):
13054         * dbus/dbus-bus.c: (dbus_bus_register_client),
13055         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13056         * dbus/dbus-errors.c: (dbus_result_to_string):
13057         * dbus/dbus-errors.h:
13058         * dbus/dbus-message.c: (dbus_message_append_args),
13059         (dbus_message_append_args_valist), (dbus_message_get_args),
13060         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13061         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13062         (dbus_message_iter_get_byte_array),
13063         (dbus_message_iter_get_string_array), (message_iter_test),
13064         (check_message_handling), (_dbus_message_test):
13065         * dbus/dbus-message.h:
13066         * test/bus-test.c: (main):
13067         Change fields to arguments in messages, so that they won't be
13068         confused with header fields.
13069
13070         * glib/test-dbus-glib.c: (main):
13071         Remove append_fields from hello message.
13072
13073 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13074
13075         * dbus/dbus-errors.c:
13076         * dbus/dbus-message.c:
13077         * dbus/dbus-string.c:
13078         Documentation fixes.
13079
13080 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13081
13082         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13083         (remove_timeout):
13084         Implement support for timeouts in dbus-glib.
13085
13086 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13087
13088         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13089         * dbus/dbus-message.c: (process_test_subdir):
13090         * test/break-loader.c: (find_breaks_based_on):
13091         Plug some memory leaks.
13092
13093 2003-02-13  Richard Hult  <rhult@codefactory.se>
13094
13095         * bus/main.c: Fix build.
13096
13097         * dbus/dbus-errors.h:
13098         * dbus/dbus-errors.c: Fix copyright for Anders.
13099
13100 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13101
13102         * bus/Makefile.am:
13103         Add utils.[ch]
13104
13105         * bus/connection.c: (bus_connection_foreach):
13106         Fix a warning.
13107
13108         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13109         (unescape_string), (new_section), (parse_section_start),
13110         (parse_key_value), (report_error), (bus_desktop_file_load),
13111         (bus_desktop_file_get_string):
13112         * bus/desktop-file.h:
13113         Use DBusError for error reporting.
13114
13115         * bus/dispatch.c: (send_one_message),
13116         (bus_dispatch_message_handler):
13117         * bus/driver.c: (bus_driver_send_service_deleted),
13118         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13119         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13120         (bus_driver_send_welcome_message),
13121         (bus_driver_handle_list_services),
13122         (bus_driver_handle_acquire_service),
13123         (bus_driver_handle_service_exists):
13124         * bus/loop.c: (bus_loop_run):
13125         * bus/main.c:
13126         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13127
13128         * bus/utils.c: (bus_wait_for_memory):
13129         * bus/utils.h:
13130         New files with general utility functions.
13131
13132         * dbus/dbus-internals.h:
13133         Remove _DBUS_HANDLE_OOM.
13134
13135 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13136
13137         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13138         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13139         * dbus/dbus-errors.h:
13140         Add DBusError structure.
13141
13142 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13143
13144         * test/data/valid-messages/standard-acquire-service.message:
13145         * test/data/valid-messages/standard-hello.message:
13146         * test/data/valid-messages/standard-list-services.message:
13147         * test/data/valid-messages/standard-service-exists.message:
13148         Add some standard messages.
13149
13150 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13151
13152         * bus/driver.c: (bus_driver_send_welcome_message),
13153         (bus_driver_handle_list_services),
13154         (bus_driver_handle_acquire_service),
13155         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13156         Update for API changes in libdbus.
13157
13158         * dbus/dbus-message.c: (dbus_message_new_reply):
13159         * dbus/dbus-message.h:
13160         Remove the name argument. The spec states that replies shouldn't
13161         have a name.
13162
13163 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13164
13165         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13166         (report_error), (bus_desktop_file_load), (lookup_section),
13167         (lookup_line), (bus_desktop_file_get_raw),
13168         (bus_desktop_file_get_string):
13169         * bus/desktop-file.h:
13170         Some fixes, and new functions for getting a key value from a section.
13171
13172 2003-02-13  Havoc Pennington  <hp@pobox.com>
13173
13174         * test/data/auth/fail-after-n-attempts.auth-script: new test
13175
13176         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13177         reject the client.
13178
13179 2003-02-13  Havoc Pennington  <hp@pobox.com>
13180
13181         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13182         dbus_credentials_match were backward
13183
13184         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13185         NO_CREDENTIALS and ROOT_CREDENTIALS
13186
13187         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13188         into here. Never process more commands after we've reached an
13189         end state; store further data as unused bytes.
13190
13191         * test/data/auth/*: add more auth tests
13192
13193         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13194         command to match exact string and EXPECT_UNUSED to match unused
13195         bytes
13196
13197         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13198
13199 2003-02-12  Havoc Pennington  <hp@pobox.com>
13200
13201         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13202         \r off of popped lines
13203
13204         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13205         scripts
13206
13207         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13208         SEND, append \r\n
13209
13210 2003-02-12  Havoc Pennington  <hp@pobox.com>
13211
13212         * dbus/Makefile.am: remove break-loader from the build, since it
13213         moved.
13214
13215         * configure.in: add --enable-gcov to turn on coverage profiling
13216         flags and disable optimization
13217
13218 2003-02-10  Havoc Pennington  <hp@pobox.com>
13219
13220         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13221         initial cut at test framework for DBusAuth from laptop.
13222         Doesn't quite work yet but it compiles and I need to get
13223         it off the 266mhz laptop. ;-)
13224
13225         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13226         fix a memleak in error case
13227
13228 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13229
13230         * bus/Makefile.am:
13231         * bus/desktop-file.c:
13232         * bus/desktop-file.h:
13233         Add a desktop file parser.
13234
13235 2003-02-11  Zack Rusin  <zack@kde.org>
13236
13237         * qt/message.[h|cpp]: sample implementation
13238         of the KDE wrapper for DBusMessage
13239
13240 2003-02-09  Zack Rusin  <zack@kde.org>
13241
13242         * test/bus-test.c: make_it_compile
13243         * doc/dbus-specification.sgml: minimal semantic fix
13244
13245 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13246
13247         Release 0.3
13248
13249         * NEWS: Update
13250
13251 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13252
13253         * dbus/Makefile.am:
13254         * dbus/dbus-break-loader.c:
13255         * test/Makefile.am:
13256         * test/break-loader.c:
13257         Move dbus-break-loader to test/ and rename it to break-loader.
13258
13259 2003-02-02  Havoc Pennington  <hp@pobox.com>
13260
13261         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13262         for code to manage cookies in your home directory
13263
13264         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13265
13266         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13267         to authenticate, then disconnect the client.
13268
13269 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13270
13271         * dbus/dbus-message.c (dbus_message_append_fields):
13272         Correct docs.
13273
13274 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13275
13276         * doc/dbus-specification.sgml:
13277         Update address format section.
13278
13279 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13280
13281         * test/Makefile.am:
13282         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13283         (message_handler), (new_connection_callback), (loop_quit),
13284         (loop_run), (main):
13285         Add bus test.
13286
13287 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13288
13289         * bus/driver.c: (bus_driver_handle_service_exists):
13290         Simplify the code a bit.
13291
13292         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13293         Fix a silly.
13294
13295 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13296
13297         * bus/Makefile.am:
13298         Add libdbus-daemon.la and link to it.
13299
13300 2003-02-01  James Willcox  <jwillcox@gnome.org>
13301
13302         * bus/driver.c: (bus_driver_handle_own_service):
13303         Actually include the service reply code in the message.
13304
13305 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13306
13307         * bus/driver.c: (bus_driver_handle_service_exists):
13308         Don't unref the incoming message.
13309
13310 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13311
13312         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13313
13314 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13315
13316         * dbus/dbus-server.c: (dbus_server_listen):
13317         * dbus/dbus-transport.c: (_dbus_transport_open):
13318         ifdef out the calls to the debug transport and server.
13319
13320 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13321
13322         * dbus/dbus-watch.c (dbus_watch_get_flags):
13323         Add note in the docs that ERROR or HANGUP won't be returned
13324         and are assumed always on.
13325
13326         * glib/dbus-gmain.c (add_watch):
13327         Always add IO_ERR | IO_HUP
13328
13329         * dbus/dbus-message.h:
13330         Add semicolon after dbus_message_iter_get_string_array().
13331         Makes qt code build again
13332
13333 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13334
13335         * bus/driver.c: (create_unique_client_name),
13336         (bus_driver_handle_hello):
13337         Don't take a name, just use a numeric id to identify
13338         each client.
13339
13340         * dbus/Makefile.am:
13341         * dbus/dbus-bus.c: (dbus_bus_register_client),
13342         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13343         * dbus/dbus-bus.h:
13344         Add new convenience functions for communicating with the bus.
13345
13346         * dbus/dbus-message.h:
13347
13348         * dbus/dbus-protocol.h:
13349         Fix a typo.
13350
13351 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13352
13353         * dbus/dbus-message.c (dbus_message_append_fields):
13354         Add some more doc comments.
13355
13356 2003-02-01  Havoc Pennington  <hp@pobox.com>
13357
13358         * dbus/dbus-break-loader.c (randomly_modify_length): change
13359         a 4-byte value in the message as if it were a length
13360
13361         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13362         execute bit on saved files
13363
13364 2003-02-01  Havoc Pennington  <hp@pobox.com>
13365
13366         * dbus/dbus-break-loader.c (main): new program to find messages
13367         that break the loader.
13368
13369         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13370         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13371
13372         * dbus/dbus-string.c (_dbus_string_set_byte): new
13373
13374 2003-01-31  Havoc Pennington  <hp@pobox.com>
13375
13376         * dbus/dbus-message.c: refactor the test code to be more general,
13377         in preparation for writing a "randomly permute test cases to
13378         try to break the loader" program.
13379
13380 2003-01-31  Havoc Pennington  <hp@pobox.com>
13381
13382         * doc/dbus-specification.sgml: work on the specification
13383
13384         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13385         the protocol version of the message.
13386
13387         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13388         no longer specifies that.
13389         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13390         1/2/3/4)
13391
13392         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13393         "break" for DBUS_TYPE_NIL, remove @todo
13394
13395 2003-01-31  Havoc Pennington  <hp@pobox.com>
13396
13397         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13398         just set_is_error/get_is_error as this is a commonly-used
13399         function, and write docs.
13400
13401 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13402
13403         * dbus/dbus-address.c: (dbus_address_entry_free):
13404         Free key and value lists.
13405
13406         * dbus/dbus-internals.c: (_dbus_type_to_string):
13407         Add the types we didn't have.
13408
13409         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13410         (_dbus_marshal_validate_arg):
13411         Add NIL types.
13412
13413         * dbus/dbus-message.c: (dbus_message_set_sender):
13414         Remove todo about being able to set sender to NULL.
13415
13416         (dbus_message_set_is_error_reply),
13417         (dbus_message_get_is_error_reply):
13418         * dbus/dbus-message.h:
13419         New functions.
13420
13421         * dbus/dbus-protocol.h:
13422         Add error reply flag.
13423
13424         * test/data/valid-messages/opposite-endian.message:
13425         Add NIL type to test.
13426
13427 2003-01-31  Havoc Pennington  <hp@pobox.com>
13428
13429         * doc/dbus-specification.sgml: fully specify the header.  Add
13430         flags and major protocol version, and change header/body len to
13431         unsigned.
13432
13433         * dbus/dbus-message-builder.c (append_saved_length): append length
13434         as uint32
13435
13436         * dbus/dbus-message.c (dbus_message_create_header): change header
13437         length and body length to unsigned. Add the new fields from the
13438         spec
13439         (_dbus_message_loader_return_buffer): unsigned header/body len
13440
13441 2003-01-30  Havoc Pennington  <hp@pobox.com>
13442
13443         * dbus/dbus-auth.c: rework to use only REJECTED, no
13444         MECHANISMS
13445
13446         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13447         use REJECTED, suggested by Mark McLoughlin
13448
13449 2003-01-30  Havoc Pennington  <hp@pobox.com>
13450
13451         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13452         a better way to report errors here. e.g.  "unix address lacks
13453         path" or something. also "no such file" when the path doesn't
13454         exist, etc.
13455
13456         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13457         leaking list nodes
13458         (dbus_parse_address): add @todo about documenting address format,
13459         and allowing , and ; to be escaped
13460
13461 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13462
13463         * dbus/Makefile.am:
13464         Add dbus-address.[ch]
13465
13466         * dbus/dbus-address.c: (dbus_address_entry_free),
13467         (dbus_address_entries_free), (create_entry),
13468         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13469         (dbus_parse_address), (_dbus_address_test):
13470         * dbus/dbus-address.h:
13471         New files for dealing with address parsing.
13472
13473         * dbus/dbus-connection.c:
13474         Document timeout functions.
13475
13476         * dbus/dbus-message.c:
13477         Document dbus_message_new_from_message.
13478
13479         * dbus/dbus-server-debug.c:
13480         Document.
13481
13482         * dbus/dbus-server.c: (dbus_server_listen):
13483         Parse address and use correct server implementation.
13484
13485         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13486         * dbus/dbus-string.h:
13487         New function with test.
13488
13489         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13490         * dbus/dbus-test.h:
13491         Add address tests.
13492
13493         * dbus/dbus-transport-debug.c:
13494         Document.
13495
13496         * dbus/dbus-transport.c: (_dbus_transport_open):
13497         Parse address and use correct transport implementation.
13498
13499 2003-01-30  Havoc Pennington  <hp@pobox.com>
13500
13501         * dbus/dbus-message.c: use message->byte_order instead of
13502         DBUS_COMPILER_BYTE_ORDER throughout.
13503         (dbus_message_create_header): pad header to align the
13504         start of the body of the message to 8-byte boundary
13505
13506         * dbus/dbus-marshal.h: make all the demarshalers take const
13507         DBusString arguments.
13508
13509         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13510         validate message args here, so we don't have to do slow validation
13511         later, and so we catch bad messages as they are incoming. Also add
13512         better checks on header_len and body_len. Also fill in
13513         message->byte_order
13514
13515         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13516         implemented properly)
13517         (_dbus_string_validate_nul): new function to check all-nul
13518
13519         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13520         get_arg_end_pos and remove all validation
13521         (_dbus_marshal_validate_arg): actually do validation here.
13522
13523 2003-01-29  Havoc Pennington  <hp@pobox.com>
13524
13525         * dbus/dbus-message.c (check_message_handling): fix assertion
13526         failure on set_client_serial
13527
13528 2003-01-28  Havoc Pennington  <hp@pobox.com>
13529
13530         * dbus/dbus-server-debug.c: Add doc section comments
13531
13532         * dbus/dbus-transport-debug.c: add doc section comments
13533
13534 2003-01-28  Havoc Pennington  <hp@redhat.com>
13535
13536         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13537         the reverse order from how I had it
13538         (_dbus_string_base64_encode): reverse encoding order. I was
13539         basically byteswapping everything during encoding.
13540
13541 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13542
13543         * dbus/dbus-connection-internal.h:
13544         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13545         (_dbus_connection_remove_timeout):
13546         Add functions for adding and removing timeouts.
13547
13548         * dbus/dbus-message.c: (dbus_message_new_from_message):
13549         Add new function that takes a message and creates an exact
13550         copy of it, but with the refcount set to 1.
13551         (check_message_handling):
13552         Fix build error.
13553
13554         * dbus/dbus-server-protected.h:
13555         * dbus/dbus-server.c: (_dbus_server_init_base),
13556         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13557         (dbus_server_set_timeout_functions):
13558         (_dbus_server_remove_timeout):
13559         New functions so that a server can add and remove timeouts.
13560
13561         (dbus_server_listen):
13562         Add commented out call to dbus_server_debug_new.
13563
13564         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13565         Actually set the handler, doh.
13566
13567         * dbus/dbus-transport.c: (_dbus_transport_open):
13568         Add commented out call to dbus_transport_debug_client_new.
13569
13570         * dbus/Makefile.am:
13571         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13572
13573 2003-01-28  Havoc Pennington  <hp@pobox.com>
13574
13575         * dbus/dbus-message.c (check_message_handling): function to check
13576         on the loaded message, iterates over it etc.
13577
13578 2003-01-28  Havoc Pennington  <hp@pobox.com>
13579
13580         * test/Makefile.am (dist-hook): fix make distdir
13581
13582         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13583
13584 2003-01-27  Havoc Pennington  <hp@pobox.com>
13585
13586         * dbus/dbus-mempool.c (time_for_size): replace printf with
13587         _dbus_verbose
13588
13589         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13590         empty lines; fix the SAVE_LENGTH stuff to be
13591         START_LENGTH/END_LENGTH so it actually works; couple other
13592         bugfixes
13593
13594         * test/Makefile.am (dist-hook): add dist-hook for .message files
13595
13596         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13597         can be constant or locked.
13598         (_dbus_string_free): allow freeing a const string as
13599         documented/intended
13600
13601         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13602
13603         * dbus/dbus-test-main.c (main): take an argument which is the
13604         directory containing test data
13605
13606         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13607         argument to this and load all the messages in test/data/
13608         checking that they can be loaded or not loaded as appropriate.
13609
13610 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13611
13612         * bus/dispatch.c: (bus_dispatch_message_handler):
13613         Dispatch messages sent to services.
13614
13615         * bus/driver.c: (bus_driver_send_service_deleted),
13616         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13617         (bus_driver_send_service_acquired):
13618         Add helper functions for sending service related messages.
13619
13620         (bus_driver_send_welcome_message):
13621         Send HELLO_REPLY instead of WELCOME.
13622
13623         (bus_driver_handle_list_services):
13624         Send LIST_SERVICES_REPLY instead of SERVICES.
13625
13626         (bus_driver_handle_own_service),
13627         (bus_driver_handle_service_exists):
13628         New message handlers.
13629
13630         (bus_driver_handle_message):
13631         Invoke new message handlers.
13632
13633         (bus_driver_remove_connection):
13634         Don't remove any services here since that's done automatically
13635         by bus_service_remove_owner now.
13636
13637         * bus/driver.h:
13638         New function signatures.
13639
13640         * bus/services.c: (bus_service_add_owner):
13641         Send ServiceAcquired message if we're the only primary owner.
13642
13643         (bus_service_remove_owner):
13644         Send ServiceAcquired/ServiceLost messages.
13645
13646         (bus_service_set_prohibit_replacement),
13647         (bus_service_get_prohibit_replacement):
13648         Functions for setting prohibit replacement.
13649
13650         (bus_service_has_owner):
13651         New function that checks if a connection is in the owner queue of
13652         a certain service.
13653
13654         * bus/services.h:
13655         Add new function signatures.
13656
13657         * dbus/dbus-list.c: (_dbus_list_test):
13658         Add tests for _dbus_list_remove_last and traversing the list backwards.
13659
13660         * dbus/dbus-list.h:
13661         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13662         go any further, so return NULL then.
13663
13664         * dbus/dbus-protocol.h:
13665         Add new messages, service flags and service replies.
13666
13667 2003-01-26  Havoc Pennington  <hp@pobox.com>
13668
13669         * dbus/dbus-message-builder.c: implement, completely untested.
13670
13671         * test/data/*: add data to be used in testing.
13672         ".message" files are our simple loadable text format.
13673         ".message-raw" will be binary dumps of messages.
13674
13675         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13676
13677 2003-01-26  Havoc Pennington  <hp@pobox.com>
13678
13679         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13680
13681         * dbus/dbus-errors.c (dbus_result_to_string): add
13682         file errors
13683
13684         * dbus/dbus-message-builder.c: new file, will contain code to load
13685         up messages from files. Not implemented yet.
13686
13687 2003-01-26  Havoc Pennington  <hp@pobox.com>
13688
13689         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13690         the sender by setting to NULL
13691
13692 2003-01-26  Havoc Pennington  <hp@pobox.com>
13693
13694         The unit tests pass, but otherwise untested.  If it breaks, the
13695         tests should have been better. ;-)
13696
13697         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13698         the connection.
13699
13700         * dbus/dbus-message.c: redo everything so we maintain
13701         message->header as the only copy of the various fields.
13702         This avoids the possibility of out-of-memory in some cases,
13703         for example dbus_message_lock() can't run out of memory anymore,
13704         and avoids extra copying. Figured I may as well go ahead and do
13705         this since it was busted for dbus_message_lock to not return
13706         failure on OOM, and dbus_message_write_header was totally
13707         unchecked for OOM. Also fixed some random other bugs.
13708
13709         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13710         that strings are nul-terminated. Also, end_pos can be equal
13711         to string length just not greater than, I think.
13712         (_dbus_marshal_set_int32): new function
13713         (_dbus_marshal_set_uint32): new function
13714         (_dbus_marshal_set_string): new function
13715
13716         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13717         a warning, init timeout_list to NULL
13718         (dbus_connection_send_message): don't use uninitialized variable
13719         "serial"
13720
13721         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13722
13723 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13724
13725         * bus/driver.c: (bus_driver_handle_hello),
13726         (bus_driver_send_welcome_message):
13727         Plug leaks
13728
13729 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13730
13731         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13732         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13733         (dbus_connection_unref):
13734         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13735         * dbus/dbus-message.c: (dbus_message_unref),
13736         Plug memory leaks.
13737
13738         (dbus_message_get_fields):
13739         Remove debugging printout.
13740
13741         (_dbus_message_loader_return_buffer):
13742         Don't store the header string.
13743
13744         (_dbus_message_test):
13745         Plug leaks.
13746
13747 2003-01-26  Richard Hult  <rhult@codefactory.se>
13748
13749         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13750         the file descriptor list, since it can change under us.
13751
13752 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13753
13754         * glib/dbus-gmain.c: (dbus_connection_prepare),
13755         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13756         (remove_watch), (dbus_connection_hookup_with_g_main):
13757         Rewrite the glib handling to use its own GSource instead of a
13758         GIOChannel so we can catch messages put in the queue while waiting
13759         for a reply.
13760
13761 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13762
13763         * bus/Makefile.am:
13764         * bus/connection.c: (connection_disconnect_handler),
13765         (connection_watch_callback), (bus_connection_setup):
13766         * bus/dispatch.c: (send_one_message),
13767         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13768         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13769         * bus/dispatch.h:
13770         * bus/driver.c: (bus_driver_send_service_deleted),
13771         (bus_driver_send_service_created), (bus_driver_handle_hello),
13772         (bus_driver_send_welcome_message),
13773         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13774         (bus_driver_handle_message):
13775         * bus/driver.h:
13776         Refactor code, put the message dispatching in its own file. Use
13777         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13778         is disconnected.
13779
13780 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13781
13782         * dbus/dbus-internals.h:
13783         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13784
13785         * dbus/dbus-message.c: (dbus_message_get_sender):
13786         * dbus/dbus-message.h:
13787         Implement dbus_message_get_sender.
13788
13789         * dbus/dbus-protocol.h:
13790         Add message and service defines.
13791
13792 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13793
13794         * dbus/dbus-connection.c: (dbus_connection_send_message):
13795         * dbus/dbus-message-internal.h:
13796         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13797         (dbus_message_write_header):
13798         Remove _dbus_messag_unlock and don't set the client serial on a
13799         message if one already exists.
13800
13801 2003-01-24  Havoc Pennington  <hp@pobox.com>
13802
13803         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13804         list_pool
13805
13806         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13807         on OOM
13808
13809 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13810
13811         * dbus/dbus-list.c: (alloc_link), (free_link):
13812         Use a memory pool for the links.
13813
13814 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13815
13816         * bus/connection.c: (bus_connection_foreach):
13817         * bus/connection.h:
13818         Add new bus_connection_foreach function.
13819
13820         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13821         Add function that broadcasts a message to all clients.
13822
13823         (bus_driver_send_service_created), (bus_driver_handle_hello),
13824         (bus_driver_send_welcome_message),
13825         (bus_driver_handle_list_services), (bus_driver_message_handler):
13826         Implement functions that take care of listing services, and notifying
13827         clients when new services are created.
13828
13829         * bus/services.c: (bus_services_list):
13830         * bus/services.h:
13831         Add new function that returns an array of strings with the currently
13832         registered services.
13833
13834         * glib/dbus-glib.h:
13835         * glib/dbus-gmain.c:
13836         Update copyright year.
13837
13838 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13839
13840         * dbus/dbus-connection.c: (dbus_connection_send_message):
13841         Unlock the message in case it was sent earlier.
13842
13843         (dbus_connection_send_message_with_reply_and_block):
13844         Remove the reply message from the list.
13845
13846         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13847         Set array_len and new_pos correctly.
13848
13849         (_dbus_marshal_test):
13850         Remove debug output.
13851
13852         * dbus/dbus-message-internal.h:
13853         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13854         New function that returns the reply serial.
13855
13856         (_dbus_message_unlock):
13857         New function that unlocks a message and resets its header.
13858
13859         (dbus_message_append_string_array),
13860         (dbus_message_get_fields_valist),
13861         (dbus_message_iter_get_field_type),
13862         (dbus_message_iter_get_string_array),
13863         (dbus_message_get_fields),
13864         (dbus_message_append_fields_valist):
13865         Handle string arrays.
13866
13867         (dbus_message_set_sender):
13868         Make this function public since the bus daemon needs it.
13869
13870         (decode_header_data):
13871         Set the reply serial to -1 initially.
13872
13873         * dbus/dbus-message.h:
13874         Add dbus_message_set_sender.
13875
13876 2003-01-24  Havoc Pennington  <hp@pobox.com>
13877
13878         * doc/dbus-specification.sgml: add some stuff
13879
13880 2003-01-22  Havoc Pennington  <hp@pobox.com>
13881
13882         * doc/dbus-specification.sgml: Start to document the protocol.
13883
13884 2003-01-22  Havoc Pennington  <hp@pobox.com>
13885
13886         * dbus/dbus-connection.c
13887         (dbus_connection_send_message_with_reply_and_block): add some @todo
13888
13889         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13890
13891 2003-01-21  Havoc Pennington  <hp@pobox.com>
13892
13893         (patch untested because can't compile)
13894
13895         * bus/driver.c (create_unique_client_name): make this function
13896         never recycle client names. Also, caller should initialize
13897         the DBusString.
13898
13899         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13900
13901 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13902
13903         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13904         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13905         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13906         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13907         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13908         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13909         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13910         * dbus/dbus-marshal.h:
13911         * dbus/dbus-protocol.h:
13912         Add support for marshalling and demarshalling integer, double
13913         and string arrays.
13914
13915 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13916
13917         * bus/Makefile.am:
13918         Add driver.[ch]
13919
13920         * bus/connection.c: (connection_disconnect_handler):
13921         Remove the connection from the bus driver's list.
13922
13923         (connection_watch_callback): Dispatch messages.
13924
13925         (free_connection_data): Free connection name.
13926
13927         (bus_connection_setup): Add connection to the bus driver's list.
13928         (bus_connection_remove_owned_service):
13929         (bus_connection_set_name), (bus_connection_get_name):
13930         Add functions for setting and getting the connection's name.
13931
13932         * bus/connection.h:
13933         Add function headers.
13934
13935         * bus/driver.c: (create_unique_client_name),
13936         (bus_driver_handle_hello_message),
13937         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13938         (bus_driver_add_connection), (bus_driver_remove_connection):
13939         * bus/driver.h:
13940         * bus/main.c:
13941         * bus/services.c: (bus_service_free):
13942         * bus/services.h:
13943         New file that handles communication and registreation with the bus
13944         itself.
13945
13946 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13947
13948         * dbus/dbus-connection.c: (dbus_connection_send_message):
13949         Add a new client_serial parameter.
13950
13951         (dbus_connection_send_message_with_reply):
13952         Remove a @todo since we've implemented the blocking function.
13953
13954         (dbus_connection_send_message_with_reply_and_block):
13955         New function that sends a message and waits for a reply and
13956         then returns the reply.
13957
13958         * dbus/dbus-connection.h:
13959         Add new functions.
13960
13961         * dbus/dbus-errors.c: (dbus_result_to_string):
13962         * dbus/dbus-errors.h:
13963         Add new DBUS_RESULT.
13964
13965         * dbus/dbus-message-internal.h:
13966         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13967         (_dbus_message_set_sender), (dbus_message_write_header),
13968         (dbus_message_new_reply), (decode_header_data),
13969         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13970         * dbus/dbus-message.h:
13971         Add new functions that set the reply serial and sender.
13972         Also marshal and demarshal them correctly and add test.
13973
13974         * dbus/dbus-protocol.h:
13975         Add new DBUS_MESSAGE_TYPE_SENDER.
13976
13977         * glib/dbus-glib.h:
13978         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13979         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13980         (dbus_connection_hookup_with_g_main):
13981         * glib/test-dbus-glib.c: (main):
13982         Rewrite to use GIOChannel and remove the GSource crack.
13983
13984         * test/echo-client.c: (main):
13985         * test/watch.c: (check_messages):
13986         Update for changed APIs
13987
13988 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13989
13990         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13991
13992         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13993         Create a DBusTimeoutList.
13994         (dbus_connection_set_timeout_functions): Add new function to
13995         set timeout callbacks
13996
13997         * dbus/dbus-connection.h: Add public DBusTimeout API.
13998
13999         * dbus/dbus-message.c: (dbus_message_get_service):
14000         * dbus/dbus-message.h:  New function.
14001
14002         * dbus/dbus-server.c: Fix small doc typo.
14003
14004         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14005
14006 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14007
14008         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14009         of the string, just as long as specified.
14010
14011 2003-01-19  Havoc Pennington  <hp@pobox.com>
14012
14013         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14014         new function
14015
14016         * dbus/dbus-server.c (dbus_server_set_max_connections)
14017         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14018         keep track of current number of connections, and add API for
14019         setting a max (but haven't implemented enforcing the max yet)
14020
14021 2003-01-18  Havoc Pennington  <hp@pobox.com>
14022
14023         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14024         reading/writing if read_watch != NULL or write_watch != NULL.
14025
14026         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14027         the message loader code to actually load message->header and
14028         message->body into the newly-created message.
14029
14030         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14031         in OOM case
14032
14033         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14034         (dbus_connection_get_max_message_size)
14035         (dbus_connection_set_max_live_messages_size)
14036         (dbus_connection_get_max_live_messages_size): implement some
14037         resource limitation functions
14038
14039         * dbus/dbus-resources.c: new file implementing some of the
14040         resource limits stuff
14041
14042         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14043         missing docs, add @todo to handle OOM etc.
14044
14045         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14046         docs
14047
14048 2003-01-18  Havoc Pennington  <hp@pobox.com>
14049
14050         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14051         connection if it hasn't been already.
14052
14053         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14054         replace with DisconnectFunction.
14055
14056 2003-01-18  Havoc Pennington  <hp@pobox.com>
14057
14058         Building --disable-verbose-mode --disable-asserts --disable-tests
14059         cuts the library from 112K to 45K or so
14060
14061         * configure.in: check for varargs macro support,
14062         add --enable-verbose-mode, --enable-asserts.
14063
14064         * dbus/dbus-internals.h (_dbus_assert): support
14065         DBUS_DISABLE_ASSERT
14066         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14067
14068 2003-01-18  Havoc Pennington  <hp@pobox.com>
14069
14070         * dbus/dbus-test.c: include config.h so that tests actually run
14071
14072         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14073         so the failure mode when that assumption fails will be plenty
14074         obvious.
14075
14076 2003-01-18  Havoc Pennington  <hp@pobox.com>
14077
14078         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14079
14080         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14081         the distribution
14082
14083         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14084         since we don't want to use those in make check
14085
14086 2003-01-15  Havoc Pennington  <hp@redhat.com>
14087
14088         Release 0.2
14089
14090         * NEWS: update
14091
14092 2003-01-15  Havoc Pennington  <hp@redhat.com>
14093
14094         * test/Makefile.am: fix so that test source code ends up in the
14095         distribution on make distcheck
14096
14097 2003-01-15  Havoc Pennington  <hp@redhat.com>
14098
14099         Release 0.1.
14100
14101         * NEWS: update
14102
14103 2003-01-15  Havoc Pennington  <hp@redhat.com>
14104
14105         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14106         fix build when --disable-tests
14107
14108         * Makefile.am (EXTRA_DIST): put HACKING in here
14109
14110         * HACKING: document procedure for making a tarball release.
14111
14112 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14113
14114         * bus/connection.c: (connection_error_handler),
14115         (bus_connection_setup):
14116         * bus/main.c: (main):
14117         Make sure that the DBusConnectionData struct is NULLed
14118         out to prevent a segfault.
14119
14120         * dbus/dbus-errors.c: (dbus_result_to_string):
14121         * dbus/dbus-errors.h:
14122         * dbus/dbus-message.c: (dbus_message_get_fields),
14123         (dbus_message_get_fields_valist), (_dbus_message_test):
14124         * dbus/dbus-message.h:
14125         Make dbus_message_get_fields return a result code so we can
14126         track invalid fields as well as oom.
14127
14128 2003-01-11  Havoc Pennington  <hp@pobox.com>
14129
14130         * configure.in: change --enable-test/--enable-ansi action-if-given
14131         to enable_foo=$enableval instead of enable_foo=yes
14132
14133 2003-01-08  Havoc Pennington  <hp@pobox.com>
14134
14135         * dbus/dbus-string.c (_dbus_string_align_length): new function
14136
14137         * dbus/dbus-test-main.c: move main() for test app here
14138         * dbus/dbus-test.c
14139         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14140         symbol to run tests, because dbus-test isn't in the main
14141         library
14142
14143         Code review nitpicks.
14144
14145         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14146         for people with narrow emacs ;-). Assert client_serial was filled
14147         in. Assert message->name != NULL.
14148         (dbus_message_append_fields): have "first_field_type" arg separate
14149         from va list, needed for C++ binding that also uses varargs IIRC
14150         and helps with type safety
14151         (dbus_message_new): add @todo about using DBusString to store
14152         service/name internally
14153         (dbus_message_new): don't leak ->service and ->name on OOM later
14154         in the function
14155         (dbus_message_unref): free the service name
14156         (dbus_message_get_fields): same change to varargs
14157         i.e. first_field_type
14158         (_dbus_message_loader_return_buffer): assert that the message data
14159         is aligned (if not it's a bug in our code). Put in verbose griping
14160         about why we set corrupted = TRUE.
14161         (decode_header_data): add FIXME that char* is evil.  Was going to
14162         add FIXME about evil locale-specific string.h strncmp, but just
14163         switched to wacky string-as-uint32 optimization. Move check for
14164         "no room for field name" above get_const_data_len() to avoid
14165         assertion failure in get_const_data_len if we have trailing 2
14166         bytes or the like. Check for service and name fields being
14167         provided twice. Don't leak service/name on error. Require field
14168         names to be aligned to 4 bytes.
14169
14170         * dbus/dbus-marshal.c: move byte swap stuff to header
14171         (_dbus_pack_int32): uscore-prefix
14172         (_dbus_unpack_int32): uscore-prefix
14173         (_dbus_unpack_uint32): export
14174         (_dbus_demarshal_string): add @todo complaining about use of
14175         memcpy()
14176         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14177         handling allowing corrupt data to go unchecked
14178
14179 2003-01-08  Havoc Pennington  <hp@redhat.com>
14180
14181         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14182         to the select() as needed for authentication. (should be using
14183         _dbus_poll() not select, but for another day)
14184
14185         * dbus/dbus.h: include dbus/dbus-protocol.h
14186
14187 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14188
14189         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14190         dbus-connection.h
14191
14192 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14193
14194         * dbus/dbus-internals.c: (_dbus_type_to_string):
14195         New function that returns a string describing a type.
14196
14197         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14198         * dbus/dbus-marshal.h:
14199         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14200         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14201         (dbus_message_iter_get_byte_array):
14202         * dbus/dbus-message.h:
14203         Add new convenience functions for appending and getting message fields.
14204         Also add demarshalling routines for byte arrays.
14205
14206 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14207
14208         * dbus/dbus-connection-internal.h:
14209         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14210         (_dbus_connection_get_next_client_serial),
14211         (dbus_connection_send_message):
14212         * dbus/dbus-internals.h:
14213         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14214         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14215         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14216         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14217         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14218         (_dbus_verbose_bytes), (_dbus_marshal_test):
14219         * dbus/dbus-marshal.h:
14220         * dbus/dbus-message-internal.h:
14221         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14222         (dbus_message_write_header), (_dbus_message_lock),
14223         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14224         (dbus_message_get_name), (dbus_message_append_int32),
14225         (dbus_message_append_uint32), (dbus_message_append_double),
14226         (dbus_message_append_string), (dbus_message_append_byte_array),
14227         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14228         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14229         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14230         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14231         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14232         (decode_header_data), (_dbus_message_loader_return_buffer),
14233         (message_iter_test), (_dbus_message_test):
14234         * dbus/dbus-message.h:
14235         * dbus/dbus-protocol.h:
14236         * dbus/dbus-test.c: (main):
14237         * dbus/dbus-test.h:
14238         * glib/test-dbus-glib.c: (message_handler), (main):
14239         * test/echo-client.c: (main):
14240         * test/watch.c: (check_messages):
14241         Make messages sendable and receivable for real.
14242
14243 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14244
14245         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14246         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14247         * dbus/dbus-message.c: (dbus_message_append_int32),
14248         (dbus_message_append_uint32), (dbus_message_append_double),
14249         (dbus_message_append_string), (dbus_message_append_byte_array):
14250         Handle OOM restoration.
14251
14252 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14253
14254         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14255         (_dbus_demarshal_string), (_dbus_marshal_test):
14256         * dbus/dbus-marshal.h:
14257         * dbus/dbus-message.c: (dbus_message_get_name),
14258         Document these functions.
14259
14260         (dbus_message_append_int32), (dbus_message_append_uint32),
14261         (dbus_message_append_double), (dbus_message_append_string),
14262         (dbus_message_append_byte_array):
14263         * dbus/dbus-message.h:
14264         Add functions for adding message fields of different types.
14265
14266         * dbus/dbus-protocol.h:
14267         Add the different types.
14268
14269 2003-01-05  Havoc Pennington  <hp@pobox.com>
14270
14271         * bus/connection.c: implement routines for handling connections,
14272         first thing is keeping a list of owned services on each connection
14273         and setting up watches etc.
14274
14275         * bus/services.c: implement a mapping from service names to lists
14276         of connections
14277
14278         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14279
14280         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14281         to use static mutexes for global data
14282
14283         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14284         collection of functions to set/get application-specific data
14285         on the DBusConnection.
14286
14287 2003-01-04  Havoc Pennington  <hp@pobox.com>
14288
14289         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14290         (_dbus_poll): new function
14291
14292         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14293         copied from GLib
14294
14295         * bus/loop.c: initial code for the daemon main loop
14296
14297 2003-01-04  Havoc Pennington  <hp@pobox.com>
14298
14299         * test/watch.c (error_handler): make it safe if the error handler
14300         is called multiple times (if we s/error handler/disconnect
14301         handler/ we should just guarantee it's called only once)
14302
14303         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14304         error handler on disconnect (it's quite possible we should
14305         just change the error handler to a "disconnect handler," I'm
14306         not sure we have any other meaningful errors)
14307
14308         * configure.in: check for getpwnam_r
14309
14310         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14311         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14312         mechanism as in SASL spec, using socket credentials
14313
14314         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14315         (_dbus_send_credentials_unix_socket): new function
14316
14317         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14318         dbus_accept()
14319         (_dbus_write): only check errno if <0 returned
14320         (_dbus_write_two): ditto
14321
14322 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14323
14324         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14325         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14326         (_dbus_marshal_test):
14327         * dbus/dbus-marshal.h:
14328         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14329         to _dbus_marshal_utf8_string. Also fix some tests.
14330
14331 2002-12-28  Harri Porten  <porten@kde.org>
14332
14333         * configure.in: added check for C++ compiler and a very cheesy
14334         check for the Qt integration
14335
14336         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14337
14338         * qt/Makefile.am: added
14339
14340         * qt/.cvsignore: added
14341
14342         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14343         latter, added #ifdef QT_THREAD_SUPPORT guard.
14344
14345         * dbus/Makefile.am: added missing headers for make dist
14346
14347 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14348
14349         * dbus/Makefile.am: fixup export-symbols-regex.
14350
14351 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14352
14353         * acinclude.m4: Add this file and put the
14354         PKG_CHECK_MODULE macro in it.
14355
14356 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14357
14358         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14359         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14360         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14361         (_dbus_marshal_test):
14362         Make the demarshalling routines align the pos argument.
14363         Add string marshalling tests and fix the obvious bugs
14364         discovered.
14365
14366 2002-12-26  Havoc Pennington  <hp@pobox.com>
14367
14368         * dbus/dbus-auth.c: fixes fixes fixes
14369
14370         * dbus/dbus-transport-unix.c: wire up support for
14371         encoding/decoding data on the wire
14372
14373         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14374         (_dbus_auth_decode_data): append to target string
14375         instead of nuking it.
14376
14377 2002-12-26  Havoc Pennington  <hp@pobox.com>
14378
14379         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14380         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14381         doh
14382
14383         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14384         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14385         now). Main point is because I wanted unpack_uint32 to implement
14386         _dbus_verbose_bytes
14387         (_dbus_verbose_bytes): new function
14388
14389         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14390
14391         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14392         mechanism to handle a corrupt message stream
14393         (_dbus_message_loader_new): fix preallocation to only prealloc,
14394         not prelengthen
14395
14396         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14397         (_dbus_string_test): enhance tests for copy/move and fix the
14398         functions
14399
14400         * dbus/dbus-transport-unix.c: Hold references in more places to
14401         avoid reentrancy problems
14402
14403         * dbus/dbus-transport.c: ditto
14404
14405         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14406         leak reference count in no-message case
14407
14408         * test/watch.c (do_mainloop): handle adding/removing watches
14409         during iteration over the watches. Also, ref the connection/server
14410         stored on a watch, so we don't try to mangle a destroyed one.
14411
14412         * dbus/dbus-transport-unix.c (do_authentication): perform
14413         authentication
14414
14415         * dbus/dbus-auth.c (get_state): add a state
14416         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14417         (_dbus_auth_get_unused_bytes): append the unused bytes
14418         to the passed in string, rather than prepend
14419
14420         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14421         the auth conversation DBusAuth
14422
14423         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14424         (_dbus_transport_new_for_domain_socket): when creating a
14425         transport, pass in whether it's a client-side or server-side
14426         transport so we know which DBusAuth to create
14427
14428 2002-12-03  Havoc Pennington  <hp@pobox.com>
14429
14430         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14431         _after_ finalizing the derived members
14432         (unix_connection_set): unref watch if we fail to add it
14433
14434         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14435         transport first, so that the connection owned by the
14436         transport will be valid as the transport finalizes.
14437
14438         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14439         if necessary, and remove watches from the connection.
14440
14441         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14442
14443 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14444
14445         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14446         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14447         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14448         (_dbus_marshal_test):
14449         * dbus/dbus-marshal.h:
14450         Add string marshal functions and have the demarshal functions
14451         return the new position.
14452
14453 2002-12-25  Havoc Pennington  <hp@pobox.com>
14454
14455         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14456         it is a simple protocol that just maps directly to SASL.
14457
14458         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14459         initial implementation, not actually used yet.
14460
14461         * dbus/dbus-string.c (_dbus_string_find): new function
14462         (_dbus_string_equal): new function
14463         (_dbus_string_base64_encode): new function
14464         (_dbus_string_base64_decode): new function
14465
14466 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14467
14468         * dbus/Makefile.am:
14469         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14470         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14471         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14472         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14473         * dbus/dbus-marshal.h:
14474         * dbus/dbus-protocol.h:
14475         * dbus/dbus-test.c: (main):
14476         * dbus/dbus-test.h:
14477         Add un-optimized marshalling/demarshalling routines.
14478
14479 2002-12-25  Harri Porten  <porten@kde.org>
14480
14481         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14482
14483 2002-12-24  Zack Rusin  <zack@kde.org>
14484
14485         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14486         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14487         main loop stuff
14488
14489 2002-12-24  Havoc Pennington  <hp@pobox.com>
14490
14491         * glib/dbus-gthread.c: fix include
14492
14493         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14494         I think glib API needs to change, though, as you don't
14495         want to use DBusMessageFunction, you want to use the
14496         DBusMessageHandler object. Probably
14497         dbus_connection_open_with_g_main_loop()
14498         and dbus_connection_setup_g_main_loop() or something like that
14499         (but think of better names...) that just create a connection
14500         that has watch/timeout functions etc. already set up.
14501
14502         * dbus/dbus-connection.c
14503         (dbus_connection_send_message_with_reply): new function just to
14504         show how the message handler helps us deal with replies.
14505
14506         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14507
14508         * dbus/dbus-string.c (_dbus_string_test): free a string that
14509         wasn't
14510
14511         * dbus/dbus-hash.c: use memory pools for the hash entries
14512         (rebuild_table): be more paranoid about overflow, and
14513         shrink table when we can
14514         (_dbus_hash_test): reduce number of sprintfs and write
14515         valid C89. Add tests for case where we grow and then
14516         shrink the hash table.
14517
14518         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14519
14520         * dbus/dbus-connection.c (dbus_connection_register_handler)
14521         (dbus_connection_unregister_handler): new functions
14522
14523         * dbus/dbus-message.c (dbus_message_get_name): new
14524
14525         * dbus/dbus-list.c: fix docs typo
14526
14527         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14528         an object representing a handler for messages.
14529
14530 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14531
14532         * glib/dbus-glib.h:
14533         * glib/dbus-gthread.c: (dbus_gthread_init):
14534         Don't use the gdbus prefix for public functions.
14535
14536 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14537
14538         * Makefile.am:
14539         * configure.in:
14540         Add GLib checks and fixup .pc files
14541
14542         * glib/Makefile.am:
14543         * glib/dbus-glib.h:
14544         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14545         (gdbus_connection_check), (gdbus_connection_dispatch),
14546         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14547         (dbus_connection_gsource_new):
14548         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14549         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14550         * glib/test-dbus-glib.c: (message_handler), (main):
14551         Add GLib support.
14552
14553 2002-12-15  Harri Porten  <porten@kde.org>
14554
14555         * autogen.sh: check for libtoolize before attempting to use it
14556
14557         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14558         struct.
14559
14560         * .cvsignore: ignore more stamp files
14561
14562         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14563
14564         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14565         without make install.
14566
14567 2002-12-15  Havoc Pennington  <hp@pobox.com>
14568
14569         * dbus/dbus-threads.c: add thread stubs that a higher library
14570         layer can fill in. e.g. the GLib wrapper might fill them in with
14571         GThread stuff. We still need to use this thread API to
14572         thread-safe-ize the library.
14573
14574 2002-12-12  Havoc Pennington  <hp@pobox.com>
14575
14576         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14577         below new interfaces and include fewer system headers.
14578
14579         * dbus/dbus-sysdeps.c (_dbus_read): new function
14580         (_dbus_write): new function
14581         (_dbus_write_two): new function
14582         (_dbus_connect_unix_socket): new function
14583         (_dbus_listen_unix_socket): new function
14584
14585         * dbus/dbus-message-internal.h: change interfaces to use
14586         DBusString
14587
14588 2002-12-11  Havoc Pennington  <hp@pobox.com>
14589
14590         * dbus/dbus-types.h: add dbus_unichar
14591
14592         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14593
14594         * dbus/dbus-connection.c (dbus_connection_send_message): return
14595         TRUE on success
14596
14597         * dbus/dbus-transport.c: include dbus-watch.h
14598
14599         * dbus/dbus-connection.c: include dbus-message-internal.h
14600
14601         * HACKING: add file with coding guidelines stuff.
14602
14603         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14604         handling here, for security purposes (as in vsftpd). Not actually
14605         using this class yet.
14606
14607         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14608         system/libc usage here, as in vsftpd, for ease of auditing (and
14609         should also simplify portability). Haven't actually moved all the
14610         system/libc usage into here yet.
14611
14612 2002-11-25  Havoc Pennington  <hp@pobox.com>
14613
14614         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14615         always print the first verbose message.
14616
14617 2002-11-24  Havoc Pennington  <hp@pobox.com>
14618
14619         * test/echo-client.c, test/echo-server.c: cheesy test
14620         clients.
14621
14622         * configure.in (AC_CHECK_FUNCS): check for writev
14623
14624         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14625         function
14626
14627         * dbus/dbus-list.c (_dbus_list_foreach): new function
14628
14629         * dbus/dbus-internals.c (_dbus_verbose): new function
14630
14631         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14632         representing a server that listens for connections.
14633
14634         * dbus/.cvsignore: create
14635
14636         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14637         public API for reporting errors
14638
14639         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14640         public object representing a connection that
14641         sends/receives messages. (Same object used for
14642         both client and server.)
14643
14644         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14645         Basic abstraction for different kinds of stream
14646         that we might read/write messages from.
14647
14648 2002-11-23  Havoc Pennington  <hp@pobox.com>
14649
14650         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14651         _DBUS_INT_MAX
14652
14653         * dbus/dbus-test.c (main): add list test, and include
14654         dbus-test.h as intended
14655
14656         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14657         (_dbus_hash_table_remove_int): return value indicates
14658         whether the entry existed to remove
14659
14660         * dbus/dbus-list.c: add linked list utility class,
14661         with docs and tests
14662
14663         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14664         array sometimes.
14665
14666 2002-11-23  Havoc Pennington  <hp@pobox.com>
14667
14668         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14669         DBUS_END_DECLS to nothing, that should fix this once and for all
14670
14671         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14672
14673         * dbus/dbus-message.c, dbus/dbus-hash.c:
14674         add some missing @brief
14675
14676 2002-11-23  Havoc Pennington  <hp@pobox.com>
14677
14678         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14679         to avoid confusing Doxygen
14680
14681         * dbus/dbus-hash.c: @} not }@
14682
14683         * dbus/dbus-message.c (struct DBusMessage): split out
14684         internals docs
14685
14686 2002-11-23  Havoc Pennington  <hp@pobox.com>
14687
14688         * configure.in: pile on more warning flags if using gcc
14689
14690         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14691         to document static functions
14692
14693         * configure.in: add summary to end of configure so it
14694         looks nice and attractive
14695
14696         * dbus/dbus-hash.c: finish implementation and write unit
14697         tests and docs
14698
14699         * configure.in: add --enable-tests to enable unit tests
14700
14701         * dbus/dbus-test.c: test program to run unit tests
14702         for all files in dbus/*, initially runs a test for
14703         dbus-hash.c
14704
14705         * dbus/dbus-internals.h: file to hold some internal utility stuff
14706
14707 2002-11-22  Havoc Pennington  <hp@redhat.com>
14708
14709         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14710         "ported" away from Tcl
14711
14712         * dbus/dbus-types.h: header for types such as dbus_bool_t
14713
14714 2002-11-22  Havoc Pennington  <hp@redhat.com>
14715
14716         * dbus/dbus.h: fixups for doc warnings
14717
14718         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14719         macros
14720         (QUIET): make it quiet so we can see warnings
14721
14722         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14723
14724 2002-11-22  Havoc Pennington  <hp@redhat.com>
14725
14726         * Makefile.am: include "Doxyfile" target in all-local
14727
14728         * configure.in: generate the Doxyfile
14729
14730         * Doxyfile.in: move Doxyfile here, so we can use
14731         configure to generate a Doxyfile with the right
14732         version number etc.
14733
14734 2002-11-22  Havoc Pennington  <hp@redhat.com>
14735
14736         * dbus/dbus-message.c: move inline docs into .c file
14737
14738         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14739         so all docs are under doc/
14740         (MAN_EXTENSION): generate man pages. Use extension
14741         ".3dbus" which matches ".3qt" on my system,
14742         I guess this is OK, I don't know really.
14743         (FILE_PATTERNS): look for .c files not .h, makes sense
14744         for plain C I think
14745
14746 2002-11-22  Havoc Pennington  <hp@pobox.com>
14747
14748         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14749         because any app can be a server, and any app can be a client,
14750         the bus is a special kind of server.
14751
14752 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14753
14754         * Doxyfile : adding. Still needs Makefile rules to be generated
14755         automatically (just run "doxygen" in the toplevel dir for now to
14756         generate docs)
14757
14758         * dbus/dbus-message.h : Adding sample docs (javadoc since
14759         resembles gtk-doc a little more)
14760
14761         * dbus/dbus.h : Adding sample docs
14762
14763 2002-11-21  Havoc Pennington  <hp@redhat.com>
14764
14765         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14766         so we can allow ourselves to include files directly,
14767         instead of having to use dbus.h
14768
14769         * dbus/dbus.h: fill in
14770
14771         * dbus/dbus-message.h: sketch out a sample header file.
14772         Include griping if you include it directly instead of
14773         via dbus.h
14774
14775         * dbus/dbus-macros.h: new file with macros for extern "C",
14776         TRUE/FALSE, NULL, etc.
14777
14778         * doc/file-boilerplate.c: put include guards in here
14779
14780 2002-11-21  Havoc Pennington  <hp@redhat.com>
14781
14782         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14783
14784         * COPYING: include the GPL as well, and license code
14785         under both AFL and GPL.
14786
14787 2002-11-21  Havoc Pennington  <hp@redhat.com>
14788
14789         * acconfig.h: get rid of this
14790
14791         * autogen.sh (run_configure): add --no-configure option
14792
14793         * configure.in: remove AC_ARG_PROGRAM to make
14794         autoconf complain less. add AC_PREREQ.
14795         add AC_DEFINE third arg.
14796
14797 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14798
14799         * doc/Makefile.am:
14800         Fix references so we can distcheck.
14801
14802 2002-11-21  Havoc Pennington  <hp@redhat.com>
14803
14804         * Initial module creation
14805