2006-10-17 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-10-17  Havoc Pennington  <hp@redhat.com>
2
3         * tools/dbus-send.c (main): don't close shared connection, fix
4         from Timo Hoenig
5
6 2006-10-17  Havoc Pennington  <hp@redhat.com>
7
8         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
9
10         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
11         since realistically it doesn't look like we'll be changing it
12         anymore.
13
14 2006-10-17  Havoc Pennington  <hp@redhat.com>
15
16         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
17         be used for return_if_fail type warnings; prefixes the pid, and
18         fatal by default.
19
20 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
21
22         * configure.in: Released 1.0 RC 2(0.94)
23         Add check for -fPIC and enable it if available
24
25 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
26
27         * doc/TODO: Remove the check TODO item
28
29 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
30
31         * dbus-transport-socket.c (exchange_credentials):
32         Print out more detailed errors if reading or sending
33         credentials fail (Patch from Julio M. Merino Vidal 
34         <jmmv at NetBSD dot org>)
35
36 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
37
38         * configure.in: when checking for posix getpwnam_r assume true
39         for cross compiles
40
41 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
42
43         * configure.in: Check for gethostbyname first before we check for it
44         in libnsl.  On gnu systems it is implemeneted 
45
46 2006-10-13  Havoc Pennington  <hp@redhat.com>
47
48         * dbus/dbus-connection.c
49         (dbus_connection_send_with_reply_and_block): fix to handle closed
50         connections, from Tambet Ingo bug #8631
51
52 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
53
54         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
55
56 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
57
58         * test/name-test/Makefile.am: don't link against both libdbus and
59         libdbus-convenience
60
61 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
62
63         * configure.in: check for dirfd even if it is a macro
64         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
65
66 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
67
68         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
69         avoid using dirfd on systems that don't have dirfd 
70         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
71
72 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
73
74         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
75         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
76
77         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
78         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
79         macro because _dbus_abort calls it
80
81         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
82         works
83
84 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
85
86         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
87         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
88
89 2006-10-02  Thiago Macieira  <thiago@kde.org>
90
91         * tools/dbus-launch.c (main): make it complain and abort
92         execution in case an unknown option is given. Also, process
93         the '--' argument as the end of arguments.
94
95 2006-10-01  Havoc Pennington  <hp@redhat.com>
96
97         * tools/dbus-launch.c (print_variables): if no syntax is given,
98         don't print something that's sort-of-half-sh-syntax, just print
99         a plain key-value pairs thing.
100
101         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
102         the local machine representation (but still have the hostname in
103         the display). Remove the hostname from the display if it is
104         localhost. Change session files to be named
105         ~/.dbus/session-bus/machine-display. Change X atoms to be
106         underscore-prefixed so nobody whines about ICCCM compliance.
107         Otherwise name them the same as the env variables.
108         Change session file format to include key-value pairs and an
109         explanatory comment. Keys are the same as the env variables.
110         (set_address_in_x11): X property format can't depend on
111         sizeof(pid_t) on a particular machine, fix to always be 32 bits
112
113         * tools/dbus-launch.c: make --autolaunch take a machine id
114         argument. If --autolaunch is used with a program to run, complain
115         for now (but add a FIXME). Also, don't look for existing bus if 
116         there's a program to run (but add a FIXME).
117
118         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
119         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
120         just to get this, and avoids duplicating uuid-reading code).
121
122         * tools/dbus-launch.1: clarify various things
123         
124 2006-10-01  Havoc Pennington  <hp@redhat.com>
125
126         * test/test-service.c (path_message_func): remove broken extra
127         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
128
129         * test/test-shell-service.c (path_message_func): same fix
130         
131         * dbus/dbus-connection.c
132         (_dbus_connection_get_dispatch_status_unlocked): break up the
133         function a little for clarity and fix the notification of
134         dbus-bus.c to not require dispatch to be complete
135
136         * dbus/dbus-connection.c (dbus_connection_unref): improve the
137         warning when you try to finalize an open connection.
138         
139 2006-10-01  Havoc Pennington  <hp@redhat.com>
140
141         * dbus/dbus-bus.c
142         (internal_bus_get): only weak ref the connection; this means 
143         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
144         called safely in any context
145         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
146         unref
147
148         * dbus/dbus-connection.c
149         (_dbus_connection_get_dispatch_status_unlocked): move
150         _dbus_bus_notify_shared_connection_disconnected_unlocked here
151         when queuing Disconnected instead of when the Disconnected message
152         arrives, so dbus_bus_get() won't return closed connections.
153         
154 2006-10-01  Havoc Pennington  <hp@redhat.com>
155
156         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
157         Add a hack to make DBusNewConnectionFunction work right.
158
159         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
160         the hack here. Also, fix the todo about refcount leak.
161         
162         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
163         and use the hack here
164         
165         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
166         "shareable" flag; this was completely broken, since it meant 
167         dbus_connection_open() returned a connection of unknown
168         shared-ness. Now, we always hold a ref on anything opened 
169         as shareable.
170
171         Move the call to notify dbus-bus.c into
172         connection_forget_shared_unlocked, so libdbus consistently forgets
173         all its knowledge of a connection at once. This exposed numerous
174         places where things were totally broken if we dropped a ref inside
175         get_dispatch_status_unlocked where
176         connection_forget_shared_unlocked was previously, so move
177         connection_forget_shared_unlocked into
178         _dbus_connection_update_dispatch_status_and_unlock. Also move the
179         exit_on_disconnect here.
180
181         (shared_connections_shutdown): this assumed weak refs to the
182         shared connections; since we have strong refs now, the assertion 
183         was failing and stuff was left in the hash. Fix it to close
184         still-open shared connections.
185         
186         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
187         debug pipe connections
188         
189         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
190         dbus-bus.c if the closed connection is in fact shared
191         (_dbus_connection_close_possibly_shared): rename from 
192         _dbus_connection_close_internal
193         (dbus_connection_close, dbus_connection_open,
194         dbus_connection_open_private): Improve docs to explain the deal
195         with when you should close or unref or both
196
197         * dbus/dbus-bus.c
198         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
199         from _dbus_bus_check_connection_and_unref_unlocked and modify to
200         loop over all connections
201
202         * test/test-utils.c (test_connection_shutdown): don't try to close
203         shared connections.
204
205         * test/name-test/test-threads-init.c (main): fix warnings in here
206
207         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
208         env variable to cause blocking waiting for gdb; drop
209         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
210         unconditionally.
211
212         * configure.in: add -export-dynamic to libtool flags if assertions enabled
213         so _dbus_print_backtrace works.
214
215         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
216         instead of _dbus_verbose to print the backtrace, and diagnose lack 
217         of -rdynamic/-export-dynamic
218         
219 2006-09-30  Havoc Pennington  <hp@redhat.com>
220
221         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
222         (internal_bus_get): fix screwy code formatting. whoever committed
223         that was not paying attention!
224
225 2006-09-30  Havoc Pennington  <hp@redhat.com>
226
227         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
228         reflect addition of interfaces.
229
230         * doc/dbus-specification.xml: describe a new
231         org.freedesktop.DBus.Peer.GetMachineId method
232
233         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
234         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
235         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
236         at end of skip_white
237         (_dbus_string_chop_white): new function
238
239         * bus/connection.c (bus_connections_setup_connection): call
240         dbus_connection_set_route_peer_messages.
241
242         * dbus/dbus-connection.c
243         (_dbus_connection_peer_filter_unlocked_no_update): modify to
244         support a GetMachineId method.
245
246         Also, support a new flag to let the bus pass peer methods through
247         to apps on the bus, which can be set with
248         dbus_connection_set_route_peer_messages.
249
250         Finally, handle and return an error for anything unknown on the
251         Peer interface, which will allow us to extend the Peer interface
252         in the future without fear that we're now intercepting something
253         apps were wanting to see.
254         
255         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
256         dbus/dbus-uuidgen.c
257
258         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
259         binary here, since most of the code is already in libdbus
260
261         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
262         uuid from the system config file
263
264         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
265         (_dbus_read_uuid_file_without_creating) 
266         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
267         uuid-related functions, partly factored out from dbus-server.c
268
269         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
270         DBUS_ERROR_FILE_EXISTS instead of EEXIST
271
272         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
273
274         * tools/dbus-cleanup-sockets.1: explain what the point of this
275         thing is a bit more
276
277         * autogen.sh (run_configure): add --config-cache to default
278         configure args
279
280         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
281         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
282
283         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
284         don't try to save address, fixes crash in make check
285         
286 2006-09-30  Thiago Macieira  <thiago@kde.org>
287
288         * configure.in: add DBUS_BINDIR as a #define to C source code.
289
290         * tools/dbus-launch.c
291         * tools/dbus-launch.h
292         * tools/dbus-launch-x11.c:
293         * tools/dbus-launch.1: Add the --autolaunch option to
294         dbus-launch, which makes it scan for an existing session
295         started with --autolaunch. With that option, it also creates
296         an X11 window and saves the bus address and PID to it.
297
298         * dbus/dbus-sysdeps.h:
299         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
300         a function that runs "dbus-launch --autolaunch" to retrieve
301         the running D-Bus session address (or start one if none was running)
302
303         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
304         address protocol, which tries to get the running session from
305         dbus-launch.
306
307         * dbus/dbus-bus.c:
308         * dbus/dbus-internals.h: Make "autolaunch:" be the default
309         D-Bus session bus address.
310
311         * dbus/dbus-connection.c: Fix horrible typo in error message.
312
313 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
314
315         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
316
317 2006-09-17  Havoc Pennington  <hp@redhat.com>
318
319         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
320         fix so that if unix_user_function is set on windows, we still
321         do the default check that the auth identity matches the bus identity
322
323 2006-09-16  Havoc Pennington  <hp@redhat.com>
324
325         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
326         to _dbus_transport_open_platform_specific,
327         _dbus_transport_open_socket,
328         and _dbus_transport_open_debug_pipe
329
330         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
331
332 2006-09-16  Havoc Pennington  <hp@redhat.com>
333
334         Attempt auditing public API to remove all cases where a Unix
335         function returns weird emulated goo to Windows. This probably 
336         breaks the bus daemon on Windows, to fix it again we may 
337         need to stop processing unix-specific config options on Windows,
338         and may need to add Windows-specific public API or config options.
339         
340         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
341         to reflect added interfaces; should not break soname.
342         
343         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
344         not invoke unix user function on Windows. Kind of a hacky fix, but 
345         we don't want a "unix uid" leaking out on Windows.
346
347         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
348         to get the socket fd on Windows or UNIX
349         (dbus_connection_get_unix_fd): make this always fail on Windows
350
351 2006-09-16  Havoc Pennington  <hp@redhat.com>
352
353         * dbus/dbus-server.c (dbus_server_listen): change how this works
354         to be able to delegate to a set of handlers that can succeed,
355         fail, or choose not to handle. Allows us to have 
356         dbus_server_listen_platform_specific.
357
358         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
359         factor out the tcp socket stuff to be used on windows, leaving
360         unix domain socket only in dbus-socket-unix.c
361
362         * dbus/dbus-transport-socket.c
363         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
364         stuff to be used on windows, leaving unix domain socket only 
365         in dbus-transport-unix.c
366
367         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
368         temporary hack to be sure this fails on windows
369         (dbus_connection_get_unix_process_id): ditto
370
371 2006-09-16  Havoc Pennington  <hp@redhat.com>
372
373         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
374         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
375         _dbus_open_socket so the domain/type/protocol from system headers
376         are not required. This is kind of pointless though unless we move
377         part of _dbus_connect_tcp_socket into sysdeps.c instead of
378         sysdeps-unix.c, which would mean adding a wrapper around
379         bind/listen/etc.
380         Also, add DBusError to the socket-opening functions so they 
381         don't require use of errno.
382
383 2006-09-16  Havoc Pennington  <hp@redhat.com>
384
385         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
386         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
387
388         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
389         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
390         functions specifically for sockets only, and move generic 
391         read/write/open/close into unix-specific code.
392
393 2006-09-14  Havoc Pennington  <hp@redhat.com>
394
395         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
396         complaint about accessing revents when poll returns 0, from Julian Seward.
397
398 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
399
400         * Released 1.0 RC 1 (0.93) 
401
402 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
403
404         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
405         use _dbus_close instead of close
406
407 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
408
409         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
410         credentials.  Fixes "external" authentication under e.g. NetBSD
411         which does not support any other socket credentials mechanism.
412         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
413
414 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
415
416         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
417         dbus_threads_init and be used by the dbus mutex functions to
418         avoid deadlocks.
419
420         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
421
422 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
423
424         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
425         use threadsafe readdir_r instead of readdir
426
427 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
428
429         * dbus-threads.c (dbus_threads_init_default): New method for
430         initializing the internal thread implementation (Patch from
431         Alexander Larsson <alexl at redhat dot com>)
432
433 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
434
435         * remove a bunch of todo items from the 1.0 list
436
437 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
438
439         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
440         key not found
441
442 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
443
444         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
445         complex debugging code
446
447         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
448         between the test suite ifdefs
449         (_dbus_verbose_bytes): return if verbosity is not enabled 
450
451 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
452
453         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
454         remove DBusMark
455
456 2006-09-10  Havoc Pennington  <hp@redhat.com>
457
458        patch mostly by Peter Kümmel, bug #8211
459         
460         * dbus/dbus-sysdeps-unix.c: new file, which splits out
461         unix-specific stuff in dbus-sysdeps.c
462
463         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
464         and move unix-specific stuff to dbus-sysdeps-unix.c
465
466         * configure.in: check HAVE_ERRNO_H
467         
468 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
469
470         * bus/test-main.c (main): Initialize threading during tests
471
472         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
473         Unlock connection on error
474         (generate_local_error_message): static method for generating
475         an error message when we don't have a message to reply to
476         (_dbus_connection_block_pending_call): Send a disconnect error
477         instead of just a timeout (NULL) when the bus gets disconnected
478         while blocking for a reply.
479         
480 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
481
482         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
483         filters (Patch from Kimmo Hämäläinen 
484         <kimmo dot hamalainen at nokia dot com>)
485
486 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
487
488         * dbus/dbus-connection-internal.h: Add prototype for 
489         _dbus_connection_test_get_locks to remove warning
490
491 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
492
493         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
494         close child_err_report_pipe[WRITE_END] on exec (Patch from 
495         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
496
497 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
498
499         * Clean up close calls to use _dbus_close (Patch from 
500         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
501
502 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
503
504         * doc/TODO:
505         - Remove pending call locking todo item
506         - dbus_connection_open now holds hard ref.  Remove todo item
507         - do proper locking on _dbus_bus_check_connection_and_unref
508           and handle DBUS_BUS_STARTER. Remove todo item
509         - Warn on closing of a shared connection.  Remove todo item
510
511         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
512         dbus/dbus-connection.c: Use the dbus_connection_close_internal
513         so we don't get the warning when closing shared connections
514
515         * test/test-service.c, test/test-shell-service.c: Applications
516         don't close shared connections themselves so we unref instead of
517         close
518
519         * test/test-utils.c (test_connection_shutdown): Close the connection
520
521         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
522         _dbus_bus_check_connection_and_unref_unlocked since we only call this
523         method on a locked connection.  
524         Make sure we call _dbus_connection_unref_unlocked instead of 
525         dbus_connection_unref also.
526         Handle DBUS_BUS_STARTER correctly
527
528         * dbus/dbus-connection.c (connection_record_shared_unlocked):
529         Mark as shared and hard ref the connection
530         (connection_forget_shared_unlocked): Remove the hard ref from the 
531         connection
532         (_dbus_connection_close_internal_and_unlock):  New internal function
533         which takes a locked connection and unlocks it after closing it
534         (_dbus_connection_close_internal): New internal function which acts
535         like the origonal dbus_connection_close method by grabbing a connection
536         lock and calling _dbus_connection_close_internal_and_unlock
537         (dbus_connection_close): Public close method, warns when the app
538         trys to close a shared connection
539
540 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
541
542         * bus/driver.c:
543         (bus_driver_generate_introspect_string): New method for populating
544         a DBusString with the introspect data
545         (bus_driver_handle_introspect): Move introspect generation code to 
546         bus_driver_generate_introspect_string
547
548         * bus/main.c:
549         (introspect): New function which prints out the intropect data and
550         exits
551         (main): Add a --introspect switch
552
553 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
554
555         * doc/TODO: Removed dtd publishing item.  
556         It seems the dtd has already been added at
557         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
558
559 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
560
561         * doc/TODO, various source files: Audited todo's and FIXME's and
562         prepended the ones we should be looking at with 1.0.  Those
563         prepended with 1.0? need clerification or might not be needed
564         for 1.0
565
566 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
567
568         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
569         NULL in the public API (Patch from Kimmo Hämäläinen 
570         <kimmo dot hamalainen at nokia dot com>)
571
572 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
573
574         * configure.in: Fix for OS-X compile time endian issues (patch from
575         Benjamin Reed <ranger at befunk dot com>)
576
577 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
578
579         * configure.in: Check for no-common compiler flag (OS-X fix from
580         Benjamin Reed <ranger at befunk dot com>)
581
582 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
583
584         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
585         <fcrozat at mandriva dot com>)
586
587 2006-08-29  Havoc Pennington  <hp@redhat.com>
588
589         * test/test-service.c (path_message_func): fix lack of return value
590
591         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
592         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
593         any more sense than on anything else in this file.
594         (_dbus_get_tmpdir): add const to return value, and keep the
595         results of the various getenv around in a static variable.
596
597 2006-08-29  Havoc Pennington  <hp@redhat.com>
598
599         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
600         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
601
602 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
603
604         * test/Makefile.am: change find to use syntax that works with non
605         gnu versions of find
606
607 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
608
609         * dbus/dbus-transport.c: fix invalid deref when checking if
610         a vtable method exists (Patch from Christian Ehrlicher 
611         <ch dot ehrlicher at gmx dot de>)
612
613 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
614
615         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
616         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
617         to build with builddir != srcdir (Taken from a patch by Bernard Leak
618         <bernard at brenda-arkle dot demon dot co dot uk>)
619
620 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
621
622         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
623         default case
624
625 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
626
627         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
628         it works on any system providing this interface, not only FreeBSD.
629         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
630
631 2006-08-20  Havoc Pennington  <hp@redhat.com>
632
633         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
634         the docs
635
636 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
637
638         * Released 0.92 
639
640 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
641
642         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
643         to reflect the init late change
644
645         * bus/bus.c (bus_context_new): Check user before we fork so we can
646         print out an error message a user will be able to see
647
648 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
649
650         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
651
652         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
653         Add two more global locks for use on windows platforms.  These are
654         unused on non-windows platforms but are not ifdefed out to avoid
655         potential bugs (i.e. the few bytes lost does not warrent the extra
656         maintanence and complexity that having seperate sets of locks would
657         cause)
658
659 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
660
661         * bus/services.c (bus_registry_acquire_service): Return an error
662         when an application tries to register the org.freedesktop.DBus Bus Name
663
664         * bus/services.c (bus_registry_release_service): Return an error
665         when an application tries to release the org.freedesktop.DBus Bus Name
666
667 2006-08-17  Alp Toker  <alp@atoker.com>
668
669         * doc/dbus-specification.xml: Fix some minor typos.
670
671 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
672
673         * configure.in: use $with_init_scripts instead of $operating_system
674         to determine where to store the pid since the init scripts manipulate 
675         the pid file (patch from Marcelo Ricardo Leitner 
676         <marcelo dot leitner at terra dot com dot br>.  
677
678 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
679
680         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
681         static DBusList *uninitialized_condvar_list to support new late 
682         initialization threading model.  In this model threads can be initialized
683         even after the D-Bus API has been used but still needs to be initialized 
684         before the second thread has been started.  Mutexes and condvar addresses
685         are stored in the two static lists and are replaced with actuall locks
686         when threads are initalized.
687         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
688         the location into the static list
689         (_dbus_mutex_free_at_location): New method for removing a mutex location 
690         from the static list and freeing the mutex
691         (_dbus_condvar_new_at_location): New method for creating a conditional 
692         variable and placing the location into the static list
693         (_dbus_condvar_free_at_location): New method for removing a conditional
694         variable location from the static list and freeing the conditional variable 
695         (init_uninitialized_locks): Atomic method which goes through the static 
696         lists of mutex and condvar location and updates them with actuall locks
697         (init_global_locks): changed to init_locks
698         
699         * dbus/dbus-connection.c:
700         (_dbus_connection_test_get_locks): New method for tests to check connections
701         (_dbus_connection_new_for_transport): Use the new at_location mutex and
702         condvar API
703         (dbus_connection_allocate_data_slot): Pass in the global lock address
704         to _dbus_data_slot_allocator_alloc
705
706         * dbus/dbus-dataslot.c:
707         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
708         instead of the mutex itself
709
710         * dbus/dbus-message.c:
711         (dbus_message_allocate_data_slot): Pass in the global lock address
712         to _dbus_data_slot_allocator_alloc
713
714         * dbus/dbus-pending-call.c:
715         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
716         to _dbus_data_slot_allocator_alloc
717
718         * dbus/dbus-server.c:
719         (_dbus_server_init_base): Use the new at_location mutex API
720         (dbus_server_allocate_data_slot): Pass in the global lock address
721         to _dbus_data_slot_allocator_alloc
722
723         * test/name-test/test-threads-init.c: New test case for late thread
724         initialization
725
726 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
727
728         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
729         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
730         causes compile problems when asserts are turned off
731         Keeping _dbus_warn for printing out the message so even if
732         asserts are turned off the user gets the messages that something is 
733         wrong 
734
735 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
736
737         Patches by Kjartan Maraas <kmaraas at gnome dot org>
738
739         * bus/services.c (bus_service_list_queued_owners):
740         Add a pointer cast to fix compiler warning
741
742         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
743         return a NULL instead of FALSE since the return type
744         is not expecting a boolean
745
746         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
747         Remove unused variable
748
749         * dbus/dbus-marshal-recursive-util.c (node_new):
750         return a NULL instead of FALSE since the return type
751         is not expecting a boolean
752
753         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
754         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
755         because we are expecting a pointer not a boolean
756
757         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
758         add void as the parameter so some compilers
759         don't complain
760
761         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
762           _dbus_transport_new_for_tcp_socket):
763         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
764         because we are expecting a pointer not a boolean
765
766         * test/shell-test.c (test_command_line):
767         cast the second argument to _dbus_list_append to avoid compiler
768         warnings
769
770         * test/test-names.c (main): remove unused variable
771
772         * test/test-service.c (check_hello_from_self_reply):
773         Initialize echo_message and echo_reply to NULL
774         
775         * test/test-shell-service.c (handle_echo):
776         Remove unused variable and cast the third parameter passed to
777         dbus_connection_get_object_path_data to avoid compiler warrnings
778
779         * test/name-test/test-names.c (clear_message_queue):
780         Remove unused function
781
782         * test/name-test/test-pending-call-dispatch.c:
783         Fix format string in printf
784
785
786 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
787
788         * dbus/dbus-bus.c:
789         * test/name-test/test-names.c:
790         Remove test method dbus_bus_connection_get_unique_name because 
791         we already have public method dbus_bus_get_unique_name that 
792         does the exact same thing
793
794 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
795
796         * dbus/dbus-signature.c:
797         fix typos in Julio's previous patch which cause make check to fail
798
799 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
800
801         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
802         In any case it was wrong since this is a test checking to see if
803         address parsing is correct.  There was no need to get the true
804         tmp directory.  
805
806 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
807
808         * dbus/dbus-macros.h: Revert the addition of stddef.h
809         as we should not be adding it to library headers 
810
811 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
812
813         * dbus/dbus-signature.c:
814         Fix the unit tests so that they work if assertions are not enabled.
815         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
816
817 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
818
819         * tools/run-with-tmp-session-bus.sh:
820         * test/name-test/run-test.sh:
821         Remove bashisms (patch from Julio M. Merino Vidal
822         <jmmv at NetBSD dot org>)
823
824 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
825
826         * configure.in: add a version (>= 2.6.0) check for libxml2
827
828 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
829
830         * configure.in: make sure the compiler supports -Wfloat-equal
831         
832         * bus/dir-watch-dnotify.c: move functional code after 
833         variable declerations (C99 fix)  (patches from Jens Granseuer
834         <jensgr at gmx dot net>
835
836 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
837
838         * dbus/dbus-macros.h:
839         add #include <stddef.h> so that Sun compilers don't complain about
840         the defining NULL
841
842 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
843
844         * dbus/dbus-sysdeps.c:
845         * dbus/dbus-address.c:
846         * bus/activation.c:
847         * test/shell-test.c:
848         don't hardcode tmp directory (patch from Dave Meikle 
849         <dmk at davemeikle dot co dot uk>)
850
851 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
852
853         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
854         Change an assert to a detailed warning and abort.  
855         When allocator->lock != mutex it indicates that the user has failed
856         to initalize threads before using the D-Bus library.  This warning
857         helps the user identify the issue and fix their app.
858
859 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
860
861         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
862         with cleanups of bugs found from Coverity reports:
863
864         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
865         close the file on error to avoid a leak
866
867         * bus/expirelist.c (bus_expire_list_test):
868         Check for NULL on dbus_new0
869
870         * bus/activation.c (update_directory):
871         remove dead code
872
873         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
874         Fix some leaks
875
876         * bus/bus.c (process_config_every_time):
877         Fixed a leak
878
879         * bus/desktop-file.c (parse_key_value):
880         Fixed leak
881
882         * bus/selinux.c (bus_selinux_id_table_insert):
883         Fixed leak
884
885 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
886
887         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
888         remove dead code
889
890 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
891
892         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
893         #!/bin/bash
894
895 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
896
897         * Doxyfile.in: fix the INPUT line so we can generate docs 
898         when sourcedir != builddir (patch from Cygwin Ports maintainer
899         <yselkowitz at users dot sourceforge dot net>
900
901 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
902
903         * dbus/dbus-sysdeps.h:
904         * dbus/dbus-sysdeps.c: 
905         * dbus/dbus-string.c: 
906         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
907         GLib's function which does the same thing
908
909         * configure.in:
910         * bus/Makefile.am:
911         * bus/dir-watch-default.c:
912         * bus/dir-watch-dnotify.c:
913         * bus/dir-watch-kqueue.c:
914         Add kqueue directory watching for freebsd and split the directory
915         watching code into seperate files per method/arch
916         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
917
918 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
919
920         * configure.in:
921         * tools/Makefile.am:
922         * tools/dbus-launch.c:
923         * bus/Makefile.am:
924         allow --with-dbus-daemondir switch to be used to make the
925         daemon install to a seperate bindir like /usr/libexec
926         (patch from Brian Cameron <brian dot cameron at sun dot com)
927
928 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
929
930         * bus/Makefile.am (install-data-hook): removed the slash after 
931         $(DESTDIR) so we don't get the double slash which does not work
932         in windows (patch from Andras Porjesz 
933         <andras dot porjesz at siemens dot com>)
934
935 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
936
937         * dbus/dbus-sysdeps.h:
938         * dbus/dbus-sysdeps.c: 
939           add _dbus_printf_length (patch from Peter Kümmel 
940           <syntheticpp at gmx dot net>)
941
942 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
943
944         * dbus/dbus-internals.c: unistd.h is not used 
945         (_dbus_verbose_real): only enable verbose printing 
946         if DBUS_VERBOSE environment var is set to '1'
947         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
948
949 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
950
951         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
952         so we still compile on older gcc (patch from Frederic Peters 
953         <fpeters at 0d dot be>
954
955 2006-08-04  Havoc Pennington  <hp@redhat.com>
956
957         * configure.in: add -Wdeclaration-after-statement
958
959         * dbus/dbus-connection.c: change all the pending call stuff to
960         reflect the fact that pending call operations use the connection
961         lock
962
963         * dbus/dbus-pending-call.c: add locking here
964
965         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
966         field const consistent with how message field is done
967
968 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
969
970         * s/D-BUS/D-Bus/g
971
972 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
973
974         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
975         <in7y118 at public.uni-hamburg dot de> - fix invalid
976         read/write reported by valgrind
977
978 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
979
980         * Released 0.91
981
982 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
983
984         * dbus/dbus-connection.c:
985         (_dbus_connection_attach_pending_call_unlocked):
986         (connection_timeout_and_complete_all_pending_calls_unlocked):
987         Make sure we set timeout_added on pending calls to FALSE when
988         we remove the timeout from the connection
989
990 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
991
992         * Removed some extra bindings stuff lingering around (thanks timo)
993         * dbus-pendingcall.c (_dbus_pending_call_new): 
994         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
995         when we tried to take a lock on an already locked connection
996
997 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
998
999         * Released 0.90
1000
1001 2006-07-17  Havoc Pennington  <hp@redhat.com>
1002
1003         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1004         ints, reported by Owen Taylor
1005
1006 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1007
1008         * doc/TODO:
1009         * dbus/dbus-bus.c:
1010         * dbus-errors.c:
1011         * dbus/dbus-marshal-validate.c:
1012           Removed TODO items which were fixed or are no longer relevent
1013
1014 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1015
1016         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1017         Remove stray files from the stripped bindings
1018
1019 2006-07-16  Havoc Pennington  <hp@redhat.com>
1020
1021         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1022         Improve the error message on reply timeout
1023
1024 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1025
1026         * Remove all bindings
1027
1028 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1029
1030         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1031         and set pending_reply out arg to NULL is connection is disconnected
1032         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1033         static method for cleaning up pending calls on disconnect
1034         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1035         calls queued timeouts on disconnect 
1036
1037          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1038         Remove 
1039
1040 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1041
1042         * bus/activation.[ch] (bus_activation_list_services): new function to 
1043         get the list of services that can be activated
1044
1045         * bus/dispatch.c: test coverage for the new bus method
1046         ListActivatableNames
1047
1048         * bus/driver.c: new bus method ListActivatableNames to get the list of
1049         services that can be activated
1050
1051         * doc/dbus-specification.xml: ListActivatableNames method documentation
1052
1053 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1054         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1055         source files
1056
1057 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1058         * dbus/dbus-message-factory.c:
1059         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1060
1061 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1062         * dbus/dbus-connection-internal.h:
1063         * dbus/dbus-connection.c:
1064         * file dbus/dbus-pending-call.c:
1065         * dbus/dbus-pending-call.h:
1066         Make DBusPendingCall an opaque type even to D-Bus internals
1067
1068 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1069
1070         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1071         connection_close
1072
1073         * dbus/dbus-connection.c: include dbus-bus.h
1074         (_dbus_connection_read_write_dispatch): make static
1075
1076 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1077
1078         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1079         function
1080         (dbus_connection_dispatch): On disconnect unref any shared connections
1081
1082         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1083         for cleaning up shared connections on disconnect
1084         (internal_bus_get): get a hard refrence to shared connections when
1085         they are created
1086         
1087         * doc/TODO: Remove items which are no longer relevent or have been fixed
1088         Split 1.0 todo items with a 0.90 freeze todo list
1089  
1090 2006-06-14  Ross Burton  <ross@openedhand.com>
1091
1092         * glib/dbus-gobject.c:
1093         Free a leaking GArray (surely not!) in dbus_g_method_return.
1094
1095 2006-06-14  Ross Burton  <ross@openedhand.com>
1096
1097         * tools/Makefile.am:
1098         * tools/dbus-monitor.c:
1099         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1100         Habacker).
1101         
1102 2006-06-14  Ross Burton  <ross@openedhand.com>
1103
1104         * tools/dbus-print-message.c:
1105         Also print the object path when outputting signals or method calls.
1106
1107 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1108
1109         * qt/src/Makefile.am: install the qdbus.h header.
1110         This allows people to actually use the installed code.
1111
1112 2006-06-12  Ross Burton  <ross@openedhand.com>
1113
1114         * glib/dbus-gproxy.c:
1115         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1116
1117 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1118
1119         * Released 0.62
1120
1121 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1122
1123         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1124         break pedantic builds. Closes bug 6043 (patch approved by
1125         Havoc back in February).
1126
1127 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1128
1129         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1130         that took a QDBusMessage parameter.
1131         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1132         * qt/tools/dbus.cpp: Don't use automatic call because we might
1133         be calling an async method: request a reply.
1134
1135 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1136
1137         * test/qt/*: Update the testcases, including testing the new
1138         functionality of sending null QByteArray and QString over the
1139         bus. Add new headertest test and restore the old
1140         qdbusxmlparser test.
1141
1142 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1143
1144         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1145         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1146
1147         * qt/examples/Makefile.am:
1148         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1149         form.
1150
1151         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1152         QByteArray() (nulls) over the bus.
1153         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1154         the one that has the signature suffix stripped.
1155         * qt/src/qdbusreply.h: Make some methods const.
1156
1157 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1158
1159         Patch from Timo Hoenig <thoenig@suse.de>.
1160
1161         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1162         required during build to EXTRA_DIST.
1163         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1164         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1165         * configure.in: Fix "make dist", take care that the Makefile for
1166         qt/dbus is being generated.
1167
1168 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1169
1170         * bus/bus.c: Fix eavesdropping on method calls
1171
1172 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1173
1174         * configure.in:
1175         * dbus/dbus-userdb-util.c:
1176         Add Solaris console owner patch from Artem Kachitchkine
1177
1178 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1179
1180         * qt/Makfile.am:
1181         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1182         reorganisation. Thanks to Timo Hoenig for pointing this out.
1183
1184 2006-06-06  Robert McQueen  <robot101@debian.org>
1185
1186         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1187           call to dbus_g_type_get_struct.
1188
1189 2006-06-06  Robert McQueen  <robot101@debian.org>
1190
1191         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1192           pointers were put into a GPtrArray-based specialised collection, and
1193           then freed along with the array. GValues which you add into
1194           collections or maps which have the NOCOPY flag set are assumed to not
1195           belong to the caller, so rather than the existing pointer-stealing
1196           semantics, they are copied instead. Given that the main consumers of
1197           this abstraction are the bindings themselves, I don't think this is
1198           too bad, but others should watch their choice of take vs set_static.
1199
1200 2006-06-06  Robert McQueen  <robot101@debian.org>
1201
1202         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1203           of g_slist_prepend not being used. Fixed copying of slist-based
1204           specialised collections, then wrote a test case and found that it was
1205           all broken. Went on to fix iterating and appending too. Good thing
1206           nobody uses this code yet.
1207
1208 2006-06-06  Robert McQueen  <robot101@debian.org>
1209
1210         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1211           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1212           are discarded without unsetting, so it makes no difference whether
1213           we take or set_static). Remove cases for G_TYPE_POINTER because
1214           there really is nothing useful we can do with them in our
1215           specialised types - we *need* boxed copy/free functions at the very
1216           least.
1217
1218 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1219
1220         * qt/dbus: Add directory. I had forgotten to add this
1221         yesterday after the move...
1222
1223         * qt/examples/Makefile.am:
1224         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1225
1226         * qt/tools/Makefile.am:
1227         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1228         Added feature to get and set properties.
1229         Added validation of service, object path and interface names.
1230
1231         * qt/tools/dbusidl2cpp.cpp: Two new features:
1232         1) Allow specifying both the header and the source file names,
1233         by separating them with a colon.
1234         2) Don't write an interface output if the -p switch wasn't
1235         given, but the -a was.
1236
1237         * qt/src/*: Fix usage of Iterators and ConstIterators.
1238         Fix shadowing of variables by other variables (-Wshadow).
1239         Fix keyword-cleanliness in headers.
1240         Fix ASCII-cast (QLatin1String, QLatin1Char).
1241         Fix validation of member names.
1242         Add extra checking of introspection data during XML parsing.
1243         Various bug fixes.
1244
1245 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1246
1247         * dbus/Makefile.am:
1248         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1249         qt/dbus/qdbus.h now.
1250
1251 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1252
1253         * configure.in: Make --disable-qt actually do
1254           something. Patch inspired by Zack Rusin.
1255
1256 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1257
1258         * qt/: Update to Subversion r548032.
1259         This includes a big reorganisation of the files inside the
1260         subdir.
1261
1262 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1263
1264         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1265         clear:  
1266         "Failed to connect to socket <host>:<port> <error>" instead of
1267         "Failed to connect to socket <host>: <error>:<port>"
1268
1269         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1270         for a tcp transport. 
1271
1272 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1273
1274         * qt/*: Update the QtDBus bindings up to revision 546310 in
1275         Subversion.
1276         This adds the dbuscpp2xml tool, that parses a C++ header and
1277         outputs a D-BUS Introspection XML.
1278
1279 2006-05-21  Havoc Pennington  <hp@redhat.com>
1280
1281         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1282         is not NULL when it shouldn't be. Also a couple of possible fixes
1283         for #4637 though I don't understand why the bug happens, to be
1284         honest... also the object constructor has an assert name != NULL
1285         and the name is only currently NULL for peer-to-peer proxies that 
1286         I don't think anyone uses? So it should be asserting.
1287         Anyway, for now at least see if we get an earlier assertion failure.
1288
1289         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1290         apparently broken code to be sure the tests fail and someone 
1291         will fix them...
1292
1293 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1294
1295         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1296         and arrays when they had a single element: has_next returns
1297         false, even before you read the element. So, instead, check
1298         the array length.
1299
1300 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1301
1302         * qt/qdbusmessage.cpp:
1303         * qt/qdbustypehelper_p.h:
1304         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1305         the list is a const-reference
1306
1307 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1308
1309         * Adding old doc patch that never got applied
1310         
1311         * dbus/bus.c (dbus_bus_add_match): Add documentation
1312
1313         * doc/dbus-specification.xml: Add documentation for the match rules
1314           and the AddMatch and RemoveMatch methods
1315
1316 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1317
1318         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1319         call (r535506)
1320
1321         * qt/dbusidl2cpp.cpp:
1322         * qt/qdbusabstractadaptor.cpp:
1323         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1324         sibling of the QDBusAbstractAdaptor objects instead of the
1325         parent. (r535848)
1326
1327         * qt/dbusidl2cpp.cpp:
1328         * qt/qdbusabstractinterface.cpp:
1329         * qt/qdbusabstractinterface.h:
1330         * qt/qdbusabstractinterface_p.h:
1331         * qt/qdbusinterface.cpp: Make properties in interfaces
1332         actually work. The code that was generated would not compile,
1333         due to moc calls to functions that did not exist. They now
1334         shall. (r536571)
1335
1336 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1337
1338         * Makefile.am:
1339         * configure.in:
1340         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1341         Thanks to Brad Hards for providing the patch
1342
1343 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1344
1345         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1346         call. (r535506)
1347
1348 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1349
1350         * qt/examples/dbus.cpp: Enhance error messages and use
1351         QDBusInterfacePtr.
1352
1353 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1354
1355         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1356         and disable the copy operators. (r533772, r534746)
1357
1358         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1359
1360         * qt/qdbusabstractinterface.cpp:
1361         * qt/qdbusabstractinterface.h: Change the default call mode to
1362         not use the event loop. Add convenience call() methods that
1363         take a CallMode parameter. (r534042)
1364
1365         * qt/qdbusconnection.h: Change the default call mode to not
1366         use the event loop. (r534042)
1367
1368         * qt/qdbusinterface.cpp:
1369         * qt/qdbusinterface.h: Add a method to tell us if the
1370         interface is valid (since we don't return a null pointer
1371         anymore) (r534099)
1372
1373         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1374         (r534101)
1375
1376         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1377         function in two so taht we get the chance to introspect
1378         without having a QDBusMessage (r534102)
1379
1380         * qt/qdbusbus.h:
1381         * qt/qdbusconnection.cpp:
1382         * qt/qdbusconnection_p.h:
1383         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1384         avoid a round-trip to the server when attempting to introspect
1385         one of our own objects. Also make sure the filter functions
1386         match the empty interface as well. (r534108)
1387         Don't keep the connection names. Instead, trust the unique
1388         connection name (r534111)
1389         Remove event loop usage (r534112)
1390
1391 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1392
1393         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1394         Brad Hards.
1395
1396 2006-04-28  Robert McQueen  <robot101@debian.org>
1397
1398         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1399         any order, making it easier for people who inherit from this
1400         object.
1401
1402 2006-04-28  Robert McQueen  <robot101@debian.org>
1403
1404         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1405         of memory from within pointer arrays and lists. Fixes bug #6300.
1406
1407 2006-04-28  Robert McQueen  <robot101@debian.org>
1408
1409         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1410         generating struct signatures. Fixes bug #6083.
1411
1412 2006-04-28  Robert McQueen  <robot101@debian.org>
1413
1414         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1415         to qdbusconnection_p.moc.
1416
1417 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1418
1419         * README, INSTALL: Doc fixes
1420         Patch from Brad Hards <bradh at frogmouth.net>
1421
1422 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1423
1424         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1425         the dynamic meta object. No need to guess which interface to
1426         call.
1427
1428 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1429
1430         * qt/qdbusconnection_p.h:
1431         * qt/qdbusmetaobject.cpp:
1432         * qt/qdbusmetaobject_p.h:
1433         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1434         for the dynamic meta object. No need to guess which
1435         interface to call.
1436         * qt/qdbusabstractinterface_p.h:
1437         * qt/qdbusconnection.cpp:
1438         * qt/qdbusintegrator.cpp:
1439         * qt/qdbusinterface.cpp:
1440         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1441         Add a QDBusRef that looks and behaves like DCOPRef.
1442
1443 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1444
1445         * dbus/dbus-connection.c: Interfaces are optional in method
1446         calls, so don't give up if the interface parameter is NULL.
1447         Patch reviewed by Havoc Pennington.
1448
1449 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1450
1451         * qt/qdbusreply.h: Add default constructor and operator=
1452           (r532625)
1453         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1454           in public headers (r532952)
1455         * qt/qdbusabstractinterface.cpp:
1456         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1457           make it the default (r532951)
1458
1459 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1460
1461         * dbus/dbus-connection.c: Fix asserts
1462         Patch from Tim Moloney <t.moloney at verizon.net>
1463
1464 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1465
1466         * mono/Connection.cs, mono/Message.cs: Check Target type
1467         Patch from Aaron Bockover (abockover at novell.com)
1468
1469 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1470
1471         * INSTALL: fine-tune the requirements for the Qt4 binding.
1472
1473 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1474
1475         * tools/dbus-print-message.c: Added support for printing of all 
1476           remaining data types. Fixed logic for indentation of compound
1477           data types.
1478         
1479 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1480
1481         * INSTALL: fill out content of file providing DBus specific
1482           build installations, followed by generic Auto* INSTALL file
1483           content
1484         
1485 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1486
1487         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1488           Patch by Stefan Eilers. (r529537)
1489
1490 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1491
1492         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1493           contents (r528208)
1494
1495 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1496
1497         * qt/Makefile.am: fix the dependency for
1498           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1499           not in qdbusconnection.cpp.
1500           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1501           spotting this.
1502
1503 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1504
1505         * qt/examples/listnames.cpp:
1506         * qt/examples/Makefile.am: Three ways to list the names on the
1507           bus.
1508
1509 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1510
1511         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1512           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1513
1514 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1515
1516         Merge from Subversion:
1517         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1518           something that exists (r526315)
1519         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1520           slots/signals (r526316)
1521         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1522           also return an unknown-method error if the parameters don't
1523           match for org.freedesktop.DBus.Properties. (r526842)
1524         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1525         * qt/qdbusintegrator.cpp: Restore the proper order of
1526           delivery: don't make method returns be delivered on priority
1527           (r528150)
1528
1529 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1530
1531         * configure.in qt/Makefile.am: add qt/examples
1532         * qt/examples: Add QtDBus example programs:
1533           - hello: Hello, World
1534           - ping: Simple method-calling program
1535           - pong: Simple object-exporting program (not using adaptors)
1536           - complexping: Interactive method-calling program 
1537                 (also gets and sets properties).
1538           - complexpong: Sample program exporting methods, signals and
1539                 properties, using adaptors.
1540           - dbus: Simple implementation of a generic method-calling
1541                 program, similar to 'dbus-send', but with semantics
1542                 similar to 'dcop'.
1543           - chat: Simplistic chat program, implemented using signals
1544                 and the system bus. Looks like IRC.
1545
1546 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1547
1548         * configure.in: Detect QtGui (necessary for one of the
1549           example programs). Note: this increases the minimum required
1550           version of Qt to 4.1.3.
1551
1552 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1553
1554         * test/qt/*: Sync with KDE Subversion revision 523647.
1555         Update the testcases to the new API. Remove testcases for
1556         classes that are no longer public or have been removed.
1557
1558 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1559
1560         * qt/*: 
1561         * dbus/qdbus.h: Sync with KDE Subversion revision
1562         523647. Hopefully, this will be the last of the
1563         source-incompatible changes. Documentation has been improved;
1564         support for QList<basic-types> has been added; QDBusObject is
1565         gone; QDBus(Abstract)Interface is now a QObject with
1566         auto-generated meta-object; QDBusIntrospection is marked
1567         private, since QMetaObject can be used now; lots of bugfixes.
1568
1569 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1570
1571         Patch from Milosz Derezynski <internalerror at gmail.com>
1572         
1573         * configure.in:
1574         Output the service directory in the configure summary
1575
1576         * dbus-1.pc.in:
1577         Add session_bus_services_dir
1578
1579 2006-03-10  Ross Burton  <ross@openedhand.com>
1580
1581         * tools/dbus-print-message.c:
1582         Add support for object paths and signatures.
1583
1584 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1585
1586         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1587         config reload.
1588         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1589         information caches
1590         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1591         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1592         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1593         * dbus/dbus-userdb.h: Add function to flush all user/group information
1594         caches.
1595
1596 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1597
1598         * qt/dbusidl2cpp.cpp:
1599         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1600         for dcopidl2cpp, found in the KDE installations (or the more
1601         modern kalyptus): generate Qt4 C++ code for the input XML
1602         introspection. Currently no IDL parsing.
1603
1604 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1605
1606         * test/qt/*: Update the self-tests.
1607
1608 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1609
1610         * qt/*: 
1611         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1612         represents the first feature-complete version of the Qt4
1613         bindings since I took ove maintainership.
1614
1615 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1616
1617         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1618         dir. This is C++, so we can't use the DBus ones.
1619
1620 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1621
1622         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1623         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1624
1625 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1626
1627         * dbus/dbus-connection.c: 
1628         (_dbus_connection_block_pending_call):
1629         Check to see if our data has already been read off the connection
1630         by another blocking pending call before we block in poll.
1631         (check_for_reply_and_update_dispatch_unlocked):
1632         Code taken from _dbus_connection_block_pending_call - checks for
1633         an already read reply and updates the dispatch if there is one.
1634
1635         * test/name-test/test-pending-call-dispatch.c:
1636         New test for making sure we don't get stuck polling a 
1637         dbus connection which has no data on the socket when
1638         blocking out of order on two or more pending calls.
1639
1640 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1641
1642         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1643         make/automake don't detect that we're talking about the same
1644         .lo file if I specify the full path to the source files.
1645
1646 2006-02-26  Havoc Pennington  <hp@redhat.com>
1647
1648         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1649
1650         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1651         session bus variable is unset, suggest "man dbus-launch" and "man
1652         dbus-daemon" to figure out how to fix the problem
1653
1654 2006-02-25  Havoc Pennington  <hp@redhat.com>
1655
1656         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1657         should make this thing use the new glib options parser
1658
1659 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1660
1661         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1662         .lo files taking moc sources.
1663
1664 2006-02-25  Havoc Pennington  <hp@redhat.com>
1665
1666         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1667         and install it as a public header
1668
1669 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1670
1671         * Released 0.61
1672
1673 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1674         
1675         * proxies.py: Fix the callchain
1676
1677 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1678         
1679         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1680
1681         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1682         dbus/dbus-sysdeps.c
1683
1684         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1685         call _dbus_group_info_free_allocated which causes infinite loop,
1686         correctly call _dbus_group_info_free
1687
1688 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1689
1690         * qt/qdbusinterface_p.h:
1691         * qt/qdbusinterface.cpp: Use the standard
1692         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1693         calls instead of creating one for us.
1694
1695         * qt/qdbusconnection_p.h:
1696         * qt/qdbusintegrator.cpp: Remove debugging code.
1697
1698         * qt/qdbusintegrator.cpp:
1699         * qt/qdbusmessage.cpp:
1700         * qt/qdbusmessage_p.h:
1701         * qt/qdbusmessage.h: Change the behaviour of automatic
1702         reply-sending: now a reply is always sent, unless the caller
1703         didn't request one or if the user slot has already sent one.
1704
1705 2006-02-16  Robert McQueen  <robot101@debian.org>
1706
1707         * configure.in: Patch from Debian packages by Sjoerd Simons
1708         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1709         arguments so it's possible to build both bindings in the
1710         same tree.
1711
1712         * qt/Makefile.am: Fix truncated value so that make dist works.
1713
1714 2006-02-16  Robert McQueen  <robot101@debian.org>
1715
1716         * acinclude.m4, configure.in: Patch from Brad Hards
1717         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1718         improving quoting, re-ordering a few checks, and a few other
1719         aesthetic tidy-ups.
1720
1721 2006-02-16  Robert McQueen  <robot101@debian.org>
1722
1723         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1724         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1725         assertion that the next element to read from the iter is fixed in
1726         size. This is not the case when you are at the end of the iter,
1727         because the next element type is INVALID.
1728
1729         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1730         a bogus assert which means that you may not initialise a 0-length
1731         string unless you provide a non-NULL pointer. This prevented
1732         you from marshalling messages containing zero-length arrays in
1733         some cases.
1734
1735         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1736         from Rob to correct bogus asserts when trying to demarshal an
1737         array and get_fixed_array got you 0 elements. Append nothing to
1738         the GArray in this case.
1739
1740         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1741         an empty array via the glib bindings. Without all of the above
1742         patches, this new test fails.
1743
1744 2006-02-16  Robert McQueen  <robot101@debian.org>
1745
1746         * glib/dbus-gmain.c: Make the previous commit compile.
1747
1748         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1749         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1750         specify sender_keyword="foo", path_keyword="bar" when adding
1751         a signal listener, so that you can bind to signals generically
1752         but still do something useful in your callback.
1753
1754         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1755         chars so that they're not cast to chars and made negative. Thanks
1756         to Jakub Stachowski for reporting this and testing the fix.
1757
1758 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1759
1760         * dbus/dbus-glib.h:
1761         * glib/dbus-gmain.h:
1762         (dbus_g_connection_open): new method for openning
1763         a connection to an arbitrary address in the glib bindings
1764
1765         * ChangeLog: checkin last entry which doesn't seem to be commited
1766
1767 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1768
1769         * tools/dbus-launch.c: Fixed sh syntax output
1770
1771 2006-02-13  Robert McQueen  <robot101@debian.org>
1772
1773         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1774         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1775         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1776         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1777         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1778         missing piece of the glib bindings jigsaw puzzle. This modifies
1779         the existing specialised types to have N type parameters (rather
1780         than the current 1 or 2 for arrays and dictionaries respectively).
1781         You can then use this to get a glib type to represent any arbitrary
1782         D-Bus struct type using dbus_g_type_get_struct. The only
1783         implementation of these types is with GValueArrays as before,
1784         but it's now possible to store these in arrays, emit them in
1785         signals, etc.
1786
1787 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1788
1789         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1790         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1791         <thiago.macieira at trolltech.com>
1792
1793 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1794
1795         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1796         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1797
1798 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1799
1800         * bus/connection.c (bus_connections_expect_reply): Make
1801         pending reply limit not common to all connections (Bug #5416)
1802         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1803
1804 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1805
1806         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1807
1808 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1809
1810         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1811         patch from Doug Goldstein <cardoe at gentoo.org>
1812
1813 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1814
1815         * mono/Arguments.cs: Fix a magic number in the mono bindings
1816         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1817
1818 2006-01-27  Robert McQueen  <robot101@debian.org>
1819
1820         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1821         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1822         when generating the client-side methods, instead of overloading
1823         CSymbol which broke everything horribly. My apologies.
1824
1825 2006-01-27  Robert McQueen  <robot101@debian.org>
1826
1827         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1828         by me and Rob Taylor to add a simple_free function to D-Bus map
1829         and collection types, which allows those types which can be freed
1830         with a GDestroyNotify (such as GHashTables and GArrays, but not
1831         GPtrArrays) to be stored as the values in hashtables.
1832
1833         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1834         Patch by Rob Taylor to add nested dicts to the glib tests to check
1835         the above code works, and appears not to leak when called repeatedly.
1836
1837 2006-01-27  Robert McQueen  <robot101@debian.org>
1838
1839         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1840         to free a D-Bus allocated string with dbus_free () instead of
1841         g_free ().
1842
1843 2006-01-27  Iain Holmes  <iain@openedhand.com>
1844
1845         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1846         method from being called multiple times.
1847
1848 2006-01-19  Robert McQueen  <robot101@debian.org>
1849
1850         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1851         <rob.taylor@collabora.co.uk> to add support for generating bindings
1852         to arrays that are represented as GPtrArrays rather than GArrays (ie
1853         size-variable things, such as strings, objects, structs, etc).
1854
1855 2006-01-05  Robert McQueen  <robot101@debian.org>
1856
1857         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1858         <ricardo.kekki@movial.fi> to make it possible to inherit from
1859         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1860         a private part, and moving the setting of the DBusGProxyManager into a
1861         connection property, allowing proper GObject construction.
1862
1863 2006-01-05  Robert McQueen  <robot101@debian.org>
1864
1865         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1866         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1867         annotations when generating glib client bindings.
1868
1869 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1870
1871         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1872
1873         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1874
1875 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1876
1877         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1878
1879 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1880
1881         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1882
1883 2005-12-19  Ross Burton  <ross@openedhand.com>
1884
1885         * doc/dbus-tutorial.xml:
1886         Document the Glib client-side bindings, and list all possible annotations.
1887
1888 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1889
1890         * dbus/bus.c (dbus_bus_release_name): Add documentation
1891
1892 2005-12-06  Robert McQueen  <robot101@debian.org>
1893
1894         * python/service.py: s/sucessful/successful/ so we're allocating to
1895         and reading from the same variable. Oops.
1896
1897 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1898
1899         * Released 0.60
1900
1901 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1902
1903         * test/qt/Makefile.am: build from srcdir
1904
1905         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1906         Note - this code is wrong and needs to be fixed by the Qt binding
1907         developers.  The flags should be treated as bitfields and not enums.
1908
1909         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1910
1911 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1912
1913         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1914           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1915           in production code
1916
1917 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1918
1919         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1920         method for getting messages off the bus in the absence of a
1921         mainloop.  This method is much like 
1922         dbus_connection_read_write_dispatch except it does not dispatch
1923         the messages to a registered filter function.  Instead it
1924         allows a developer to process messages by directly popping
1925         them off the bus.
1926
1927 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1928
1929         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1930         the parser to continue instead of returning error
1931         (bus_desktop_file_load): Do not free parser data when
1932         parse_section_start or parse_key_value fails because it was 
1933         already freed by parser_free (patch from Carlos Garcia Campos  
1934         <carlosgc at gnome.org>)
1935
1936 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1937
1938         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1939         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1940         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1941         test/test-segfault.c, test/test-utils.c,
1942         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1943         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1944         Various cleanup of dead code and compiler warnings (patch from
1945         Kjartan Maraas <kmaraas at gnome.org>) 
1946
1947 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1948
1949         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1950         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1951
1952 2005-11-27  Robert McQueen  <robot101@debian.org>
1953
1954         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1955         part of the preceding one. Oops. Merge patch by Johan Hedberg
1956         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1957         on big-endian platforms.
1958
1959         * test/python/test-client.py: Add some 16-bit integers to the test
1960         values.
1961
1962 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1963
1964         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1965         method return message for property getters
1966
1967 2005-11-27  Robert McQueen  <robot101@debian.org>
1968
1969         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1970         with type v of an instance of dbus.Variant(foo, type='x') caused
1971         it to be boxed twice before sending over the bus.
1972
1973         * python/dbus_bindings.pyx, python/service.py,
1974         test/python/test-client.py: Update the constants for the new
1975         request_name flags, and update comments/test cases now that queueing
1976         is the default action.
1977
1978 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1979
1980         * configure.in:
1981         - Change version to 0.60 for impending release
1982         - upped the sonames because of ABI and API breakage
1983
1984 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1985
1986         * configure.in: Add test/name-test/Makefile to the generated
1987         Makefile list
1988
1989         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1990         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1991         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1992         not to queue an ower if it can't be the primary owner
1993
1994         * bus/bus.h: Add new internal BusOwner struct
1995
1996         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1997         to bus_registry_ensure and don't set the prohibit_replacement flag
1998         since they are now set per BusOwner and not per name.
1999         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2000         that returns the list of connections in a name's connection queue
2001         
2002         * bus/services.c (struct BusService): remove prohibit_replacement field
2003         (struct BusOwner): new struct for keeping track of queued connections
2004         and their associated flags for the queue
2005         (struct BusRegistry): add a BusOwner memory pool
2006         (bus_registry_new): initialize the BusOwner memory pool
2007         (bus_registry_unref): free the BusOwner memory pool
2008         (_bus_service_find_owner_link): new internal method for
2009         searching the queue for a specific connection
2010         (bus_owner_set_flags): new method for adding setting the flags on a
2011         bus owner
2012         (bus_owner_new): new method that creates a BusOwner object from the
2013         pool and sets its flags
2014         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2015         (bus_registry_ensure): Add the flags parameter
2016         (bus_registry_acquire_service): Switch from using raw connections to
2017         using the BusOwner struct
2018         Add new state machine for dealing with the new set of flags
2019         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2020         cancel_ownership, free_ownership_cancel_data, 
2021         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2022         restore_ownership, free_ownership_restore_data, 
2023         add_restore_ownership_to_transaction): Switch to using BusOwner 
2024         instead of raw connections
2025         (bus_service_add_owner): Add flags parameter
2026         Switch to using BusOwner instead of raw connections
2027         Add state machine for dealing with the new set of flags
2028         (bus_service_swap_owner): Swaps the first and second owners in the
2029         queue.  Used to make sure proper signals are sent when a service looses 
2030         or gains primary ownership.  We never insert an owner at the top of the
2031         queue.  Instead we insert it in the second position and then swap.
2032         (bus_service_remove_owner): Remove the owner from the queue sending
2033         out the NameLost and NameOwnerChanged signals if the we were the 
2034         primary owner
2035         (bus_service_get_primary_owners_connection): New method that extracts
2036         the connection from the primary owner
2037         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2038         connection
2039         (bus_service_get_allow_replacement): Changed from the old 
2040         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2041         primary owner and returns if it can be replaced or not
2042         (bus_service_set_prohibit_replacement): removed
2043         (bus_service_has_owner): returns TRUE if and owner with
2044         the specified connection exists in the queue
2045         
2046         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2047         method that only compiles if tests are enabled.  Allows us to get the 
2048         unique name of a connection so we can check it against the queue when
2049         doing regression tests
2050
2051         * bus/activation.c (bus_activation_send_pending_auto_activate),
2052         bus/dispatch.c (bus_dispatch),  
2053         bus/driver.c (bus_driver_handle_get_service_owner, 
2054         bus_driver_handle_get_connection_unix_user, 
2055         bus_driver_handle_get_connection_unix_process_id,
2056         bus_driver_handle_get_connection_selinux_security_context),
2057         bus/signals.c (connection_is_primary_owner): 
2058         use bus_service_get_primary_owners_connection instead of
2059         bus_service_get_primary_owner
2060
2061         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2062         _dbus_listen_unix_socket): Calculate the length of the socket
2063         path and use that instead of using a fixed length which was
2064         causing socket names to contain many trailing Nul bytes.
2065
2066         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2067         (dbus_g_method_get_sender): New method for extracting the sender 
2068         from a DBusGMethodInvocation
2069         (dbus_g_method_return_get_reply): changed name to 
2070         dbus_g_method_get_reply
2071         (dbus_g_method_return_send_reply): changed name to
2072         dbus_g_method_send reply
2073
2074         * doc/dbus-specification.xml: New docs that describe how the new
2075         queueing system works and talks about the changes to the how
2076         we specify socket names
2077
2078         * glib/examples/example-service.c, 
2079         glib/examples/example-signal-emitter.c,
2080         glib/examples/statemachine/statemachine-server.c:
2081         Changed the RequestName flags to the new system
2082
2083         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2084         regression test suite for testing various states of the new
2085         queueing system
2086         
2087 2005-11-15  Robert McQueen  <robot101@debian.org>
2088
2089         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2090         Taylor to add two methods, dbus_g_method_return_get_reply and
2091         dbus_g_method_return_send_reply, to allow you to get the reply
2092         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2093         and send it. The GLib bindings can't marshal a return value of
2094         something like a(s) if the array is empty - ultimately they should be
2095         made to heed the signature of the out arguments as the Python bindings
2096         now can, but this is a workable interim solution which might have
2097         other applications.
2098
2099 2005-11-15  Robert McQueen  <robot101@debian.org>
2100
2101         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2102         method to org.freedesktop.DBus to release a bus name or give up
2103         waiting in the queue for it.
2104
2105         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2106         dbus_bus_release_name method to send the ReleaseName method calls.
2107         Add constants for the return values to dbus/dbus-shared.h.
2108
2109         * doc/dbus-specification.xml: Document the new ReleaseName method
2110         in the specification.
2111
2112         * python/dbus_bindings.pyx: Add a low-level python binding for the
2113         release name method.
2114
2115         * python/exceptions.py, python/service.py: Make freeing BusName
2116         objects release the name. Add a NameExistsException, and fix a
2117         bug with creating UnknownMethodException.
2118
2119         * test/python/test-client.py: Add tests for freeing BusName
2120         objects causing names to be released.
2121
2122 2005-11-14  Robert McQueen  <robot101@debian.org>
2123
2124         * python/service.py: Include the traceback in the error reply when we
2125         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2126
2127 2005-11-14  David Zeuthen  <davidz@redhat.com>
2128
2129         Patch from Timo Hoenig <thoenig@suse.de>.
2130
2131         * bus/bus.c: I've recently investigated why the automatic reload
2132         of configuration files does not work as expected.
2133
2134         Currently, reloading configuration files does only work when
2135         running dbus-daemon with --nodaemon.  If we are running as daemon
2136         we're hitting a dnotify bug once we fork the process.
2137
2138         We're initializing the dnotify fds before calling fork().  Once
2139         the child process forked it does still have the fds (and they
2140         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2141         getting SIGIO as changes are made to the configuration files.
2142
2143         The attached patch moves the initialization of the dnotify fds to
2144         process_config_postinit().  This is safe for all current code
2145         paths and solves the dnotify disfunction.  If we're running
2146         dbus-daemon as daemon the fds for dnotify are now being
2147         initialized after fork() for the child process.
2148
2149         * configure.in: The current configure.in check for dnotify probes
2150         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2151         match for 'xlinux', too. Additionally I have adapted the configure
2152         option's style to match with the others.
2153
2154 2005-11-14  Robert McQueen  <robot101@debian.org>
2155
2156         * python/decorators.py, python/service.py: Add a new argument to the
2157         dbus.service.method decorator called sender_keyword, which if set,
2158         specifies the name of an argument which will be provided the bus
2159         name of the method caller.
2160
2161         * test/python/test-client.py, test/python/test-service.py: Add a
2162         method and test to check the sender_keyword functionality.
2163
2164 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2165
2166         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2167         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2168         Simons <sjoerd at luon.net>)
2169
2170         * AUTHORS: Add Robert McQueen for his work on the Python
2171         Bindings and other parts of D-Bus
2172
2173 2005-11-07  Robert McQueen  <robot101@debian.org>
2174
2175         * python/decorators.py: Change emit_signal function to use the
2176         signature annotation of the signal when marhsalling the arguments from
2177         the service. Fix a bug where the code checking signature length
2178         against argument length referenced the wrong variable.
2179
2180         * python/introspect_parser.py: Avoid adding the type signature of
2181         signal arguments to any methods which occur after them in the
2182         introspection data (!) by making the parser a little more careful
2183         about its current state.
2184
2185         * python/service.py: Remove debug prints from last commit (again :D).
2186
2187         * test/python/test-client.py, test/python/test-service.py: Add test
2188         signals with signature decorators to test the strict marshalling code
2189         gives errors at the right time. Could do with checking the signals
2190         actually get emitted too, given that the test does nothing with
2191         signals at the moment...
2192
2193 2005-11-07  Robert McQueen  <robot101@debian.org>
2194
2195         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2196         instances to stop madness of creating new instances representing
2197         the same bus connection all the time, rendering any tracking of
2198         match rules and bus names quite meaningless. Caught a bug where
2199         the private argument to SessionBus() and friends was being passed
2200         in as use_default_mainloop by mistake. Still some problems with
2201         multiple dbus_binding.Connection instances representing the same
2202         low-level connection (eg when you use both SessionBus() and
2203         StarterBus() in same process), but it's a lot better now than it
2204         was.
2205
2206         * python/dbus_bindings.pyx: Add constants with the return values
2207         for bus_request_name().
2208
2209         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2210         and retrieve the same instances for the same name, so deletion can be
2211         done with refcounting. Also now throws some kind of error if you
2212         don't actually get the name you requested, unlike previously...
2213
2214         * test/python/test-client.py: Add tests for instance caching of buses
2215         and bus name objects.
2216
2217 2005-11-04  Robert McQueen  <robot101@debian.org>
2218
2219         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2220         marshalling of boolean values. Add some booleans to the values in
2221         the test client.
2222
2223         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2224         argument to the dbus.service.method decorator, which allows you to
2225         name arguments to take two callback functions for replying with
2226         return values or an exception.
2227
2228         * test/python/test-client.py, test/python/test-service.py: Add test
2229         case using asynchronous method reply functions, both return values and
2230         errors, and from within both the function itself and from a mainloop
2231         callback.
2232
2233         * python/decorators.py, python/service.py: Perform checking that the
2234         number of method/signal arguments matches the number of types in the
2235         signature at class loading time, not when you first introspect the
2236         class.
2237
2238         * python/service.py: Remove debug print left by the last commit.
2239
2240 2005-11-03  Robert McQueen  <robot101@debian.org>
2241
2242         * python/service.py: Heavy refactoring of method invocation, with
2243         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2244         in favour of a new _message_cb that uses seperate functions for
2245         looking up the method to call, marshalling the return values, and
2246         sending exceptions as errors, and is easier to follow as a
2247         consequence.  Fixes some corner cases about returning things that
2248         don't match your declared out_signature, allows exceptions to define
2249         _dbus_error_name and have it be sent over the bus as the error name,
2250         and paves the way for cool stuff like heeding the message no reply
2251         flag, asynchronous method implementations, informing the method of the
2252         sender, and including backtraces in the error messages.
2253
2254         * test/python/test-client.py: Catch and print exceptions thrown in the
2255         async callback tests, rather than passing them to the low-level
2256         bindings to be ignored in a noisy and frustrating manner.
2257
2258 2005-11-03  Robert McQueen  <robot101@debian.org>
2259
2260         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2261         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2262         tweak others to be consistent.
2263
2264         * test/python/test-client.py: Tweak output of testInheritance.
2265
2266 2005-10-29  Robert McQueen  <robot101@debian.org>
2267
2268         * python/service.py: Major changes to allow multiple inheritance
2269         from classes that define D-Bus interfaces:
2270         
2271          1. Create a new Interface class which is the parent class of
2272             Object, and make the ObjectType metaclass into InterfaceType.
2273         
2274          2. Patch written with Rob Taylor to replace use of method_vtable
2275             with code that walks the class's __MRO__ (method resolution order)
2276             to behave like Python does when invoking methods and allow
2277             overriding as you'd expect. Code is quite tricky because
2278             we have to find two methods, the one to invoke which has the
2279             right name and isn't decorated with the /wrong/ interface,
2280             and the one to pick up the signatures from which is decorated
2281             with the right interface.
2282         
2283             The same caveats apply as to normal multiple inheritance -
2284             this has undefined behaviour if you try and inherit from two
2285             classes that define a method with the same name but are
2286             decorated with different interfaces. You should decorate
2287             your overriding method with the interface you want.
2288         
2289          3. Replace grungy introspection XML generation code in the metaclass
2290             with dictionaries that cope correctly with multiple inheritance
2291             and the overriding of methods. This also uses the signature
2292             decorations to provide correct introspection data, including
2293             the debut appearance of the types of your return values. :D
2294
2295         * test/python/test-client.py, test/python/test-service.py: Add a test
2296         case to try invoking an method that overrides one inherited from a
2297         D-Bus interface class.
2298
2299 2005-10-29  Robert McQueen  <robot101@debian.org>
2300
2301         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2302         Add checking for the end of struct character when marshalling a
2303         struct in MessageIter.append_strict.
2304
2305         * python/examples/example-service.py,
2306         python/examples/gconf-proxy-service.py,
2307         python/examples/gconf-proxy-service2.py: Update to use gobject
2308         mainloop directly rather than appearing to depend on gtk.
2309
2310         * python/test/test-client.py, python/test/test-server.py: Remove
2311         obsolete and broken test scripts for old bindings. We have up to date
2312         and working tests in test/python/.
2313
2314 2005-10-29  Robert McQueen  <robot101@debian.org>
2315
2316         * python/decorators.py: Add optional arguments to the method and
2317         signal decorators to allow you to specify the signature of arguments
2318         and return values. Preserve the doc strings of signal functions in the
2319         decorated version, for pydoc and friends.
2320
2321         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2322         parse_signature_block function with an iterable dbus.Signature()
2323         type. Fix a bug in MessageIter.append_strict where you could append
2324         anything by claiming it was a string.
2325
2326         * python/service.py: Use the out_signature decoration on methods to
2327         marshal return values, meaning you no longer require dbus.Array()
2328         or dbus.Dictionary() to indicate the type when returning empty
2329         arrays or dictionaries. Fix a bug where exceptions which are defined
2330         in __main__ are not turned into error replies.
2331
2332         * test/python/test-client.py, test/python/test-service.py: Add test
2333         for correct marshalling of return values according to out_signature.
2334         Fix a bug in the async call test where the error_handler is missing a
2335         self argument.
2336
2337 2005-10-29  Robert McQueen  <robot101@debian.org>
2338
2339         * glib/Makefile.am, glib/examples/Makefile.am,
2340         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2341         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2342
2343         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2344
2345         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2346         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2347         the command line.
2348
2349 2005-10-27  Ross Burton  <ross@openedhand.com>
2350
2351         * dbus/dbus-marshal-header.c:
2352         Remove dead code.
2353
2354         * glib/dbus-gobject.c:
2355         Stop compiler warning.
2356
2357 2005-10-25  Ross Burton  <ross@openedhand.com>
2358
2359         * dbus/dbus-auth.c:
2360         * dbus/dbus-server-unix.c:
2361         * dbus/dbus-transport-unix.c:
2362         * glib/dbus-gmain.c:
2363         * glib/dbus-gobject.c:
2364         Add some const keywords.
2365
2366 2005-10-25  Ross Burton  <ross@openedhand.com>
2367
2368         * doc/dbus-specification.xml:
2369         Document the NoReply annotation.
2370
2371         * glib/dbus-binding-tool-glib.h:
2372         * glib/dbus-binding-tool-glib.c:
2373         Respect the NoReply annotation.
2374
2375 2005-10-24  Robert McQueen <robot101@debian.org>
2376
2377         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2378         derive from unicode instead of str, and encode/decode UTF-8 when
2379         marshalling/unmarshalling bus messages
2380
2381         * python/introspect_parser.py: encode introspection data as UTF-8
2382         before passing the buffer into libxml2
2383
2384         * test/python/test-client.py: add unicode test strings
2385
2386         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2387         ignore generated python test files
2388
2389 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2390
2391         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2392         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2393         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2394
2395         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2396         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2397         when constructing struct signatures
2398
2399         * python/_dbus.py (Bus): handle private connections using the
2400         private keyword in the constructor. defaults to private=False
2401         (Bus::close): new method to close a connection to the bus
2402
2403         * python/dbus_bindings.pyx (Connection::close): renamed method
2404         was previously called disconnect
2405         (bus_get): now supports getting a private connection
2406
2407         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2408         keyword is set to True.  if it is, execute the method without waiting
2409         for a reply
2410         (ProxyObject::_introspect_execute_queue): new method for executing
2411         all the pending methods that were waiting for the introspect to
2412         finish.  this is called when introspect either succeeds or fails
2413         (ProxyObject::_introspect_error_handler): call queued methods
2414
2415 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2416
2417         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2418         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2419
2420         * python/service.py (Object::_message_cb): handle exceptions correctly
2421         by sending them over the wire to the calling app.  This makes sure
2422         the client returns immediately instead of waiting the 15 seconds to
2423         timeout.
2424
2425         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2426         Add a test to benchmark how long it takes to introspect a service and 
2427         call a method which returns a large element (pretty fast)
2428
2429         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2430         method which pushes a lot of data
2431
2432 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2433
2434         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2435         reclaim memory outside of the loop and use del istead of just setting
2436         the key to None
2437
2438 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2439
2440         * python/service.py (ObjectType::_reflect_on_signal): Always close
2441         signal tag even when there are no arguments
2442
2443 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2444
2445         * configure.in: Set mono, mono-docs and Qt3 to default
2446         to no instead of auto when building.  These bindings do not
2447         have full time maintainers and will not be supported for the
2448         1.0 release.
2449
2450 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2451
2452         patches from Michael Krivoruchko <misha at sun.com>: 
2453         
2454         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2455         _dbus_connection_message_sent, 
2456         _dbus_connection_send_preallocated_unlocked_no_update, 
2457         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2458         is NULL when calling _dbus_verbose
2459
2460         * configure.in: check for functions getpeerucred and getpeereid
2461
2462         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2463         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2464         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2465         Patch was only tested on Solaris 10 x86 so it might be issues
2466         with other platforms (i.e. BSDs and MacOSX)
2467         
2468
2469 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2470
2471         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2472         instead of marshal basic so we can handle recursive types in a variant
2473
2474         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2475         in variants
2476
2477         * test/glib/test-service-glib.c, test-service-glib.xml
2478         (my_object_echo_variant [EchoVariant], 
2479         my_object_process_variant_of_array_of_ints123
2480         [ProcessVariantOfArrayOfInts123]): 
2481         Add two test methods
2482
2483         * python/introspect_parser.py: New module for parsing introspect
2484         data.
2485
2486         * python/dbus_bindings.pyx:
2487         (various places): when throwing errors fix to use errormsg instead 
2488         of message local variable because Pyrex can get confused with other 
2489         message variables (initial patch by Robert McQueen 
2490         <robert.mcqueen at collabora.co.uk>)
2491         (MessageIter::parse_signature_block): new method for getting the next
2492         block in a signiture.
2493         (MessageIter::append_strict): new method for appending values strictly
2494         using the passed in signature instead of guessing at the type
2495         (MessageItter:: append_dict, append_struct, append_array): use 
2496         signatures to marshal children if the signature is available
2497         
2498         * python/exceptions.py (IntrospectionParserException): new exception
2499
2500         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2501         introspected signatures if available, else we fall back to the
2502         old way of doing things.
2503         (ProxyObject::_introspect_reply_handler ): parse introspection data
2504         
2505         * python/service.py (ObjectType::_reflect_on_method): Properly
2506         terminate <method> if there are no args in the reflection data
2507
2508         * test/python/test-client.py: add tests for talking with the GLib
2509         test server.  This gives us better coverage for introspection since
2510         python to python will always generate arguments as variants.  It also
2511         allows us to test the robustness of the GLib bindings and interlanguage
2512         communications.
2513
2514         
2515 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2516
2517         * bus/driver.c (bus_driver_handle_introspect): Add signals
2518         to the introspect data. (patch from Daniel P. Berrange 
2519         <dan at berrange.com>)
2520
2521         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2522         
2523         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2524         _dbus_connection_run_builtin_filters): Changed these to
2525         be unlock_no_update functions and call 
2526         _dbus_connection_send_unlocked_no_update instead of
2527         dbus_connection_send to avoid locking errors.
2528         
2529         * doc/TODO: Removed the make Ping test TODO
2530         
2531 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2532
2533         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2534         We now copy the message from a DBusError and then free 
2535         the error object befor throwing the error
2536
2537         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2538         DBusBindingOutputMode enum which was causing a warning.
2539         #include <time.h> so using time_t is explicitly defined
2540
2541 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2542
2543         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2544         - dbus/dbus-bus.c
2545         (internal_bus_get): new method that take over the heavy lifting
2546         of dbus_bus_get and adds the ability to get a private connection
2547         to the bus
2548         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2549         interface as in previous versions
2550         (dbus_bus_get_private): new method that is a wrapper to 
2551         internal_bus_get to get a private connection to the bus
2552
2553         - dbus/dbus-bus.h
2554         (dbus_bus_get_private): add as a public libdbus interface
2555
2556         - dbus-1.pc.in: output system_bus_default_address and 
2557         sysconfdir variables so apps can use them when compiling
2558
2559 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2560         * dbus/qt: New Qt bindings
2561
2562 2005-09-12  Waldo Bastian  <bastian@kde.org>
2563
2564         * dbus/dbus-marshal-validate.c,
2565         doc/dbus-specification.xml, test/Makefile.am,
2566         test/test-names.c: allow hyphens in bus names.
2567
2568 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2569
2570         * test/data/auth/fallback.auth-script: we don't
2571         retry the EXTERNAL method when we know its going
2572         to fail anymore.
2573
2574 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2575
2576         * dbus/dbus-connection-internal.h: rename
2577         (add|remove|toggle)_(watch|timeout) to unlocked()
2578         
2579         * dbus/dbus-connection.c: ditto.
2580         
2581         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2582         Update some callers for the renaming.
2583
2584 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2585
2586         * dbus/dbus-auth.c: (record_mechanisms): don't
2587         retry the first auth mechanism because we know
2588         we're just going to get rejected again.
2589         
2590         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2591         Fix thinko ... and what a nasty little bugger to
2592         track down you were ...
2593
2594         * dbus/dbus-connection.c:
2595         (_dbus_connection_add_watch),
2596         (_dbus_connection_remove_watch): add note about
2597         these needing the connection to be locked.
2598         (_dbus_connection_get_dispatch_status_unlocked):
2599         set status to DATA_REMAINS when we queue the
2600         disconnected message.
2601         
2602         * bus/dispatch.c:
2603         (bus_dispatch): fix warning.
2604         (check_existent_service_no_auto_start):
2605         Expect ChildSignaled error too.
2606         (check_existent_hello_from_self): fix another
2607         couple of warnings.
2608         
2609 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2610
2611         Patches from James Willcox <snorp@snorp.net>
2612
2613         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2614
2615         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2616         support array "out" parameters.
2617
2618         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2619         for 16-bit int support.
2620
2621 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2622
2623         * Released 0.50
2624
2625         * Patch from Steve Grubb:
2626         - bus/activation.c (bus_activation_service_reload_test): clean up
2627         some indentation
2628         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2629         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2630         buffer overflows in the test suite.  This is non critical because
2631         it can not be exploited and this code is only run when doing a 
2632         make check.
2633
2634         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2635         - configure.in: Don't check and link against kdecore, only qt headers
2636         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2637         - gcj/org/freedesktop/dbus/Makefile.am:
2638         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2639         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2640         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2641         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2642         - tools/Makefile.am: Add platform extentions to binaries 
2643         (i.e. .exe on windows)
2644
2645         * configure.in: 
2646         - Make it so if no suitable version of python is found we only 
2647         disable building python instead of exiting the configure script
2648         - Require version 2.4 of glib for glib bindings
2649         - Up version to 0.50
2650
2651         * python/__init__.py: Sync version with libdbus to (0,50,0)
2652         
2653 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2654
2655         * dbus/dbus-object-tree.c (find_subtree_recurse):
2656         a couple of optimizations (bug #710):
2657         - do a binary search in the tree
2658         - insert a new child at the right place directly, no need for
2659           qsort anymore
2660         - do the "double alloc" thing when allocating children
2661
2662 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2663
2664         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2665
2666         * python/dbus_bindings.pyx: Memory management foo
2667         (global): remove hacky _user_data_references global list
2668         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2669         tuples. Unref user_data
2670         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2671         (Connection::__del__): Remove and replace with __dealloc__ method
2672         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2673         to keep tuple from being deallocated instead of the global var hack
2674         (Connection::register_object_path): Stuff user_data into a tuple.
2675         Use Py_INCREF to keep tuple from being deallocated instead of the 
2676         global var hack
2677         (Connection::register_fallback): Stuff user_data into a tuple.
2678         Use Py_INCREF to keep tuple from being deallocated instead of the 
2679         global var hack
2680         (GIL_safe_pending_call_notification): Don't unref the message
2681         because it gets unreffed when going out of scope.  Py_XDECREF
2682         the user_data
2683         (PendingCall::__del__): Remove and replace with __dealloc__ method
2684         (PendingCall::set_notify): ref the pending call because we will
2685         need it to stick around for when the notify callback gets called
2686         (Message::__del__): Remove and replace with __dealloc__ method
2687
2688         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2689         gthreads_init to match up with the dbus call
2690
2691         * python/glib.py (init_threads): Changed to threads_init to match
2692         up with gobject.threads_init().  init_threads is kept for backwards
2693         compat but will most likely be deprecated in the future
2694
2695         * test/python/test-client.py: 
2696         - revamp to use Python's unittest functionality
2697         - add async call tests
2698         - setup threads in glib and dbus so we make sure locks are working
2699         
2700 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2701
2702         * python/dbus_bindings.pyx 
2703         (_pending_call_notification, cunregister_function_handler, 
2704         cmessage_function_handler): All callback functions have been rearranged 
2705         to workaround a bug in Pyrex when working with the GIL which is Python's 
2706         global lock when dealing with threads.  They have been split into
2707         a wrapper function (which assumes the name of the old function) and
2708         a _GIL_safe_<function name> function which contains the functionality
2709         of the old function.  This ensures that Pyrex does not write code
2710         the lock is released.
2711         
2712
2713 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2714
2715         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2716         GIL global lock when calling back into Python
2717
2718 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2719
2720         * Release 0.36.2
2721
2722         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2723
2724         * bus/policy.c (bus_policy_allow_user): change default "user is
2725         allowed" to be "user has same uid as the bus itself"; any
2726         allow/deny rules will override.
2727
2728         * bus/session.conf.in: don't allow all users, since now by default
2729         the user that ran the bus can connect.
2730
2731 2005-08-26  Colin Walters  <walters@verbum.org>
2732
2733         * tools/dbus-print-message.c (print_message): Flush stdout
2734         after printing a message, so that redirecting to a file, then
2735         hitting Ctrl-C works.
2736
2737 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2738
2739         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2740         (EmptyMessage): new class that subclasses Message.  This is a workaround
2741         to a Pyrex bug that fails to call __del__ when the Message object goes out
2742         of scope.  For some reason subclassing Message fixes this bug
2743         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2744         - s/Message(_create=0)/EmptyMessage everywhere else
2745         
2746         * test/python/test-{server|client}.py: add the python/.libs directory
2747         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2748         get picked up from the system
2749
2750 2005-08-25  Colin Walters  <walters@verbum.org>
2751
2752         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2753         to Ryan Lortie for the suggestion.
2754
2755 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2756
2757         * test/python: Add python regression test
2758
2759         * configure.in: Add test/python/Makefile
2760
2761         * test/Makefile.am: Add the python directory to SUBDIRS
2762
2763 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2764
2765         * Release 0.36.1
2766
2767         * python/_dbus.py: 
2768         (Interface::connect_to_signal): propigate keywords for match on args
2769         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2770
2771         * python/proxies.py (ProxyObject::connect_to_signal):
2772         propigate keywords for match on args
2773
2774         * Makefile.am: point everything to pyexecdir since python borks
2775         on multilib
2776
2777 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2778
2779         * Release 0.36
2780
2781 2005-08-23  Colin Walters  <walters@verbum.org>
2782
2783         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2784
2785 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2786
2787         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2788         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2789         of defining DBusConnection ourselves.
2790
2791 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2792
2793         * python/dbus.pth: New path file to fix up problems when installing
2794         c libraries to lib64 and python files to lib.
2795
2796         * python/Makefile.am: install dbus.pth in the correct spot
2797
2798 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2799         * ChangeLog: clean up my last entry a bit
2800
2801         * doc/introspect.xsl: New stylesheet for converting introspection data
2802         into browser renderable xhtml. Contributed by Lennart Poettering.
2803
2804         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2805         Poettering.
2806
2807         * doc/dbus-tutorial.xml: 
2808         - Add Colin Walter to the Authors section for authoring the GLib
2809         section
2810         - Add descriptions of the new signature and type functionality
2811         in the Python complex type mapping section
2812         - Add a sidenote on the new args matching functionality in 
2813         the Python bindings
2814         - Fixed up some of the examples to use the gobject.MainLoop
2815         instead of gtk.main
2816         
2817         * python/_dbus.py:
2818         (Bus::_create_args_dict): New. Converts a hash of arg matches
2819         to a more useable format
2820         (Bus::add_signal_receiver): add a **keywords parameter for catching
2821         arg match parameters
2822         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2823         arg match parameters
2824         
2825         * python/matchrules.py:
2826         (MatchTree::exec_matches): Check for arg matches
2827         (SignalMatchRule::add_args_match): New method
2828         (SignalMatchRule::execute): Added args_list parameter as an optimization
2829         so we don't have to marshal the args more than once
2830         (SignalMatchRule::match_args_from_list): New method that checks to see
2831         if the rule's arg matches match an argument list.  Only arguments
2832         set in the rule are checked.
2833         (SignalMatchRule::match_args_from_rule): New method that checks to see
2834         if the rule's arg matches match another rule's.  All args have to match
2835         in order for this method to return true.  If either rule has more args
2836         then it is not a match.
2837         (SignalMatchRule::is_match): Add args match
2838         (SignalMatchRule::repr): Add args to the final output if they exist
2839
2840 2005-08-17  Ross Burton  <ross@burtonini.com>
2841
2842         * glib/dbus-gproxy.c:
2843         (dbus_g_proxy_call_no_reply): unref the message once sent.
2844         (dbus_g_proxy_call): protect against NULL proxy.
2845
2846 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2847
2848         * python/__init__.py: Version updated (0, 43, 0)
2849         
2850         * python/dbus_bindings.pyx: 
2851         - Fixed type objects to have self passed into __init__
2852         - Added the Variant type
2853         - Add the ability to specify types or signatures for Array, Variant 
2854         and Dictionary
2855         (Connection::send_with_reply_handlers): return a PendingCall object
2856         (_pending_call_notification): handle the case when an error is returned 
2857         without an error message in the body
2858         (MessageIter::get_boolean): return True or False instead of an integer
2859         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2860         and add checks for objects with embeded signatures or types (Array, 
2861         Variant and Dictionary)
2862         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2863         (MessageIter::append_dict): handle embeded types or signatures
2864         (MessageIter::append_array): handle embeded types or signatures
2865         (MessageIter::append_variant): new method
2866         
2867         * python/proxies.py:
2868         (DeferedMethod): New. Dummy executable object used when queuing calls 
2869         blocking on introspection data
2870         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2871         or shorter timeouts for method calls
2872         (ProxyObject): Add first pass at an introspection state machine
2873         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2874         introspection. 
2875         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2876         the usual mechanisms for sending messages.  This is to avoid a deadlock
2877         where the Intospect call would be queued waiting for the Introspect 
2878         call to finish ;-)
2879         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2880         when introspection returns with no error
2881         (ProxyObject::_introspect_error_handler): New.  This method is called 
2882         when introspection encounters an error
2883         (ProxyObject::__getattr__): Code to handle different introspection 
2884         states.  Queue async calls or block blocking calls if we are 
2885         introspecting.  Pass through as normal if we are not or are done with 
2886         introspecting.
2887         
2888         * python/service.py: Import signal and method from decorators.py
2889
2890         * python/types.py: Add Variant type
2891
2892 2005-08-16  Colin Walters  <walters@verbum.org>
2893
2894         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2895         DBusError message is NULL.
2896
2897 2005-08-09  Havoc Pennington  <hp@redhat.com>
2898
2899         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2900         malloc'd copy of the name parameter
2901
2902 2005-08-09  Havoc Pennington  <hp@redhat.com>
2903
2904         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2905         warning if the reply serial is set to 0
2906
2907 2005-08-04  Colin Walters  <walters@verbum.org>
2908
2909         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2910         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2911         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2912         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2913         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2914         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2915         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2916         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2917         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2918         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2919         
2920         Prefix name with _ to ensure they're not exported.  All callers
2921         updated.
2922
2923         * glib/dbus-gvalue.c (typecode_to_gtype)
2924         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2925         (signature_iter_to_g_type_dict)
2926         (signature_iter_to_g_type_array)
2927         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2928         (dbus_gtypes_from_arg_signature):
2929         Move to dbus-gsignature.c.
2930
2931         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2932         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2933         (dbus_binding_tool_output_glib_client): Ditto.
2934
2935         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2936         and dbus-gsignature.h
2937
2938         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2939         unused variable.
2940
2941 2005-08-03  Colin Walters  <walters@verbum.org>
2942
2943         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2944         catch any incompatible changes accidentally made.
2945
2946 2005-08-03  Havoc Pennington  <hp@redhat.com>
2947
2948         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2949         typo, from Julien Puydt
2950
2951         * bus/connection.c (bus_connection_disconnected): we were always
2952         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2953
2954 2005-08-01  Colin Walters  <walters@verbum.org>
2955
2956         Patch from Joe Markus Clarke:   
2957         
2958         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2959         use-after-free.
2960
2961 2005-08-01  Colin Walters  <walters@verbum.org>
2962         
2963         Patch from Joe Markus Clarke:   
2964         
2965         * tools/dbus-send.c (main): 
2966         
2967         Don't use C99 style initializers (bug #3933).
2968         
2969 2005-08-01  Colin Walters  <walters@verbum.org>
2970
2971         Patch from Joe Markus Clarke:   
2972
2973         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2974         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2975         * glib/dbus-gobject.c (write_interface):
2976
2977         Don't use C99 style initializers (bug #3933).
2978
2979 2005-07-31  Havoc Pennington  <hp@redhat.com>
2980
2981         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2982         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2983
2984 2005-07-30  Havoc Pennington  <hp@redhat.com>
2985
2986         * fix a bunch of Doxygen warnings and mistakes
2987
2988 2005-07-30  Havoc Pennington  <hp@redhat.com>
2989
2990         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2991         DBUS_BUILD_TESTS since it's now used in production code
2992
2993 2005-07-29  Havoc Pennington  <hp@redhat.com>
2994
2995         * test/glib/test-profile.c (write_junk): initialize the junk
2996         buffer so valgrind doesn't have a breakdown
2997
2998 2005-07-29  Havoc Pennington  <hp@redhat.com>
2999
3000         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3001         (match_rule_matches): remove unused arg
3002         (test_matching): add tests for match_rule_matches()
3003
3004         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3005         do arg0='foo' arg5='bar' in the match rules
3006         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3007
3008         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3009
3010 2005-07-29  Ross Burton  <ross@openedhand.com>
3011
3012         * dbus/dbus-connection.c:
3013         Don't create a DBusCondVar which is never used.
3014
3015 2005-07-27  Ross Burton  <ross@openedhand.com>
3016
3017         * dbus/dbus-message.c:
3018         Reduce the size of the maximum cached message to 10K.
3019
3020 2005-07-25  Ross Burton  <ross@openedhand.com>
3021
3022         * glib/dbus-gproxy.c:
3023         Remove matches when all proxies are unregistered.
3024
3025 2005-07-24  Colin Walters  <walters@verbum.org>
3026
3027         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3028         typedata; recursive arrays won't have it.
3029
3030         * test/glib/test-dbus-glib.c:
3031         * test/glib/test-service-glib.c:
3032         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3033         
3034 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3035
3036         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3037         proxies.py, service.py: Cleanup of code after running it through the
3038         pyflakes code checker mostly dealing with undefined names.  
3039         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3040
3041 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3042
3043         * NEWS: Update to 0.35.2
3044
3045 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3046
3047         * python/_dbus.py: Remove import of the dbus.services
3048         module as it no longer exists (patch from Dimitur Kirov)
3049
3050         * python/service.py (Object::__init__): Fixed typo
3051         s/name/bus_name (patch from Dimitur Kirov)
3052
3053         * python/examples/example-signal-emitter.py: import dbus.glib
3054         to get the main loop and use glib mainloop instead of gtk so
3055         X doesn't have to be running.
3056
3057         * python/examples/example-signal-recipient.py: import dbus.glib
3058         to get the main loop and use glib mainloop instead of gtk so
3059         X doesn't have to be running. Import the decorators module
3060         directly.
3061
3062         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3063         didn't pick up on but are needed to build
3064
3065         * configure.in: upped version to 0.35.2
3066
3067         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3068         added Colin Walters' SELinux API rename patch from head 
3069         s/unix sercurity context/selinux security context/
3070
3071 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3072
3073         * python/Makefile.am: dbus_binding.pxd.in should be included 
3074         in EXTRA_DIST not dbus_binding.pxd
3075         fix up $(srcdir) hopefully for the last time
3076
3077         * NEWS: Update to 0.35.1
3078
3079 2005-07-16  Colin Walters  <walters@verbum.org>
3080
3081         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3082         from bus_driver_handle_get_connection_unix_security_context.  Update for
3083         error usage.
3084         (message_handlers): Update for renames.
3085
3086         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3087         _dbus_string_init failure correctly.
3088         (bus_selinux_append_context): Convert SID to context.  Append it
3089         as a byte array.
3090         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3091         hasn't been called.
3092
3093         * bus/selinux.h: Update prototype.
3094
3095         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3096         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3097
3098 2005-07-15  Colin Walters  <walters@verbum.org>
3099
3100         * doc/TODO: Add note about convenience wrappers.
3101
3102 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3103
3104         * NEWS: Update to 0.35
3105
3106 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3107
3108         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3109         so distcheck doesn't fail
3110
3111         * glib/examples/Makefile.am: Add example-service.xml and 
3112         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3113
3114         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3115         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3116
3117         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3118         compiler looks in the right places during distcheck
3119
3120 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3121
3122         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3123         to fail
3124
3125 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3126
3127         * python/examples/example-service.py,
3128         python/examples/example-signal-emitter.py: Fixed up examples
3129         for API changes
3130
3131 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3132
3133         * python/__init__.py: Upped to version (0,42,0) because of
3134         the API change
3135
3136 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3137
3138         * ChangeLog: fix date in last entry
3139
3140         * configure.in, bus/system.conf.in: add the ability to configure 
3141         the system bus user at compiletime with the --with-dbus-user flag
3142         (patch from Kristof Vansant)
3143
3144 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3145
3146         * bus/dispatch.c, test/test-service.c: Add testcase
3147         for sending messages to oneself (TODO item).
3148
3149         * python/service.py (class Object): Swap ordering of bus_name 
3150         and object_path parameters to better support inheritance.
3151
3152         * doc/dbus-tutorial.xml: change Python docs to reflect change
3153         in parameter ordering and fix the inheritance section.
3154
3155         * doc/TODO: remove sending message to oneself TODO item
3156
3157 2005-07-15  Ross Burton  <ross@openedhand.com>
3158
3159         * glib/dbus-gproxy.c:
3160         Fix a leak when calling methods via the proxy.
3161
3162 2005-07-15  Colin Walters  <walters@verbum.org>
3163
3164         * bus/selinux.c (bus_selinux_append_context): Wrap in
3165         HAVE_SELINUX.
3166
3167 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3168
3169         * python/_dbus.py (Bus::remove_signal_receiver):
3170         don't add a callback to the match if none has been passed in
3171         
3172         * python/matchrules.py (SignalMatchTree::remove): if the rule
3173         being matched does not have a callback treat it as a wildcard
3174         fix matching logic
3175
3176         * doc/dbus-tutorial.xml: Add Python tutorial
3177
3178 2005-07-14  Colin Walters  <walters@verbum.org>
3179
3180         * bus/driver.c
3181         (bus_driver_handle_get_connection_unix_security_context): New function.
3182         (message_handlers): Add.
3183
3184         * bus/selinux.c (bus_selinux_append_context): New function; appends
3185         security context to message.
3186
3187         * bus/selinux.h: Prototype.
3188
3189         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3190
3191 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3192
3193         * bus/activation.c: clean up all tabs to be 8 spaces 
3194         (bus_activation_activate_service): make sure we clean up
3195         if activation fails
3196
3197         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3198         (check_shell_fail_service_auto_start): New function
3199         tests to make sure we get fail properly when trying to auto start a service
3200         with a faulty command line
3201         (check_shell_service_success_auto_start): New function tests to make sure
3202         auto started services get the arguments on the command line
3203
3204         * test/test-shell-service.c: Added service for testing auto-starting with 
3205         command line arguments
3206
3207         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3208         test/data/valid-service-files/debug-shell-echo-success.service.in:
3209         Added service files for testing auto-starting with command line arguments
3210
3211         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3212
3213 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3214
3215         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3216         
3217         * dbus/Makefile.am: added new files to build.
3218
3219         * bus/activation.c (bus_activation_activate_service): support
3220         activation commands with parameters.
3221
3222         * test/shell-test.c: added test program for the shell parsing
3223         code.
3224
3225 2005-07-13  David Zeuthen  <davidz@redhat.com>
3226
3227         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3228         64 bit signed and unsigned parameters
3229
3230 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3231
3232         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3233
3234         * python/service.py (class Name): renamed BusName to make it clearer
3235         what the object is for (a name on the bus)
3236
3237         * python/examples/example-service.py,
3238         python/examples/example-signal-emitter.py: change the Name object to
3239         BusName
3240
3241 2005-07-12  Colin Walters  <walters@verbum.org>
3242
3243         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3244
3245         * tools/dbus-launch.c: Include sys/select.h.
3246
3247 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3248         * python/dbus_bindings.pyx.in: removed
3249
3250         * python/dbus_bindings.pyx: Added.
3251         - Fixed some memleaks (patch from 
3252         Sean Meiners <sean.meiners@linspireinc.com>)
3253         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3254         own pxd file (Pyrex definition)
3255         - Broke out glib dependancies into its own pyx module
3256         
3257         * python/dbus_bindings.pdx: Added.
3258         - Defines C class Connection for exporting to other modules
3259
3260         * python/dbus_glib_bindings.pyx: Added.
3261         - New module to handle lowlevel dbus-glib mainloop integration
3262
3263         * python/glib.py: Added.
3264         - Registers the glib mainloop when you import this module
3265
3266         * python/services.py: Removed (renamed to service.py)
3267         
3268         * python/service.py: Added.
3269         - (class Server): renamed Name
3270
3271         * python/__init__.py: Bump ro version (0,41,0)
3272         -don't import the decorators or service module
3273         by default.  These now reside in the dbus.service namespace
3274
3275         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3276         setup function on creation 
3277
3278         * python/examples/example-service.py,
3279         python/examples/example-signal-emitter.py: update examples
3280
3281         * python/examples/gconf-proxy-service.py,
3282         python/examples/gconf-proxy-service2.py: TODO fix these up
3283
3284         * doc/TODO: Addition
3285         - Added a Python Bindings 1.0 section
3286         - added "Add match on args or match on details to match rules"
3287
3288
3289 2005-07-12  Colin Walters  <walters@verbum.org>
3290
3291         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3292         (statemachine-glue.h): 
3293         * glib/examples/Makefile.am (example-service-glue.h) 
3294         (example-signal-emitter-glue.h): 
3295         * glib/Makefile.am (dbus-glib-error-switch.h): 
3296         Add libtool --mode=execute so we use the built library instead
3297         of any installed one.
3298
3299 2005-07-11  Colin Walters  <walters@verbum.org>
3300
3301         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3302         (dbus_g_value_types_init): Remove assertion.
3303         (dbus_g_value_get_g_type, dbus_g_value_open)
3304         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3305         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3306         functions related to DBusGValue.  Now we marshal/demarshal
3307         structures as GValueArray.
3308         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3309         structures.
3310         (signature_iter_to_g_type_array): Don't call
3311         signature_iter_to_g_type_struct.
3312         (signature_iter_to_g_type_struct): Delete.
3313         (dbus_gvalue_to_signature): Delete.
3314         (dbus_gvalue_to_signature): New function with same name as other
3315         one; we can convert structures to signatures.
3316         (demarshal_valuearray): New function.
3317         (get_type_demarshaller): Use it.
3318         (demarshal_recurse): Delete.
3319         (marshal_proxy): New function.
3320         (marshal_map): Warn if we can't determine signature from type.
3321         (marshal_collection_ptrarray): Ditto.
3322         (marshal_collection_array): Ditto.
3323         (get_type_marshaller): Use marshal_valuearray.
3324         (marshal_recurse): Delete.
3325         (_dbus_gvalue_test): Add some tests.
3326
3327         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3328         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3329         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3330         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3331         (dbus_g_value_free): Remove prototypes.
3332
3333         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3334         G_TYPE_VALUE_ARRAY.
3335
3336         * glib/examples/example-service.c:
3337         * glib/examples/example-client.c: Implement GetTuple.
3338
3339         * test/glib/test-dbus-glib.c:
3340         * test/glib/test-service-glib.c:
3341         * test/glib/test-service-glib.xml: Add structure tests.
3342
3343 2005-07-10  Colin Walters  <walters@verbum.org>
3344
3345         * doc/TODO: Knock off some GLib items with this patch.
3346
3347         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3348         (_dbus_gvalue_signals_error): New functions.
3349
3350         * glib/dbus-gvalue-utils.h: Prototype them.
3351
3352         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3353         and change to not output const/retval flags for input args.  All
3354         callers updated.
3355         (invoke_object_method): Refactor to handle return values.  Add
3356         some more comments in various places.  Remove debug g_print.
3357
3358         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3359
3360         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3361         Handle G_TYPE_NONE.
3362         (compute_gsignature): New function; refactored from code from
3363         compute_marshaller and compute_marshaller_name.  Enhance to
3364         handle return values and async ops more cleanly.  Update for
3365         async ops returning NONE instead of BOOLEAN.
3366         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3367         and output appropriate string.
3368         (generate_glue): Handle return value annotation.  Also don't dump
3369         constness flag for input arguments.
3370
3371         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3372         files shared between installed library and utilities.
3373         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3374         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3375         binding tool can access gtype utility functions.
3376
3377         * test/glib/test-service-glib.c: 
3378         * test/glib/test-service-glib.xml: 
3379         * test/glib/test-dbus-glib.c: Add some tests for return values.
3380
3381 2005-07-09  Colin Walters  <walters@verbum.org>
3382
3383         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3384         argument if available, not method.
3385
3386         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3387         (invoke_object_method): First, remove some redundant
3388         GValues (object_value, error_value) in favor of working on
3389         array directly.  Second, rework constness to be less buggy.
3390         Now we iterate directly over the argument metadata instead
3391         of parallel iterating over output signature and metadata.
3392
3393         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3394
3395         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3396         annotation on input args.
3397         
3398 2005-07-09  Colin Walters  <walters@verbum.org>
3399
3400         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3401         Define.
3402
3403         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3404         annotation.
3405
3406         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3407         (method_dir_signature_from_object_info): Handle arg_iterate change.
3408         (write_interface): Ditto.
3409         (lookup_object_info): Don't barf if format_version is > 0.
3410         (invoke_object_method): Handle arg constness.
3411
3412         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3413         (arg_info_new): Create.
3414         (arg_info_unref): Destroy.
3415         (arg_info_get_annotations, arg_info_get_annotation) 
3416         (arg_info_add_annotation): New functions.
3417
3418         * glib/dbus-gidl.h: Prototype them.
3419
3420         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3421         args, disallow them in properties.
3422         (parse_annotation): Handle arg annotations.
3423
3424         * test/glib/test-service-glib.xml: 
3425         * test/glib/test-service-glib.c: Update to make some methods
3426         const.
3427
3428 2005-07-08  Colin Walters  <walters@verbum.org>
3429
3430         * test/glib/test-service-glib.xml: 
3431         * test/glib/test-service-glib.c:
3432         * test/glib/test-dbus-glib.c: Test a{sv}.
3433
3434         * glib/examples/statemachine/statemachine.c:
3435         * glib/examples/statemachine/statemachine-server.c:
3436         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3437         add progress bar, etc.
3438
3439         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3440         needed anymore due to generic array/map marshalling.
3441         (dbus_g_value_types_init): Don't register basic arrays or the
3442         string/string hash.
3443         (dbus_gtype_from_signature_iter): Don't try to recurse into
3444         variants.
3445         (dbus_gtype_to_signature): Check collection/map before type
3446         metadata.
3447         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3448         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3449         generic map creation/append functions instead of hash table
3450         specifically.
3451         (get_type_demarshaller): Handle maps.
3452         (demarshal_collection): Dispatch on collection type to either
3453         demarshal_collection_ptrarray or demarshal_collection_array.
3454         (get_type_marshaller): Handle maps.
3455         (marshal_collection): Dispatch collection type to either
3456         marshal_collection_ptrarray or marshal_collection_array.
3457         (_dbus_gvalue_test): New test.
3458
3459         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3460         (hash_free_from_gtype): Use it to free GValues.
3461         (hashtable_append): New function.
3462         (ptrarray_append): Fix prototype.
3463         (slist_append): Ditto.
3464         (_dbus_gvalue_utils_test): Extend tests.
3465
3466         * glib/dbus-gtype-specialized.c
3467         (dbus_g_type_specialized_init_append): Renamed from
3468         dbus_g_type_specialized_collection_init_append.  Remove const from
3469         value, since we steal it.
3470         (dbus_g_type_specialized_map_append): New function.
3471
3472         * glib/dbus-gtype-specialized.h: Update prototypes.
3473         Add DBusGTypeSpecializedMapAppendFunc.
3474
3475         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3476         _dbus_gvalue_test.
3477         
3478         * glib/dbus-gtest.h: Prototype it.
3479
3480 2005-07-08  Ross Burton  <ross@openedhand.com>
3481
3482         * dbus/dbus-glib.h:
3483         Add DBysGAsyncData for the async bindings.
3484
3485         * glib/dbus-binding-tool-glib.c:
3486         Re-enable the async bindings.
3487
3488         * test/glib/test-dbus-glib.c:
3489         Add a test for the generated async bindings.
3490
3491 2005-07-08  Colin Walters  <walters@verbum.org>
3492
3493         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3494         connection concept.
3495         
3496 2005-07-08  Colin Walters  <walters@verbum.org>
3497         
3498         * tools/Makefile.am: Kill of print-introspect in favor of using
3499         dbus-send --print-reply=literal.
3500
3501         * test/glib/test-service-glib.xml: 
3502         * test/glib/test-service-glib.c (my_object_get_objs): New test
3503         for "ao".
3504
3505         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3506         (main): Test GetObjs.
3507
3508         * glib/examples/statemachine/Makefile.am:
3509         * glib/examples/statemachine/sm-marshal.list:
3510         * glib/examples/statemachine/statemachine-client.c:
3511         * glib/examples/statemachine/statemachine-server.c:
3512         * glib/examples/statemachine/statemachine-server.xml:
3513         * glib/examples/statemachine/statemachine.c:
3514         * glib/examples/statemachine/statemachine.h:
3515         * glib/examples/statemachine/statemachine.xml:
3516
3517         New example.
3518
3519         * glib/examples/example-service.c (main): Move invocation
3520         of dbus_g_object_type_install_info earlier, to emphasize it
3521         should only be done once.
3522
3523         * glib/examples/example-signal-emitter.c (main): Ditto.
3524
3525         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3526
3527         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3528         (dbus_gvalue_marshal): Update prototypes.
3529
3530         * glib/dbus-gvalue.c: Update all marshalling functions to take
3531         const GValue instead of GValue.
3532         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3533         types.
3534         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3535         change.
3536         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3537         Return a newly-allocated string.
3538         (demarshal_proxy, demarshal_object_path, demarshal_object)
3539         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3540         we get the wrong types from message.
3541         (get_type_demarshaller): New function, extracted from
3542         dbus_gvalue_demarshal.
3543         (demarshal_collection): New function, demarshals generic
3544         collection.
3545         (dbus_gvalue_demarshal): Just invoke result of
3546         get_type_demarshaller.  Throw error if we don't have one.
3547         (marshal_garray_basic): Abort on OOM.
3548         (get_type_marshaller): New function, extracted from
3549         dbus_gvalue_marshal.
3550         (collection_marshal_iterator, marshal_collection): New functions;
3551         implements generic marshalling for an iteratable specialized
3552         collection.
3553         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3554
3555         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3556         G_TYPE_STRING.
3557         (ptrarray_value_from_gvalue): Ditto.
3558         (ptrarray_append, ptrarray_free): New functions.
3559         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3560         (slist_append, slist_end_append, slist_free): New functions.
3561         (dbus_g_type_specialized_builtins_init): Add append fuctions
3562         for GPtrArray and GSList.  Register GSList.
3563         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3564
3565         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3566         New.
3567         (dbus_g_type_specialized_collection_init_append)
3568         (dbus_g_type_specialized_collection_append)
3569         (dbus_g_type_specialized_collection_end_append): Prototype.
3570         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3571         end_append_func.
3572
3573         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3574         (dbus_g_type_specialized_collection_append) 
3575         (dbus_g_type_specialized_collection_end_append): New functions.
3576         (dbus_g_type_map_value_iterate): Take const GValue.
3577         (dbus_g_type_collection_value_iterate): Ditto.
3578
3579         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3580         _dbus_gvalue_utils_test.
3581         
3582         * glib/dbus-gtest.h: Prototype it.
3583
3584         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3585         using uninitialized owner_list.
3586         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3587         public API.
3588         (dbus_g_proxy_end_call_internal): Update to use error set
3589         from dbus_gvalue_demarshal instead of setting it here.
3590         (dbus_g_proxy_begin_call): Move return_if_fail here.
3591
3592         * glib/dbus-gobject.c (write_interface): Update for
3593         dbus_gtype_to_signature returning new string.
3594
3595         * configure.in: Add glib/examples/statemachine.
3596
3597 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3598
3599         * configure.in: Add a configure option, --with-console-auth-dir
3600         
3601         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3602         new setting.  Patch from Kay Sievers.
3603
3604 2005-07-06  Colin Walters  <walters@verbum.org>
3605
3606         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3607         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3608         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3609         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3610         Delete in favor of dbus_g_proxy_begin_call and
3611         dbus_g_proxy_cancel_call.
3612         (DBusGProxyCall, DBusGProxyCallNotify): New.
3613         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3614         data, and destroy function.  This replaces
3615         dbus_g_pending_call_set_notify.
3616         (dbus_g_proxy_cancel_call): Prototype.
3617         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3618
3619         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3620         pending_calls map.
3621         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3622         internal proxy for calls to the bus. Remove
3623         pending_nameowner_calls, now the internal proxy keeps track.
3624         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3625         pending_nameowner_calls.
3626         (got_name_owner_cb): Update prototype, and use
3627         dbus_g_proxy_end_call.
3628         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3629         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3630         favor of using internal proxy.
3631         (dbus_g_proxy_manager_unregister): Update to use
3632         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3633         (dbus_g_proxy_init): Initialize pending calls map.
3634         (dbus_g_proxy_constructor): New.
3635         (dbus_g_proxy_class_init): Add get/set property functions,
3636         constructor, and add NAME, PATH, and INTERFACE properties.
3637         (cancel_pending_call): New function.
3638         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3639         cancel them.
3640         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3641         (GPendingNotifyClosure): New structure.
3642         (d_pending_call_notify, d_pending_call_free): Moved here from
3643         dbus-glib.c.
3644         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3645         ordering.
3646         (manager_begin_bus_call): New internal function for talking to
3647         internal bus proxy.
3648         (dbus_g_proxy_new): Construct object using GObjet properties.
3649         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3650         Create closure of same, and insert call into map of pending calls.
3651         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3652         call.  Look up pending call in current set.  Remove it when we've
3653         completed.
3654         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3655         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3656         and destroy function directly.
3657         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3658         (dbus_g_proxy_call): Invoke with NULL callback.
3659         (dbus_g_proxy_cancel_call): New function, replaces
3660         dbus_g_pending_call_cancel.
3661
3662         * glib/dbus-gparser.c (validate_signature): Fix call to
3663         dbus_set_g_error.
3664
3665         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3666         New quark for attaching metadata to GType.
3667         (info_hash): Delete.
3668         (lookup_object_info): Look up using quark.
3669         (dbus_g_object_type_install_info): Check that a type is classed,
3670         not that it's an object.  Also just install type data using quark
3671         instead of using global hash.
3672
3673         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3674         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3675         (GPendingNotifyClosure): Delete.
3676         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3677         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3678
3679         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3680         client method generation until we can fix it...
3681         
3682         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3683         (load_from_service_thread_func): Ditto.
3684
3685         * tools/dbus-names-model.c (struct NamesModel): Hold
3686         DBusGProxyCall.
3687         (have_names_notify): Update prototype, use
3688         dbus_g_proxy_cancel_call.
3689         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3690
3691         * tools/dbus-monitor.c (filter_func): Update for print_message
3692         API change.
3693
3694         * test/glib/test-dbus-glib.c: Add more tests for async
3695         invocations.  Update many begin_call/end_call pairs to just use
3696         dbus_g_proxy_call.
3697
3698         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3699         allows us to dump print-introspect.c.
3700
3701         * tools/dbus-print-message.h (print_message): Add literal argument
3702         to print_message which is intended to allow printing arguments without
3703         metadata like "string=".
3704
3705         * tools/dbus-print-message.c (print_iter): Add literal argument.
3706         (print_message): Allow printing string messages literally.
3707
3708 2005-07-05  Colin Walters  <walters@verbum.org>
3709
3710         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3711         Remove value refcount leak, original patch from Jorn Baayen
3712         <jorn@openedhand.com>.  Also remove useless extra value in favor
3713         of prepending to value array directly.
3714
3715 2005-07-02  Colin Walters  <walters@verbum.org>
3716
3717         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3718
3719 2005-07-01  Colin Walters  <walters@verbum.org>
3720
3721         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3722         
3723         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3724         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3725         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3726         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3727
3728 2005-06-30  Colin Walters  <walters@verbum.org>
3729
3730         * test/glib/test-dbus-glib.c:
3731         * test/glib/test-service-glib.c:
3732         * test/glib/test-service-glib.xml: Update tests for new error
3733         setting bits, also add async tests (patch from Ross Burton).
3734
3735         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3736         DBUS_GLIB_THREADS_LIBS.
3737
3738         * glib/dbus-gproxy.c (get_name_owner)
3739         (dbus_g_pending_call_end_valist): Ditto.
3740
3741         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3742         domain (GQuark) to DBusGErrorInfo.  
3743         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3744         quark in error_metadata.  Take message interface as default
3745         error message interface.
3746         (gerror_to_dbus_error_message): Pass message interface.
3747         (dbus_set_g_error): Resurrected.
3748         (dbus_g_error_info_free): New function.
3749         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3750         of _peek to actually create the object class if it hasn't been
3751         created yet.
3752         (dbus_g_error_domain_register): New function.
3753
3754         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3755
3756         * glib/dbus-gparser.c (validate_signature): Ditto.
3757
3758         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3759         (dbus_g_error_domain_register): Prototype.
3760
3761         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3762         Update tests.
3763
3764 2005-06-29  Colin Walters  <walters@verbum.org>
3765
3766         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3767         DBUS_TYPE_G_OBJECT_PATH.
3768
3769         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3770         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3771         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3772         (dbus_g_object_path_get_g_type): New function.
3773         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3774         to DBUS_TYPE_G_OBJECT_PATH by default.
3775         (demarshal_proxy): Remove unused name variable.
3776         (demarshal_object_path, marshal_object_path): New functions.
3777         (demarshal_proxy_array, marshal_proxy_array): Delete.
3778         
3779         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3780         DBUS_TYPE_G_OBJECT_PATH to char *.
3781         (dbus_g_type_get_lookup_function): Map builtin
3782         DBUS_TYPE_G_OBJECT_PATH.
3783
3784         * test/glib/test-dbus-glib.c
3785         * test/glib/test-service-glib.c (my_object_objpath): 
3786         Adapt tests to new object path marshalling.
3787
3788 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3789
3790         * configure.in: force check for Python >= 2.4
3791
3792 2005-06-29  Colin Walters  <walters@verbum.org>
3793         
3794         Patch from Ross Burton <ross@openedhand.com>
3795         
3796         * glib/dbus-gobject.c (invoke_object_method): Unset object
3797         value in all cases, not only in async case.
3798
3799 2005-06-29  Colin Walters  <walters@verbum.org>
3800
3801         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3802         name_call for keeping track of any outgoing GetNameOwner call.
3803         Also add for_owner and associated.
3804         (struct _DBusGProxyManager): Add owner_names, which is hash table
3805         that maps a base name to a list of names it owns (that we're
3806         interested in).  Add pending_nameowner_calls which is a list of
3807         all outstanding GetNameOwner; avoids us having to iterate over
3808         every proxy.  Add unassociated_proxies which keeps track of name
3809         proxies with no associated name owner.
3810         (dbus_g_proxy_manager_unref): Destroy owner_names.
3811         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3812         name refcounts.
3813         (find_name_in_info, name_owner_foreach)
3814         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3815         (dbus_g_proxy_manager_monitor_name_owner)
3816         (dbus_g_proxy_manager_unmonitor_name_owner)
3817         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3818         New functions; they manipulate the owner_names mapping.
3819         (got_name_owner_cb): New function.
3820         (get_name_owner): New function, extracted from
3821         dbus_g_proxy_new_for_name_owner.
3822         (dbus_g_proxy_manager_register): For now we need to keep track of
3823         all NameOwnerChanged.  Also if the proxy is for a name, if we
3824         don't already know the name owner, queue a new GetNameOwner
3825         request and add it to our list of unassociated proxies.  Otherwise
3826         inc the refcount.
3827         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3828         cancel any pending GetNameOwner call, etc.
3829         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3830         the owner_names mapping to look up the current names for the
3831         signal source, and dispatch to any proxies for that name.
3832         (dbus_g_proxy_new): Initialize new members.
3833         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3834         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3835         (dbus_g_pending_call_end_valist): New function, extracted from
3836         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3837         but want to use the GLib infrastructure.  Also note how many
3838         arguments in reply were over.
3839         (dbus_g_pending_call_end): New function, just call
3840         dbus_g_pending_call_end_valist.
3841         (dbus_g_proxy_end_call_internal): Just call
3842         dbus_g_pending_call_end_valist.
3843
3844         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3845         of builtin marshaller for STRING_STRING_STRING.
3846
3847         * test/glib/test-dbus-glib.c: 
3848         * test/glib/test-service-glib.c:
3849         * test/glib/test-service-glib.xml:
3850         Extend tests to cover name proxies, destruction of owner proxies,
3851         etc.
3852         
3853         * glib/examples/example-signal-recipient.c
3854         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3855         
3856         * tools/dbus-send.c (main): Print D-BUS error name in addition
3857         to message.
3858
3859 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3860
3861         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3862         cmessage_function_handler): Patch from 
3863         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3864         by using the Py_GILState_Ensure/Release to synchronize with the
3865         python runtime.
3866         
3867 2005-06-28  Ray Strode  <rstrode@redhat.com>
3868
3869         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3870         babysitter helper process on last unref, bug #2813.
3871
3872 2005-06-27  Colin Walters  <walters@verbum.org>
3873
3874         * test/glib/test-dbus-glib.c: 
3875         * test/glib/test-service-glib.c:
3876         * test/glib/test-service-glib.xml:
3877         Test hash table signal emitting.
3878
3879         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3880         types to their fundamental basis types, since this is what
3881         marshallers operate on.  Also add an entry for VOID__BOXED.
3882         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3883
3884 2005-06-26  Havoc Pennington  <hp@redhat.com>
3885
3886         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3887         from Don Park
3888
3889 2005-06-26  Colin Walters  <walters@verbum.org>
3890
3891         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3892         (dbus_g_error_set): New public function from its ashes; used by
3893         both service-side method implementation and GLib bindings
3894         internals.
3895         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3896         (_dbus_glib_test): Add some tests.
3897
3898         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3899
3900         * test/glib/test-service-glib.c (my_object_throw_error): Use
3901         dbus_g_error_set.
3902
3903         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3904         errors thrown by dbus_g_error_set.
3905
3906         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3907
3908         * glib/dbus-gparser.c (validate_signature): Ditto.
3909
3910         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3911         (dbus_g_proxy_end_call_internal): Ditto.
3912
3913         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3914         converts DBUS_ERROR_x to DBUS_GERROR_x.
3915         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3916
3917         * doc/TODO: Remove error TODO.
3918
3919         * doc/dbus-tutorial.xml: Update with documentation about error
3920         handling.
3921
3922         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3923         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3924         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3925
3926 2005-06-22  Colin Walters  <walters@verbum.org>
3927         
3928         Patch from Ross Burton <ross@openedhand.com>
3929
3930         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3931
3932 2005-06-20  Colin Walters  <walters@verbum.org>
3933
3934         * configure.in: Add glib/examples.
3935
3936         * glib/Makefile.am: Add examples/
3937
3938         * glib/examples/.cvsignore
3939         * glib/examples/Makefile.am
3940         * glib/examples/example-client.c
3941         * glib/examples/example-service.c
3942         * glib/examples/example-service.xml
3943         * glib/examples/example-signal-emitter.c
3944         * glib/examples/example-signal-emitter.xml
3945         * glib/examples/example-signal-recipient.c:
3946         New files; GLib binding examples, ported from
3947         python/examples.
3948
3949 2005-06-20  Colin Walters  <walters@verbum.org>
3950
3951         * dbus/dbus-glib.h: 
3952         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3953         dbus_g_proxy_call.
3954
3955         * glib/dbus-binding-tool-glib.c: 
3956         * doc/dbus-tutorial.xml: 
3957         * test/glib/test-dbus-glib.c: Update for rename.
3958         
3959 2005-06-20  Colin Walters  <walters@verbum.org>
3960
3961         Patch suggested by Ross Burton <ross@openedhand.com>
3962
3963         * glib/dbus-gobject.c (export_signals): Free signal name.
3964         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3965         memory leak.  Add a bit of documentation.
3966         (dbus_g_method_return_error): Free context, and note we do
3967         so.
3968
3969 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3970
3971         * dbus/dbus-glib.h:
3972         * glib/dbus-gobject.c:
3973         * glib/dbus-gproxy.c:
3974         * glib/dbus-gvalue.c: Predeclare structs as 
3975         typedef struct _Something Something instead of 
3976         typedef struct Something Something, so we can 
3977         redeclare the prototypes. Other GNOME libraries 
3978         do this already.
3979
3980 2005-06-17  Colin Walters  <walters@verbum.org>
3981
3982         * tools/dbus-names-model.c (have_names_notify): Fix call
3983         to dbus_g_proxy_end_call.
3984         
3985 2005-06-17  Colin Walters  <walters@verbum.org>
3986
3987         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3988         spew warnings if we get malformed remote signals.
3989
3990         * glib/dbus-gobject.c (propsig_iterate): New function.
3991         (lookup_object_info): New function, extracted from
3992         lookup_object_and_method.
3993         (introspect_properties, introspect_signals): Delete; these
3994         are merged into write_interface.
3995         (write_interface): Write out signals and properties here;
3996         dump the org.gtk.object stuff and use the interface given
3997         in the introspection data blob.  Also fix up property XML.
3998         (lookup_values): New function.
3999         (introspect_interfaces): Gather a mapping from interface to a
4000         list of its methods, signals, and properties, then write out
4001         each interface.
4002         (lookup_object_and_method): Use lookup_object_info.
4003         (struct DBusGSignalClosure): Add interface.
4004         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4005         we can just use the constant data.
4006         (dbus_g_signal_closure_finalize): Don't free signal name.
4007         (signal_emitter_marshaller): Use interface from signal closure.
4008         (export_signals): Only export signals mentioned in introspection
4009         blob.
4010         (dbus_g_connection_register_g_object): Warn if we have no
4011         introspection data for an object.
4012         (funcsig_equal): Remove unused variable.
4013         (dbus_g_object_register_marshaller): Take varargs instead of
4014         list.
4015         (dbus_g_object_register_marshaller_array): New function,
4016         extracted from old dbus_g_object_register_marshaller.
4017
4018         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4019         signals and property data.
4020         (write_quoted_string): New function, extracted from generate_glue.
4021         (generate_glue): Write signals and properties to introspection
4022         blob.
4023
4024         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4025         exported_signals and exported_properties.
4026         (dbus_g_object_register_marshaller): Update prototype.
4027         (dbus_g_object_register_marshaller_array): Prototype.
4028         
4029         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4030
4031         * test/glib/test-service-glib.c: Add new test signals and method
4032         to emit them.
4033
4034         * test/glib/test-service-glib.xml: Add some test signals.
4035
4036         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4037         and my-object-marshal.h
4038         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4039         my-object-marshal.c.
4040         (my-object-marshal.c, my-object-marshal.h): Implement.
4041
4042         * test/glib/.cvsignore: Update.
4043
4044         * doc/TODO: Remove two GLib TODO items fixed by this
4045         patch.
4046
4047 2005-06-16  Colin Walters  <walters@verbum.org>
4048
4049         * doc/TODO: Update for GLib bindings.
4050         
4051 2005-06-16  Colin Walters  <walters@verbum.org>
4052
4053         * glib/dbus-binding-tool-glib.c:
4054         * glib/dbus-gobject.c:
4055         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4056         from Ross Burton, for his GLib bindings work.
4057
4058 2005-06-16  Colin Walters  <walters@verbum.org>
4059
4060         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4061         to iterate instead of walking to G_TYPE_INVALID.
4062
4063         Patch based on a patch from Ryan Gammon.
4064
4065 2005-06-16  Colin Walters  <walters@verbum.org>
4066
4067         * bus/bus.c (bus_context_new): Set parser to NULL
4068         after we unref it (Patch from Chris Boscolo, #2174).
4069         
4070 2005-06-16  Colin Walters  <walters@verbum.org>
4071
4072         * python/dbus_bindings.pyx.in: Import size_t,
4073         __int64_t, __uint64_t, and __signed.
4074
4075         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4076         Define cmsg struct, output it.
4077         (_dbus_read_credentials_unix_socket):
4078         Use cmsg struct.
4079         
4080         Patch from Joe Markus Clarke for FreeBSD support.
4081         
4082 2005-06-16  Colin Walters  <walters@verbum.org>
4083
4084         * tools/dbus-send.c (append_array): Use strtok.
4085         (append_dict): New function.
4086         (type_from_name): New function, extracted from main.
4087         (main): Handle sending dicts.
4088
4089         * tools/dbus-print-message.c (print_iter): Print dict
4090         entries.
4091         
4092 2005-06-16  Colin Walters  <walters@verbum.org>
4093
4094         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4095         values as the empty string (#2948).
4096         
4097 2005-06-16  Colin Walters  <walters@verbum.org>
4098
4099         * dbus/Makefile.am:
4100         * mono/doc/Makefile.am:
4101         * test/glib/Makefile.am:
4102
4103         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4104
4105 2005-06-16  Colin Walters  <walters@verbum.org>
4106
4107         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4108         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4109
4110         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4111         Increment pointer after swapping fixed array.  Add assertion
4112         for array length.
4113                 
4114 2005-06-15  Colin Walters  <walters@verbum.org>
4115
4116         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4117         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4118         
4119 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4120
4121         * NEWS: Update to 0.34
4122
4123 2005-06-15  David Zeuthen  <davidz@redhat.com>
4124
4125         * configure.in (LT_CURRENT): Revert back to 1 as the library
4126         hasn't changed and we've certainly not committed to protocol
4127         stability yet.  All this does is to break ABI. See commit note
4128         from hp@redhat.com 2005-05-05 for details.
4129         
4130 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4131
4132         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4133         (_dbus_connection_run_builtin_filters): New method
4134         (dbus_connection_dispatch): Run the builtin filters which in turn
4135         runs the peer filter which handles Ping messages.
4136
4137         * doc/TODO: 
4138          - Ping isn't handled: This patch fixes it
4139          
4140          - Add a test case for the Ping message: added TODO item
4141
4142 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4143
4144         * dbus/dbus-message.c:
4145         (dbus_message_has_path): New method
4146         (dbus_message_has_interface): New method
4147         (dbus_message_has_member): New method
4148
4149         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4150         New method
4151
4152         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4153         the keyring directory is private to the user
4154
4155         * doc/TODO:
4156          - The convenience functions in dbus-bus.h should perhaps have
4157          the signatures that they would have if they were autogenerated
4158          stubs. e.g. the acquire service function. We should also evaluate
4159          which of these functions to include, in light of the fact that
4160          GLib/Qt native stubs will probably also exist.: Punted
4161
4162          - add dbus_message_has_path(), maybe has_member/interface:
4163          fixed in this patch
4164
4165          - in dbus-keyring.c, enforce that the keyring dir is not
4166          world readable/writable: Fixed in this patch
4167
4168 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4169
4170         * dbus/dbus-marshal-validate.h: Added a new validation
4171         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4172         out of memory errors when validating signitures
4173
4174         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4175         in places where we previously used DBUS_VALID and a FALSE return 
4176         value to indicate OOM
4177         
4178         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4179         Use a stack to track the number of elements inside containers.  The 
4180         stack values are then used to validate that dict entries have only two
4181         elements within them.
4182         (validate_body_helper): check the reason for failure when validating
4183         varients
4184         
4185         * dbus/dbus-message.c (load_message): use 
4186         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4187         DBUS_VALID and a FALSE return value to indicate OOM
4188
4189         * doc/TODO: remove "- validate dict entry number of fields" as this
4190         patch fixes it
4191
4192 2005-06-14  David Zeuthen  <davidz@redhat.com>
4193
4194         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4195         watches (if applicable) and add new watches
4196
4197         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4198         (main): Setup SIGIO signal handler if using D_NOTIFY
4199
4200         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4201
4202         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4203         (merge_included): Also merge conf_dirs list
4204         (bus_config_parser_unref): Clear conf_dirs list
4205         (include_dir): Add directory to conf_dirs list
4206         (bus_config_parser_get_conf_dirs): New function
4207
4208         * bus/dir-watch.[ch]: New files
4209
4210         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4211
4212         * configure.in: Add checks for D_NOTIFY on Linux
4213
4214 2005-06-14  Colin Walters  <walters@verbum.org>
4215
4216         * glib/dbus-binding-tool-glib.c:
4217         * glib/dbus-gobject.c:
4218         * glib/dbus-gvalue.c: Fix indentation and brace style.
4219         
4220 2005-06-14  Ross Burton <ross@openedhand.com>.
4221
4222         * glib/dbus-glib.h: Make DBusGMethodInvocation
4223         a private structure.  Rearrange prototypes a bit.
4224         
4225         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4226         documentation for first_arg_type.
4227         
4228         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4229         here, add documentation.  Move dbus_g_method_return
4230         and dbus_g_method_return_error into public API
4231         section.
4232
4233 2005-06-14  Colin Walters  <walters@verbum.org>
4234
4235         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4236         Add missing return statements, noticed by Ross Burton.
4237         
4238 2005-06-13  Ross Burton <ross@openedhand.com>.
4239
4240         * glib/dbus-gobject.c: Handle errors on message
4241         demarshalling by sending error message back.
4242         * glib/dbus-gvalue.c: Initialize return variables.
4243
4244 2005-06-13  Colin Walters  <walters@verbum.org>
4245
4246         * glib/Makefile.am: Fix thinko in last patch.
4247
4248 2005-06-13  Colin Walters  <walters@verbum.org>
4249
4250         * glib/Makefile.am: Move dbus-gtype-specialized.c
4251         and dbus-gtype-specialized.h into a _HEADERS variable,
4252         install them.
4253
4254 2005-06-12  Colin Walters  <walters@verbum.org>
4255
4256         Async signals and various bugfixes and testing by
4257         Ross Burton <ross@openedhand.com>.
4258
4259         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4260         (dbus_gvalue_genmarshal_name_from_type)
4261         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4262         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4263         (dbus_g_value_types_init, dbus_gtype_from_signature)
4264         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4265         (dbus_gtypes_from_arg_signature): New function prototypes.
4266         (dbus_gvalue_demarshal): Take context and error arguments.
4267         (dbus_gvalue_demarshal_variant): New function.
4268         (dbus_gvalue_demarshal_message): New function.
4269         (dbus_gvalue_store): Delete.
4270
4271         * glib/dbus-gvalue.c:
4272
4273         File has been almost entirely rewritten; now we special-case
4274         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4275         hash tables correctly, etc.  Full support for recursive values
4276         is not yet complete.
4277
4278         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4279         argument of signal to G_TYPE_POINTER since we now pass a
4280         structure.
4281         (lookup_g_marshaller): Delete in favor of
4282         _dbus_gobject_lookup_marshaller.
4283         (marshal_dbus_message_to_g_marshaller): Use
4284         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4285         to handle remote signal callbacks.
4286         (dbus_g_proxy_new_from_proxy): New function; creates a new
4287         DBusGProxy by copying an existing one.
4288         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4289         (dbus_g_proxy_get_path): New functions.
4290         (dbus_g_proxy_marshal_args_to_message): New function;
4291         factored out of existing code.
4292         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4293         from a varargs array.
4294         (dbus_g_proxy_begin_call_internal): New function.
4295         (dbus_g_proxy_end_call_internal): New function.
4296         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4297         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4298         after collecting args into value array.
4299         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4300         invoke dbus_g_proxy_end_call_internal.
4301         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4302         end_call_internal.
4303         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4304         types.
4305         (array_free_all): New function.
4306         (dbus_g_proxy_add_signal): Take GTypes.
4307
4308         * glib/dbus-gobject.h:
4309         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4310         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4311         Prototype.
4312
4313         * glib/dbus-gobject.c: Add a global marshal_table hash which
4314         stores mappings from type signatures to marshallers.  Change lots
4315         of invocations of dbus_gtype_to_dbus_type to
4316         dbus_gtype_to_signature.
4317         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4318         (introspect_signals): Fix test for query.return_type.
4319         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4320         (invoke_object_method): Many changes.  Handle asynchronous
4321         invocations.  Convert arguments with
4322         dbus_gvalue_demarshal_message.  Handle errors.  Use
4323         DBusSignatureIter instead of strlen on args. Handle all arguments
4324         generically.  Special-case variants.
4325         (dbus_g_method_return, dbus_g_method_return_error): New function.
4326         (DBusGSignalClosure): New structure, closes over signal
4327         information.
4328         (dbus_g_signal_closure_new): New function.
4329         (dbus_g_signal_closure_finalize): New function.
4330         (signal_emitter_marshaller): New function; is special marshaller
4331         which emits signals on bus.
4332         (export_signals): New function; introspects object signals and
4333         connects to them.
4334         (dbus_g_object_type_install_info): Take GType instead of
4335         GObjectClass.
4336         (dbus_g_connection_register_g_object): Invoke export_signals.
4337         (dbus_g_connection_lookup_g_object): New function.
4338         (DBusGFuncSignature) New structure; used for mapping type
4339         signatures to marshallers.
4340         (funcsig_hash): New function; hashes DBusGFuncSignature.
4341         (funcsig_equal): New function; compares DBusGFuncSignature.
4342         (_dbus_gobject_lookup_marshaller): New function.
4343         (dbus_g_object_register_marshaller): New function; used to
4344         register a marshaller at runtime for a particular signature.
4345
4346         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4347
4348         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4349         which notes a server method implementation should be
4350         asynchronous.
4351
4352         * glib/dbus-binding-tool-glib.c
4353         (dbus_binding_tool_output_glib_server): Call
4354         dbus_g_value_types_init.
4355         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4356         variants specially.
4357         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4358         of a lookup function.
4359         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4360         (write_untyped_out_args): New method; write output arguments.
4361         (write_formal_declarations_for_direction): Function for
4362         writing prototypes.
4363         (write_formal_parameters_for_direction): Function for
4364         writing implementations.
4365         (write_typed_args_for_direction): Function for writing
4366         arguments prefixed with GTypes.
4367         (write_async_method_client): Write out async version
4368         of method.
4369
4370         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4371         (dbus_g_type_get_marshal_name): Move mapping from GType
4372         to marshal name into here.
4373         (dbus_g_type_get_c_name): Move into here.
4374         (compute_marshaller): Convert signature to type with
4375         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4376         (compute_marshaller_name): Ditto.
4377         (compute_marshaller): Handle async signal annotations.
4378         (gather_marshallers): Return if we don't have a known
4379         prefix.
4380         (generate_glue): Collect introspection blob here, and
4381         write all of the blob at the end.  This allows an object
4382         with multiple interfaces to work.
4383         Mark async methods in introspection blob.
4384
4385         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4386         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4387         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4388
4389         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4390         avoids people accidentally using DBUS_TYPE_* which should
4391         not be necessary anymore.
4392         Do include dbus-gtype-specialized.h, which are utilities
4393         for GLib container types.
4394         Add various #defines for types such as
4395         DBUS_TYPE_G_BOOLEAN_ARRAY.
4396         (DBusGValueIterator, DBusGValue): Define, not fully used
4397         yet.
4398         (dbus_g_value_get_g_type): Type for recursive value.
4399         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4400         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4401         (dbus_g_value_free): Prototypes.
4402         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4403         (dbus_g_proxy_set_interface): Prototype.
4404         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4405         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4406         types.
4407         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4408         Accessors.
4409         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4410         doing async invocations.
4411         (dbus_g_method_return, dbus_g_method_return_error):
4412         Prototypes.
4413         * doc/dbus-tutorial.xml: Update GLib section.
4414         
4415         * tools/dbus-viewer.c (load_child_nodes): Update
4416         for new invocation type of dbus_g_proxy_end_call.
4417         (load_from_service_thread_func): Ditto.
4418
4419         * tools/print-introspect.c (main): Ditto.
4420
4421         * tools/dbus-names-model.c (have_names_notify)
4422         (names_model_reload, names_model_set_connection)
4423         Use GTypes.
4424
4425         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4426         needed since Python bindings use GLib bindings.
4427
4428         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4429         Add --prefix argument.
4430
4431         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4432         unneeded --ignore-unsupported arg.
4433         
4434         * test/glib/test-service-glib.c: 
4435         * test/glib/test-service-glib.xml:
4436         * test/glib/test-dbus-glib.c: Add many more tests.
4437
4438 2005-06-06  David Zeuthen  <davidz@redhat.com>
4439
4440         * doc/TODO: Add item about need to remove deprecated functions.
4441
4442         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4443
4444         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4445         to repair the ABI which was broken with the last commit.
4446
4447 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4448
4449         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4450         (dbus_connection_disconnect): renamed to dbus_connection_close 
4451         for API symmetry with dbus_connection_open
4452         (_dbus_connection_open_internal): 
4453         s/dbus_connection_disconnect/dbus_connection_close
4454
4455         * dbus/dbus-bus.c (dbus_bus_get):
4456         s/dbus_connection_disconnect/dbus_connection_close
4457
4458         * bus/connection.c (bus_connections_unref, 
4459         bus_connections_setup_connection, bus_connections_expire_incomplete):
4460         s/dbus_connection_disconnect/dbus_connection_close
4461
4462         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4463         kill_client_connection_unchecked, check_hello_connection):
4464         s/dbus_connection_disconnect/dbus_connection_close
4465
4466         * bus/bus.c (new_connection_callback):
4467         s/dbus_connection_disconnect/dbus_connection_close
4468
4469         * tools/dbus-send.c (main):
4470         s/dbus_connection_disconnect/dbus_connection_close
4471
4472         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4473         s/dbus_connection_disconnect/dbus_connection_close
4474         
4475         * test/test-service.c (path_message_func, filter_func):
4476         s/dbus_connection_disconnect/dbus_connection_close
4477         
4478         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4479         
4480 2005-05-25  Colin Walters  <walters@verbum.org>
4481
4482         * dbus/dbus-protocol.h: Move various bus service #defines such
4483           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4484           dbus/dbus-shared.h.
4485         * dbus/dbus-shared.h: Various defines moved here.
4486         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4487
4488 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4489
4490         * python/__init__.py: Python bindings deserve a minor version
4491         update.  Upped to (0, 40, 2)
4492
4493 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4494
4495         * python/decorators.py: add explicitly_pass_message decorator
4496         for passing in the dbus message as keyword for edge case signal
4497         handling
4498
4499         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4500         to conform with what dbus expects for match rules
4501         (SignalMatchRule.execute): add the dbus message as a keyword
4502         if the signal handler has requested it
4503
4504         * python/examples/example/signal-recipient.py: added some more
4505         examples on how to hook up to signals
4506
4507 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4508
4509         * python/decorators.py: import dbus_bindings
4510
4511         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4512         SignalMatchNode): new classes that implement wildcard signal
4513         callback matching using a tree lookup. Heavily modified from a
4514         patch sent by Celso Pinto (fd.o bug #3241)
4515
4516         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4517         use new match classes to handle signals.
4518
4519 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4520         
4521         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4522
4523 2005-05-18  Havoc Pennington  <hp@redhat.com>
4524
4525         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4526         gettext. Not really worth requiring yet perhaps, but any
4527         production quality 1.0 would require it so we should go ahead and
4528         get things set up. We do have a couple token calls to
4529         bindtextdomain in the code already.
4530
4531 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4532
4533         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4534         when using recursive g_main_loops
4535
4536         * python/_dbus.py (class Bus): add the ProxyObjectClass
4537         alias for ProxyObject to make it easier for the Twisted 
4538         networking framework to integrate dbus.
4539
4540         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4541         alias for ProxyMethod to make it easier for the Twisted 
4542         networking framework to integrate dbus. 
4543
4544 2005-05-11  Ross Burton  <ross@openedhand.com>
4545
4546         * glib/dbus-glib-tool.c: Add --prefix argument.
4547         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4548         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4549         Add prefix argument.
4550         (generate_glue): Pass prefix argument down.
4551         (dbus_binding_tool_output_glib_server): Pass prefix to
4552         glib-genmarshal.
4553         
4554 2005-05-11  Colin Walters  <walters@verbum.org>
4555
4556         * tools/dbus-send.c (append_array): New function.
4557         (append_arg): Broken out from main.
4558         (main): Add cheesy hack to send arrays and variants.
4559         (usage): Update.
4560         * tools/dbus-print-message.c (print_iter): Broken out
4561         from main.
4562
4563 2005-05-11  Colin Walters  <walters@verbum.org>
4564
4565         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4566         New function, returns signature string for signature iter.
4567         * dbus/dbus-signature.h: Prototype it.
4568         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4569         New function, returns signature string for message iter.
4570         (dbus_message_iter_get_array_len): New function, returns
4571         length of array.
4572         (dbus_message_iter_get_fixed_array): Fix assertion; this
4573         function should be used when the iter is pointing to the
4574         contents of an array
4575         * dbus/dbus-message.h: Prototypes.
4576         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4577         New function; returns length of an array.
4578         * dbus/dbus-marshal-recursive.h: Prototype it.
4579         
4580 2005-05-11  Colin Walters  <walters@verbum.org>
4581
4582         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4583         compilation error.
4584         
4585 2005-05-08  Havoc Pennington  <hp@redhat.com>
4586
4587         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4588         daemon's pid, not the parent's pid, to the file descriptor.
4589         Reported by Taj Morton.
4590
4591 2005-05-05  Havoc Pennington  <hp@redhat.com>
4592
4593         * configure.in (LT_*): add notes on how the libtool versioning
4594         works to save thinking. Increment soname to indicate protocol
4595         breakage (though really the library interface hasn't changed I
4596         guess)
4597
4598         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4599         verify the GUID received from server matches what we were
4600         expecting, if we had an expectation
4601
4602         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4603         (_dbus_auth_get_guid_from_server): new function
4604         (send_begin): parse the OK args
4605
4606         * doc/dbus-specification.xml: add GUID to the auth protocol
4607
4608 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4609
4610         * Fix my name in previous changelog ;)
4611
4612         * python/proxies.py (ProxyObject.__getattr__): add further patch
4613         from Anthony Baxter to throw an AttributeError when python 
4614         __special__ functions are called instead of marshling them over 
4615         the bus (Bug#1685 comment 3).
4616
4617 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4618
4619         * python/Makefile.am: changed to use pyexecdir for the binding
4620         shared libraries (Bug#2494)
4621
4622         * python/exceptions.py: bring exceptions over from the bindings
4623         so they can be used in applications (Bug#2036)
4624         Make all exceptions derive from DBusException
4625
4626         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4627         of classes so that print obj doesn't throw an exception (Bug #1685)
4628
4629 2005-05-03  Ross Burton  <ross@openedhand.com>
4630
4631         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4632         Return if we get an error during registration.  Set up a
4633         weak reference on object to unregister if object is destroyed.
4634         (unregister_gobject): New function.
4635         
4636 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4637
4638         * python/dbus_bindings.pyx.in: 
4639         - added new type classes for hinting to the marashaler what type 
4640         to send over the wire
4641         - added int16 and uint16 marshalers
4642         - Fixed a bug in the type constants that caused int32 to go out
4643         as uint16 over the wire
4644         * python/dbus.py: split up into different files and renamed _dbus.py
4645         * python/__init__.py, python/_util.py, python/decorators.py, 
4646         python/exceptions.py, python/proxies.py, python/services.py,
4647         python/types.py: new files split off from dbus.py
4648         * python/Makefile.am: Add new files, remove dbus.py and 
4649         install all python files to <python module dir>/dbus
4650         * python/examples/*: Added #!/usr/bin/env python to the top of
4651         every example.  Patch provided by Tatavarty Kalyan
4652
4653 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4654
4655         * NEWS: Update to 0.33
4656
4657 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4658
4659         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4660         method for doing async calls
4661         (_pending_call_notification): New C function for handling pendning call
4662         callbacks
4663         (set_notify): New method for setting pending call notification
4664         
4665         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4666         Async capabilities added to remote method calls
4667         (Sender): class removed
4668         (RemoteService): class removed
4669         (ObjectTree): class removed for now
4670         (RemoteObject): Renamed to ProxyObject
4671         (RemoteMethod): Renamed to ProxyMethod
4672         (method): Decorator added for decorating python methods as dbus methods
4673         (signal): Decorator added for decorating python methods as signal emitters
4674         (ObjectType): Metaclass added for generating introspection data and the
4675         method callback vtable
4676         (Interface): Wrapper class added to wrap objects in a dbus interface
4677         (Object): Uses ObjectType as its metaclass and exports Introspect
4678         of the org.freedesktop.DBus.Introspectable interface
4679         (ValidationException, UnknownMethodException): new exceptions
4680
4681         * python/examples/*: Modified to fit with the new bindings
4682
4683 2005-04-23  Havoc Pennington  <hp@redhat.com>
4684
4685         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4686         reported by Tony Houghton
4687
4688         * test/test-service.c (main): test
4689         dbus_connection_get_object_path_data()
4690
4691         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4692         the exact_match
4693         (_dbus_object_tree_get_user_data_unlocked): new function used by
4694         dbus_connection_get_object_path_data()
4695         (do_register): add assertion test for get_user_data_unlocked
4696         (object_tree_test_iteration): more tests
4697
4698         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4699         new function from Dan Reed to let you get the user data from 
4700         dbus_connection_register_object_path()
4701
4702 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4703
4704         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4705         in numerous places that did not account for the NULL terminator
4706         (signature_from_seed): changed the manual string copy loop to 
4707         just use strcpy instead
4708         make check should now pass
4709
4710 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4711
4712         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4713         so that it allows messages that are not signals to pass in 
4714         NULL as the interface.
4715
4716 2005-04-18  David Zeuthen  <davidz@redhat.com>
4717
4718         * glib/dbus-gmain.c (io_handler_destroy_source): 
4719         (timeout_handler_destroy_source, connection_setup_free): 
4720         Also unref the source to avoid memory leaks.
4721
4722 2005-04-13  David Zeuthen  <davidz@redhat.com>
4723
4724         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4725         more reasonable, yet still totally arbitrary, value :-). 
4726
4727 2005-04-13  David Zeuthen  <davidz@redhat.com>
4728
4729         * doc/TODO: Added an "important for 1.0" item about selinux
4730         allow/deny messages
4731
4732 2005-04-13  David Zeuthen  <davidz@redhat.com>
4733
4734         * bus/selinux.c: Add c-file-style to top of file
4735         (log_audit_callback): Don't free the data here anymore
4736         (bus_selinux_check): Don't take spid and tpid since appending
4737         that to auxdata may OOM.
4738         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4739         to the caller if we are OOM by taking an error object.
4740         (bus_selinux_allows_send): -do-
4741
4742         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4743         and bus_selinux_allows_send
4744
4745         * bus/bus.c (bus_context_check_security_policy): Pass error and
4746         pass on OOM thrown by bus_selinux_allows_send()
4747
4748         * bus/services.c (bus_registry_acquire_service): Pass error and
4749         pass on OOM thrown by bus_selinux_allows_acquire_service()
4750
4751 2005-04-13  Havoc Pennington  <hp@redhat.com>
4752
4753         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4754         message at a time to avoid monopolizing the main loop, bug 
4755         #2953 from Benjamin Otte
4756
4757 2005-04-09  Havoc Pennington  <hp@redhat.com>
4758
4759         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4760         possible overlap, fix from Daniel Reed
4761         (fixup_alignment): fix signedness warnings
4762         (_dbus_string_append_unichar): ditto
4763
4764 2005-04-09  Havoc Pennington  <hp@redhat.com>
4765
4766         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4767
4768         * glib/dbus-glib-tool.c (main): fix warning
4769
4770         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4771
4772         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4773         add a new function that can be used in simple applications that
4774         don't have a main loop and are willing to block
4775
4776 2005-04-05  David Zeuthen  <davidz@redhat.com>
4777
4778         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4779
4780         * glib/dbus-gmain.c:
4781         (io_handler_destroy_source): Remove from list of IO handlers
4782         of the ConnectionSetup object
4783         (timeout_handler_destroy_source): -do- for timeout handlers
4784         (io_handler_source_finalized): Don't remove from list since
4785         we now do that in io_handler_destroy_source(). Renamed from
4786         io_handler_source_destroyed
4787         (timeout_handler_source_destroyed): -do- for timeout handlers
4788         (connection_setup_free): It is now safe to iterate over all
4789         IO and timeout handlers as the _destroy_source removes them
4790         from the list synchronously
4791
4792 2005-03-30  Havoc Pennington  <hp@redhat.com>
4793
4794         * configure.in: change check to gtk 2.4
4795
4796         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4797         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4798         to 2.4
4799
4800 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4801
4802         * News: Update 0.32
4803
4804         * HACKING: Fixed realease instructions.  configure.in should be updated to
4805           the next release by the person who made the last release.
4806
4807 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4808
4809         * python/lvalue_cast_post_process.py - removed.  Patch has been
4810           submitted to Pyrex maintainers that fixes gcc4.0 errors
4811
4812         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4813
4814 2005-03-24  Daniel Reed  <n@ml.org>
4815
4816         * tools/Makefile.am: Make print-introspect and
4817         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4818
4819 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4820
4821         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4822
4823         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4824           had in Red Hat packages for a while but for some reason never 
4825           got merged upstream
4826           (_dbus_is_a_number): New checks if a string
4827           can be converted to a number and does the conversion if it can
4828           (_dbus_user_database_lookup): Add check to see if the given username
4829           is a udi.  This allows udi's to be used instead of usernames in the
4830           config file.
4831           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4832           is a gdi.  This allows gdi's to be used instead of groupnames in the
4833           config file.
4834
4835 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4836
4837         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4838           code so that it compiles with gcc4.0
4839
4840         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4841           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4842           results back to dbus_binding.c
4843
4844 2005-03-20  Colin Walters  <walters@verbum.org>
4845
4846         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4847
4848         * configure.in: Require GTK+ 2.6.
4849         
4850 2005-03-20  Colin Walters  <walters@verbum.org>
4851
4852         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4853
4854 2005-03-17  Tom Parker  <palfrey@tevp.net>
4855
4856         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4857         print DBUS_UID_UNSET; instead print passed username.  Also
4858         be sure to actually use gid looked up in cache.
4859         
4860         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4861         for DBUS_GID_UNSET and groupname.
4862
4863 2005-03-17  Colin Walters  <walters@verbum.org>
4864
4865         * bus/print-introspect.c: Move to tools/.
4866         * bus/run-with-tmp-session-bus.sh: Ditto.
4867         
4868         * glib/Makefile.am (dbus-glib-bindings.h): Move
4869         generation to tools/Makefile.am.
4870
4871         * test/glib/run-test.sh: Update to handle move
4872         of run-with-tmp-session-bus.sh.
4873
4874         * test/glib/test-service-glib.c: Update to handle
4875         move of dbus-glib-bindings.h.
4876
4877         * tools/print-introspect.c: Moved here
4878         from bus/, and ported to GLib bindings.
4879
4880         * tools/run-with-tmp-session-bus.sh: Moved here
4881         from bus/.
4882
4883         * tools/Makefile.am: Generate dbus-glib-bindings.h
4884         and dbus-bus-introspect.xml here.
4885
4886         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4887         Update.
4888
4889 2005-03-17  Colin Walters  <walters@verbum.org>
4890
4891         * bus/driver.c (write_args_for_direction): Use
4892         _dbus_string_get_const_data to retrieve string;
4893         _dbus_string_get_const_data_len doesn't actually return
4894         a NULL-terminated substring.
4895
4896         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4897         (main): Change to use org_freedesktop_DBus_request_name
4898         instead of using g_proxy_begin_call/end_call.
4899
4900 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4901
4902         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4903         generating the finalizer.  Fixes from Ben Maurer.
4904
4905 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4906
4907         * mono/BusDriver.cs: Update method names: ListServices
4908         becomes ListNames; GetOwner becomes GetNameOwner.
4909
4910         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4911         onto the eval stack when removing the delegate.
4912
4913 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4914
4915         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4916         LT_CURRENT.  Set it to the autoconf variable.
4917                                                                                 
4918         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4919         classes that disconnects the signal handler delegate from the
4920         service object.  Fixes a big leak of proxy objects on the
4921         client side of things.  Patch from Ben Maurer
4922         <bmaurer@ximian.com>
4923
4924 2005-03-12  Colin Walters  <walters@verbum.org>
4925
4926         * bus/driver.c (write_args_for_direction): New function,
4927         parses a type signature into arguments and outputs to
4928         XML.
4929         (bus_driver_handle_introspect): Use it instead of
4930         hardcoding XML for certain signatures.
4931         
4932         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4933         dependency on dbus-daemon.
4934
4935         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4936         argument, pass it to dbus_binding_tool_output_glib_client.
4937
4938         * glib/dbus-binding-tool-glib.c
4939         (generate_client_glue): Protect against multiple inclusion.
4940         (dbus_binding_tool_output_glib_client): Add
4941         G_BEGIN_DECLS/G_END_DECLS.
4942
4943         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4944         Change to just take iface prefix directly.
4945         (write_formal_parameters): Clarify error message.
4946         (check_supported_parameters): New function; checks to see type
4947         signatures of method parameters are supported.
4948         (generate_client_glue): Handle ignore_unsupported flag.
4949         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4950         parameter.
4951
4952         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4953         --ignore-unsupported by default until glib bindings
4954         support arrays.
4955
4956 2005-03-11  Colin Walters  <walters@verbum.org>
4957
4958         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4959         install it.
4960
4961         * bus/print-introspect.c: New file; prints introspection
4962         data for a given name and object path.
4963
4964         * bus/run-with-tmp-session-bus.sh: New file, refactored
4965         from test/glib/run-test.sh.  Creates a temporary session
4966         bus and runs another program.
4967
4968         * test/glib/run-test.sh: Refactor to invoke
4969         run-with-tmp-session-bus.sh.
4970
4971         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4972         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4973         macros instead of hardcoding.
4974
4975         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4976
4977 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4978
4979         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4980         this unref; it doesn't match up evenly in some codepaths.
4981         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4982         this evenly matches with the ref near the top of this function.
4983
4984 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4985
4986         * dbus/dbus-object-tree.c
4987         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4988         and we try to unregister a path that's not registered, still go
4989         through the process of unlocking and don't just return.
4990
4991 2005-03-09  Colin Walters  <walters@verbum.org>
4992
4993         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4994         to this are generated for client-side wrappers.  Invokes a
4995         D-BUS method and returns reply values.  
4996
4997         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4998         function; writes signature string for argument direction.
4999         (write_args_for_direction): Change to pass input values directly
5000         instead of via address, and fix indentation.
5001         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5002         make generated wrappers inlineable.
5003
5004         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5005         note about using dbus_type_is_fixed.
5006
5007         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5008         dbus/dbus-signature.c as dbus_type_is_fixed.
5009
5010         All callers updated.
5011
5012         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5013         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5014
5015         * dbus/dbus-signature.h: Prototype.
5016
5017         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5018         error printf code.
5019
5020         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5021         appropriate instead of just freeing it.
5022         (main): Free returned strings using g_free.
5023
5024         * test/glib/Makefile.am (test-service-glib-glue.h)
5025         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5026
5027         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5028         simply maps a simple D-BUS type to GType.
5029         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5030         GType.
5031         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5032         initialize the value with it.
5033         (dbus_gvalue_binding_type_from_type): Unused, delete.
5034         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5035         various types instead of unmarshalling to value data directly.
5036         Remove can_convert boolean.
5037         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5038         returning directly instead of using can_convert boolean.
5039         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5040         Stores a GValue in a pointer to a value of its corresponding C
5041         type.
5042
5043         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5044         add dbus_gvalue_store.
5045
5046 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5047
5048         Fix a bunch of lifecycle and memory management problems
5049         in the mono bindings.
5050
5051         * mono/Arguments.cs (Arguments): Implement IDisposable
5052
5053         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5054         strictly a static class.
5055
5056         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5057         delegates into this file.
5058         (Connection): Implement IDisposable.
5059         (Dispose): Disconnect the connection and set the raw connection
5060         pointer to IntPtr.Zero.
5061         (~Connection): Call Dispose().
5062         (RegisterObjectPath): Added.  Manages the registration of object
5063         paths so we can cleanly disconnect them at dispose/finalize time.
5064         (UnregisterObjectPath): Ditto.
5065         (set_RawConnection): Unregister all of the object paths when
5066         changing the underlying DBusConnection.  Add them back onto the
5067         new connection, if any.
5068
5069         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5070         more unmanaged resources anymore, so it's not necessary.  Move all
5071         the DBusObjectPathVTable stuff out of here.
5072         (Handler): Save references to our delegates so that they don't get
5073         finalized.  Call Connection.RegisterObjectPath() instead of
5074         dbus_connection_register_object_path() directly.
5075         (Message_Called): Dispose the message after we're finished with
5076         it.
5077
5078         * mono/Message.cs (Message): Implement IDisposable.
5079         (Dispose): Dispose the Arguments, and set the RawMessage to
5080         IntPtr.Zero.
5081         (SendWithReplyAndBlock): We own the ref to the reply that comes
5082         back from dbus_connection_send_with_reply_and_block() so add a
5083         comment about that and unref it after we've constructed a managed
5084         MethodReturn class around it.  Fixes a big, big leak.
5085
5086         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5087         method.
5088         (BuildSignalHandler): After we've sent the Signal message, dispose
5089         of it.
5090         (BuildMethod): Dispose of the method call and reply messages after
5091         we've sent the message and extracted the data we want from the
5092         reply.
5093
5094         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5095         anymore.
5096         (Service_FilterCalled): Dispose of the message after we're
5097         finished with it.
5098
5099 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5100
5101         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5102         After we attach our pending call to the connection, unref
5103         it.  Fixes a leak.
5104  
5105         * mono/Connection.cs (set_RawConnection): Disconnect our
5106         filter and match callbacks from the old connection and
5107         reconnect them to the new connection, if any.
5108
5109         * mono/DBusType/Array.cs: "Code" is a static member, so
5110         don't use "this" to refer to it.  Fix for stricter checking
5111         in Mono 1.1.4.
5112  
5113         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5114         object path that we pass into unmanaged code.
5115  
5116         * mono/DBusType/String.cs (Append): Don't leak the string
5117         that we pass into unmanged code.
5118
5119 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5120         * NEWS: Update for 0.31
5121
5122         * configure.in: Release 0.31
5123         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5124
5125         * qt/Makefile.am: fixed build
5126
5127         * dbus/Makefile.am: soname bump for libdbus
5128
5129         * glib/Makefile.am: soname bump for libdbus-glib
5130
5131 2005-03-05  Havoc Pennington  <hp@redhat.com>
5132
5133         * dbus/dbus-sysdeps.c:
5134         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5135         value
5136         (_dbus_generate_random_bytes_buffer): fix return value
5137
5138         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5139         checks actually work, from Tom Parker <fdo@tevp.net>
5140
5141 2005-03-01  Colin Walters  <walters@verbum.org>
5142
5143         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5144         functions copied from dbus-glib-tool.c.
5145         (main): Convert lots of error code to use them.
5146         Also add some testing for introspection bits.
5147
5148 2005-03-01  Colin Walters  <walters@verbum.org>
5149         
5150         * doc/TODO: Remove introspection signature TODO.
5151
5152 2005-02-27  Colin Walters  <walters@verbum.org>
5153
5154         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5155         Change return value to const char * instead of int so we can do
5156         full signatures.
5157         (struct PropertyInfo, struct ArgInfo): Store char *.
5158         (property_info_new, arg_info_new): Update parameters, strdup.
5159         (property_info_unref, arg_info_unref): Free.
5160
5161         * glib/dbus-gidl.h: Update prototypes.
5162
5163         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5164         (validate_signature): New function, just validates signature and
5165         sets GError.
5166         (parse_property, parse_arg): Invoke validate_signature.  Store
5167         signature instead of just type code.
5168
5169         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5170         function to return a primary type for a signature, dropping
5171         information about types in container types.
5172         (dbus_gvalue_genmarshal_name_from_type)
5173         (dbus_gvalue_binding_type_from_type)
5174         (dbus_gvalue_ctype_from_type): Update to take full signature
5175          instead of type code.
5176         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5177
5178         * glib/dbus-gvalue.h: Update prototypes for above.
5179
5180         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5181         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5182         (introspect_properties, introspect_signals, write_interface):
5183         Update to handle signatures, and remove usage of
5184         _dbus_gutils_type_to_string.
5185         (handle_introspect): Print out type codes instead of e.g. "string"
5186         in hardcoded introspection XML; also use x_AS_STRING constants
5187         instead of hardcoding in string.
5188
5189         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5190         to string.  Remove usage of _dbus_gutils_type_to_string.
5191
5192         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5193
5194         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5195         deletion.
5196         
5197         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5198         (compute_marshaller_name, generate_glue): Handle signature change
5199         to string.
5200         (write_formal_parameters, write_args_for_direction): Ditto, and
5201         remove FIXME.
5202
5203         * tools/dbus-tree-view.c (type_to_string): Delete.
5204         (info_set_func_text): Update to print full signatures.
5205
5206         * test/glib/test-service-glib.xml: Change types to new
5207         introspection format.
5208
5209 2005-02-26  Havoc Pennington  <hp@redhat.com>
5210
5211         * doc/TODO: remove the "guid" item
5212
5213         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5214         (with_bus_thread_func): use open_private
5215
5216         * dbus/dbus-connection.c (dbus_connection_open_private): new
5217         function that works like the old dbus_connection_open()
5218         (dbus_connection_open): now returns an existing connection if
5219         possible
5220
5221         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5222         through the GUID to the transport
5223
5224         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5225         GUID in hex-encoded form.
5226
5227         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5228         pass GUID argument in to the transport
5229
5230         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5231         guid argument
5232
5233         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5234
5235         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5236
5237 2005-02-25  Havoc Pennington  <hp@redhat.com>
5238
5239         * doc/dbus-specification.xml: document the GUID thing
5240
5241         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5242         globally unique ID for the server, and put a "guid=hexencoded"
5243         field in the address
5244
5245         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5246
5247         * dbus/dbus-message.c: ditto
5248
5249         * dbus/dbus-dataslot.c: ditto
5250
5251         * dbus/dbus-list.c: ditto
5252
5253         * dbus/dbus-internals.h: wait, just include
5254         dbus-threads-internal.h here
5255         
5256         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5257         use in main library
5258
5259         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5260
5261 2005-02-24  Colin Walters  <walters@verbum.org>
5262
5263         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5264
5265 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5266
5267         * glib/Makefile.am: added dbus-gobject.h to sources list
5268         so distcheck doesn't fail
5269         
5270 2005-02-24  Havoc Pennington  <hp@redhat.com>
5271
5272         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5273         you must disconnect before unref, since locking and other things
5274         are screwed up otherwise. Fix assorted other locking stuff.
5275
5276         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5277         fix compilation
5278
5279         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5280         into a private header and don't export from the library
5281
5282         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5283
5284 2005-02-24  Colin Walters  <walters@verbum.org>
5285         
5286         * dbus/dbus-signature.c: New file; implements various functions
5287         related to type signatures.  Includes an interator for parsing,
5288         validation functions.
5289         (dbus_type_is_basic): Moved here from
5290         dbus-marshal-basic.c:_dbus_type_is_basic.
5291         (dbus_type_is_container): Moved here from
5292         dbus-marshal-basic.c:_dbus_type_is_container.
5293
5294         All callers of _dbus_type_is_container and _dbus_type_is_basic
5295         updated, and include dbus-signature.h.
5296
5297         * dbus/dbus-signature.h: New file; prototypes for the above.
5298
5299         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5300         dbus-signature.h.
5301
5302         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5303         function factored out of _dbus_first_type_in_signature.
5304         (_dbus_first_type_in_signature_c_str): New function; returns first
5305         type code for a type signature character.
5306
5307         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5308         handle function moves.
5309
5310         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5311
5312         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5313         function; skips to next complete type in type signature.
5314         Implemented using previous skip_one_complete_type.  Now
5315         skip_one_complete_type just delegates to
5316         _dbus_type_signature_next.
5317
5318         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5319         to dbus-signature.c
5320         (_dbus_type_is_container): Ditto.
5321
5322         * doc/dbus-specification.xml: Update introspection sample to
5323         use real type signatures.
5324
5325         * dbus/dbus-test.h: Prototype signature test.
5326
5327         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5328         signature tests.
5329
5330         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5331
5332 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5333
5334         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5335         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5336
5337 2005-02-21  Colin Walters  <walters@verbum.org>
5338
5339         * dbus/dbus-test-main.c (main): Take optional specific test
5340         argument.
5341
5342         * dbus/dbus-test.c (run_test): New function, runs a test function
5343         with no data directory.
5344         (run_data_test): Like above, but takes data directory.
5345         (dbus_internal_do_not_use_run_tests): Take
5346         specific test argument.  Replace lots of cut n' paste code
5347         with run_test and run_data_test.
5348
5349         * dbus/dbus-test.h: Update prototype for
5350         dbus_internal_do_not_use_run_tests.
5351
5352 2005-02-20  Havoc Pennington  <hp@redhat.com>
5353
5354         Fix bugs reported by Daniel P. Berrange
5355         
5356         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5357         (protected_change_watch): new function
5358         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5359         (_dbus_server_add_watch): change to work like the
5360         dbus-connection.c equivalents; like those, probably kind of
5361         busted, but should at least mostly work for now
5362         (dbus_server_disconnect): drop the lock if we were already
5363         disconnected, patch from Daniel P. Berrange
5364
5365         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5366         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5367         same stuff
5368
5369         * doc/TODO: todo about unscrewing this mess
5370
5371 2005-02-19  Colin Walters  <walters@verbum.org>
5372
5373         * glib/dbus-binding-tool-glib.c
5374         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5375
5376         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5377         as errno.h and sys/stat.h.
5378         (lose): New function, prints error with
5379         newline and exits.
5380         (lose_gerror): Similar, but takes GError for message.
5381         (main): Add --output argument to specify output file to write to,
5382         instead of always printing to stdout.  In this mode, determine
5383         timestamps on source files to see whether any are newer than the
5384         target file.  If not, exit.  Also convert a number of error
5385         messages to use lose (since it's shorter), and switch to using
5386         g_io_channel_shutdown.
5387
5388 2005-02-19  Havoc Pennington  <hp@redhat.com>
5389
5390         * glib/dbus-gobject.c
5391         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5392
5393         * glib/dbus-glib.c: fix doxygen warnings
5394
5395         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5396         is found on an <arg>
5397
5398 2005-02-17  Colin Walters  <walters@verbum.org>
5399
5400         * glib/dbus-gobject.h: Don't export
5401         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5402         
5403         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5404         (invoke_object_method): Handle it.
5405
5406         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5407         Handle rename.
5408         
5409 2005-02-17  Colin Walters  <walters@verbum.org>
5410
5411         * bus/.cvsignore, doc/.cvsignore
5412         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5413         Update.
5414
5415 2005-02-17  Colin Walters  <walters@verbum.org>
5416         
5417         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5418         Rename to DBUS_SERVICE_DBUS.
5419         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5420         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5421         Change the value from "org.freedesktop.Local"
5422         to "org.freedesktop.DBus.Local".
5423         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5424         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5425         DBUS_INTERFACE_INTROSPECTABLE.
5426         Change the value from "org.freedesktop.Introspectable"
5427         to "org.freedesktop.DBus.Introspectable".
5428         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5429         DBUS_INTERFACE_PROPERTIES.
5430         Change the value from "org.freedesktop.Properties"
5431         to "org.freedesktop.DBus.Properties".
5432         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5433         DBUS_INTERFACE_PEER.
5434         Change the value from "org.freedesktop.Peer"
5435         to "org.freedesktop.DBus.Peer".
5436         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5437         DBUS_INTERFACE_LOCAL.
5438         Change the value from "org.freedesktop.Local"
5439         to "org.freedesktop.DBus.Local".
5440
5441         All other users of those constants have been changed.
5442
5443         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5444
5445         * glib/dbus-gobject.c (handle_introspect): Use constants.
5446
5447         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5448
5449 2005-02-17  Colin Walters  <walters@verbum.org>
5450
5451         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5452         (parse_node, parse_interface, parse_method, parse_signal)
5453         (parse_property, parse_annotation): Lose if we're currently in an
5454         annotation.
5455         (parse_annotation): New function.
5456         (parser_start_element, parser_end_element): Handle annotation.
5457         (parse_method, parse_interface): Remove support for c_name attribute,
5458         switch to annotations.
5459
5460         * glib/dbus-gidl.h (interface_info_get_binding_names)
5461         (method_info_get_binding_names)
5462         (interface_info_get_binding_name, method_info_get_binding_name)
5463         (interface_info_set_binding_name, method_info_set_binding_name):
5464         Remove.
5465         (interface_info_get_annotations, method_info_get_annotations)
5466         (interface_info_get_annotation, method_info_get_annotation)
5467         (interface_info_add_annotation, method_info_add_annotation):
5468         Prototype.
5469
5470         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5471         for "bindings".
5472         (struct MethodInfo): Ditto.
5473         Straightfoward conversion of binding methods into annotation methods
5474         as prototyped.
5475
5476         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5477
5478         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5479
5480         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5481         Use new annotation API.
5482
5483         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5484         annotation element.
5485         
5486         * doc/dbus-specification.xml: Discuss introspection annotations,
5487         include list of well-known annotations.
5488
5489         * test/glib/test-service-glib.xml: Make validate against new DTD.
5490
5491 2005-02-17  Colin Walters  <walters@verbum.org>
5492
5493         This patch is based on initial work from
5494         Paul Kuliniewicz <kuliniew@purdue.edu>.
5495
5496         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5497         initialization of GValue from dbus type to here.
5498         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5499         for the "glib-genmarshal" program from a DBus type.
5500         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5501         into the C name for it we use in the glib bindings.
5502         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5503         glib C type (not GValue).
5504         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5505
5506         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5507         from dbus-gobject.c.
5508
5509         * glib/dbus-gutils.h: Prototype it.
5510
5511         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5512         (marshal_dbus_message_to_g_marshaller): Use new shared function
5513         dbus_glib_marshal_dbus_message_to_gvalue_array.
5514
5515         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5516         Will be changed once we have annotations.
5517
5518         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5519         GStaticRWLock.  Callers updated.
5520         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5521         (string_table_next): New function for iterating over zero-terminated
5522         string value array.
5523         (string_table_lookup): New function; retrieves specific entry in
5524         array.
5525         (get_method_data): New function; look up method data in object data chunk.
5526         (object_error_domain_prefix_from_object_info)
5527         (object_error_code_from_object_info): New functions, but not implemented yet.
5528         (method_interface_from_object_info): New function; retrieve interface name.
5529         (method_name_from_object_info): New function; retrieve method name.
5530         (method_arg_info_from_object_info): New function; retrieve argument data.
5531         (arg_iterate): New function; iterates over serialized argument data.
5532         (method_dir_signature_from_object_info): New function; returns a
5533         GString holding type signature for arguments for just one
5534         direction (input or output).
5535         (method_input_signature_from_object_info)
5536         (method_output_signature_from_object_info): New functions.
5537         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5538         converts dbus message arguments into a GValue array.  Used for both
5539         signal handling and method invocation.
5540         (struct DBusGlibWriteIterfaceData): New utility structure.
5541         (write_interface): New function; generate introspection XML for
5542         an interface.
5543         (introspect_interfaces): New function; gathers all interface->methods,
5544         generates introspection XML for them.
5545         (handle_introspect): Invoke introspect_interfaces.
5546         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5547         (lookup_object_and_method): New function; examines an incoming message
5548         and attempts to match it up (via interface, method name, and argument
5549         signature) with a known object and method.
5550         (gerror_domaincode_to_dbus_error_name): New function; converts a
5551         GError domain and code into a DBus error name.  Needs GError data
5552         added to object introspection to work well.
5553         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5554         GError.
5555         (invoke_object_method): New function to invoke an object method
5556         looked up via lookup_object_and_method.  Parses the incoming
5557         message, turns it into a GValue array, then invokes the marshaller
5558         specified in the DBusGMethodInfo.  Creates a new message with
5559         either return values or error message as appropriate.
5560         (gobject_message_function): Invoke lookup_object_and_method and
5561         invoke_object_method.
5562
5563         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5564         (enum DBusBindingOutputMode): New enum for binding output modes.
5565         (pretty_print): Print binding names.
5566         (dbus_binding_tool_error_quark): GError bits.
5567         (version): Fix typo.
5568         (main): Create GIOChannel for output.  Parse new --mode argument,
5569         possible values are "pretty-print", "glib-server", "glib-client".
5570         Use mode to invoke appropriate function.
5571         
5572         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5573
5574         * glib/dbus-glib-tool.h: New header, just includes GError bits
5575         for now.
5576
5577         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5578         maps binding style to name.
5579         (struct MethodInfo): Ditto.
5580         (get_hash_keys, get_hash_key): Utility function, returns keys for
5581         a GHashTable.
5582         (interface_info_new, method_info_new): Initialize bindings.
5583         (interface_info_unref, method_info_unref): Destroy bindings.
5584         (method_info_get_binding_names, method_info_get_binding_name)
5585         (interface_info_get_binding_names, interface_info_get_binding_name):
5586         Functions for retrieving binding names.
5587         (method_info_set_binding_name, interface_info_set_binding_name):
5588         Functions for setting binding names.
5589
5590         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5591         for glib binding generation.
5592
5593         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5594         and client-side glib glue generation.
5595
5596         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5597         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5598         dbus-glib-tool.h.
5599
5600         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5601         of using GClosureMarshal directly.
5602         (struct DBusGObjectInfo): Add n_infos member.
5603
5604         * test/glib/test-service-glib.xml: New file; contains introspection data
5605         for MyTestObject used in test-service-glib.c.
5606
5607         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5608         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5609         (my_object_uppercase, my_object_many_args): New test methods.
5610         (main): Use dbus_g_object_class_install_info to include generated object
5611         info.
5612
5613         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5614         as well as client-side bindings.
5615
5616         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5617         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5618         using both the dbus_gproxy stuff directly as well as the generated bindings.
5619
5620 2005-02-15  Havoc Pennington  <hp@redhat.com>
5621
5622         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5623         complete a pending call, don't run filters first.
5624
5625         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5626         dbus_pending_call_steal_reply
5627
5628         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5629         _dbus_connection_block_pending_call
5630         (dbus_pending_call_get_reply): change to steal_reply and return a
5631         ref
5632
5633         * dbus/dbus-connection.c
5634         (dbus_connection_send_with_reply_and_block): port to work in terms
5635         of DBusPendingCall
5636         (_dbus_connection_block_pending_call): replace block_for_reply
5637         with this
5638
5639 2005-02-14  Havoc Pennington  <hp@redhat.com>
5640
5641         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5642         properly handle looking up group information by name; fix 
5643         from j@bootlab.org
5644
5645 2005-02-13  Havoc Pennington  <hp@redhat.com>
5646
5647         * dbus/dbus-connection.c (dbus_connection_return_message) 
5648         (dbus_connection_borrow_message): hold dispatch lock while message
5649         is outstanding
5650         (_dbus_connection_block_for_reply): hold dispatch lock while we
5651         block for the reply, so nobody steals our reply
5652         (dbus_connection_pop_message): hold the dispatch lock while we
5653         pluck the message
5654
5655 2005-02-13  Havoc Pennington  <hp@redhat.com>
5656
5657         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5658         (_dbus_connection_release_dispatch)
5659         (_dbus_connection_acquire_io_path)
5660         (_dbus_connection_release_io_path): make the mutex and condvar
5661         control access to the "acquired" flag. Drop the connection lock
5662         while waiting on the condvar. Hopefully these are baby steps in
5663         roughly the right direction.
5664
5665 2005-02-13  Havoc Pennington  <hp@redhat.com>
5666
5667         * dbus/dbus-connection.c: use separate mutexes for the condition
5668         variables; this is some kind of baseline for sanity, but the
5669         condition variables still aren't used correctly afaict
5670
5671 2005-02-13  Havoc Pennington  <hp@redhat.com>
5672
5673         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5674         fix a double-unlock
5675
5676         * dbus/dbus-connection.c
5677         (_dbus_connection_detach_pending_call_unlocked): add this
5678
5679         Initial semi-correct pass through to fix thread locking; there are
5680         still some issues with the condition variable paths I'm pretty
5681         sure
5682         
5683         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5684         lock/unlock calls
5685
5686         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5687         rename to add _unlocked
5688         (struct DBusConnection): move "dispatch_acquired" and
5689         "io_path_acquired" to use only one bit each.
5690         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5691         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5692         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5693         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5694         (_dbus_connection_remove_timeout) 
5695         (_dbus_connection_toggle_timeout): drop lock when calling out to
5696         user functions; done in a hacky/bad way.
5697         (_dbus_connection_send_and_unlock): add a missing unlock
5698         (_dbus_connection_block_for_reply): add a missing unlock
5699
5700         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5701         drop lock in a hacky probably unsafe way to call out to user
5702         function
5703
5704 2005-02-12  Havoc Pennington  <hp@redhat.com>
5705
5706         * tools/dbus-tree-view.c (info_set_func_text): display more
5707         details on args
5708
5709         * bus/driver.c (bus_driver_handle_list_services): list the bus
5710         driver
5711
5712         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5713
5714         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5715         (method_info_get_n_args): new function
5716
5717 2005-02-12  Havoc Pennington  <hp@redhat.com>
5718
5719         * bus/driver.c (bus_driver_handle_introspect): add introspection
5720         for bus driver
5721
5722 2005-02-12  Havoc Pennington  <hp@redhat.com>
5723
5724         * bus/driver.c: put the signature of each bus driver method in the
5725         table of handlers and check it on incoming calls; this isn't
5726         really useful, but going to add introspect support in a minute.
5727
5728 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5729
5730         * mono/Connection.cs: The unpredictability of finalizers in mono
5731         prevents us from deterministically disconnecting the filters from
5732         the Service class's finalizer, so move tracking of filters and
5733         matches here.  Add API for that.
5734
5735         * mono/Service.cs: Remove the code, add code which calls the
5736         methods now on the Connection class.
5737
5738 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5739
5740         * python/dbus.py (class Sender): added to support dbus signals better
5741         (Bus::add_signal_receiver): added expand_args parameter which defaults
5742         to True.  When expand args is True the signal handler will pass the 
5743         message arguments as parameters to the signal handler.  If False
5744         revert to previous behavior where the signal handler must get the
5745         argument list from the message.  This is to help port applications
5746         like HAL that have a tendancy to send variable length argument lists.
5747         self._match_rule_to_receivers is now a dict of dicts.
5748         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5749         removing it from a list
5750         (Bus::_signal_func): change signal handlers so that interface,
5751         signal_name, service, path and message are packed into a Sender
5752         object and that is passed to the handler.  If expand_args is True
5753         extract the args list from the message and append it to the parameter
5754         list
5755         
5756         * python/dbus_bindings.pyx.in (class Signature): added to support 
5757         signiature types
5758         (MessageIter::__init__): changed iteration limit to match D-BUS
5759         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5760         STRUCT and VARIENT type support
5761         (MessageIter::python_value_to_dbus_sig): made recursive to support
5762         recursive types
5763         (MessageIter::append*): added Signature, dict, tuple 
5764         support
5765
5766         * python/examples/example-client.py: added examples of getting tuples
5767         and dicts
5768
5769         * python/examples/example-service.py: added examples of sending tuples
5770         and dicts
5771
5772         * python/examples/example-signal-recipient.py: Fixed to handle new
5773         signal callback format
5774
5775 2005-02-10  Havoc Pennington  <hp@redhat.com>
5776
5777         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5778         (call dbus_g_proxy_add_signal)
5779
5780         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5781         escape the hostname
5782         (_dbus_server_new_for_domain_socket): escape the path
5783
5784         * dbus/dbus-address.c (dbus_address_escape_value): new
5785         (dbus_address_unescape_value): new
5786         (dbus_parse_address): unescape values
5787
5788         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5789
5790         * doc/dbus-specification.xml: explain how to escape values in
5791         addresses
5792
5793 2005-02-10  Havoc Pennington  <hp@redhat.com>
5794
5795         * dbus/dbus-message-factory.c (generate_special): modify test to
5796         avoid using a non-basic dict key
5797
5798         * dbus/dbus-marshal-validate-util.c: add test for the below
5799
5800         * doc/dbus-specification.xml: require that dict keys are a basic
5801         type
5802
5803         * dbus/dbus-marshal-validate.c
5804         (_dbus_validate_signature_with_reason): require that dict key is a
5805         basic type
5806
5807 2005-02-10  Havoc Pennington  <hp@redhat.com>
5808
5809         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5810         change to be _and_unlock instead of _unlocked
5811
5812         * dbus/dbus-connection.c
5813         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5814         have no_update so we can find this bug quickly in future
5815
5816 2005-02-10  Havoc Pennington  <hp@redhat.com>
5817
5818         * dbus/dbus-message-util.c (verify_test_message): tests for string
5819         array
5820
5821         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5822         support for arrays of string/signature/path
5823
5824 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5825
5826         * dbus/dbus-connection.c
5827         (_dbus_connection_queue_received_message_link,
5828         _dbus_connection_message_sent): Add the path to
5829         the verbose output.
5830         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5831         _dbus_connection_send_preallocated_unlocked(), updated the
5832         dispatch status, and unlocks.  Fixes a bug where certain
5833         situations (like a broken pipe) could cause a Disconnect message
5834         to not be sent, tricking the bus into thinking a service was still
5835         there when the process had quit.
5836         (_dbus_connection_send_preallocated): Call
5837         _dbus_connection_send_preallocated_and_unlock().
5838         (_dbus_connection_send_and_unlock): Added.  Calls
5839         _dbus_connection_send_preallocated_and_unlock().
5840         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5841         (dbus_connection_send_with_reply): Update the dispatch status and
5842         unlock.
5843
5844         * mono/Service.cs (~Service): Added.  Removes the filter so that
5845         we don't get unmanaged code calling back into a GCed delegate.
5846         (RemoveFilter); Added.
5847
5848 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5849
5850         * dbus/dbus-message.c (dbus_message_iter_open_container):
5851         - Removed check for iterator type being an array because
5852         get_arg_type does not work with writer iterators
5853         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5854
5855 2005-02-07  Havoc Pennington  <hp@redhat.com>
5856
5857         * doc/dbus-specification.xml: some more language cleanups; add
5858         stuff about how to deal with invalid protocol and extension
5859         points; add _ to allowed chars in auth commands; add EXTENSION_
5860         auth command prefix
5861
5862 2005-02-06  Havoc Pennington  <hp@redhat.com>
5863
5864         * s/expected/required/ in a couple places for clarity
5865
5866 2005-02-07  Colin Walters  <walters@verbum.org>
5867
5868         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5869         sender or proposed_recipient.
5870
5871 2005-02-06  Havoc Pennington  <hp@redhat.com>
5872
5873         * dbus/dbus-message-factory.c (generate_special): more tests
5874
5875         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5876         array length that exceeds the maximum
5877
5878 2005-02-05  Havoc Pennington  <hp@redhat.com>
5879
5880         * dbus/dbus-message-factory.c (generate_special): more test cases,
5881         increasing coverage
5882
5883         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5884         reason why a signature was invalid
5885
5886         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5887         skip the length of the string before we look at it in validation
5888
5889         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5890         equal_substring
5891
5892         * dbus/dbus-message.c (_dbus_message_loader_new): default
5893         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5894
5895 2005-02-05  Havoc Pennington  <hp@redhat.com>
5896
5897         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5898         if the signature of a variant was empty
5899         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5900         struct with no element type)
5901
5902         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5903         mangled messages to break things
5904
5905 2005-02-04  Havoc Pennington  <hp@redhat.com>
5906
5907         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5908         g_quark_try_string() so it actually can return 0
5909         (dbus_g_proxy_connect_signal): ditto
5910
5911 2005-02-04  Havoc Pennington  <hp@redhat.com>
5912
5913         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5914         bogus warning
5915         (tristring_from_message): assert cleanly on null path/interface
5916         (should not be possible though I decided later)
5917         (dbus_g_proxy_dispose): move proxy manager unregistration here
5918         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5919         g_return_if_fail() checks
5920
5921 2005-02-04  Havoc Pennington  <hp@redhat.com>
5922
5923         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5924
5925         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5926         (with some minor changes)
5927
5928         * doc/dbus-specification.xml: add deprecated attribute to
5929         introspection format
5930
5931 2005-01-31  Havoc Pennington  <hp@redhat.com>
5932
5933         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5934         think it's sort of right
5935
5936 2005-01-30  Havoc Pennington  <hp@redhat.com>
5937
5938         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5939
5940 2005-01-30  Havoc Pennington  <hp@redhat.com>
5941
5942         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5943
5944         * autogen.sh: change to autotools 1.9
5945
5946         * glib/dbus-gproxy.c: completely change how signals work
5947         (dbus_g_proxy_add_signal): new function to specify signature of a
5948         signal
5949         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5950         and g_warning if the incoming message has the wrong signature.
5951
5952 2005-01-30  Havoc Pennington  <hp@redhat.com>
5953
5954         * tools/dbus-names-model.c (have_names_notify): fix this
5955
5956         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5957         up the string array handling a bit 
5958
5959 2005-01-30  Havoc Pennington  <hp@redhat.com>
5960
5961         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5962         (dbus_g_pending_call_cancel): new function
5963
5964         * dbus/dbus-glib.h: move GType decls for connection/message here;
5965         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5966         here, just kind of rationalizing how we handle all that
5967
5968         * tools/dbus-names-model.c: new file for a tree model listing the
5969         services on a bus
5970
5971         * tools/dbus-tree-view.c (model_new): use proper typing on the
5972         model rows
5973
5974 2005-01-30  Havoc Pennington  <hp@redhat.com>
5975
5976         * glib/dbus-gmain.c: add a custom GSource back that just checks
5977         whether the message queue has anything in it; otherwise, there are 
5978         cases where we won't see messages in the queue since there was no 
5979         IO visible to the glib main loop
5980
5981         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5982         increase default message timeout to 25 seconds
5983
5984 2005-01-30  Havoc Pennington  <hp@redhat.com>
5985
5986         * test/glib/test-profile.c (no_bus_stop_server): remove the
5987         warning about the g_warning that I just fixed
5988
5989         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5990         custom source, seems to be a lot easier to understand and work
5991         better.
5992
5993 2005-01-30  Havoc Pennington  <hp@redhat.com>
5994
5995         I think this main loop thing is conceptually broken, but here are 
5996         some band aids. I'll maybe rewrite it in a minute.
5997         
5998         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5999         custom GSource, so don't pass it in; confusing
6000         (gsource_server_finalize, gsource_connection_finalize): add
6001         finalize handlers that remove all the watches.  
6002
6003 2005-01-30  Havoc Pennington  <hp@redhat.com>
6004
6005         * glib/dbus-gobject.c (introspect_properties): fix the XML
6006         generated
6007
6008         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6009         which effectively detects the use of freed messages
6010
6011         * glib/dbus-gobject.c (handle_introspect): modify and return the
6012         reply message instead of the incoming message
6013
6014         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6015         gee, maybe it should SEND THE XML instead of just making a string
6016         and freeing it again ;-)
6017
6018         * tools/dbus-print-message.c (print_message): improve printing of
6019         messages
6020
6021         * configure.in: add debug-glib.service to the output
6022
6023 2005-01-30  Havoc Pennington  <hp@redhat.com>
6024
6025         dbus-viewer introspected and displayed the bus driver
6026         
6027         * dbus/dbus-object-tree.c 
6028         (object_tree_test_iteration): add tests for a handler registered on "/"
6029
6030         * dbus/dbus-object-tree.c
6031         (_dbus_decompose_path): fix to handle path "/" properly
6032         (run_decompose_tests): add tests for path decomposition
6033         
6034         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6035         properly
6036
6037         * glib/dbus-gobject.c (handle_introspect): fix quotes
6038
6039         * test/glib/run-test.sh: support launching the bus, then running
6040         dbus-viewer
6041
6042         * test/glib/test-service-glib.c (main): put in a trivial gobject
6043         subclass and register it on the connection
6044
6045         * bus/driver.c (bus_driver_handle_introspect): implement
6046         introspection of the bus driver service
6047
6048         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6049         identifiers, doctype decl
6050
6051         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6052         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6053         returning the service unchanged.
6054         (bus_driver_handle_message): remove old check for reply_serial in
6055         method calls, now the message type deals with that
6056         (bus_driver_handle_message): handle NULL interface
6057
6058         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6059
6060         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6061         -1 for len
6062
6063         * tools/dbus-viewer.c: add support for introspecting a service on
6064         a bus
6065
6066         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6067         (dbus_g_pending_call_unref): add
6068
6069 2005-01-29  Havoc Pennington  <hp@redhat.com>
6070
6071         * tools/dbus-tree-view.c: add support for displaying properties.
6072         (run dbus-viewer with an introspect xml file as arg, then resize
6073         the window so the tree elements show up, not sure what that is)
6074
6075         * glib/dbus-gobject.c (handle_introspect): return
6076         org.freedesktop.Properties and org.freedesktop.Introspectable
6077         interfaces when we are introspected.
6078
6079         * doc/dbus-specification.xml: allow empty interface name when 
6080         Get/Set a property
6081
6082 2005-01-29  Havoc Pennington  <hp@redhat.com>
6083
6084         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6085         though it uses glib, it could be extended for any binding in
6086         principle
6087
6088         * glib/dbus-gobject.c (gobject_message_function): change to the
6089         new way properties work
6090
6091         * dbus/dbus-protocol.h: add the new interfaces
6092
6093         * doc/dbus-specification.xml: document the introspection format,
6094         Introspectable interface, and add an org.freedesktop.Properties
6095         interface.
6096
6097         * glib/dbus-gparser.c: add support for a <property> element
6098
6099         * glib/dbus-gidl.c: add PropertyInfo
6100
6101         * glib/dbus-gobject.c (handle_introspect): put the outermost
6102         <node> outside the signal and property descriptions.
6103         (introspect_properties): export properties as <property> rather
6104         than as method calls
6105
6106 2005-01-28  Havoc Pennington  <hp@redhat.com>
6107
6108         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6109         related to authentication protocol
6110
6111 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6112
6113         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6114                 - BUS_ACTIVATION -> BUS_STARTER
6115                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6116                 - class MessageIter (__init__): Added recursion checking 
6117                 so we throw a nice error instead of just disconnecting from the
6118                 bus.
6119                 (get): Added arg_type parameter for recursion.
6120                 Removed the nil type
6121                 Added signiture type placeholder (not implemented)
6122                 Added struct type placeholder (not implemented)
6123                 Added varient type placeholder (not implemented)
6124                 Commented out dict type for now     
6125                 (get_element_type): renamed from get_array_type
6126                 (get_*): changed to use the dbus_message_iter_get_basic API
6127                 (get_*_array): removed in favor of recursive get_array method
6128                 (get_array): new recursive method which calls get to marshal
6129                 the elements of the array
6130                 (value_to_dbus_sig): New method returns the corrasponding
6131                 dbus signiture to a python value
6132                 (append): Comment out dict handling for now
6133                 Handle lists with the new recursive API
6134                 Comment out None handling for now
6135                 (append_nil): removed
6136                 (append_*): changed to use dbus_message_iter_append_basic API
6137                 (append_*_array): removed in favor of recursive append_array 
6138                 method
6139                 (__str__): Make it easier to print out recursive iterators
6140                 for debugging
6141                 - class Message (__str__): moved type inspection to the
6142                 MessageIter class' __str__ method
6143                 (get_iter): Added an append parameter wich defaults to False
6144                 If True use the new API's to create an append iterator
6145
6146         * python/dbus.py: Update to use new bindings API
6147                 - TYPE_ACTIVATION -> TYPE_STARTER
6148                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6149                 - class ActivationBus -> class StarterBus
6150                 - class RemoteObject (__call__): get an append iterator
6151                 - (_dispatch_dbus_method_call): get an append iterator
6152                 - class Object (emit_signal): get an append iterator
6153
6154         * python/examples/: Fixed up the examples to work with the new API
6155                 
6156 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6157
6158         * configure.in: Bump version up to 0.30.
6159
6160         * HACKING: Add a release item to bump the version number up after 
6161         a release.
6162
6163 2005-01-28  Havoc Pennington  <hp@redhat.com>
6164
6165         * doc/dbus-specification.xml: update to describe 16-bit types and
6166         dict entries
6167
6168         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6169         assertion
6170
6171         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6172         type
6173
6174         * dbus/dbus-marshal-recursive.c: implement
6175
6176 2005-01-27  Havoc Pennington  <hp@redhat.com>
6177
6178         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6179
6180         * configure.in: find the right type for 16 and 32 bit ints as well
6181         as 64
6182
6183         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6184         the 16-bit types so people don't have to stuff them in 32-bit or
6185         byte arrays.
6186
6187 2005-01-27  Havoc Pennington  <hp@redhat.com>
6188
6189         * dbus/dbus-message.c: byteswap the message if you init an
6190         iterator to read/write from it
6191         
6192         * dbus/dbus-marshal-byteswap.c: new file implementing 
6193         _dbus_marshal_byteswap()
6194
6195         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6196
6197 2005-01-26  Havoc Pennington  <hp@redhat.com>
6198         
6199         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6200         build, apparently - nobody noticed?)
6201         
6202 2005-01-26  Havoc Pennington  <hp@redhat.com>
6203
6204         * dbus/dbus-marshal-recursive.h: remove todo comment
6205
6206 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6207
6208         * Land the mono binding changes to conform to the new APIs.
6209
6210         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6211         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6212
6213         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6214         type code as a string.
6215         (InitAppending): Rename dbus_message_append_iter_init() to
6216         dbus_message_iter_init_append().
6217
6218         * mono/BusDriver.cs: Rename ServiceEventHandler to
6219         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6220         Rename ServiceOwnerChanged to NameOwnerChanged.
6221
6222         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6223         underlying C call.
6224
6225         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6226
6227         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6228         dbus_bus_acquire_service() to dbus_bus_request_name().
6229
6230         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6231         of Type.UnderlyingSystemType to get the correct element type for
6232         the array.
6233         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6234         dbus_message_get_{element|arg}_type() instead of
6235         dbus_message_iter_init_array_iterator().
6236         (Append): Replace dbus_message_iter_append_array() with
6237         dbus_message_iter_open_container() and
6238         dbus_message_iter_close_container().
6239
6240         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6241         types have been removed.
6242         
6243         * mono/DBusType/*.cs: Replace calls of
6244         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6245         but specify the type in the DllImport extern declaration.  Ditto
6246         for dbus_message_iter_append_[type]() ->
6247         dbus_message_iter_append_basic().
6248
6249         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6250         NameOwnerChangedHandler.
6251
6252 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6253
6254         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6255                 - get_base_service -> get_unique_name
6256                 - bus_get_base_service -> bus_get_unique_name
6257                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6258                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6259                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6260                 - bus_activate_service -> bus_start_service_by_name
6261                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6262                 - bus_acquire_service -> bus_request_name
6263                 - dbus_bus_acquire_service -> dbus_bus_request_name
6264                 - bus_service_exists -> bus_name_has_owner
6265                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6266
6267         * python/dbus.py: Rename of methods
6268                 - activate_service -> start_service_by_name
6269                 - bus_acquire_service -> bus_request_name
6270                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6271                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6272
6273         
6274 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6275
6276         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6277         signature for the method that can't be found.
6278
6279         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6280         the message has any arguments, we need to call
6281         _dbus_type_reader_get_current_type(), not
6282         _dbus_type_reader_has_next().
6283
6284 2005-01-24  Havoc Pennington  <hp@redhat.com>
6285
6286         * dbus/dbus-message-factory.c: more testing of message validation
6287
6288         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6289         header
6290
6291 2005-01-23  Havoc Pennington  <hp@redhat.com>
6292
6293         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6294         get this all working, not many tests in the framework yet though
6295
6296 2005-01-22  Havoc Pennington  <hp@redhat.com>
6297
6298         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6299         tutorial, based on work from David Wheeler.
6300
6301 2005-01-21  Havoc Pennington  <hp@redhat.com>
6302
6303         * dbus/dbus-bus.c: add more return_if_fail checks
6304
6305         * dbus/dbus-message.c (load_message): have the "no validation"
6306         mode (have to edit the code to toggle the mode for now though)
6307
6308         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6309         skips all validation; I want to use this at least for benchmark
6310         baseline, I'm not sure if it should be a publicly-available switch.
6311
6312 2005-01-21  Havoc Pennington  <hp@redhat.com>
6313
6314         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6315         toplevel doxygen group as the low-level API stuff
6316
6317         * dbus/dbus.h: note that libdbus is the low-level API
6318
6319 2005-01-20  Havoc Pennington  <hp@redhat.com>
6320
6321         * update-dbus-docs.sh: script to update docs on the web site, only
6322         works for me though. neener.
6323
6324 2005-01-20  Havoc Pennington  <hp@redhat.com>
6325
6326         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6327         code can reveal bugs in it
6328
6329 2005-01-20  Havoc Pennington  <hp@redhat.com>
6330
6331         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6332         select() version, patches from Tor Lillqvist
6333
6334 2005-01-20  Havoc Pennington  <hp@redhat.com>
6335
6336         * doc/dbus-tutorial.xml: replace > with &gt;
6337
6338         * bus/services.c (bus_registry_acquire_service): validate the name
6339         and return a better error if it's no good.
6340
6341         * doc/dbus-specification.xml: note NO_AUTO_START change
6342
6343         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6344         from AUTO_START, we're toggling the default
6345
6346         * bus/dispatch.c: adapt the tests to change of auto-start default
6347
6348 2005-01-18  Havoc Pennington  <hp@redhat.com>
6349
6350         * rename dbus-daemon-1 to dbus-daemon throughout
6351
6352 2005-01-18  Havoc Pennington  <hp@redhat.com>
6353
6354         * Throughout, grand renaming to strip out the use of "service",
6355         just say "name" instead (or "bus name" when ambiguous).  Did not
6356         change the internal code of the message bus itself, only the
6357         programmer-facing API and messages.
6358         
6359         * doc/dbus-specification.xml: further update the message bus section
6360         
6361         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6362         in error case
6363
6364 2005-01-17  Havoc Pennington  <hp@redhat.com>
6365
6366         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6367         ever
6368
6369         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6370         "invalid name character" not only non-ASCII
6371
6372         * doc/dbus-specification.xml: further update spec, message bus 
6373         parts are still out-of-date but the marshaling etc. stuff is now
6374         accurate-ish
6375
6376 2005-01-17  Havoc Pennington  <hp@redhat.com>
6377
6378         * doc/dbus-specification.xml: partially update spec
6379
6380 2005-01-17  Havoc Pennington  <hp@redhat.com>
6381
6382         * Throughout, align variant bodies according to the contained
6383         type, rather than always to 8. Should save a fair bit of space in
6384         message headers.
6385         
6386         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6387         fix handling of case where p == end
6388
6389         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6390
6391 2005-01-17  Havoc Pennington  <hp@redhat.com>
6392
6393         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6394
6395         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6396         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6397         are marshaling/unmarshaling a boolean.
6398
6399 2005-01-16  Havoc Pennington  <hp@redhat.com>
6400
6401         This is about it on what can be disabled/deleted from libdbus
6402         easily, back below 150K anyhow. Deeper cuts are more work than 
6403         just turning the code off as I've done here.
6404         
6405         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6406         signed int convenience funcs
6407
6408         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6409         verbose mode
6410
6411         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6412         things out of libdbus
6413
6414         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6415         
6416         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6417         tests-enabled-only, though it should probably be deleted)
6418
6419         * dbus/dbus-message-util.c: same stuff
6420
6421         * dbus/dbus-auth-util.c: same stuff
6422
6423 2005-01-16  Havoc Pennington  <hp@redhat.com>
6424
6425         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6426
6427         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6428         way for stripping down dbus-userdb.c stuff included in libdbus.
6429         Rename _dbus_parse_uid for consistency.
6430
6431 2005-01-16  Havoc Pennington  <hp@redhat.com>
6432
6433         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6434         name the assertion failed in
6435
6436         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6437         (_dbus_return_val_if_fail): assert that the name of the function
6438         containing the check doesn't start with '_', since we only want to 
6439         use checks on public functions
6440         
6441         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6442         checks to assertions
6443
6444         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6445         change checks to asserts for private function
6446
6447         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6448         to asserts for private function
6449
6450         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6451         broken assertion that was breaking make check
6452         (_dbus_type_reader_array_is_empty): remove this rather than fix
6453         it, was only used in assertions
6454
6455 2005-01-16  Havoc Pennington  <hp@redhat.com>
6456
6457         * test/unused-code-gc.py: hacky script to find code that's used
6458         only by the bus (not libdbus) or used only by tests or not used at
6459         all. It has some false alarms, but looks like we can clean up a
6460         lot of size from libdbus.
6461
6462         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6463         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6464         
6465 2005-01-16  Havoc Pennington  <hp@redhat.com>
6466
6467         * Add and fix docs according to Doxygen warnings throughout
6468         source.
6469         
6470         * dbus/dbus-marshal-recursive.c
6471         (_dbus_type_reader_array_is_empty): change this to just call
6472         array_reader_get_array_len() and make it static
6473
6474         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6475         from get_array_type
6476         (dbus_message_iter_init_append): rename from append_iter_init
6477
6478         * dbus/dbus-marshal-recursive.c
6479         (_dbus_type_reader_get_element_type): rename from
6480         _dbus_type_reader_get_array_type
6481
6482 2005-01-15  Havoc Pennington  <hp@redhat.com>
6483
6484         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6485
6486         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6487         when DBUS_DISABLE_ASSERT
6488         (_dbus_marshal_set_basic): be sure we align for the string length
6489
6490         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6491         this look faster
6492
6493         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6494         inline macro version
6495         (_dbus_string_set_byte): provide inline macro version
6496
6497 2005-01-15  Havoc Pennington  <hp@redhat.com>
6498
6499         * Land the new message args API and type system.
6500
6501         This patch is huge, but the public API change is not 
6502         really large. The set of D-BUS types has changed somewhat, 
6503         and the arg "getters" are more geared toward language bindings;
6504         they don't make a copy, etc.
6505
6506         There are also some known issues. See these emails for details
6507         on this huge patch:
6508         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6509         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6510         
6511         * dbus/dbus-marshal-*: all the new stuff
6512
6513         * dbus/dbus-message.c: basically rewritten
6514
6515         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6516         freed blocks to be all non-nul bytes so using freed memory is less
6517         likely to work right
6518
6519         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6520         DBUS_FAIL_MALLOC=N environment variable, so you can do
6521         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6522         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6523         thorough.
6524
6525         * qt/message.cpp: port to the new message args API
6526         (operator<<): use str.utf8() rather than str.unicode()
6527         (pretty sure this is right from the Qt docs?)
6528
6529         * glib/dbus-gvalue.c: port to the new message args API
6530
6531         * bus/dispatch.c, bus/driver.c: port to the new message args API
6532
6533         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6534         "locked" flag to TRUE and align_offset to 0; I guess we never
6535         looked at these anyhow, but seems cleaner.
6536
6537         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6538         move allocation padding macro to this header; use it to implement
6539         (_DBUS_STRING_STATIC): ability to declare a static string.
6540
6541         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6542         change to return TRUE if the interface is not set.
6543
6544         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6545         to dbus-marshal-validate.[hc]
6546
6547         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6548         dbus-internals.c
6549
6550         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6551         to dbus-marshal-*.[hc]
6552
6553         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6554         function here from dbus-marshal.c
6555
6556 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6557
6558         * NEWS: Update for 0.23.
6559
6560         * configure.in: Release 0.23.
6561
6562 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6563
6564         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6565         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6566         behind.
6567
6568         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6569         uninstall"
6570
6571         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6572         is an enum, get the enum's underlying type.  Another mono
6573         1.1.3 fix.
6574
6575 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6576
6577         Patch from Sjoerd Simons <sjoerd@luon.net>
6578
6579         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6580         DESTDIR.  It breaks stuff.
6581
6582 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6583
6584         Patch from Tambet Ingo <tambet@ximian.com>
6585
6586         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6587         calling type.GetElementType().  The code previously depended on
6588         broken Mono behavior, which was fixed in Mono 1.1.3.
6589
6590         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6591         Activator.CreateInstance() so that the class's constructor is
6592         called with the right parameters.
6593
6594 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6595
6596         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6597
6598         * dbus/dbus-connection.c
6599         (_dbus_connection_queue_received_message_link): Call
6600         _dbus_connection_remove_timeout() instead of the _locked()
6601         variant, since it's always called from
6602         _dbus_connection_handle_watch(), which handles the locking.
6603         Removed the _locked() variant since it's no longer used.
6604
6605 2005-01-03  Havoc Pennington  <hp@redhat.com>
6606
6607         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6608         return
6609         
6610 2004-12-26  Havoc Pennington  <hp@redhat.com>
6611
6612         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6613
6614 2005-01-03  Havoc Pennington  <hp@redhat.com>
6615
6616         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6617         floating point
6618
6619         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6620
6621 2005-01-02  Havoc Pennington  <hp@redhat.com>
6622
6623         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6624
6625 2005-01-01  Havoc Pennington  <hp@redhat.com>
6626
6627         * configure.in: add -Wfloat-equal
6628
6629 2005-01-01  Havoc Pennington  <hp@redhat.com>
6630
6631         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6632         for a variety of reasons '==' doesn't do this.
6633
6634 2004-12-31  Havoc Pennington  <hp@redhat.com>
6635
6636         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6637         I keep wishing I had
6638
6639 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6640
6641         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6642
6643 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6644
6645         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6646         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6647         dbus-protocol.h.  Because they are defines and not enums they are not
6648         autogenerated.
6649
6650 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6651
6652         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6653         dbus_bus_activate_service
6654
6655         * python/dbus.py (Bus.activate_service): activate a service on the
6656         bus.
6657
6658 2004-12-24  Havoc Pennington  <hp@redhat.com>
6659
6660         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6661         file format has also changed and I haven't adapted to that yet
6662         
6663         * Makefile.am: load .gcno files from latest gcc
6664
6665 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6666         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6667
6668         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6669         lowlevel binding
6670
6671         * python/dbus.py (get_unix_user): Added binding to 
6672         call dbus_bindings.bus_get_unix_user
6673
6674         * python/extract.py: Modified the proto_pat regex to
6675         handle unsigned long
6676
6677 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6678
6679         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6680         better POSIX compliance.
6681
6682 2004-12-19  Havoc Pennington  <hp@redhat.com>
6683
6684         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6685         (_dbus_string_insert_8_aligned): new functions
6686
6687         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6688
6689 2004-12-18  Havoc Pennington  <hp@redhat.com>
6690
6691         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6692         macro
6693
6694         * dbus/dbus-message.c: fix a comment, and add a still-unused
6695         not-implemented function
6696
6697         * dbus/dbus-marshal.h: fix comment
6698
6699         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6700
6701 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6702
6703         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6704         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6705         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6706         Type.UnderlyingSystemType to get the actual system type
6707         underneath.  This code previously depended on the broken Mono
6708         behavior, which was fixed in 1.1.3.
6709
6710 2004-11-27  Havoc Pennington  <hp@redhat.com>
6711
6712         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6713         are disabled
6714         (_dbus_string_get_const_data): inline when asserts are disabled
6715
6716         * dbus/dbus-message.c: record the _dbus_current_generation of
6717         creation so we can complain if dbus_shutdown() is used improperly.
6718         Do this only if checks are enabled.
6719
6720         * dbus/dbus-connection.c: ditto
6721         
6722 2004-11-26  Havoc Pennington  <hp@redhat.com>
6723
6724         * test/glib/test-profile.c: add with_bus mode to profile echoes
6725         that go through the bus.
6726
6727         * test/glib/run-test.sh: add ability to run test-profile
6728
6729         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6730         config file reload.
6731
6732 2004-11-26  Havoc Pennington  <hp@redhat.com>
6733
6734         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6735         thing was implemented
6736
6737 2004-11-26  Havoc Pennington  <hp@redhat.com>
6738
6739         * test/glib/test-profile.c: tweak a bit, add support for some
6740         made-up minimal malloc overhead with plain sockets, since in 
6741         real life some sort of buffers are unavoidable thus we could 
6742         count them in the theoretical best case
6743
6744 2004-11-26  Havoc Pennington  <hp@redhat.com>
6745
6746         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6747         where I was trying to cache one too many messages
6748
6749 2004-11-26  Havoc Pennington  <hp@redhat.com>
6750
6751         * dbus/dbus-message.c: reimplement message cache as an array which 
6752         makes the cache about twice as fast and saves maybe 1.5% overall
6753
6754 2004-11-26  Havoc Pennington  <hp@redhat.com>
6755
6756         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6757         message cache lock here
6758
6759 2004-11-26  Havoc Pennington  <hp@redhat.com>
6760
6761         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6762         the "char byte_order" next to each other to save 4 bytes
6763         (dbus_message_new_empty_header): reduce preallocation, since the
6764         message cache should achieve a similar effect
6765         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6766         message cache that keeps a few DBusMessage around in a pool,
6767         another 8% speedup or so.
6768
6769         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6770
6771 2004-11-25  Havoc Pennington  <hp@redhat.com>
6772
6773         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6774         to write, without reading or blocking, try it before the poll()
6775         and skip the poll() if nothing remains to write. This is about a
6776         3% speedup in the echo client/server
6777
6778 2004-11-25  Havoc Pennington  <hp@redhat.com>
6779
6780         The primary change here is to always write() once before adding
6781         the write watch, which gives us about a 10% performance increase.
6782         
6783         * dbus/dbus-transport-unix.c: a number of modifications to cope
6784         with removing messages_pending
6785         (check_write_watch): properly handle
6786         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6787         messages_pending stuff
6788         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6789         AUTHENTICATED cases
6790         (unix_handle_watch): after writing, see if the write watch can be
6791         removed
6792         (unix_do_iteration): assert that write_watch/read_watch are
6793         non-NULL rather than testing that they aren't, since they 
6794         aren't allowed to be NULL. check_write_watch() at the end so 
6795         we add the watch if we did not finish writing (e.g. got EAGAIN)
6796
6797         * dbus/dbus-transport-protected.h: remove messages_pending call,
6798         since it resulted in too much inefficient watch adding/removing; 
6799         instead we now require that the transport user does an iteration 
6800         after queueing outgoing messages, and after trying the first
6801         write() we add a write watch if we got EAGAIN or exceeded our 
6802         max bytes to write per iteration setting
6803
6804         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6805         function
6806
6807         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6808         freed and then accessed, valgrind flagged this bug, fix it
6809
6810         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6811         as the last valid field plus 1, where really it is equal to the
6812         last valid field. Corrects some message corruption issues.
6813
6814         * dbus/dbus-mainloop.c: verbosity changes
6815
6816         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6817         instead of aborting in one of the test codepaths
6818
6819         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6820         caused not printing the pid ever again if a verbose was missing
6821         the newline at the end
6822         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6823
6824         * dbus/dbus-connection.c: verbosity changes; 
6825         (dbus_connection_has_messages_to_send): new function
6826         (_dbus_connection_message_sent): no longer call transport->messages_pending
6827         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6828         try to write() immediately, so we can avoid the write watch. This
6829         is the core purpose of this patchset
6830         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6831         dump the outgoing message queue, so nobody will get confused
6832         trying to send them or thinking stuff is pending to be sent
6833
6834         * bus/test.c: verbosity changes
6835
6836         * bus/driver.c: verbosity/assertion changes
6837
6838         * bus/dispatch.c: a bunch of little tweaks to get it working again
6839         because this patchset changes when/where you need to block.
6840
6841 2004-11-23  Havoc Pennington  <hp@redhat.com>
6842
6843         * test/glib/test-profile.c: modify to accept a plain_sockets
6844         argument in which case it will bench plain sockets instead of
6845         libdbus, for comparison purposes.
6846
6847 2004-11-22  Havoc Pennington  <hp@redhat.com>
6848
6849         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6850         threads for more time, so sysprof can get a grip on it.
6851
6852         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6853         pointless variable
6854
6855 2004-11-13  Havoc Pennington  <hp@redhat.com>
6856
6857         * test/glib/test-profile.c: fix this thing up a bit
6858
6859         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6860         preallocation sizes by a fair bit; not sure if this will be an
6861         overall performance win or not, but it does reduce reallocs.
6862
6863         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6864         the test hack that forced constant realloc if asserts are
6865         disabled, so we can profile sanely. Sprinkle in some
6866         _DBUS_UNLIKELY() which are probably pointless, but before I
6867         noticed the real performance problem I put them in.
6868         (_dbus_string_validate_utf8): micro-optimize this thing a little
6869         bit, though callgrind says it didn't help; then special-case
6870         ascii, which did help a lot; then be sure we detect nul bytes as
6871         invalid, which is a bugfix.
6872         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6873         superstition; use memset to nul the padding instead of a manual
6874         loop.
6875         (_dbus_string_get_length): inline this as a
6876         macro; it showed up in the profile because it's used for loop
6877         tests and so forth
6878
6879 2004-11-10  Colin Walters  <walters@verbum.org>
6880
6881         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6882         for extra paranoia.
6883
6884 2004-11-09  Colin Walters  <walters@verbum.org>
6885
6886         * dbus/dbus-string.c (_dbus_string_get_length): New
6887         function, writes DBusString to C buffer.
6888
6889         * dbus/dbus-string.h: Prototype it.
6890
6891         * dbus/dbus-message.c (dbus_message_type_to_string): New
6892         function, converts message type into C string.
6893
6894         * dbus/dbus-message.h: Prototype it.
6895
6896         * bus/selinux.c (bus_selinux_check): Take source pid,
6897         target pid, and audit data.  Pass audit data to
6898         avc_has_perm.
6899         (log_audit_callback): New function, appends extra
6900         audit information.
6901         (bus_selinux_allows_acquire_service): Also take
6902         service name, add it to audit data.
6903         (bus_selinux_allows_send): Also take message
6904         type, interface, method member, error name,
6905         and destination, and add them to audit data.
6906         (log_cb): Initialize func_audit.
6907         
6908         * bus/selinux.h (bus_selinux_allows_acquire_service)
6909         (bus_selinux_allows_send): Update prototypes 
6910
6911         * bus/services.c (bus_registry_acquire_service): Pass
6912         service name to bus_selinux_allows_acquire_service.
6913
6914         * bus/bus.c (bus_context_check_security_policy): Pass
6915         additional audit data.  Move assignment of dest
6916         to its own line.
6917
6918 2004-11-07  Colin Walters  <walters@verbum.org>
6919
6920         * dbus/dbus-transport-unix.c (do_authentication): Always
6921         initialize auth_completed.
6922         
6923 2004-11-07  Colin Walters  <walters@verbum.org>
6924
6925         * bus/bus.c (load_config): Break into three
6926         separate functions: process_config_first_time_only,
6927         process_config_every_time, and process_config_postinit.
6928         (process_config_every_time): Move call of
6929         bus_registry_set_service_context_table into
6930         process_config_postinit.
6931         (process_config_postinit): New function, does
6932         any processing that needs to happen late
6933         in initialization (and also on reload).
6934         (bus_context_new): Instead of calling load_config,
6935         open config parser here and call process_config_first_time_only
6936         and process_config_every_time directly.  Later, after
6937         we have forked but before changing UID,
6938         invoke bus_selinux_full_init, and then call
6939         process_config_postinit.
6940         (bus_context_reload_config): As in bus_context_new,
6941         load parse file inside here, and call process_config_every_time
6942         and process_config_postinit.
6943
6944         * bus/services.h, bus/services.c
6945         (bus_registry_set_service_context_table): Rename
6946         from bus_registry_set_sid_table.  Take string hash from config
6947         parser, and convert them here into SIDs.
6948
6949         * bus/config-parser.c (struct BusConfigParser): Have
6950         config parser only store a mapping of service->context
6951         string.
6952         (merge_service_context_hash): New function.
6953         (merge_included): Merge context string hashes instead
6954         of using bus_selinux_id_table_union.
6955         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6956         simply create a new string hash.
6957         (bus_config_parser_unref): Unref it.
6958         (start_selinux_child): Simply insert strings into hash,
6959         don't call bus_selinux_id_table_copy_over.
6960
6961         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6962         (bus_selinux_id_table_copy_over): Delete.
6963
6964 2004-11-03  Colin Walters  <walters@verbum.org>
6965
6966         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6967         variables.
6968         
6969 2004-11-03  Colin Walters  <walters@verbum.org>
6970
6971         * bus/test-main.c (test_pre_hook): Fix test logic,
6972         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6973
6974 2004-11-02  Colin Walters  <walters@redhat.com>
6975
6976         * bus/selinux.c (bus_selinux_init): Split into two functions,
6977         bus_selinux_pre_init and bus_selinux_post_init.
6978         (bus_selinux_pre_init): Just determine whether SELinux is
6979         enabled.
6980         (bus_selinux_post_init): Do everything else.
6981
6982         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6983         config file, and bus_selinux_post_init after.  This ensures that
6984         we don't lose the policyreload notification thread that
6985         bus_selinux_init created before forking previously.
6986         
6987         * bus/test-main.c (test_pre_hook): Update for split.
6988
6989 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6990
6991         Patch from Johan Fischer <linux@fischaz.com>
6992         
6993         * mono/doc/Makefile.am (install-data-local): Added directory
6994         install for DESTDIR
6995
6996 2004-10-29  Colin Walters  <walters@redhat.com>
6997
6998         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6999         parameter for fd to write pid to.       
7000
7001         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7002         
7003         * bus/bus.c (bus_context_new): Pass print_pid_fd
7004         to _dbus_become_daemon (bug #1720)
7005
7006 2004-10-29  Colin Walters  <walters@redhat.com>
7007
7008         Patch from Ed Catmur <ed@catmur.co.uk>
7009
7010         * mono/doc/Makefile.am (install-data-local): Handle
7011         DESTDIR.
7012
7013 2004-10-29  Colin Walters  <walters@redhat.com>
7014
7015         * bus/.cvsignore, qt/.cvsignore: Update.
7016
7017 2004-10-29  Colin Walters  <walters@redhat.com>
7018
7019         Patch from Kristof Vansant <de_lupus@pandora.be>
7020
7021         * configure.in: Detect Slackware.
7022         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7023         * bus/rc.messagebus.in: New file.
7024
7025 2004-10-29  Colin Walters  <walters@redhat.com>
7026
7027         * tools/dbus-monitor.c (filter_func): Return
7028         DBUS_HANDLER_RESULT_HANDLED in filter function
7029         for now.  See:
7030         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7031
7032 2004-10-29  Colin Walters  <walters@redhat.com>
7033
7034         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7035
7036         * bus/services.c (bus_registry_acquire_service): 
7037         Correctly retrieve service name from DBusString
7038         for printing.
7039
7040 2004-10-29  Colin Walters  <walters@redhat.com>
7041
7042         * dbus/dbus-glib.h: Update documentation to not
7043         refer to internal APIs.
7044
7045 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7046
7047         * mono/Arguments.cs (GetDBusTypeConstructor):
7048         type.UnderlyingSystemType will return "System.Byte" if you do it
7049         on "byte[]", which is not what we want.  So check the type.IsArray
7050         property and use System.Array instead.
7051
7052 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7053
7054         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7055         the DBusUserInfo structure since this is passed into the function.
7056         This would cause a double free when the function that allocated
7057         the structure would try to free it when an error occured.
7058
7059         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7060         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7061         for service activation to avoid 32bit/64bit parallel install issues
7062
7063 2004-10-21  Colin Walters  <walters@verbum.org>
7064
7065         * AUTHORS: Fix my email address, the @gnu.org one
7066         has been bouncing for some time.  Also add J5.
7067         
7068 2004-10-21  Colin Walters  <walters@verbum.org>
7069
7070         * dbus/dbus-transport-unix.c (do_authentication): Return
7071         authentication status to callers.
7072         (unix_handle_watch): If we completed authentication this round,
7073         don't do another read.  Instead wait until the next iteration,
7074         after we've read any pending data in the auth buffer.
7075         (unix_do_iteration): Ditto.
7076         (unix_handle_watch): Updated for new do_authentication prototype.
7077
7078 2004-10-18  Colin Walters  <walters@verbum.org>
7079
7080         * bus/selinux.c (bus_selinux_enabled): Handle
7081         --disable-selinux case.
7082         
7083 2004-10-18  Colin Walters  <walters@verbum.org>
7084
7085         * bus/selinux.h: Add bus_selinux_enabled.
7086         
7087         * bus/selinux.c (bus_selinux_enabled): Implement it.
7088         
7089         * bus/config-parser.c (struct include): Add
7090         if_selinux_enabled member.
7091         (start_busconfig_child): Parse if_selinux_enabled
7092         attribute for include.
7093         (bus_config_parser_content): Handle it.
7094
7095         * bus/session.conf.in, bus/system.conf.in: Add
7096         inclusion of context mapping to default config files;
7097         conditional on SELinux being enabled.
7098         
7099         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7100         
7101         * test/data/invalid-config-files/badselinux-1.conf, 
7102         test/data/invalid-config-files/badselinux-2.conf:
7103         Test files for bad syntax.
7104         
7105 2004-10-17  Colin Walters  <walters@verbum.org>
7106
7107         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7108         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7109         format specifier mismatches.
7110
7111 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7112
7113         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7114         format string.
7115
7116         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7117         pointer (bug #1540, Leonardo Boiko).
7118
7119 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7120
7121         * mono/BusDriver.cs: Changed BusDriver struct to remove
7122         the ServiceCreated and ServiceDeleted events and replace them
7123         with the new ServiceOwnerChanged event.
7124
7125         * mono/example/BusListener.cs: Added a new example program,
7126         which listens for and reports any ServiceOwnerChanged events
7127         on the bus driver.
7128
7129         * mono/example/Makefile.am (DESTDIR): Build changes for the
7130         new BusListener.cs example.
7131
7132 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7133
7134         * bus/signals.c (bus_match_rule_parse): validate the components of
7135         match rules (bug #1439).
7136
7137         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7138
7139 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7140
7141         * doc/dbus-specification.xml: document ServiceOwnerChanged
7142         signal.
7143         
7144         * bus/driver.c, bus/driver.h, bus/services.c: Use
7145         ServiceOwnerChanged signal instead of ServiceCreated and
7146         ServiceDeleted.
7147         
7148         * bus/dispatch.c: update testcase for the new signal.
7149
7150 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7151
7152         Patch from Nat Friedman <nat@novell.com>
7153
7154         * mono/Makefile.am: A number of small build fixes to allow "make
7155         distcheck" to succeed.
7156
7157         * mono/example/Makefile.am: "make distcheck" fixes.
7158
7159         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7160         key in @srcdir@.
7161
7162         * test/Makefile.am: "make distcheck" fixes.
7163
7164 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7165
7166         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7167
7168         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7169
7170         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7171         messages after the first one (bug #1389).
7172         
7173         * bus/dispatch.c (check_double_hello_message): add a test case for
7174         the double hello message bug.
7175         (check_existent_service_activation): fix check of spawning error.
7176         
7177 2004-09-16  David Zeuthen  <david@fubar.dk>
7178
7179         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7180
7181 2004-09-12  David Zeuthen  <david@fubar.dk>
7182
7183         Patch from Kay Sievers <kay.sievers@vrfy.org>
7184
7185         * bus/bus.c (bus_context_new):
7186         * bus/bus.h:
7187         * bus/main.c (usage)
7188         (main):
7189         Add commandline option --nofork to override configuration file
7190         setting.
7191
7192 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7193
7194         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7195         compilers don't like it (bug #974).
7196
7197 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7198
7199         * qt/connection.*: Applied patch by Jérôme Lodewyck
7200         <lodewyck@clipper.ens.fr> to integrate an existing
7201         connection into the Qt eventloop
7202
7203 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7204
7205         * mono/BusDriver.cs: Added.  This is a class for interacting with
7206         the org.freedesktop.DBus service.
7207
7208         * mono/Message.cs: Added a mechanism to expose the message that is
7209         currently being dispatched via the static Message.Current
7210         property.  Added Message.Sender and Message.Destination
7211         properties.
7212
7213         * mono/Handler.cs: Expose the dispatched message via
7214         Message.Current when handling method calls.
7215
7216         * mono/Service.cs: Expose the dispatched message via
7217         Message.Current when handling signal emissions.
7218         
7219         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7220         Connection.BaseService property.
7221
7222 2004-08-28  Havoc Pennington  <hp@redhat.com>
7223
7224         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7225
7226         More fixes from Steve Grubb
7227         
7228         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7229         (_dbus_listen_tcp_socket): fix fd leak
7230
7231         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7232         EINTR to a bit lower in the code
7233
7234 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7235
7236         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7237         TRUE if we are inquiring about the existence of the built-in
7238         org.freedesktop.DBus service.
7239
7240 2004-08-25  John Palmieri  <johnp@redhat.com>
7241         * bus/config-parser.c:
7242         (struct PolicyType): Add POLICY_CONSOLE
7243         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7244         (start_busconfig_child): Sets up console element when
7245         <policy at_console=""> is encountered in a policy file
7246         (append_rule_from_element): Convert console elements to console
7247         rules.
7248
7249         * bus/policy.c: 
7250         (bus_policy_create_client_policy): Add console rules to the client
7251         policy based on if the client is at the console
7252         (bus_policy_append_console_rule): New function for adding a
7253         console rule to a policy
7254         (bus_policy_merge): Handle console rule merging
7255
7256         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7257         where we check for console user files
7258         
7259         * dbus/dbus-sysdeps.c:
7260         (_dbus_file_exists): New function which checks if the given
7261         file exists
7262         (_dbus_user_at_console): New function which does the system
7263         specific process of checking if the user is at the console
7264
7265         * dbus/dbus-userdb.c:
7266         (_dbus_is_console_user): New function converts a UID to user name
7267         and then calls the system specific _dbus_user_at_console to 
7268         see if the user is at the console and therefor a console user
7269
7270 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7271
7272         * bus/config-parser.c (set_limit):
7273         * bus/dbus-daemon-1.1.in:
7274         * test/data/valid-config-files/many-rules.conf: set the
7275         max_match_rules_per_connection limt from the config file. 
7276
7277         * doc/busconfig.dtd: update the DTD.
7278
7279         * bus/driver.c: remove some unused variables.
7280
7281 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7282
7283         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7284         it's been replaced by dbus_g_bus_get
7285
7286 2004-08-23  Colin Walters  <walters@redhat.com>
7287
7288         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7289
7290         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7291
7292         * bus/selinux.c: Create a thread for policy reload notification.
7293         (bus_selinux_get_policy_root): Implement.
7294
7295         * bus/config-parser.c (start_busconfig_child)
7296         (bus_config_parser_content): Support SELinux-root relative
7297         inclusion.
7298
7299         * configure.in <HAVE_SELINUX>: Add -lpthread.
7300         
7301         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7302         (test_post_hook): Move memory checking into here.
7303         (test_pre_hook, test_post_hook): Move SELinux checks in
7304         here, but conditional on a DBUS_TEST_SELINUX environment
7305         variable.  Unfortunately we can't run the SELinux checks
7306         as a normal user, since they won't have any permissions
7307         for /selinux.  So this will have to be tested manually
7308         for now, until we have virtualization for most of
7309         libselinux.
7310         
7311 2004-08-23  Havoc Pennington  <hp@redhat.com>
7312
7313         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7314         drop supplementary groups, suggested by Steve Grubb
7315
7316 2004-08-20  Colin Walters  <walters@redhat.com>
7317
7318         * bus/config-parser.c (start_busconfig_child): Remove some unused
7319         variables.
7320         
7321         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7322         warning.
7323
7324 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7325
7326         * configure.in: If --enable-mono is passed in, if we can't find
7327         mono error out.
7328
7329         * mono/Makefile.am: Use /gacutil to install assemblies into the
7330         GAC and not /root.
7331
7332 2004-08-12  Havoc Pennington  <hp@redhat.com>
7333
7334         * NEWS: update for 0.22
7335
7336         * configure.in: release 0.22
7337
7338 2004-08-11  Colin Walters  <walters@redhat.com>
7339
7340         * tools/dbus-send.c (main, usage): Add --reply-timeout
7341         argument.
7342
7343 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7344
7345         * bus/bus.c (process_config_first_time_only): get rid of an unused
7346         DBusError that was causing a memoy leak (bug #989).
7347
7348         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7349         fix compilation on Solaris/Forte C (bug #974)
7350
7351         * bus/main.c (main): plug two minuscule memleaks.
7352
7353 2004-08-10  Havoc Pennington  <hp@redhat.com>
7354
7355         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7356
7357 2004-08-09  Havoc Pennington  <hp@redhat.com>
7358
7359         * COPYING: switch to Academic Free License version 2.1 instead of
7360         2.0, to resolve complaints about patent termination clause.
7361
7362 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7363
7364         * README: added documentation for the --enable-python 
7365         configure switch.
7366
7367 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7368
7369         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7370         _unref in the SELinux support.
7371
7372         * doc/busconfig.dtd: update DTD for SELinux support.
7373
7374         * bus/config-loader-libxml.c: fix error handler and parser
7375         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7376
7377         * configure.in: remove the warning about libxml2.
7378
7379         * dbus/dbus-bus.c: silence doxygen warning.
7380
7381 2004-07-31  Colin Walters  <walters@redhat.com>
7382
7383         * configure.in: Move #error in SELinux check to its own line.
7384
7385 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7386
7387         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7388         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7389         dbus_error_set.
7390
7391         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7392         broken by the change in the _SET_OOM macros.
7393
7394 2004-07-31  Colin Walters  <walters@redhat.com>
7395
7396         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7397         BUS_SET_OOM.
7398
7399 2004-07-31  Colin Walters  <walters@redhat.com>
7400
7401         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7402         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7403         AC_MSG_CHECKING.
7404
7405 2004-07-24  Havoc Pennington  <hp@redhat.com>
7406
7407         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7408
7409         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7410         functionality
7411
7412         * configure.in: add --enable-selinux
7413         
7414         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7415
7416         * bus/main.c (main): initialize and shut down selinux
7417
7418         * bus/connection.c: store SELinux ID on each connection, to avoid 
7419         repeated getting of the string context and converting it into 
7420         an ID
7421
7422         * bus/bus.c (bus_context_get_policy): new accessor, though it
7423         isn't used
7424         (bus_context_check_security_policy): check whether the security
7425         context of sender connection can send to the security context of
7426         recipient connection
7427
7428         * bus/config-parser.c: add parsing for <selinux> and <associate>
7429         
7430         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7431         implement dbus_connection_get_unix_fd()
7432
7433         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7434         function, used by the selinux stuff
7435         
7436 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7437
7438         * bus/config-loader-libxml.c: complete the implementation of
7439         libxml backend for config file loader. Doesn't work with full OOM
7440         test yet. 
7441         
7442         * configure.in: change error when selecting libxml into a warning.
7443         
7444         * test/data/invalid-config-files: add two non-well-formed XML
7445         files. 
7446         
7447         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7448         
7449         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7450         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7451         be necessary to read all the buffer. (bug #894)
7452
7453         * bus/activation.c (bus_activation_activate_service): fix a
7454         potential assertion failure (bug #896). Small optimization in the
7455         case of auto-activation messages.
7456
7457         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7458         add test case for byte-through-vararg bug (#901). patch by Kimmo
7459         Hämäläinen. 
7460
7461 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7462
7463         * python/dbus.py:
7464         * python/dbus_bindings.pyx.in:
7465         Add dbus.init_gthreads (), allow emit_signal to pass
7466         arguments to the signal.
7467         
7468 2004-07-24  Havoc Pennington  <hp@redhat.com>
7469
7470         * AUTHORS: add some people, not really comprehensively, let me
7471         know if I missed you
7472
7473 2004-07-24  Havoc Pennington  <hp@redhat.com>
7474
7475         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7476         Owen
7477
7478         * test/Makefile.am (DIST_SUBDIRS): here also
7479
7480 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7481
7482         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7483         breaking build on Solaris, reported by Farhad Saberi on the ML.
7484
7485         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7486         va_arg invocation to account for integer promotion in the case of
7487         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7488
7489         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7490         _dbus_list_get_first_link, not _dbus_list_get_first.
7491
7492         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7493
7494         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7495         handler functions so that the asserts in _dbus_object_subtree_unref
7496         do not fail.
7497
7498         * dbus/dbus-transport-unix.c (do_reading):
7499         _dbus_transport_queue_messages return value is of type
7500         dbus_bool_t, not DBusDispatchStatus.
7501         
7502 2004-07-19  David Zeuthen  <david@fubar.dk>
7503
7504         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7505
7506         * bus/dispatch.c:
7507         (check_get_connection_unix_user): Debug says GetProperty; but the
7508         method is called GetConnectionUnixUser
7509         (check_get_connection_unix_process_id): New function
7510         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7511         also call check_get_connection_unix_process_id()
7512         
7513         * bus/driver.c:
7514         (bus_driver_handle_get_connection_unix_process_id): New function,
7515         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7516         interface
7517         
7518         * dbus/dbus-auth.c:
7519         (handle_server_data_external_mech): Set pid from the credentials
7520         obtained from the socket
7521         
7522         * dbus/dbus-connection.c:
7523         (dbus_connection_get_unix_process_id): New function
7524         
7525         * dbus/dbus-connection.h: 
7526         Add prototype for dbus_connection_get_unix_process_id
7527         
7528         * dbus/dbus-transport.c:
7529         (_dbus_transport_get_unix_process_id): New function
7530         
7531         * dbus/dbus-transport.h:
7532         Add prototype for _dbus_transport_get_unix_process_id
7533         
7534 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7535
7536         * dbus/dbus-message.c: Message counter fix, patch by Christian
7537         Hammond <chipx86@gnupdate.org>
7538
7539 2004-07-18  Seth Nickell  <seth@gnome.org>
7540
7541         * python/dbus.py:
7542         * python/dbus_bindings.pyx.in:
7543         * python/tests/test-client.py:
7544
7545         Add dbus.ByteArray and dbus_bindings.ByteArray
7546         types so that byte streams can be passed back.
7547
7548         Give jdahlin the heaps of credit that are so
7549         rightfully his.
7550         
7551 2004-07-12  Seth Nickell  <seth@gnome.org>
7552
7553         * python/dbus.py:
7554
7555         Add message argument to the default object_method_handler
7556         function.
7557         
7558         * python/dbus_bindings.pyx.in:
7559
7560         Automatically return NIL when passed an empty list
7561         (we can't pass back a list since lists are typed
7562         and we don't have any idea what type the the client
7563         intended the list to be... :-( )
7564         
7565 2004-07-10  Seth Nickell  <seth@gnome.org>
7566
7567         * python/examples/Makefile.am:
7568
7569         Fix distcheck breakage caused by new examples.
7570
7571 2004-07-10  Seth Nickell  <seth@gnome.org>
7572
7573         * python/dbus.py:
7574
7575         Add "message" argument to service-side dbus.Object
7576         methods. This will break existing services written
7577         using the python bindings, but will allow extraction
7578         of all the message information (e.g. who its from).
7579
7580         Add improved "object oriented" signal handling/emission.
7581         
7582         * python/examples/example-service.py:
7583
7584         Nix this example.
7585         
7586         * python/examples/example-signal-emitter.py:
7587         * python/examples/example-signal-recipient.py:
7588
7589         Two new examples that show how to emit and receive
7590         signals using the new APIs.
7591         
7592         * python/examples/example-signals.py:
7593         * python/examples/gconf-proxy-service.py:
7594         * python/examples/gconf-proxy-service2.py:
7595
7596         Add "message" argument to service methods.
7597
7598 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7599
7600         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7601         * dbus/bus.c (dbus_bus_get_unix_user)
7602         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7603         method of org.freedesktop.DBus interface.
7604
7605         * bus/dispatch.c: test case
7606
7607 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7608
7609         * python/Makefile.am: switched include directory from glib/ to dbus/
7610         since dbus-glib.h moved
7611  
7612 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7613
7614         * configure.in: prevent building the gcj stuff and libxml loader
7615         since they are broken.
7616
7617 2004-06-20  Havoc Pennington  <hp@redhat.com>
7618
7619         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7620         codes from the dbus error names
7621         
7622         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7623         as dbus/dbus-glib.h and that breakage is now visible due to 
7624         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7625         
7626         * glib/dbus-glib.h: s/gproxy/g_proxy/
7627
7628         * dbus/dbus-shared.h: new header to hold stuff shared with
7629         binding APIs
7630         
7631         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7632         than dbus-errors.h
7633
7634         * glib/dbus-glib.h (dbus_set_g_error): move to
7635         dbus-glib-lowlevel.h
7636
7637         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7638         of stuff to enable this
7639
7640         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7641
7642         * a bunch of other changes with the same basic "separate glib 
7643         bindings from dbus.h" theme
7644         
7645 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7646
7647         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7648
7649         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7650
7651 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7652
7653         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7654         the reply value of the ServiceExists message.
7655
7656 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7657
7658         * python/dbus_bindings.pyx.in: No longer need to parse path
7659         elements and pass them as arrays of strings.  The C API now
7660         accepts plain path strings.
7661         (_build_parsed_path): removed 
7662
7663 2004-06-07  Havoc Pennington  <hp@redhat.com>
7664
7665         * doc/TODO: remove auto-activation item since it's done; sort
7666         items by importance/milestone
7667
7668 2004-06-07  Havoc Pennington  <hp@redhat.com>
7669
7670         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7671         random signature when using REQUIRED_FIELDS (this hack won't work
7672         in the long term)
7673
7674         * dbus/dbus-message.c: change the signature to be a header field,
7675         instead of message->signature special-case string. Incremental
7676         step forward. Then we can fix up code to send the signature in the
7677         message, then fix up code to validate said signature, then fix up
7678         code to not put the typecodes inline, etc.
7679         (load_one_message): don't make up the signature after the fact
7680         (decode_header_data): require signature field for the known
7681         message types
7682
7683         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7684
7685         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7686
7687 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7688
7689         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7690
7691         * mono/Handler.cs: Updated to follow new path argument for
7692         (un-)registering objects.
7693
7694         * mono/example/Makefile.am:
7695         * mono/Makefile.am:
7696         * configure.in: Bumped required version for mono and use new -pkg
7697         syntax for deps
7698
7699 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7700
7701         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7702         registration functions take the path argument as char* instead of
7703         char**.
7704
7705         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7706         split off the path decompostion part of
7707         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7708         warnings. 
7709
7710         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7711         
7712 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7713  
7714         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7715         machine approach.  A state is implemented as a function that
7716         handles incoming events as specified for that state.
7717         
7718         * doc/dbus-specification.xml: Update auth protocol state machine
7719         specification to match implementation.  Remove some leftover
7720         base64 examples.
7721
7722 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7723
7724         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7725         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7726         quiet doxygen.
7727
7728         * Doxyfile.in: remove deprecated options.
7729
7730         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7731         glib/test-thread.h, glib/test-thread-client.c,
7732         glib/test-thread-server.c, glib/test-profile.c,
7733         glib/test-dbus-glib.c: remove these unused files.
7734
7735 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7736
7737         * dbus/dbus-object-tree.c
7738         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7739         non-fallback handlers (bug #684).
7740         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7741         (find_subtree_recurse): report wether the returned subtree is an
7742         exact match or a "fallback" match higher up in the tree.
7743         (object_tree_test_iteration): update test case.
7744
7745 2004-06-01  Seth Nickell  <seth@gnome.org>
7746
7747         * python/dbus_bindings.pyx.in:
7748         * python/tests/test-client.py:
7749
7750         Round off basic type support. Add dicts (yay!), and 
7751         remaining array types.
7752
7753         Make MessageIter more general so it works for dicts too.
7754
7755         Mark all loop variables as C integers.
7756         
7757 2004-05-31  Havoc Pennington  <hp@redhat.com>
7758
7759         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7760         "in" before "out"
7761
7762         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7763
7764         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7765         option that runs the tests, and start filling in some code
7766         including for starters just dumping the interfaces to stdout
7767
7768         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7769
7770         * test/data/valid-introspection-files/lots-of-types.xml: test of
7771         an example introspection file
7772
7773         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7774         "node" (I think...)
7775
7776 2004-05-31  Seth Nickell  <seth@gnome.org>
7777
7778         * python/dbus_bindings.pyx.in:
7779         * python/tests/test-client.py:
7780
7781         Test Suite: 1
7782         Python Bindings: 0
7783
7784         Fix string array memory trashing bug... oops...
7785
7786 2004-05-30  Seth Nickell  <seth@gnome.org>
7787
7788         * python/dbus.py:
7789
7790         Add a nicer-but-less-flexible alternate API for handling 
7791         calls to virtual objects in dbus.ObjectTree.
7792
7793         Screw up the argument order to the dbus.Object constructor
7794         for consistency with dbus.ObjectTree (and to make dbus_methods
7795         optional for future extension)
7796         
7797         * python/examples/Makefile.am:
7798         * python/examples/gconf-proxy-service.py:
7799         * python/examples/gconf-proxy-service2.py:
7800
7801         Alternate implementation of gconf-proxy-service using the
7802         nicer dbus.ObjectTree API.
7803         
7804         * python/examples/example-service.py:
7805         * python/tests/test-server.py
7806
7807         Reverse the argument order to deal with dbus.Object constructor
7808         changes.
7809         
7810 2004-05-30  Seth Nickell  <seth@gnome.org>
7811
7812         * python/examples/example-client.py:
7813         * python/examples/example-service.py:
7814
7815         Take it back. Lists seem to work but they're broken
7816         in the test suite. Make the base examples use
7817         lists (works fine).
7818
7819 2004-05-30  Seth Nickell  <seth@gnome.org>
7820
7821         * python/dbus_bindings.pyx.in:
7822         * python/tests/test-client.py:
7823
7824         Add some more tests and fix errors that crop up.
7825         Unfortunately, currently it seems like marshalling
7826         and unmarshalling of lists is completely broken :-(
7827
7828 2004-05-30  Seth Nickell  <seth@gnome.org>
7829
7830         * python/dbus_bindings.pyx.in:
7831
7832         Add support for ObjectPath type.
7833
7834         * python/dbus.py:
7835
7836         Refactor message handling code to a common function.
7837         
7838         * python/tests/test-client.py:
7839         * python/tests/test-server.py:
7840
7841         Add tests that check to make sure values of all types
7842         can be echoed from a service w/o mangling.
7843         
7844 2004-05-29  Seth Nickell  <seth@gnome.org>
7845
7846         * python/dbus.py:
7847
7848         Add ObjectTree class which allows implementation
7849         of trees of "virtual" objects. Basically the python
7850         wrapper for "register_fallback".
7851         
7852         * python/examples/Makefile.am
7853         * python/examples/gconf-proxy-client.py:
7854         * python/examples/gconf-proxy-service.py:
7855
7856         Implement a simple GConf proxy service that supports
7857         get/set on string and int GConf keys using the ObjectTree.
7858         
7859 2004-05-29  Seth Nickell  <seth@gnome.org>
7860
7861         * python/dbus.py:
7862         * python/examples/example-client.py:
7863         * python/examples/example-service.py:
7864         * python/examples/list-system-services.py:
7865
7866         Add SessionBus, SystemBus and ActivationBus classes
7867         so you don't need to know the special little BUS_TYPE
7868         flag.
7869         
7870 2004-05-29  Havoc Pennington  <hp@redhat.com>
7871
7872         * bus/config-parser.c (process_test_valid_subdir): temporarily
7873         stop testing config parser OOM handling, since expat has issues
7874         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7875
7876         * bus/dbus-daemon-1.1.in: change requested_reply to
7877         send_requested_reply/receive_requested_reply so we can send the
7878         replies, not just receive them.
7879
7880         * bus/config-parser.c: parse the new
7881         send_requested_reply/receive_requested_reply
7882
7883         * bus/policy.c (bus_client_policy_check_can_send): add
7884         requested_reply argument and use it
7885
7886         * bus/bus.c (bus_context_check_security_policy): pass through
7887         requested_reply status to message send check
7888
7889         * bus/system.conf.in: adapt to requested_reply change
7890         
7891 2004-05-28  Havoc Pennington  <hp@redhat.com>
7892
7893         * test/glib/test-service-glib.c (main): remove unused variable
7894
7895         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7896
7897         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7898         from the enum, no longer in use.
7899
7900         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7901         works right.
7902
7903         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7904         whether error_name passed in is a valid error name.
7905
7906 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7907
7908         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7909         OBJECT_PATH and OBJECT_PATH_ARRAY
7910
7911 2004-05-28  Seth Nickell  <seth@gnome.org>
7912
7913         * python/examples/Makefile.am:
7914
7915         Forget to add Makefile.am. Do not pass go.
7916
7917 2004-05-28  Michael Meeks  <michael@ximian.com>
7918
7919         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7920         fix no int64 case.
7921
7922         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7923
7924         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7925         (_dbus_message_iter_get_basic_type_array): impl.
7926         drastically simplify ~all relevant _get methods to use these.
7927         (_dbus_message_iter_append_basic_array),
7928         (dbus_message_iter_append_basic): impl
7929         drastically simplify ~all relevant _append methods to use these.
7930
7931         * dbus/dbus-message-builder.c (parse_basic_type) 
7932         (parse_basic_array, lookup_basic_type): impl.
7933         (_dbus_message_data_load): prune scads of duplicate /
7934         cut & paste coding.
7935
7936         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7937         (_dbus_demarshal_basic_type): implement,
7938         (demarshal_and_validate_len/arg): beef up debug.
7939         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7940
7941 2004-05-27  Seth Nickell  <seth@gnome.org>
7942
7943         * configure.in:
7944         * python/Makefile.am:
7945
7946         Include the example python apps in the tarball.
7947         
7948         * python/examples/list-system-services.py
7949
7950         Add a python new example that fetches the list of services
7951         from the system bus.
7952         
7953 2004-05-27  Seth Nickell  <seth@gnome.org>
7954
7955         * python/dbus.py:
7956         * python/dbus_bindings.pyx.in:
7957
7958         Fix failure to notify that a signal was not handled,
7959         resulted in hung functions.
7960         
7961 2004-05-25  Colin Walters  <walters@redhat.com>
7962
7963         * tools/dbus-monitor.c (main): Monitor all types of messages.
7964
7965 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7966
7967         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7968         which unregisters the object path and disposes the handler.
7969
7970 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7971  
7972         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7973          
7974         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7975         operands to && so we call dbus_message_iter_next () for the last
7976         argument also.
7977
7978 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7979
7980         * dbus/dbus-object-tree.c
7981         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7982         children even if the requested path isn't registered.
7983         (object_tree_test_iteration): test object_tree_list_registered.
7984
7985         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7986         it to 0.
7987         
7988 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7989
7990         * doc/TODO: Remove resolved items.
7991
7992         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7993         field.
7994         
7995         * bus/connection.c (bus_connections_expect_reply): Enforce the
7996         per-connection limit on pending replies.
7997         
7998         Patch from Jon Trowbridge <trow@ximian.com>:
7999  
8000         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8001         up a watch that triggers a config reload when one end of the pipe
8002         becomes readable.
8003         (signal_handler): Instead of doing the config reload in our SIGHUP
8004         handler, just write to the reload pipe and let the associated
8005         watch handle the reload when control returns to the main loop.
8006  
8007         * bus/driver.c (bus_driver_handle_reload_config): Added.
8008         Implements a ReloadConfig method for requesting a configuration
8009         file reload via the bus driver.
8010  
8011 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8012
8013         * HACKING: Updated release instructions concerning the wiki page.
8014
8015 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8016
8017         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8018         filter against auth->allowed_mechs; we only add allowed mechs in
8019         record_mechanisms().
8020  
8021         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8022         ALLOWED_MECHS to auth-script format so we can set the list of
8023         allowed mechanisms.
8024  
8025         * data/auth/client-out-of-mechanisms.auth-script: New test to
8026         check client disconnects when it is out of mechanisms to try.
8027  
8028         * dbus/dbus-auth.c (process_command): Remove check for lines
8029         longer that 1 MB; we only buffer up maximum 16 kB.
8030  
8031         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8032         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8033         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8034         assume there might be unused bytes.
8035  
8036         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8037         client-out-of-mechs, it is handled in process_reject(). Move check
8038         for max failures to send_rejected(), as it's a server-only thing.
8039
8040         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8041         send_auth(), send_data(), send_rejected(), send_error(),
8042         send_ok(), send_begin() and send_cancel().
8043
8044 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8045
8046         Remove base64 encoding, replace with hex encoding. Original patch
8047         from trow@ximian.com, added error handling.
8048
8049         * dbus/dbus-string.c (_dbus_string_base64_encode)
8050         (_dbus_string_base64_decode): Remove.
8051         (_dbus_string_hex_decode): Add end_return argument so we can
8052         distinguish between OOM and invalid hex encoding.
8053         (_dbus_string_test): Remove base64 tests and add test case for
8054         invalid hex.
8055
8056         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8057         Replace base64 with hex.
8058
8059         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8060         for invalid hex encoded data in auth protocol.
8061
8062 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8063
8064         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8065         leak.
8066
8067 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8068
8069         * mono/dbus-sharp.dll.config.in: Added for GAC
8070         * mono/dbus-sharp.snk: Added for GAC
8071         * mono/Assembly.cs.in: Added for GAC
8072         * mono/Makefile.am: Changes for GAC installation        
8073         * configure.in: Added refs for dbus-sharp.dll.config.in and
8074         Assembly.cs.in. More fixes for mono testing
8075         * mono/example/Makefile.am: Changed var to CSC
8076         * Makefile.am: Changed flag name to DBUS_USE_CSC
8077
8078 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8079
8080         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8081         * mono/doc/*: Added documentation framework
8082         * configure.in: Added monodoc check
8083         * README: Added description of mono configure flags
8084
8085 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8086
8087         * doc/dbus-specification.xml: Added a "Required" column to the 
8088         header fields table and changed the "zero or more" verbage in
8089         the above paragraph to read "The header must contain the required 
8090         named header fields and zero or more of the optional named header 
8091         fields".
8092         * test/data/invalid-messages/*.message: Added the required PATH 
8093         named header field to the tests so that they don't fail on 
8094         'Missing path field'
8095
8096 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8097
8098         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8099         the stack by implicitly defining variable and parameter types and
8100         removing the hack of defining C pointers as python objects and later
8101         casting them.
8102
8103 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8104
8105         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8106
8107 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8108
8109         * mono/DBusType/Dict.cs: Handle empty dicts
8110         * mono/DBusType/Array.cs: Handle empty arrays
8111         * mono/Arguments.cs: Handle empty arguments
8112
8113 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8114
8115         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8116         field
8117
8118 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8119
8120         * test/data/valid-messages/standard-*.message: Update message
8121         test scripts to new header field names.
8122
8123 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8124
8125         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8126         overflow to times_we_did_each_thing array which would chop off the
8127         first character of the failure_dir string. Increased the size of
8128         the array to 7 to reflect the number of random mutation functions
8129         we have.
8130
8131 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8132
8133         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8134         unix_server->watch here, it is unreffed in disconnect.
8135         (_dbus_server_new_for_tcp_socket): convert NULL host to
8136         "localhost" here so we don't append NULL to address.
8137         
8138         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8139         various addresses, including tcp with no explicit host.
8140
8141 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8142
8143         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8144         fix incorrect setting of .name_offset in the HeaderField (it was
8145         off by two bytes, positioned right after the name and typecode)
8146
8147         * bus/bus.c (bus_context_new, bus_context_unref): test before
8148         calling dbus_server_free_data_slot and _dbus_user_database_unref
8149         in case of an error.
8150
8151         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8152         by libdbus-gtool.
8153
8154 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8155
8156         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8157         _dbus_poll() instead of select().
8158
8159 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8160
8161         * bus/main.c (signal_handler): Reload the configuration files
8162         on SIGHUP.
8163         (main): Set up our SIGHUP handler.
8164
8165         * bus/bus.c (struct BusContext): Store the config file, user and
8166         fork flag in the BusContext.
8167         (process_config_first_time_only): Added.  Contains the code
8168         (previously in bus_context_new) for setting up the BusContext from
8169         the BusConfigParser that should only be run the first time the
8170         config files are read.
8171         (process_config_every_time): Added.  Contains the code (previously
8172         in bus_context_new) for setting up the BusContext from the
8173         BusConfigParser that should be run every time the config files are
8174         read.
8175         (load_config): Added.  Builds a BusConfigParser from the config
8176         files and passes the resulting structure off to
8177         process_config_first_time_only (assuming this is the first time)
8178         and process_config_every_time.
8179         (bus_context_new): All of the config-related code has been moved
8180         to process_config_first_time_only and process_config_every_time.
8181         Now this function just does the non-config-related initializations
8182         and calls load_config.
8183         (bus_context_reload_config): Added.
8184
8185 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8186
8187         * bus/driver.c (bus_driver_handle_get_service_owner):
8188         implement a GetServiceOwner method.
8189         * doc/dbus-specification.xml: document it.
8190         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8191         
8192         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8193         implement, using the bus GetServiceOwner method.
8194
8195         * test/glib/test-dbus-glib.c:
8196         use dbus_gproxy_new_for_service_owner so that we can receive the
8197         signal. 
8198
8199 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8200
8201         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8202         dbus/dbus-message.c, dbus/dbus-protocol.h
8203         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8204
8205         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8206         dbus/dbus-message.c, dbus/dbus-protocol.h
8207         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8208
8209         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8210         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8211         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8212
8213         * doc/dbus-specification.xml (Header Fields Table):
8214         s/SERVICE/DESTINATION
8215         s/SENDER_SERVICE/SENDER
8216
8217
8218 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8219
8220         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8221         a few seconds.
8222
8223 2004-04-13  Michael Meeks  <michael@ximian.com>
8224
8225         * glib/dbus-gobject.c (handle_introspect): split out
8226         (introspect_properties): this.
8227         (handle_introspect): implement this.
8228
8229         * test/glib/Makefile.am: use the absolute path so the bus
8230         daemon's chdir ("/") doesn't kill us dead.
8231
8232         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8233
8234 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8235
8236         * bus/config-parser.c (struct BusConfigParser): Added
8237         included_files field.
8238         (seen_include): Added.  Checks whether or not a file has already
8239         been included by any parent BusConfigParser.
8240         (bus_config_parser_new): Copy the parent's included_files.
8241         (include_file): Track which files have been included, and fail on
8242         circular inclusions.
8243         (process_test_valid_subdir): Changed printf to report if we are
8244         testing valid or invalid conf files.
8245         (all_are_equiv): Changed printf to be a bit clearer about
8246         what we are actually doing.
8247         (bus_config_parser_test): Test invalid configuration files.
8248
8249 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8250
8251         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8252         argument.  If non-null, the newly-constructed BusConfigParser will
8253         be initialized with the parent's BusLimits instead of the default
8254         values.
8255         (include_file): When including a config file, pass in
8256         the current parser as the parent and then copy the BusLimits
8257         from the included BusConfigParser pack to the current parser.
8258         (process_test_valid_subdir): Renamed from process_test_subdir.
8259         (process_test_equiv_subdir): Added.  Walks through a directory,
8260         descending into each subdirectory and loading the config files
8261         it finds there.  If any subdirectory contains two config files
8262         that don't produce identical BusConfigParser structs, fail.
8263         For now, the BusConfigParser's BusPolicies are not compared.
8264         (bus_config_parser_test): Call both process_test_valid_subdir and
8265         process_test_equiv_subdir.
8266
8267         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8268         argument and pass it along to the call to bus_config_parser_new.
8269         Also made a few small changes to allow this code to compile.
8270
8271         * bus/config-loader-expat.c (bus_config_load): Take a parent
8272         argument and pass it along to the call to bus_config_parser_new.
8273
8274         * bus/bus.c (bus_context_new): Load the config file
8275         with a NULL parent argument.
8276
8277 2004-03-29  Michael Meeks  <michael@ximian.com>
8278
8279         * glib/dbus-gobject.c (introspect_properties): split
8280         out, fix mangled 'while' flow control.
8281         (introspect_signals): implement.
8282         (handle_introspect): update.
8283
8284 2004-03-29  Michael Meeks  <michael@ximian.com>
8285
8286         * glib/dbus-gobject.c (set_object_property): split out / 
8287         re-work, use the property type, and not the message type(!)
8288         (get_object_property): ditto.
8289
8290         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8291         (dbus_gvalue_marshal): make this code re-usable, needed
8292         for signals too, also on both proxy and server side.
8293         Re-write for more efficiency / readability.
8294
8295 2004-03-29  Michael Meeks  <michael@ximian.com>
8296
8297         * dbus/dbus-message.c
8298         (dbus_message_new_error_printf): impl.
8299
8300         * dbus/dbus-connection.c
8301         (dbus_connection_unregister_object_path): fix warning.
8302
8303         * configure.in: fix no-mono-installed situation.
8304
8305 2004-03-27  Havoc Pennington  <hp@redhat.com>
8306
8307         Patch from Timo Teräs:
8308         
8309         * tools/dbus-send.c (main): if --print-reply, assume type is
8310         method call; support boolean type args
8311         
8312         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8313         bunch of memleak and logic bugs
8314         
8315 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8316
8317         * mono/Arguments.cs:
8318         * mono/Introspector.cs:
8319         * mono/Handler.cs:
8320         * mono/InterfaceProxy.cs:
8321         * mono/Message.cs
8322         * mono/ProxyBuilder.cs:
8323         * mono/Service.cs:
8324         Added InterfaceProxy class to avoid building proxies for every
8325         object.
8326
8327         * dbus-message.h:
8328         * dbus-message.c (dbus_message_append_args_valist)
8329         (dbus_message_iter_get_object_path)
8330         (dbus_message_iter_get_object_path_array)
8331         (dbus_message_iter_append_object_path)
8332         (dbus_message_iter_append_object_path_array):
8333         Added object_path iter functions to handle OBJECT_PATH arguments
8334         
8335 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8336
8337         First checkin of mono bindings.
8338         * configure.in:
8339         * Makefile.am:
8340         Build stuff for the bindings
8341         * dbus-sharp.pc.in: Added for pkgconfig
8342         
8343 2004-03-21  Havoc Pennington  <hp@redhat.com>
8344
8345         * test/test-service.c (main): remove debug spew
8346
8347 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8348
8349         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8350         arrays
8351
8352         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8353         (dbus_message_iter_init_array_iterator)
8354         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8355         indicate whether the iterator is empty
8356
8357         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8358         warnings
8359
8360 2004-03-19  Havoc Pennington  <hp@redhat.com>
8361
8362         * NEWS: 0.21 updates
8363
8364         * configure.in: 0.21
8365
8366         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8367         
8368         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8369         you don't need pyrex to make dist
8370
8371         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8372         sources; run moc
8373         
8374 2004-03-18  Richard Hult  <richard@imendio.com>
8375
8376         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8377         (dbus_message_set_auto_activation): Add doxygen docs.
8378
8379 2004-03-16  Richard Hult  <richard@imendio.com>
8380
8381         * bus/activation.c: (bus_activation_service_created),
8382         (bus_activation_send_pending_auto_activation_messages),
8383         (bus_activation_activate_service):
8384         * bus/activation.h:
8385         * bus/dispatch.c: (bus_dispatch),
8386         (check_nonexistent_service_auto_activation),
8387         (check_service_auto_activated),
8388         (check_segfault_service_auto_activation),
8389         (check_existent_service_auto_activation), (bus_dispatch_test):
8390         * bus/driver.c: (bus_driver_handle_activate_service):
8391         * bus/services.c: (bus_registry_acquire_service):
8392         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8393         (dbus_message_get_auto_activation):
8394         * dbus/dbus-message.h:
8395         * dbus/dbus-protocol.h: Implement auto-activation.
8396         
8397         * doc/dbus-specification.xml: Add auto-activation to the spec.
8398
8399 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8400
8401         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8402         fix a bug with CUSTOM types.
8403
8404         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8405         a unit test for this bug (used to fail).
8406
8407 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8408
8409         * bus/activation.c:
8410         (babysitter_watch_callback): notify all pending activations waiting for
8411           the same exec that the activation failed.
8412         (bus_activation_activate_service): shortcut the activation if we 
8413           already waiting for the same executable to start up.
8414
8415 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8416
8417         * bus/activation.c: 
8418         - Added service file reloading. 
8419           Each service files directory is kept in an hash table in 
8420           BusActivation and each BusActivationEntry knows what .service-file it
8421           was read from. So when you try to activate a service the bus will 
8422           check if it's been updated, removed or if new .service-files has 
8423           been installed.
8424         - Test code at the bottom for the service file reloading.
8425         * bus/test-main.c: (main):
8426         * bus/test.h:
8427         - added service reloading test.
8428         * dbus/dbus-sysdeps.c: 
8429         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8430
8431 2004-03-08  Michael Meeks  <michael@ximian.com>
8432
8433         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8434         bail immediately if disconnected, to avoid busy loop.
8435
8436         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8437         cleanup cut/paste/inefficiency.
8438
8439 2004-03-01  David Zeuthen  <david@fubar.dk>
8440
8441         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8442         bug where args were used twice. This bug resulted in a segfault
8443         on a Debian/PPC system when starting the messagebus daemon. Include
8444         dbus-sysdeps.h for DBUS_VA_COPY
8445
8446         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8447
8448         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8449         appropriate va_copy implementation. From GLib
8450         
8451 2004-02-24  Joe Shaw  <joe@ximian.com>
8452
8453         * bus/services.c (bus_registry_acquire_service): We need to pass
8454         in the service name to dbus_set_error() to prevent a crash.
8455
8456 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8457
8458         * AUTHORS: Reveal my True identity.
8459
8460 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8461
8462         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8463         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8464
8465 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8466
8467         * doc/TODO: Added not about better error check of configuration files.
8468
8469 2003-12-02  Richard Hult  <richard@imendio.com>
8470
8471         * Update AFL version to 2.0 throughout the source files to reflect
8472         the update that was done a while ago.
8473
8474 2003-12-02  Richard Hult  <richard@imendio.com>
8475
8476         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8477         wrote_dict_key to FALSE on the iter that the dict is appended to,
8478         just like when appending other types. Fixes a bug where a dict
8479         couldn't be put inside a dict.
8480         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8481         (message_iter_test, _dbus_message_test): Add test case for dict
8482         inside dict.
8483
8484 2003-12-01  David Zeuthen  <david@fubar.dk>
8485
8486         * python/dbus.py: Add the actual message when calling the reciever
8487         of a signal such that parameters can be inspected. Add the method
8488         remove_signal_receiver
8489         
8490 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8491
8492         * bus/*.[ch]:
8493         * dbus/*.[ch]:
8494         * glib/*.[ch]: Made ref functions return the pointer
8495
8496 2003-11-25  Zack Rusin  <zack@kde.org>
8497
8498         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8499
8500         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8501         wrappers,
8502
8503         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8504         the Integrator and to better fit with the server,
8505
8506 2003-11-24  Zack Rusin  <zack@kde.org>
8507
8508         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8509         the integrator handles it now
8510
8511         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8512         since QTimer wasn't really meant to be used the way DBusTimeout is
8513
8514 2003-11-24  Zack Rusin  <zack@kde.org>
8515
8516         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8517         Integrator class which integrates D-BUS with the Qt event loop,
8518
8519         * qt/connection.h, qt/connection.cpp: Move all the code which
8520         was dealing with D-BUS integration to the Integrator class,
8521         and start using Integrator,
8522
8523 2003-11-23  Zack Rusin  <zack@kde.org>
8524
8525         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8526         wrapper
8527
8528         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8529         switching namespaces to DBusQt, reworking the class,
8530
8531         * Makefile.cvs: switching dependencies so that it matches KDE 
8532         schematics,
8533         
8534         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8535         the library
8536
8537 2003-11-19  Havoc Pennington  <hp@redhat.com>
8538
8539         * NEWS: update
8540
8541         * configure.in: bump version to 0.20
8542
8543         * configure.in (have_qt): add yet another place to look for qt
8544         (someone hand trolltech a .pc file...)
8545
8546 2003-11-01  Havoc Pennington  <hp@redhat.com>
8547
8548         * doc/dbus-specification.xml: add state machine docs on the auth
8549         protocol; just a first draft, I'm sure it's wrong.      
8550
8551 2003-10-28  David Zeuthen  <david@fubar.dk>
8552
8553         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8554         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8555         
8556 2003-10-28  Havoc Pennington  <hp@redhat.com>
8557
8558         * dbus/dbus-message.c (get_next_field): delete unused function
8559
8560 2003-10-28  Havoc Pennington  <hp@redhat.com>
8561
8562         * bus/expirelist.c (do_expiration_with_current_time): detect
8563         failure of the expire_func due to OOM
8564
8565         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8566
8567         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8568         NoReply error that's now created by the bus when the service exits
8569
8570 2003-10-28  Havoc Pennington  <hp@redhat.com>
8571
8572         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8573         tests for set_path, set_interface, set_member, etc.
8574
8575         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8576
8577         * dbus/dbus-message.c (set_string_field): always just delete and
8578         re-append the field; accept NULL for deletion
8579         (re_align_fields_recurse): reimplement
8580         
8581 2003-10-26  Havoc Pennington  <hp@redhat.com>
8582
8583         * dbus/dbus-connection.c: fix docs to properly describe the
8584         disconnected message
8585         (_dbus_connection_notify_disconnected): remove this function; 
8586         we can't synchronously add the disconnected message, we have to 
8587         do it after we've queued any remaining real messages
8588         (_dbus_connection_get_dispatch_status_unlocked): queue the
8589         disconnect message only if the transport has finished queueing all
8590         its real messages and is disconnected.
8591         (dbus_connection_disconnect): update the dispatch status here
8592
8593 2003-10-22  Havoc Pennington  <hp@redhat.com>
8594
8595         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8596
8597         * bus/connection.c (bus_transaction_send_from_driver): set the
8598         destination to the connection's base service
8599
8600 2003-10-20  Havoc Pennington  <hp@redhat.com>
8601
8602         hmm, make check is currently not passing.
8603         
8604         * doc/dbus-specification.xml: add requirement that custom type
8605         names follow the same rules as interface names.
8606
8607         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8608         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8609         'map'
8610
8611         * doc/dbus-specification.xml: update type codes to match
8612         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8613         CUSTOM. Add type OBJECT_PATH to the spec.
8614
8615 2003-10-17  Havoc Pennington  <hp@redhat.com>
8616
8617         * bus/driver.c (create_unique_client_name): use "." as separator
8618         in base service names instead of '-'
8619
8620         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8621         byte at the end of the string
8622
8623         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8624         optimization macros since string validation seems to be a slow
8625         point.
8626         
8627         * doc/dbus-specification.xml: restrict valid
8628         service/interface/member/error names. Add test suite code for the
8629         name validation.
8630
8631         * dbus/dbus-string.c: limit service/interface/member/error names 
8632         to [0-9][A-Z][a-z]_
8633
8634         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8635         format arg to verbose spew
8636
8637         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8638         memory, return instead of g_error
8639
8640         * test/test-service.c (path_message_func): support emitting a
8641         signal on request
8642
8643         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8644         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8645         assuming the activation bus was the session bus so that services
8646         started manually will still register.
8647         (init_connections_unlocked): fix so that in OOM situation we get
8648         the same semantics when retrying the function
8649         
8650         * test/test-service.c (main): change to use path registration, to
8651         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8652         than DBUS_BUS_SESSION
8653
8654 2003-10-16  Havoc Pennington  <hp@redhat.com>
8655
8656         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8657
8658         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8659         coverage of the tests
8660         (coverage-report.txt): don't move the .da and .bbg files around
8661
8662 2003-10-16  Havoc Pennington  <hp@redhat.com>
8663
8664         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8665         to put there
8666
8667 2003-10-16  Havoc Pennington  <hp@redhat.com>
8668
8669         * bus/connection.c (bus_pending_reply_expired): either cancel or
8670         execute, not both
8671         (bus_connections_check_reply): use unlink, not remove_link, as we
8672         don't want to free the link; fixes double free mess
8673
8674         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8675         where no reply was received
8676
8677         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8678         fix a refcount leak
8679
8680         * bus/signals.c (match_rule_matches): add special cases for the
8681         bus driver, so you can match on sender/destination for it.
8682
8683         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8684         DBUS_PRINT_BACKTRACE is set
8685
8686         * dbus/dbus-internals.c: add pid to assertion failure messages
8687
8688         * dbus/dbus-connection.c: add message type code to the debug spew
8689
8690         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8691         sender=foo not service=foo
8692
8693         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8694         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8695         DBUS_ACTIVATION_ADDRESS instead
8696
8697         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8698         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8699
8700         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8701         context struct
8702
8703         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8704         (dbus_message_iter_get_object_path_array): new function (half
8705         finished, disabled for the moment)
8706         
8707         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8708         DBUS_MESSAGE_TYPE_ERROR
8709
8710         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8711         avoid redirecting stderr to /dev/null
8712         (babysit): close stdin if not doing the "exit_with_session" thing
8713
8714         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8715         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8716         stdout/stdin, so things don't get confused
8717         
8718         * bus/system.conf.in: fix to allow replies, I modified .conf
8719         instead of .conf.in again.
8720
8721 2003-10-14  David Zeuthen  <david@fubar.dk>
8722
8723         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8724         argtype to arg_type when raising unknown arg type exception.
8725         Changed type list to reflect the changes in dbus-protocol.h so 
8726         the bindings actually work.
8727
8728 2003-10-14  Havoc Pennington  <hp@redhat.com>
8729
8730         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8731         to have a bug keeping it from outputting the .da files sometimes
8732         (string_get_string): don't append garbage nul bytes to the string.
8733
8734 2003-10-15  Seth Nickell  <seth@gnome.org>
8735
8736         * python/Makefile.am:
8737
8738         Include dbus_h_wrapper.h in the dist tarball.
8739
8740 2003-10-14  Havoc Pennington  <hp@redhat.com>
8741
8742         * bus/bus.c (bus_context_check_security_policy): revamp this to
8743         work more sanely with new policy-based requested reply setup
8744
8745         * bus/connection.c (bus_transaction_send_from_driver): set bus
8746         driver messages as no reply
8747
8748         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8749         requested_reply attribute on allow/deny rules
8750
8751         * bus/system.conf: add <allow requested_reply="true"/>
8752
8753         * bus/driver.c (bus_driver_handle_message): fix check for replies
8754         sent to the bus driver, which was backward. How did this ever work
8755         at all though? I think I'm missing something.
8756
8757         * dbus/dbus-message.c (decode_header_data): require error and
8758         method return messages to have a reply serial field to be valid
8759         (_dbus_message_loader_queue_messages): break up this function;
8760         validate that reply serial and plain serial are nonzero; 
8761         clean up the OOM/error handling.
8762         (get_uint_field): don't return -1 from this
8763         (dbus_message_create_header): fix signed/unsigned bug
8764
8765         * bus/connection.c (bus_connections_expect_reply): save serial of
8766         the incoming message, not reply serial
8767
8768 2003-10-14  Havoc Pennington  <hp@redhat.com>
8769
8770         * bus/connection.c: implement pending reply tracking using
8771         BusExpireList
8772
8773         * bus/bus.c (bus_context_check_security_policy): verify that a
8774         reply is pending in order to allow a reply to be sent. Deny 
8775         messages of unknown type.
8776
8777         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8778
8779         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8780         (bus_context_get_reply_timeout): new
8781
8782 2003-10-13  Seth Nickell  <seth@gnome.org>
8783
8784         * python/Makefile.am:
8785
8786         Pass "make distcheck": remove a couple files from DIST_FILES
8787         that weren't included in the final version.
8788
8789 2003-10-12  Havoc Pennington  <hp@pobox.com>
8790
8791         Added test code that 1) starts an actual bus daemon and 2) uses
8792         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8793         more testing possible, but this is the basic framework.
8794         
8795         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8796         empty proxy lists from the proxy list hash
8797
8798         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8799         couple of return_if_fail checks
8800
8801         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8802         to allocate, so everything is cleared to NULL as it should be.
8803
8804         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8805         source as data to dbus_connection_set_timeout_functions() as the 
8806         timeout functions expected
8807
8808         * test/glib/run-test.sh: add a little script to start up a message
8809         bus and run tests using it
8810
8811         * tools/dbus-launch.1: updates
8812
8813         * tools/dbus-launch.c (main): add --config-file option
8814
8815         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8816         that could never be reached.
8817
8818         * dbus/dbus-message.c (dbus_message_new_method_return) 
8819         (dbus_message_new_error, dbus_message_new_signal): set the
8820         no-reply-expected flag on all these. Redundant, but may
8821         as well be consistent.
8822
8823 2003-10-11  Havoc Pennington  <hp@pobox.com>
8824
8825         * test/decode-gcov.c (function_solve_graph): make broken block
8826         graph a nonfatal error since it seems to be broken. Need to debug
8827         this.
8828
8829         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8830         can't just check type > INVALID < LAST anymore
8831
8832         * dbus/dbus-message.c (dbus_message_get_signature): new function
8833         (dbus_message_has_signature): new function
8834         (struct DBusMessage): add signature field (right now it isn't sent
8835         over the wire, just generated on the fly)
8836         (dbus_message_copy): copy the signature, and init strings to
8837         proper length to avoid some reallocs
8838         (dbus_message_iter_init_array_iterator): return void, since it
8839         can't fail
8840         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8841         (_dbus_message_loader_queue_messages): add silly temporary hack to
8842         fill in message->signature on load
8843
8844         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8845         characters, so they are relatively human-readable.
8846
8847 2003-10-11  Havoc Pennington  <hp@pobox.com>
8848
8849         * dbus/dbus-message.c (_dbus_message_test): add more test
8850         coverage, but #if 0 for now since they uncover a bug 
8851         not fixed yet; I think in re_align_field_recurse()
8852         (re_align_field_recurse): add FIXME about broken assertion
8853
8854         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8855
8856         * bus/connection.c: share a couple code bits with expirelist.c
8857
8858         * bus/expirelist.h, bus/expirelist.c: implement a generic
8859         expire-items-after-N-seconds facility, was going to share between
8860         expiring connections and replies, decided not to use for expiring
8861         connections for now.
8862
8863         * COPYING: include AFL 2.0 (still need to change all the file headers)
8864
8865 2003-10-09  Havoc Pennington  <hp@redhat.com>
8866
8867         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8868         gcc 3.3. Not that we do anything about it yet.
8869
8870         * bus/signals.c (bus_match_rule_parse): impose max length on the
8871         match rule text
8872
8873         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8874
8875 2003-10-09  Havoc Pennington  <hp@redhat.com>
8876
8877         Make matching rules theoretically work (add parser).
8878         
8879         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8880         the case where destination is explicitly specified as bus driver
8881         and someone else is eavesdropping.
8882         
8883         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8884         definition of eavesdropping and assertion
8885
8886         * tools/dbus-send.c (main): use dbus_message_type_from_string
8887
8888         * bus/signals.c (bus_match_rule_parse): implement
8889
8890         * dbus/dbus-message.c (dbus_message_type_from_string): new
8891
8892         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8893
8894 2003-10-02  Havoc Pennington  <hp@pobox.com>
8895
8896         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8897         dbus_gproxy_oneway_call
8898
8899         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8900         (dbus_server_setup_with_g_main): fix to allow calling them more
8901         than once on the same args
8902         (dbus_bus_get_with_g_main): new function
8903
8904 2003-10-02  Havoc Pennington  <hp@redhat.com>
8905
8906         * doc/dbus-tutorial.xml: write some stuff
8907
8908 2003-09-29  Havoc Pennington  <hp@pobox.com>
8909
8910         * configure.in: split checks for Doxygen from XML docs, check for
8911         xmlto
8912
8913         * doc/Makefile.am: XML-ify all the docs, and add a blank
8914         dbus-tutorial.xml
8915
8916 2003-09-29  Havoc Pennington  <hp@pobox.com>
8917
8918         * Merge dbus-object-names branch. To see the entire patch 
8919         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8920         it's huuuuge though.
8921         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8922         
8923 2003-09-28  Havoc Pennington  <hp@pobox.com>
8924
8925         * HACKING: update to reflect new server
8926
8927 2003-09-26  Seth Nickell  <seth@gnome.org>
8928
8929         * python/dbus.py:
8930         * python/examples/example-signals.py:
8931
8932         Start implementing some notions of signals. The API
8933         is really terrible, but they sort of work (with the
8934         exception of being able to filter by service, and to
8935         transmit signals *as* a particular service). Need to
8936         figure out how to make messages come from the service
8937         we registered :-(
8938         
8939         * python/dbus_bindings.pyx.in:
8940
8941         Removed duplicate message_handler callbacks.
8942         
8943 2003-09-25  Havoc Pennington  <hp@redhat.com>
8944
8945         * bus/session.conf.in: fix my mess
8946
8947 2003-09-25  Havoc Pennington  <hp@pobox.com>
8948
8949         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8950
8951 2003-09-25  Seth Nickell  <seth@gnome.org>
8952
8953         * python/examples/example-service.py:
8954
8955         Johan notices complete wrong code in example-service, but
8956         completely wrong in a way that works exactly the same (!).
8957         Johan is confused, how could this possibly work? Example
8958         code fails to serve purpose of making things clear.
8959         Seth fixes.
8960
8961 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8962
8963         * doc/dbus-specification.sgml: don't require header fields
8964         to be 4-byte aligned and specify that fields should be
8965         distinguished from padding by the fact that zero is not
8966         a valid field name.
8967         
8968         * doc/TODO: remove re-alignment item and add item to doc
8969         the OBJECT_PATH type.
8970         
8971         * dbus/dbus-message.c:
8972         (HeaderField): rename the original member to value_offset
8973         and introduce a name_offset member to keep track of where
8974         the field actually begins.
8975         (adjust_field_offsets): remove.
8976         (append_int_field), (append_uint_field),
8977         (append_string_field): don't align the start of the header
8978         field to a 4-byte boundary.
8979         (get_next_field): impl finding the next marhsalled field
8980         after a given field.
8981         (re_align_field_recurse): impl re-aligning a number of
8982         already marshalled fields.
8983         (delete_field): impl deleting a field of any type and
8984         re-aligning any following fields.
8985         (delete_int_or_uint_field), (delete_string_field): remove.
8986         (set_int_field), (set_uint_field): no need to re-check
8987         that we have the correct type for the field.
8988         (set_string_field): ditto and impl re-aligning any
8989         following fields.
8990         (decode_header_data): update to take into account that
8991         the fields aren't 4-byte aligned any more and the new
8992         way to distinguish padding from header fields. Also,
8993         don't exit when there is too much header padding.
8994         (process_test_subdir): print the directory.
8995         (_dbus_message_test): add test to make sure a following
8996         field is re-aligned correctly after field deletion.
8997         
8998         * dbus/dbus-string.[ch]:
8999         (_dbus_string_insert_bytes): rename from insert_byte and
9000         allow the insert of multiple bytes.
9001         (_dbus_string_test): test inserting multiple bytes.
9002
9003         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9004         warning note to docs about having to re-align any
9005         marshalled values following the string.
9006         
9007         * dbus/dbus-message-builder.c:
9008         (append_string_field), (_dbus_message_data_load):
9009         don't align the header field.
9010         
9011         * dbus/dbus-auth.c: (process_test_subdir): print the
9012         directory.
9013         
9014         * test/break-loader.c: (randomly_add_one_byte): upd. for
9015         insert_byte change.
9016         
9017         * test/data/invalid-messages/bad-header-field-alignment.message:
9018         new test case.
9019         
9020         * test/data/valid-messages/unknown-header-field.message: shove
9021         a dict in the unknown field.
9022
9023 2003-09-25  Seth Nickell  <seth@gnome.org>
9024
9025         * python/dbus.py:
9026         * python/dbus_bindings.pyx.in:
9027
9028         Handle return values.
9029         
9030         * python/examples/example-client.py:
9031         * python/examples/example-service.py:
9032
9033         Pass back return values from the service to the client.
9034         
9035 2003-09-24  Seth Nickell  <seth@gnome.org>
9036
9037         * python/dbus.py:
9038
9039         Connect Object methods (when you are sharing an object) up... pass
9040         in a list of methods to be shared. Sharing all the methods just
9041         worked out too weird. You can now create nice Services over the
9042         DBus in Python. :-)
9043         
9044         * python/dbus_bindings.pyx.in:
9045
9046         Keep references to user_data tuples passed into C functions so 
9047         Python doesn't garbage collect on us.
9048
9049         Implement MethodReturn and Error subclasses of Message for creating
9050         DBusMessage's of those types.
9051         
9052         * python/examples/example-client.py:
9053         * python/examples/example-service.py:
9054
9055         Simple example code showing both how create DBus services and objects,
9056         and how to use them.
9057
9058 2003-09-23  Havoc Pennington  <hp@pobox.com>
9059
9060         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9061
9062 2003-09-23  Havoc Pennington  <hp@redhat.com>
9063
9064         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9065         (dbus_gproxy_disconnect_signal): implement
9066         (dbus_gproxy_manager_remove_signal_match): implement
9067         (dbus_gproxy_manager_add_signal_match): implement
9068         (dbus_gproxy_oneway_call): implement
9069
9070 2003-09-23  Havoc Pennington  <hp@pobox.com>
9071
9072         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9073         subclass. This means dropping the transparent thread safety of the
9074         proxy; you now need a separate proxy per-thread, or your own
9075         locking on the proxy. Probably right anyway.
9076         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9077
9078 2003-09-22  Havoc Pennington  <hp@redhat.com>
9079
9080         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9081
9082 2003-09-21  Seth Nickell  <seth@gnome.org>
9083
9084         First checkin of the Python bindings.
9085         
9086         * python/.cvsignore:
9087         * python/Makefile.am:
9088         * python/dbus_bindings.pyx.in:
9089         * python/dbus_h_wrapper.h:
9090
9091         Pieces for Pyrex to operate on, building a dbus_bindings.so
9092         python module for low-level access to the DBus APIs.
9093         
9094         * python/dbus.py:
9095
9096         High-level Python module for accessing DBus objects.
9097
9098         * configure.in:
9099         * Makefile.am:
9100
9101         Build stuff for the python bindings.
9102
9103         * acinclude.m4:
9104
9105         Extra macro needed for finding the Python C header files.
9106
9107 2003-09-21  Havoc Pennington  <hp@pobox.com>
9108
9109         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9110         implementing the proxy manager, didn't get very far.
9111
9112         * dbus/dbus-bus.c (dbus_bus_add_match): new
9113         (dbus_bus_remove_match): new
9114
9115         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9116         path_name argument; adjust the other not-yet-implemented 
9117         gproxy constructors to be what I think they should be.
9118
9119 2003-09-21  Havoc Pennington  <hp@pobox.com>
9120
9121         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9122         by default for message bus connections.
9123
9124         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9125         exit_on_disconnect flag is set and we process the disconnected
9126         signal.
9127         (dbus_connection_set_exit_on_disconnect): new function
9128
9129 2003-09-21  Havoc Pennington  <hp@pobox.com>
9130
9131         Get matching rules mostly working in the bus; only actually
9132         parsing the rule text remains. However, the client side of
9133         "signal connections" hasn't been started, this patch is only the
9134         bus side.
9135         
9136         * dbus/dispatch.c: fix for the matching rules changes
9137         
9138         * bus/driver.c (bus_driver_handle_remove_match)
9139         (bus_driver_handle_add_match): send an ack reply from these
9140         method calls
9141
9142         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9143         arguments, reported by Seth Nickell
9144
9145         * bus/config-parser.c (append_rule_from_element): support
9146         eavesdrop=true|false attribute on policies so match rules 
9147         can be prevented from snooping on the system bus.
9148
9149         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9150         and "destination" in attribute names; fix some docs bugs; 
9151         add eavesdrop=true|false attribute
9152
9153         * bus/driver.c (bus_driver_handle_add_match)
9154         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9155         messages
9156
9157         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9158         rid of broadcast service concept, signals are just always broadcast
9159
9160         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9161         mostly implement matching rules stuff (currently only exposed as signal
9162         connections)
9163
9164 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9165
9166         * doc/dbus-specification.sgml: Change the header field name
9167         to be an enum and update the rest of the spec to reference
9168         the fields using the conventinal name.
9169
9170         * dbus/dbus-protocol.h: update to reflect the spec.
9171
9172         * doc/TODO: add item to remove the 4 byte alignment requirement.
9173         
9174         * dbus/dbus-message.c: Remove the code to generalise the
9175         header/body length and serial number header fields as named
9176         header fields so we can reference field names using the 
9177         protocol values.
9178         (append_int_field), (append_uint_field), (append_string_field):
9179         Append the field name as a byte rather than four chars.
9180         (delete_int_or_uint_field), (delete_string_field): reflect the
9181         fact that the field name and typecode now occupy 4 bytes instead
9182         of 8.
9183         (decode_string_field), (decode_header_data): update to reflect
9184         protocol changes and move the field specific encoding from
9185         decode_string_field() back into decode_header_data().
9186         
9187         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9188         Add utility to aid debugging.
9189         
9190         * dbus/dbus-message-builder.c:
9191         (append_string_field), (_dbus_message_data_load): Update to
9192         reflect protocol changes; Change the FIELD_NAME directive
9193         to HEADER_FIELD and allow it to take the field's conventional
9194         name rather than the actual value.
9195         
9196         * test/data/*/*.message: Update to use HEADER_FIELD instead
9197         of FIELD_NAME; Always align the header on an 8 byte boundary
9198         *before* updating the header length.
9199
9200 2003-09-15  Havoc Pennington  <hp@pobox.com>
9201
9202         * dbus/dbus-pending-call.c: add the get/set object data
9203         boilerplate as for DBusConnection, etc. Use generic object data
9204         for the notify callback.
9205
9206         * glib/dbus-gparser.c (parse_node): parse child nodes
9207
9208         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9209         
9210         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9211         contain functions shared between the convenience lib and the
9212         installed lib
9213
9214         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9215         -export-symbols-regex to the GLib library
9216
9217         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9218         fix the locking in here, and add a default handler for
9219         Introspect() that just returns sub-nodes.
9220
9221 2003-09-14  Havoc Pennington  <hp@pobox.com>
9222
9223         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9224         rather than gfoo consistent
9225
9226         * glib/dbus-gproxy.h: delete for now, move contents to
9227         dbus-glib.h, because the include files don't work right since we
9228         aren't in the dbus/ subdir.
9229         
9230         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9231         (dbus_gproxy_end_call): finish
9232         (dbus_gproxy_begin_call): finish
9233
9234         * glib/dbus-gmain.c (dbus_set_g_error): new
9235
9236         * glib/dbus-gobject.c (handle_introspect): include information
9237         about child nodes in the introspection
9238
9239         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9240         function to help in implementation of introspection
9241
9242         * dbus/dbus-object-tree.c
9243         (_dbus_object_tree_list_registered_and_unlock): new function
9244
9245 2003-09-12  Havoc Pennington  <hp@pobox.com>
9246
9247         * glib/dbus-gidl.h: add common base class for all the foo_info
9248         types
9249
9250         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9251         similar to kdcop
9252
9253         * test/Makefile.am: try test srcdir -ef . in addition to test
9254         srcdir = ., one of them should work (yeah lame)
9255         
9256         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9257         library
9258         
9259         * glib/dbus-gparser.h: make description_load routines return
9260         NodeInfo* not Parser*
9261
9262         * Makefile.am (SUBDIRS): build test dir after all library dirs
9263
9264         * configure.in: add GTK+ detection
9265
9266 2003-09-07  Havoc Pennington  <hp@pobox.com>
9267
9268         * Make Doxygen contented.
9269
9270 2003-09-07  Havoc Pennington  <hp@pobox.com>
9271
9272         * doc/dbus-specification.sgml: more updates
9273
9274 2003-09-06  Havoc Pennington  <hp@pobox.com>
9275
9276         * doc/dbus-specification.sgml: partial updates
9277
9278         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9279         zillionth time; hopefully I edited the right file this time.
9280
9281         * bus/config-parser.c (append_rule_from_element): support
9282         send_type, send_path, receive_type, receive_path
9283
9284         * bus/policy.c: add message type and path to the list of things
9285         that can be "firewalled"
9286
9287 2003-09-06  Havoc Pennington  <hp@pobox.com>
9288
9289         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9290         (dbus_connection_register_object_path): make this not handle
9291         messages to paths below the given path
9292
9293 2003-09-03  Havoc Pennington  <hp@pobox.com>
9294
9295         * test/glib/Makefile.am: add this with random glib-linked test
9296         programs
9297
9298         * glib/Makefile.am: remove the random test programs from here,
9299         leave only the unit tests
9300
9301         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9302         uscore/javacaps conversion, and fix     
9303         (get_object_property, set_object_property): change to .NET
9304         convention for mapping props to methods, set_FooBar/get_FooBar, 
9305         since one language has such a convention we may as well copy it. 
9306         Plus real methods in either getFooBar or get_foo_bar style won't 
9307         collide with this convention.
9308
9309 2003-09-01  Havoc Pennington  <hp@pobox.com>
9310
9311         * glib/dbus-gparser.c: implement
9312
9313         * glib/dbus-gobject.c: start implementing skeletons support
9314
9315         * configure.in: when disabling checks/assert, also define
9316         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9317
9318 2003-09-01  Havoc Pennington  <hp@pobox.com>
9319
9320         * glib/Makefile.am: rearrange a bunch of files and get "make
9321         check" framework set up
9322
9323 2003-08-31  Havoc Pennington  <hp@pobox.com>
9324
9325         * fix build with --disable-tests
9326
9327 2003-08-30  Havoc Pennington  <hp@pobox.com>
9328
9329         * dbus/dbus-connection.c: purge DBusMessageHandler
9330
9331         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9332         use callbacks everywhere
9333
9334 2003-08-30  Havoc Pennington  <hp@pobox.com>
9335
9336         * test/data/valid-config-files/system.d/test.conf: change to 
9337         root for the user so warnings don't get printed
9338
9339         * dbus/dbus-message.c: add dbus_message_get_path,
9340         dbus_message_set_path
9341         
9342         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9343         dispatching to a path
9344
9345         * dbus/dbus-string.c (_dbus_string_validate_path): add
9346
9347         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9348         (_dbus_marshal_object_path): implement
9349
9350         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9351         to contain the path to the target object
9352         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9353         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9354
9355 2003-08-30  Havoc Pennington  <hp@pobox.com>
9356
9357         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9358
9359 2003-08-29  Havoc Pennington  <hp@pobox.com>
9360
9361         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9362         registered
9363         (struct DBusObjectSubtree): shrink this
9364         a lot, since we may have a lot of them
9365         (_dbus_object_tree_free_all_unlocked): implement
9366         (_dbus_object_tree_dispatch_and_unlock): implement
9367
9368 2003-08-29  Havoc Pennington  <hp@pobox.com>
9369
9370         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9371
9372 2003-08-28  Havoc Pennington  <hp@pobox.com>
9373
9374         purge DBusObjectID
9375         
9376         * dbus/dbus-connection.c: port to no ObjectID, create a
9377         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9378
9379         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9380         everything except UnregisterFunction and MessageFunction
9381         
9382         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9383         add DBUS_TYPE_OBJECT_PATH
9384         
9385         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9386         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9387         path-based object IDs
9388
9389 2003-08-25  Havoc Pennington  <hp@pobox.com>
9390
9391         Just noticed that dbus_message_test is hosed, I wonder when I
9392         broke that. I thought make check was passing earlier...
9393         
9394         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9395         container tree, will replace most of dbus-object-registry
9396
9397         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9398         screwup
9399
9400 2003-08-19  Havoc Pennington  <hp@pobox.com>
9401
9402         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9403         (dbus_message_is_error): fix this function
9404
9405         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9406         match
9407
9408         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9409         reflect clarified man page
9410         (bus_client_policy_check_can_send): ditto
9411         
9412         * bus/session.conf.in: fixup
9413
9414         * bus/system.conf.in: fixup
9415
9416 2003-08-18  Havoc Pennington  <hp@redhat.com>
9417
9418         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9419
9420         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9421         dumb bug created earlier (wrong order of args to
9422         decode_header_data())
9423         
9424         * tools/dbus-send.c: port
9425
9426         * tools/dbus-print-message.c (print_message): port
9427
9428         * test/data/*messages: port all messages over
9429         
9430         * dbus/dbus-message-builder.c: support including 
9431         message type
9432         
9433         * bus/driver.c: port over
9434         
9435         * bus/dispatch.c: port over to new stuff
9436
9437         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9438         rename disconnect signal to "Disconnected"
9439
9440 2003-08-17  Havoc Pennington  <hp@pobox.com>
9441
9442         This doesn't compile yet, but syncing up so I can hack on it from
9443         work. What are branches for if not broken code? ;-)
9444         
9445         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9446         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9447         DBUS_HEADER_FIELD_ERROR_NAME
9448         
9449         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9450         for the interface+member pairs
9451         (string_hash): change to use g_str_hash algorithm
9452         (find_direct_function, find_string_function): refactor these to
9453         share most code.
9454         
9455         * dbus/dbus-message.c: port all of this over to support 
9456         interface/member fields instead of name field
9457
9458         * dbus/dbus-object-registry.c: port over
9459         
9460         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9461         from _dbus_string_validate_name
9462
9463         * bus/dbus-daemon-1.1: change file format for the 
9464         <deny>/<allow> stuff to match new message naming scheme
9465
9466         * bus/policy.c: port over
9467
9468         * bus/config-parser.c: parse new format
9469         
9470 2003-08-16  Havoc Pennington  <hp@pobox.com>
9471
9472         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9473         broken assertion
9474
9475         * glib/dbus-gproxy.c: some hacking
9476
9477 2003-08-15  Havoc Pennington  <hp@redhat.com>
9478
9479         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9480
9481         * dbus/dbus-connection.c
9482         (dbus_connection_send_with_reply_and_block): factor out internals;
9483         change to convert any error replies to DBusError instead of 
9484         returning them as a message
9485
9486 2003-08-15  Havoc Pennington  <hp@pobox.com>
9487
9488         * dbus/dbus-connection.c, 
9489         dbus/dbus-pending-call.c: Finish the pending call stuff
9490
9491 2003-08-14  Havoc Pennington  <hp@redhat.com>
9492
9493         * dbus/dbus-pending-call.c: start on new object that will replace
9494         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9495         replies
9496
9497         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9498         with remote interfaces
9499
9500         * dbus/dbus-gidl.c: do the boring boilerplate in here
9501         
9502 2003-08-12  Havoc Pennington  <hp@pobox.com>
9503
9504         * bus/dispatch.c (bus_dispatch): make this return proper 
9505         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9506
9507         * dbus/dbus-errors.c (dbus_set_error): use
9508         _dbus_string_append_printf_valist
9509
9510         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9511         (_dbus_string_append_printf): new
9512
9513         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9514         UNKNOWN_METHOD
9515
9516         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9517         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9518         message is unhandled.
9519
9520 2003-08-11  Havoc Pennington  <hp@pobox.com>
9521
9522         * bus/test.c (client_disconnect_handler): change to return
9523         HANDLED (would have been REMOVE_MESSAGE)
9524
9525         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9526         HANDLED/NOT_YET_HANDLED instead of
9527         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9528         should be used.
9529
9530 2003-08-10  Havoc Pennington  <hp@pobox.com>
9531
9532         * tools/dbus-send.c (main): add --type argument, for now
9533         supporting only method_call and signal types.
9534
9535         * tools/dbus-print-message.c: print message type
9536
9537         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9538         init connection->objects
9539
9540         * doc/dbus-specification.sgml: fix sgml
9541
9542         * bus/*.c: port over to object-instance API changes
9543
9544         * test/test-service.c: ditto
9545         
9546         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9547         name, we will have to fix up the rest of the code to also handle
9548         this
9549         (dbus_message_new): generic message-creation call
9550         (set_string_field): allow appending name field
9551
9552 2003-08-06  Havoc Pennington  <hp@pobox.com>
9553
9554         * dbus/dbus-object-registry.c: implement signal connection 
9555         and dispatch
9556
9557         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9558
9559         * dbus/dbus-internals.c (_dbus_memdup): new function
9560
9561 2003-08-02  Havoc Pennington  <hp@pobox.com>
9562
9563         * dbus/dbus-message.c (dbus_message_get_no_reply)
9564         (dbus_message_set_no_reply): add these and remove
9565         set_is_error/get_is_error
9566
9567         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9568         remove the ERROR flag, since there's now an ERROR type
9569
9570 2003-08-01  Havoc Pennington  <hp@pobox.com>
9571
9572         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9573         implement
9574
9575         * dbus/dbus-message.c (dbus_message_get_type): new function
9576
9577         * doc/dbus-specification.sgml: add "type" byte to messages
9578
9579 2003-08-01  Havoc Pennington  <hp@pobox.com>
9580
9581         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9582         a message type enum to distinguish kinds of message
9583         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9584         that need not be replied to
9585
9586 2003-08-01  Havoc Pennington  <hp@pobox.com>
9587
9588         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9589         (unpack_8_octets): fix no-64-bit-int bug
9590
9591         * dbus/dbus-object-registry.c (validate_id): validate the 
9592         connection ID bits, not just the instance ID.
9593
9594         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9595         the connection-global 33 bits of the object ID
9596
9597         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9598         object ID in the new way
9599
9600         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9601         define server/client/instance bits.
9602
9603 2003-07-30  Havoc Pennington  <hp@pobox.com>
9604
9605         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9606         build
9607
9608 2003-07-13  Havoc Pennington  <hp@pobox.com>
9609
9610         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9611         fields to DBusObjectVTable and DBusObjectInfo
9612
9613 2003-07-12  Havoc Pennington  <hp@pobox.com>
9614
9615         * dbus/dbus-object-registry.c: implement unit test,
9616         fix bugs discovered in process
9617
9618         * dbus/dbus-connection.c: remove handler_table and
9619         register_handler(), add DBusObjectRegistry usage
9620
9621         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9622         (dbus_object_id_set_null): new functions
9623
9624 2003-07-08  Havoc Pennington  <hp@pobox.com>
9625
9626         * dbus/dbus-object.c: implement some of this
9627
9628         * dbus/dbus-object-registry.c
9629         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9630         param
9631         (_dbus_object_registry_new): handle OOM
9632
9633 2003-07-08  Havoc Pennington  <hp@pobox.com>
9634
9635         * dbus/dbus-object.h: sketch out an API for registering objects
9636         with a connection, that allows us to use as little as 24 bytes
9637         per object and lets application code represent an object in 
9638         any conceivable way.
9639
9640         * dbus/dbus-object-registry.c: implement the hard bits of the
9641         DBusConnection aspect of object API. Not yet wired up.
9642         
9643 2003-07-06  Havoc Pennington  <hp@pobox.com>
9644
9645         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9646         (_dbus_marshal_object_id): new
9647         (_dbus_demarshal_object_id): new
9648         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9649         consolidate identical switch cases. Don't conditionalize handling
9650         of DBUS_TYPE_UINT64, need to handle the type always.
9651         (_dbus_marshal_validate_arg): consolidate identical cases, and
9652         handle DBUS_TYPE_OBJECT_ID
9653
9654         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9655
9656         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9657
9658 2003-09-28  Havoc Pennington  <hp@pobox.com>
9659
9660         * real 0.13 release
9661
9662 2003-09-28  Havoc Pennington  <hp@pobox.com>
9663
9664         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9665         to work with Debian db2html
9666
9667 2003-09-28  Havoc Pennington  <hp@pobox.com>
9668
9669         * configure.in: 0.13
9670
9671         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9672         stylesheet-images for benefit of Debian
9673         
9674         Change back to using filesystem-linked sockets for the system
9675         bus, so only root can create the default system bus address.
9676         
9677         * bus/system.conf.in: change to use
9678         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9679
9680         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9681         from here.
9682
9683         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9684         here, and AC_DEFINE DBUS_SYSTEM_PATH
9685
9686 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9687
9688         * doc/TODO:
9689         * doc/busconfig.dtd:
9690         Add busconfig DTD.
9691         
9692 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9693
9694         * doc/dbus-specification.sgml:
9695         Add activation reply values.
9696         
9697 2003-08-05  Havoc Pennington  <hp@redhat.com>
9698
9699         * configure.in: 0.12
9700
9701 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9702
9703         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9704         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9705         (add_watch), (remove_watch), (create_source):
9706         Refcount fds, fixes some reentrancy issues.
9707         
9708 2003-07-30  Havoc Pennington  <hp@redhat.com>
9709
9710         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9711         bus address to be abstract if we have abstract sockets
9712
9713         * NEWS: update
9714
9715 2003-07-28  Havoc Pennington  <hp@redhat.com>
9716
9717         * bus/messagebus.in: fix to avoid processname/servicename 
9718         confusion, from Michael Kearey
9719         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9720         
9721 2003-07-23  Havoc Pennington  <hp@pobox.com>
9722
9723         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9724         fix from Andy Hanton to remove broken "+1"
9725
9726 2003-07-16  Havoc Pennington  <hp@pobox.com>
9727
9728         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9729         babysitter process, as suggested by Thomas Leonard, so 
9730         an "eval `dbus-launch --exit-with-session`" will actually 
9731         return
9732
9733 2003-07-16  Havoc Pennington  <hp@pobox.com>
9734
9735         * configure.in: print out EXPANDED_* variables in the summary at
9736         the end; clean up the code that computes EXPANDED_ variables and
9737         get the ones using exec_prefix right. Should make things work
9738         when you build without --prefix
9739
9740 2003-06-29  Havoc Pennington  <hp@pobox.com>
9741
9742         * mono/Test.cs (class Test): fire up a main loop and run it
9743
9744         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9745         done once, the app has to do it
9746
9747 2003-06-26  Havoc Pennington  <hp@pobox.com>
9748
9749         * mono/Connection.cs: set up connection with the glib main loop
9750
9751 2003-07-01  Havoc Pennington  <hp@redhat.com>
9752
9753         * doc/dbus-specification.sgml: clarify the format of a type code,
9754         change suggested by Jim Blandy
9755
9756 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9757
9758         * doc/Makefile.am:
9759         * tools/Makefile.am: Don't assume srcdir == builddir.
9760
9761         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9762         the allocated block.
9763         (_dbus_memory_test): New function.
9764         * dbus/dbus-test.h: Add _dbus_memory_test ().
9765         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9766
9767         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9768         of %c%c%c%c.
9769         (dbus_message_new): Remove obsolete @todo.
9770
9771         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9772         (_dbus_marshal_set_uint64): Fix comment.
9773
9774         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9775         hardcode FIELD_REPLY_SERIAL.
9776
9777         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9778         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9779
9780         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9781         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9782
9783 2003-06-24  Havoc Pennington  <hp@pobox.com>
9784
9785         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9786
9787 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9788
9789         * configure.in:
9790         * gcj/.cvsignore:
9791         * gcj/Hello.java:
9792         * gcj/Makefile.am:
9793         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9794         * gcj/org/.cvsignore:
9795         * gcj/org/Makefile.am:
9796         * gcj/org/freedesktop/.cvsignore:
9797         * gcj/org/freedesktop/Makefile.am:
9798         * gcj/org/freedesktop/dbus/.cvsignore:
9799         * gcj/org/freedesktop/dbus/Makefile.am:
9800         * gcj/org/freedesktop/dbus/Message.java: (Message),
9801         (Message.Message):
9802         * gcj/org/freedesktop/dbus/natMessage.cc:
9803         Fix the build system.
9804
9805 2003-06-22  Havoc Pennington  <hp@pobox.com>
9806
9807         * mono/Connection.cs: add more bindings
9808
9809         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9810         more than once.
9811
9812 2003-06-22  Havoc Pennington  <hp@pobox.com>
9813
9814         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9815         Start wrapping more stuff.
9816
9817 2003-06-22  Havoc Pennington  <hp@pobox.com>
9818
9819         * mono/Message.cs: implement Message.Wrap() that ensures we only
9820         have a single C# wrapper per DBusMessage, assuming it works which
9821         it probably doesn't.
9822
9823         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9824         (dbus_message_free_data_slot): new
9825         (dbus_message_set_data): new
9826         (dbus_message_get_data): new
9827
9828 2003-06-22  Havoc Pennington  <hp@pobox.com>
9829
9830         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9831         (_dbus_data_slot_allocator_alloc): rework these to keep a
9832         reference count on each slot and automatically manage a global
9833         slot ID variable passed in by address
9834
9835         * bus/bus.c: convert to new dataslot API
9836
9837         * dbus/dbus-bus.c: convert to new dataslot API
9838
9839         * dbus/dbus-connection.c: convert to new dataslot API
9840
9841         * dbus/dbus-server.c: convert to new dataslot API
9842
9843         * glib/dbus-gmain.c: ditto
9844
9845         * bus/test.c: ditto
9846
9847         * bus/connection.c: ditto
9848
9849 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9850
9851         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9852         after the gcj checks so that the correct configuration tags
9853         will be added to libtool.
9854
9855         * dbus-glib-1.pc.in: No need to specify any includes since
9856         dbus-1.pc.in has those.
9857
9858 2003-06-22  Havoc Pennington  <hp@pobox.com>
9859
9860         * mono/*, gcj/*, configure.in, Makefile.am:
9861         Check in makefiles and subdirs for mono and gcj bindings.
9862         Neither binding actually exists, just trying to get through
9863         all the build and other boring bits.
9864
9865 2003-06-21  Philip Blundell  <philb@gnu.org>
9866
9867         * tools/dbus-monitor.1: Updated.
9868
9869         * tools/dbus-send.1: Likewise.
9870
9871 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9872
9873         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9874         for hangup and error after checking read so we won't discard
9875         pending data if both hangup and read are set.
9876
9877 2003-06-19  Philip Blundell  <philb@gnu.org>
9878
9879         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9880
9881         * tools/dbus-send.c: Accept both --system and --session.
9882
9883         * tools/dbus-monitor.c: Same here.
9884
9885 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9886
9887         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9888         from C++ (Patch by Miloslav Trmac).
9889
9890 2003-06-15  Joe Shaw  <joe@assbarn.com>
9891
9892         * configure.in: Check for socklen_t.
9893
9894         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9895
9896         * test/test-segfault.c: Add #include <sys/time.h>
9897
9898         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9899         dbus-launch needs it.
9900
9901 2003-06-09  Havoc Pennington  <hp@redhat.com>
9902
9903         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9904         SUN_LEN, it breaks abstract socket usage
9905
9906         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9907         starts of lines.
9908
9909 2003-06-04  Havoc Pennington  <hp@pobox.com>
9910
9911         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9912         using unix:abstract=/foo, and when listening in a tmpdir
9913         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9914
9915         * dbus/dbus-transport.c (_dbus_transport_open): support
9916         unix:abstract=/foo
9917
9918         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9919         support abstract sockets
9920
9921         * dbus/dbus-transport-unix.c
9922         (_dbus_transport_new_for_domain_socket): support abstract sockets
9923
9924         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9925         toggle as an argument, implement abstract namespace support
9926         (_dbus_listen_unix_socket): ditto
9927
9928         * configure.in: add --enable-abstract-sockets and implement
9929         a configure check for autodetection of the right value.
9930
9931 2003-06-01  Havoc Pennington  <hp@pobox.com>
9932
9933         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9934         in /tmp (though on Linux this will end up being useless,
9935         when we add abstract namespace support)
9936
9937         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9938         subst'ing it
9939
9940 2003-05-28  Colin Walters  <walters@verbum.org>
9941
9942         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9943
9944 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9945
9946         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9947
9948 2003-05-17  Colin Walters  <walters@gnu.org>
9949
9950         * tools/dbus-send.c: Don't exit with an error code if --help was
9951         passed.  Default to using the session bus instead of the system
9952         one.
9953
9954         * tools/dbus-launch.c: Ditto.
9955
9956         * tools/dbus-monitor.c: Ditto.
9957
9958         * tools/dbus-send.1: Update with new arguments.
9959
9960         * tools/dbus-launch.c: Emit code to export variables.  New
9961         arguments -s and -c to specify shell syntax, and a bit of code to
9962         autodetect syntax.  Also, allow specifying a program to run.
9963
9964         * tools/dbus-launch.1: Update with new arguments.
9965
9966         * tools/dbus-send.1: Ditto.
9967
9968         * tools/dbus-monitor.1: Ditto.
9969
9970 2003-05-17  Havoc Pennington  <hp@pobox.com>
9971
9972         * bus/config-parser.c (merge_included): merge in policies from
9973         child configuration file.
9974
9975         * bus/policy.c (bus_policy_merge): function to merge two policies
9976         together
9977
9978 2003-05-16  Havoc Pennington  <hp@redhat.com>
9979
9980         * dbus/dbus-connection.c: disable verbose lock spew
9981
9982         * tools/dbus-send.c: add --print-reply command line option
9983
9984         * tools/dbus-print-message.h (print_message): new util function
9985         shared by dbus-send and dbus-monitor
9986
9987         * tools/dbus-monitor.c (handler_func): exit on disconnect
9988
9989         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9990         disconnected, don't try to use the read_watch
9991
9992         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9993         so we can find this bug more easily
9994
9995 2003-05-16  Havoc Pennington  <hp@redhat.com>
9996
9997         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9998         NULL as DBusHashTable is annoyingly likely to do.
9999
10000 2003-05-16  Colin Walters  <walters@verbum.org>
10001
10002         * tools/dbus-monitor.c: Add --session argument and usage()
10003         function.
10004
10005         * tools/dbus-monitor.1: Update with new --session arg.
10006
10007         * bus/Makefile.am (install-data-hook): Create
10008         $(libdir)/dbus-1.0/services so that the session bus is happy.
10009
10010 2003-05-15  Havoc Pennington  <hp@redhat.com>
10011
10012         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10013         on non-x86. ifdef's are evil.
10014
10015 2003-05-15  Havoc Pennington  <hp@redhat.com>
10016
10017         * configure.in: 0.11
10018
10019         * NEWS: update
10020
10021         * bus/Makefile.am (initddir): apparently we are supposed to put
10022         init scripts in /etc/rc.d/init.d not /etc/init.d
10023
10024         * bus/Makefile.am: remove the "you must --enable-tests to make
10025         check" as it broke distcheck
10026
10027         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10028
10029 2003-05-13  James Willcox  <jwillcox@gnome.org>
10030
10031         * configure.in:
10032         * bus/activation.c: (bus_activation_service_created),
10033         (bus_activation_activate_service):
10034         * bus/driver.c: (bus_driver_send_service_deleted),
10035         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10036         (bus_driver_send_service_acquired),
10037         (bus_driver_send_welcome_message),
10038         (bus_driver_handle_list_services):
10039         * bus/session.conf.in:
10040         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10041         (dbus_bus_service_exists), (dbus_bus_activate_service):
10042         * dbus/dbus-bus.h:
10043
10044         Add some convenience API which lets you activate a service, and did a
10045         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10046         and dbus_message_get_args()
10047
10048 2003-05-11  Havoc Pennington  <hp@pobox.com>
10049
10050         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10051         calling _dbus_marshal_validate_arg() for every byte in a byte
10052         array, etc.
10053
10054         * dbus/dbus-message-handler.c: use atomic reference counting to
10055         reduce number of locks slightly; the global lock in here sucks
10056
10057         * dbus/dbus-connection.c
10058         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10059         update_dispatch_status that can be called with lock held; then use
10060         in a couple places to reduce locking/unlocking
10061         (dbus_connection_send): hold the lock over the whole function
10062         instead of acquiring it twice.
10063
10064         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10065
10066         * bus/connection.c (bus_connections_setup_connection): fix access
10067         to already-freed memory.
10068
10069         * dbus/dbus-connection.c: keep a little cache of linked list
10070         nodes, to avoid using the global linked list alloc lock in the
10071         normal send-message case. Instead we just use the connection lock
10072         that we already have to take.
10073
10074         * dbus/dbus-list.c (_dbus_list_find_last): new function
10075
10076         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10077         change to use a struct for the atomic type; fix docs,
10078         they return value before increment, not after increment.
10079
10080         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10081         (_dbus_string_append_8_aligned): new functions to try to
10082         microoptimize this operation.
10083         (reallocate_for_length): break this out of set_length(), to
10084         improve profile info, and also so we can consider inlining the
10085         set_length() part.
10086
10087         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10088         strings with some preallocation, cuts down on our calls to realloc
10089         a fair bit. Though if we can get the "move entire string to empty
10090         string" optimization below to kick in here, it would be better.
10091
10092         * dbus/dbus-string.c (_dbus_string_move): just call
10093         _dbus_string_move_len
10094         (_dbus_string_move_len): add a special case for moving
10095         an entire string into an empty string; we can just
10096         swap the string data instead of doing any reallocs.
10097         (_dbus_string_init_preallocated): new function
10098
10099 2003-05-11  Havoc Pennington  <hp@pobox.com>
10100
10101         Write a "test-profile" that does echo client-server with threads;
10102         profile reveals lock contention, memcpy/realloc of buffers, and
10103         UTF-8 validation as hot spots. 20% of lock contention eliminated
10104         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10105         contention is global mempool locks for GList and DBusList.
10106
10107         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10108         x86 implementation
10109
10110         * dbus/dbus-connection.c (struct DBusConnection): use
10111         dbus_atomic_t for the reference count
10112
10113         * dbus/dbus-message.c (struct DBusMessage): declare
10114         dbus_atomic_t values as volatile
10115
10116         * configure.in: code to detect ability to use atomic integer
10117         operations in assembly, from GLib patch
10118
10119         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10120         time, tired of it being wrong in threads and forked processes
10121
10122         * glib/test-profile.c: a little program to bounce messages back
10123         and forth between threads and eat CPU
10124
10125         * dbus/dbus-connection.c: add debug spew macros for debugging
10126         thread locks; include config.h at top; fix deadlock in
10127         dbus_connection_flush()
10128
10129 2003-05-08  Havoc Pennington  <hp@pobox.com>
10130
10131         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10132         data from getting written, and there wasn't a good reason to
10133         use _exit really.
10134
10135         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10136         dbus_verbose lines in test coverage
10137         (main): add list of functions sorted by # of untested blocks
10138         to the coverage report
10139
10140         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10141
10142         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10143
10144         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10145         extend test coverage
10146
10147         * test/data/auth/cancel.auth-script: test canceling an
10148         authentication
10149
10150         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10151         aren't used. in CVS history if we end up needing them.
10152
10153 2003-05-04  Havoc Pennington  <hp@pobox.com>
10154
10155         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10156         unit test
10157
10158         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10159         function, which assumed length was in # of strings, not bytes
10160
10161         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10162         missing coverage
10163
10164         * dbus/dbus-connection.c
10165         (_dbus_connection_queue_received_message): disable function for
10166         now, we are only using it in test mode
10167
10168         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10169         remove a mistaken FIXME
10170
10171 2003-05-04  Havoc Pennington  <hp@pobox.com>
10172
10173         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10174         unlock mutex on successful return, patch from Anders Gustafsson
10175
10176 2003-05-04  Havoc Pennington  <hp@pobox.com>
10177
10178         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10179         Anders Gustafsson
10180
10181 2003-05-04  Havoc Pennington  <hp@pobox.com>
10182
10183         * tools/dbus-launch.c: implement
10184
10185         * bus/main.c (main), bus/bus.c (bus_context_new):
10186         implement --print-pid and --fork
10187
10188 2003-05-03  Havoc Pennington  <hp@redhat.com>
10189
10190         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10191         the address had no value, and add to test suite. Fix and
10192         regression test from Miloslav Trmac
10193
10194 2003-05-03  Havoc Pennington  <hp@pobox.com>
10195
10196         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10197         watch is invalid when handled
10198
10199         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10200         dbus-launch utility to launch the bus from a shell script.  Didn't
10201         actually implement dbus-launch yet, it's just a placeholder still.
10202
10203 2003-05-03  Havoc Pennington  <hp@pobox.com>
10204
10205         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10206         daemon; also documents daemon config file, so replaces
10207         doc/config-file.txt. Corrected some stuff from config-file.txt in
10208         the process of moving it.
10209
10210 2003-05-03  Havoc Pennington  <hp@pobox.com>
10211
10212         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10213         add some man pages
10214
10215 2003-05-03  Colin Walters  <walters@verbum.org>
10216
10217         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10218         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10219
10220         * Makefile.am: Update to use new .pc versioning scheme.
10221
10222 2003-05-02  Havoc Pennington  <hp@redhat.com>
10223
10224         * bus/system.conf.in: allow send/receive to/from message bus
10225         service
10226
10227 2003-04-30  Havoc Pennington  <hp@redhat.com>
10228
10229         * configure.in: print a note when building with unit tests and
10230         without assertions
10231
10232 2003-04-30  Havoc Pennington  <hp@redhat.com>
10233
10234         * Makefile.am: add a check-local that complains if you didn't
10235         configure with --enable-tests
10236
10237 2003-04-29  Havoc Pennington  <hp@redhat.com>
10238
10239         * glib/dbus-gmain.c: docs cleanups
10240
10241         * dbus/dbus-types.h: add docs on int64 types
10242
10243         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10244         public API docs section
10245
10246 2003-04-29  Havoc Pennington  <hp@redhat.com>
10247
10248         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10249         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10250         parallel install API version, not with the D-BUS package version.
10251
10252         * HACKING: move some of README over here
10253
10254         * README: updates, and document API/ABI policy
10255
10256         * configure.in: reindentation
10257
10258 2003-04-29  Havoc Pennington  <hp@redhat.com>
10259
10260         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10261         to use this library" to be sure people have the right
10262         expectations.
10263
10264 2003-04-28  Havoc Pennington  <hp@redhat.com>
10265
10266         * configure.in: add --enable-docs which by default is auto yes if
10267         doxygen and db2html found, no otherwise; but can be forced on/off
10268
10269         * doc/Makefile.am: conditionalize whether to build docs on
10270         --enable-docs
10271
10272 2003-04-28  Havoc Pennington  <hp@redhat.com>
10273
10274         * configure.in: 0.10
10275
10276         * NEWS: update
10277
10278         * bus/system.conf.in: add <includedir>system.d</includedir>
10279
10280         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10281         username was provided but not uid
10282
10283         * bus/config-parser.c (struct BusConfigParser): keep track of
10284         whether the parser is toplevel or was included; change some
10285         of the error handling if it's included.
10286
10287 2003-04-27  Havoc Pennington  <hp@pobox.com>
10288
10289         Unbreak my code...
10290
10291         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10292         report correct status if we finish processing authentication
10293         inside this function.
10294
10295         * bus/activation.c (try_send_activation_failure): use
10296         bus_transaction_send_error_reply
10297
10298         * bus/connection.c (bus_connection_get_groups): return an error
10299         explaining the problem
10300
10301         * bus/bus.c (bus_context_check_security_policy): implement
10302         restriction here that inactive connections can only send the
10303         hello message. Also, allow bus driver to send anything to
10304         any recipient.
10305
10306         * bus/connection.c (bus_connection_complete): create the
10307         BusClientPolicy here instead of on-demand.
10308         (bus_connection_get_policy): don't return an error
10309
10310         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10311         sender field in message being replied to
10312
10313         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10314         causing it to return FALSE always
10315
10316         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10317         we checked sender rather than destination
10318
10319 2003-04-25  Havoc Pennington  <hp@redhat.com>
10320
10321         test suite is slightly hosed at the moment, will fix soon
10322
10323         * bus/connection.c (bus_connections_expire_incomplete): fix to
10324         properly disable the timeout when required
10325         (bus_connection_set_name): check whether we can remove incomplete
10326         connections timeout after we complete each connection.
10327
10328         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10329         probably still broken.
10330
10331         * bus/services.c (bus_registry_acquire_service): implement max
10332         number of services owned, and honor allow/deny rules on which
10333         services a connection can own.
10334
10335         * bus/connection.c (bus_connection_get_policy): report errors here
10336
10337         * bus/activation.c: implement limit on number of pending
10338         activations
10339
10340 2003-04-25  Havoc Pennington  <hp@redhat.com>
10341
10342         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10343         where we used >= 0 instead of != DBUS_UID_UNSET.
10344
10345 2003-04-25  Havoc Pennington  <hp@redhat.com>
10346
10347         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10348         were toggled without add/remove, fix from Anders Gustafsson
10349
10350 2003-04-24  Havoc Pennington  <hp@redhat.com>
10351
10352         * test/data/valid-config-files/basic.conf: add <limit> tags to
10353         this test
10354
10355         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10356         <limit> tag in configuration file.
10357
10358 2003-04-24  Havoc Pennington  <hp@redhat.com>
10359
10360         * bus/dispatch.c: somehow missed some name_is
10361
10362         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10363         (_dbus_timeout_set_interval): new
10364
10365         * bus/connection.c (bus_connections_setup_connection): record time
10366         when each connection is first set up, and expire them after the
10367         auth timeout passes.
10368
10369 2003-04-24  Havoc Pennington  <hp@redhat.com>
10370
10371         * dbus/dbus-message.c (dbus_message_name_is): rename
10372         (dbus_message_service_is): rename
10373         (dbus_message_sender_is): rename
10374         (dbus_message_get_service): rename
10375
10376 2003-04-24  Havoc Pennington  <hp@redhat.com>
10377
10378         * configure.in: add --enable-checks
10379
10380         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10381
10382         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10383         to use thread locks.
10384         (_dbus_connection_handler_destroyed_locked): move some private
10385         functions into proper docs group
10386
10387         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10388         _dbus_return_val_if_fail
10389
10390         Throughout: use dbus_return_if_fail
10391
10392 2003-04-23  James Willcox  <jwillcox@gnome.org>
10393
10394         * glib/dbus-glib.h:
10395         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10396         (dbus_connection_setup_with_g_main),
10397         (dbus_server_setup_with_g_main):
10398         * glib/test-dbus-glib.c: (main):
10399         * glib/test-thread-client.c: (main):
10400         * glib/test-thread-server.c: (new_connection_callback), (main):
10401         * tools/dbus-monitor.c: (main):
10402
10403         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10404         and dbus_server_setup_with_g_main().
10405
10406 2003-04-20  Havoc Pennington  <hp@pobox.com>
10407
10408         * doc/dbus-specification.sgml: document the restrictions on
10409         message and service names
10410
10411 2003-04-22  Havoc Pennington  <hp@redhat.com>
10412
10413         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10414         support, and do some code cleanups to share more code and
10415         speed up array marshal/demarshal.
10416
10417         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10418
10419         * configure.in: generate dbus-arch-deps.h
10420
10421         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10422         64-bit typecodes
10423
10424 2003-04-22  Havoc Pennington  <hp@redhat.com>
10425
10426         * test/data/valid-messages/opposite-endian.message: fix test
10427         to use proper type for rply field
10428
10429         * test/data/invalid-messages: add tests for below validation
10430
10431         * dbus/dbus-message.c (decode_header_data): validate field types,
10432         and validate that named fields are valid names
10433         (decode_name_field): consider messages in the
10434         org.freedesktop.Local. namespace to be invalid.
10435
10436         * dbus/dbus-string.c (_dbus_string_validate_name): new
10437
10438 2003-04-19  Havoc Pennington  <hp@pobox.com>
10439
10440         * bus/driver.c (bus_driver_handle_hello): check limits and
10441         return an error if they are exceeded.
10442
10443         * bus/connection.c: maintain separate lists of active and inactive
10444         connections, and a count of each. Maintain count of completed
10445         connections per user. Implement code to check connection limits.
10446
10447         * dbus/dbus-list.c (_dbus_list_unlink): export
10448
10449         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10450         number of bytes in the message queue for a connection
10451
10452 2003-04-18  Havoc Pennington  <hp@pobox.com>
10453
10454         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10455
10456         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10457         memleaks
10458
10459         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10460         on realloc be sure to update the pointer in the keyring
10461
10462         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10463         offset to avoid writing to unallocated memory
10464
10465         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10466         try the next mechanism, so we properly handle OOM
10467
10468         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10469         on OOM.
10470         (_dbus_keyring_new): fix OOM bug
10471         (_dbus_keyring_new_homedir): always set error; impose a maximum
10472         number of keys we'll load from the file, mostly to speed up the
10473         test suite and make its OOM checks more useful, but also for
10474         general sanity.
10475
10476         * dbus/dbus-auth.c (process_error_server): reject authentication
10477         if we get an error from the client
10478         (process_cancel): on cancel, send REJECTED, per the spec
10479         (process_error_client): send CANCEL if we get an error from the
10480         server.
10481
10482 2003-04-18  Havoc Pennington  <hp@pobox.com>
10483
10484         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10485         debug spew
10486
10487         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10488         handling problem
10489
10490         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10491         about DBUS_TEST_HOMEDIR once
10492
10493         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10494         the environment
10495
10496         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10497         config file so we test the right thing
10498
10499         Throughout: assorted docs improvements
10500
10501 2003-04-18  Havoc Pennington  <hp@pobox.com>
10502
10503         * glib/dbus-gmain.c: adapt to watch changes
10504
10505         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10506
10507         * dbus/dbus-server.h: remove dbus_server_handle_watch
10508
10509         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10510
10511         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10512         like DBusTimeout, so we don't need dbus_connection_handle_watch
10513         etc.
10514
10515 2003-04-17  Havoc Pennington  <hp@redhat.com>
10516
10517         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10518         database usage so it all goes via the DBusUserDatabase cache.
10519
10520 2003-04-17  Havoc Pennington  <hp@redhat.com>
10521
10522         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10523         there was an OOM watch we skipped, we always return TRUE so we
10524         iterate again to have a look at it again. Fixes test suite hang.
10525         Code rearrangement also lets us lose some memset and only iterate
10526         over callbacks once.
10527
10528         * bus/driver.c (bus_driver_handle_message): sense of test for
10529         reply was backward
10530
10531 2003-04-16  Havoc Pennington  <hp@pobox.com>
10532
10533         * doc/dbus-specification.sgml: make spec say serials are unsigned
10534
10535         * dbus/dbus-message.h: change message serials to unsigned
10536
10537         * dbus/dbus-connection.c: adapt to message serials being unsigned
10538
10539 2003-04-15  Havoc Pennington  <hp@pobox.com>
10540
10541         * bus/bus.c: create and keep around a shared DBusUserDatabase
10542         object.
10543
10544         * bus/connection.c (bus_connection_get_groups): don't cache
10545         groups for user in the connection object, since user database
10546         object now does that.
10547
10548 2003-04-16  Havoc Pennington  <hp@redhat.com>
10549
10550         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10551         list of size counters
10552         (_dbus_message_loader_putback_message_link): put back a popped link
10553
10554         * dbus/dbus-connection.c
10555         (dbus_connection_set_max_live_messages_size): rename
10556         max_received_size
10557         (dbus_connection_get_outgoing_size): get size of outgoing
10558         queue
10559         (_dbus_connection_set_connection_counter): remove this cruft
10560
10561 2003-04-14  Havoc Pennington  <hp@redhat.com>
10562
10563         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10564         caching, but at some point we might want to be able to use a
10565         different database.
10566
10567         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10568         SHA1 conf file to test the sha1 auth mechanism, since the regular
10569         test always uses EXTERNAL when available.
10570
10571         * configure.in,
10572         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10573         add conf file that requires use of sha1 auth
10574
10575 2003-04-13  Havoc Pennington  <hp@pobox.com>
10576
10577         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10578         from Philip Blundell to send messages and monitor them.
10579
10580 2003-04-13  Havoc Pennington  <hp@pobox.com>
10581
10582         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10583         callbacks
10584
10585         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10586         users
10587
10588         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10589         fix to only recover unused bytes if we're already authenticated
10590         (_dbus_transport_get_is_authenticated): fix to still mark us
10591         authenticated if there are unused bytes.
10592
10593         * bus/dispatch.c: implement security policy checking
10594
10595         * bus/connection.c (bus_transaction_send_from_driver): new
10596
10597         * bus/bus.c (bus_context_check_security_policy): new
10598
10599         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10600         now we just set the DBusError and it gets converted to an error
10601         reply.
10602
10603         * bus/connection.c (allow_user_function): enable code using actual
10604         data from the config file
10605
10606         * bus/policy.c (list_allows_user): handle wildcard rules for
10607         user/group connection perms
10608
10609 2003-04-13  Havoc Pennington  <hp@pobox.com>
10610
10611         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10612
10613         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10614
10615         * bus/policy.c (bus_policy_append_mandatory_rule)
10616         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10617         (bus_policy_append_group_rule): new functions
10618
10619 2003-04-12  Havoc Pennington  <hp@pobox.com>
10620
10621         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10622
10623         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10624         the pid/gid/uid, just for paranoia.
10625
10626         * test/break-loader.c (randomly_do_n_things): find a byte
10627         containing a type code, and randomly change it to a different
10628         type code.
10629
10630 2003-04-12  Havoc Pennington  <hp@pobox.com>
10631
10632         * bus/policy.h: change BusPolicy to be the thing from the config
10633         file, and rename old BusPolicy to BusClientPolicy
10634
10635         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10636         match change in how policy works
10637
10638         * dbus/dbus-internals.h: mark assert_not_reached as
10639         __attribute((noreturn))__
10640
10641 2003-04-11  Havoc Pennington  <hp@redhat.com>
10642
10643         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10644         the broadcast service. Use boolean return for ServiceExists.
10645
10646 2003-04-11  Havoc Pennington  <hp@redhat.com>
10647
10648         * configure.in: add another directory to look for qt in.
10649
10650 2003-04-11  Havoc Pennington  <hp@redhat.com>
10651
10652         * AUTHORS: add Colin Walters
10653
10654 2003-04-11  Havoc Pennington  <hp@redhat.com>
10655
10656         * NEWS: update
10657
10658         * configure.in: 0.9
10659
10660 2003-04-11  Havoc Pennington  <hp@redhat.com>
10661
10662         * bus/messagebus.in: remove pid file when stopping the
10663         message bus, since the bus won't have privileges to remove it
10664         itself.
10665
10666 2003-04-11  Havoc Pennington  <hp@redhat.com>
10667
10668         * bus/bus.c (bus_context_new): move credentials change after
10669         creating pidfile
10670
10671 2003-04-11  Havoc Pennington  <hp@pobox.com>
10672
10673         * test/decode-gcov.c: add "below average functions" to the
10674         coverage report, and change how some of the code works.
10675
10676         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10677         not in the coverage stats.
10678
10679         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10680         couple places so running the test suite doesn't result in megaspam.
10681
10682 2003-04-11  Havoc Pennington  <hp@pobox.com>
10683
10684         * bus/dispatch.c (check_existent_service_activation): accept a no
10685         memory error in a place we didn't before
10686
10687         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10688         in case the first one failed," since the test suite is less
10689         broken now.
10690
10691 2003-04-10  Havoc Pennington  <hp@pobox.com>
10692
10693         * bus/dispatch.c (check_segfault_service_activation): add test
10694         for launching an executable that just crashes.
10695
10696         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10697         don't leave a million cores. We'll see how portable this is.
10698
10699 2003-04-10  Havoc Pennington  <hp@pobox.com>
10700
10701         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10702         the possible parent failures before we fork, so that we don't
10703         fail to create a babysitter after creating the child.
10704
10705         * bus/activation.c (bus_activation_activate_service): kill child
10706         if we don't successfully complete the activation.
10707
10708 2003-04-10  Havoc Pennington  <hp@redhat.com>
10709
10710         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10711         the connection if it's disconnected
10712
10713         * bus/activation.c (bus_activation_service_created): use new
10714         transaction features to roll back removal of pending activation if
10715         we don't successfully create the service after all. Don't remove
10716         pending activation if the function fails.
10717
10718         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10719         (_dbus_list_insert_after_link): new code to facilitate
10720         services.c fixes
10721
10722         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10723         new functionality, so we can preallocate the ability to insert
10724         into a hash table.
10725
10726         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10727         allowing us to put custom hooks in a transaction to be used for
10728         cancelling said transaction
10729
10730         * doc/dbus-specification.sgml: add some discussion of secondary
10731         service owners, and disallow zero-length service names
10732
10733         * bus/services.c (bus_registry_acquire_service): new function,
10734         splits out part of bus_driver_handle_acquire_service() and fixes
10735         a bug where we didn't remove the service doing the acquiring
10736         from the secondary queue if we failed to remove the current owner
10737         from the front of the queue.
10738
10739 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10740
10741         * doc/dbus-specification.sgml:
10742         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10743
10744 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10745
10746         * bus/.cvsignore:
10747         * glib/.cvsignore:
10748         * test/.cvsignore:
10749         Added files to cvsignore
10750
10751         * dbus/dbus-message.h:
10752         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10753         Make get_named() take two out argument and return a boolean.
10754         (dbus_message_iter_get_args_valist):
10755         Update usage of get_named().
10756         (dbus_message_iter_append_byte):
10757         Fix typo
10758         (dbus_message_iter_append_named)
10759         Fix typo
10760         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10761         More tests.
10762
10763 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10764
10765         * dbus/dbus-marshal.[ch]:
10766         Add array_type_pos argument to _dbus_marshal_validate_arg.
10767         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10768
10769         * dbus/dbus-message.[ch]:
10770         Multi-dimensional arrays have full type specification in the
10771         outermost array. Iter code re-arranged to handle this.
10772         Added some more iter tests.
10773
10774         * doc/dbus-specification.sgml:
10775         Add me to authors.
10776         Remove old FIXME.
10777         Update new array encoding description.
10778         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10779
10780         * test/data/invalid-messages/array-with-mixed-types.message:
10781         * test/data/valid-messages/array-of-array-of-uint32.message:
10782         Change to the new array format.
10783
10784         * test/data/invalid-messages/too-short-dict.message:
10785         Fix bug in test.
10786
10787         * test/data/valid-messages/recursive-types.message:
10788         Fix up and extend test.
10789
10790 2003-04-10  Havoc Pennington  <hp@pobox.com>
10791
10792         * bus/dispatch.c: lots of fixes
10793
10794         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10795         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10796         that was crack, broke the test service.
10797
10798         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10799         handling to avoid piling up errors if we get a failure on the
10800         first address.
10801
10802         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10803         pid in assertion failures.
10804
10805         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10806         to some fixed size of file descriptor array. Don't return TRUE
10807         anytime a timeout exists, that led to lots of busy loop silliness
10808         in the tests.
10809
10810 2003-04-09  Havoc Pennington  <hp@redhat.com>
10811
10812         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10813         I'd checked this in earlier but hadn't.
10814
10815 2003-04-09  Havoc Pennington  <hp@redhat.com>
10816
10817         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10818         the activation test (man this is getting old!)
10819
10820 2003-04-09  Havoc Pennington  <hp@redhat.com>
10821
10822         * test/test-utils.c: use dispatch status function to fix this up
10823
10824         * bus/connection.c (connection_watch_callback): don't dispatch
10825         from here
10826         (connection_timeout_callback): don't dispatch from here
10827         (bus_connections_setup_connection): set the dispatch status function
10828         (bus_connection_disconnected): unset it
10829
10830         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10831         used to add a connection to be dispatched
10832         (_dbus_loop_iterate): do the dispatching at the end of each
10833         iteration
10834
10835         * dbus/dbus-connection.c
10836         (dbus_connection_set_dispatch_status_function): new function
10837         allowing us to fix up main loop usage
10838         (_dbus_connection_last_unref): free all the various function
10839         user data
10840         (dbus_connection_dispatch): call the DispatchStatusFunction
10841         whenever this function returns
10842         (dbus_connection_handle_watch): call DispatchStatusFunction
10843         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10844         (reply_handler_timeout): call DispatchStatusFunction
10845         (dbus_connection_flush): call DispatchStatusFunction
10846
10847 2003-04-09  Havoc Pennington  <hp@redhat.com>
10848
10849         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10850         a memory leak
10851
10852         * bus/dispatch.c (check_service_activated): fix bug in test
10853
10854         * dbus/dbus-mainloop.c (check_timeout): fix this up
10855
10856         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10857         verbose output so we can sort out output from different processes,
10858         e.g. in the activation case.
10859
10860 2003-04-08  Colin Walters  <walters@gnu.org>
10861
10862         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10863         the pid file.
10864         (bus_context_new): Set it.
10865         (bus_context_unref): Use it to delete the pid file.
10866
10867 2003-04-08  Havoc Pennington  <hp@redhat.com>
10868
10869         * test/data/invalid-messages/array-with-mixed-types.message:
10870         regression test that fails for the moment
10871
10872         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10873         tests for convenience
10874
10875         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10876         array of nil, it broke things.
10877
10878         * test/data/invalid-messages/array-of-nil.message: regression test
10879
10880         * test/data/valid-messages/array-of-array-of-uint32.message:
10881         happened to write this so added it to suite
10882
10883 2003-04-08  Havoc Pennington  <hp@redhat.com>
10884
10885         * bus/driver.c (bus_driver_handle_acquire_service): init
10886         retval/reply before checking name
10887
10888         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10889         recursion depth argument
10890
10891         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10892         in the public struct for future extension
10893
10894         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10895         typo
10896
10897         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10898         message
10899
10900         * doc/dbus-specification.sgml: fix typo
10901
10902 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10903
10904         Implemented recursive types, named types and new-style iters
10905
10906         * bus/driver.c:
10907         * glib/test-thread-client.c: (thread_func):
10908         * glib/test-thread-server.c: (handle_test_message):
10909         * test/test-service.c: (handle_echo):
10910         Update to new api
10911
10912         * dbus/Makefile.am:
10913         * dbus/dbus-dict.c:
10914         * dbus/dbus-dict.h:
10915         * dbus/dbus.h
10916         Remove DBusDict
10917
10918         * dbus/dbus-internals.c: (_dbus_type_to_string):
10919         Update for new types.
10920
10921         * dbus/dbus-marshal.[ch]:
10922         Implement recursive types and the new marshalling format.
10923         Remove hardcoded dict marshalling.
10924         Marshal named types.
10925
10926         * dbus/dbus-message-builder.c:
10927         Add BYTE_ARRAY.
10928         Remove references to old types
10929
10930         * dbus/dbus-message.[ch]:
10931         New non-refcounted iter API that supports recursive iters.
10932         Use iters for appending, including support for recursive
10933         iters.
10934         Add byte and named type support.
10935         Update everything to new marshalling formats.
10936         Add tests for new API.
10937
10938         * dbus/dbus-protocol.h:
10939         Remove old array types.
10940         Add types: BYTE, ARRAY, DICT, NAMED
10941
10942         * dbus/dbus-string.c:
10943         * dbus/dbus-sysdeps.c:
10944         Make parse_double locale safe.
10945
10946         * dbus/dbus-test-main.c:
10947         Call setlocale.
10948
10949         * dbus/dbus-test.c:
10950         Kill dict test
10951
10952         * doc/dbus-specification.sgml:
10953         Update spec
10954
10955         * test/data/incomplete-messages/missing-body.message:
10956         * test/data/invalid-messages/bad-boolean.message:
10957         * test/data/invalid-messages/bad-boolean-array.message:
10958         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10959         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10960         * test/data/invalid-messages/too-short-dict.message:
10961         * test/data/valid-messages/dict-simple.message:
10962         * test/data/valid-messages/dict.message:
10963         * test/data/valid-messages/emptiness.message:
10964         * test/data/valid-messages/lots-of-arguments.message:
10965         * test/data/valid-messages/no-padding.message:
10966         * test/data/valid-messages/recursive-types.message:
10967         Add missing NAME fields
10968         Fix up dicts & arrays
10969
10970         * test/data/invalid-messages/dict-with-nil-value.message:
10971         Removed, this is not invalid anymore.
10972
10973         * test/data/valid-messages/recursive-types.message:
10974         Add new test for deeply recursive types.
10975
10976 2003-04-07  Havoc Pennington  <hp@pobox.com>
10977
10978         * bus/driver.c (bus_driver_handle_acquire_service): return an
10979         error if you try to acquire a service that starts with ':'
10980
10981 2003-04-07  Havoc Pennington  <hp@redhat.com>
10982
10983         * doc/dbus-specification.sgml: require that base service names
10984         start with ':' and that the base service is created/deleted
10985         as first and last things a connection does on the bus
10986
10987         * bus/dispatch.c (check_existent_service_activation): lots more
10988         work on the activation test; it doesn't fully pass yet...
10989
10990         * test/test-service.c (main): fix so we don't memleak the
10991         connection to the message bus
10992         (filter_func): accept a message asking us to exit
10993
10994 2003-04-06  Havoc Pennington  <hp@pobox.com>
10995
10996         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10997         from Colin Walters
10998
10999         * configure.in: fixes to Qt detection from Colin Walters
11000
11001         * doc/Makefile.am: Only remove generated docbook dirs if they
11002         exist, from Colin Walters
11003
11004         * dbus/dbus-bus.c: change how we set well-known connections to
11005         NULL, so that it works if a single connection is stored in
11006         two well-known array slots.
11007
11008         * test/Makefile.am: remove a lot of stuff that isn't immediately
11009         useful, it's in CVS history if we want it.
11010
11011         * test/test-service.c: use dbus-mainloop instead of that
11012         watch.[hc] crack
11013
11014 2003-04-06  Havoc Pennington  <hp@pobox.com>
11015
11016         * dbus/Makefile.am: split lists of sources into stuff that goes in
11017         the library, util functions that go in the lib and are also used
11018         elsewhere, and util functions that are used in tests/daemon but
11019         don't go in the lib.
11020
11021         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11022         here so it can be used in test binaries also
11023
11024 2003-04-06  Havoc Pennington  <hp@pobox.com>
11025
11026         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11027         here in the parent process, so we can return an error if it
11028         fails. Also, move some of the code into the child so the parent
11029         is less hosed if we fail midway through.
11030
11031         * bus/bus.c (bus_context_new): move pidfile detection further up
11032         in the function, before we start overwriting sockets and such.
11033
11034         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11035
11036         * configure.in: add --with-system-pid-file and --with-system-socket
11037
11038 2003-04-06  Colin Walters  <walters@verbum.org>
11039
11040         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11041
11042         * bus/system.conf.in: Declare a pidfile.
11043
11044         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11045         create one (if appropriate).
11046
11047         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11048         (struct BusConfigParser) [pidfile]: New.
11049         (element_type_to_name, merge_included, start_busconfig_child)
11050         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11051         (bus_config_parser_unref): Free it.
11052         (bus_config_parser_get_pidfile): New function.
11053
11054         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11055
11056         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11057
11058         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11059
11060         * dbus/dbus-sysdeps.h: Prototype it.
11061
11062 2003-04-06  Havoc Pennington  <hp@pobox.com>
11063
11064         * bus/bus.c (bus_context_new): print the address in here, rather
11065         than in main(), because we need to do it before forking the daemon
11066
11067         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11068         on the service nonexistent error
11069
11070         * bus/driver.c (bus_driver_handle_acquire_service): set the
11071         sender on the AcquireService reply
11072
11073         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11074         server also listen on a UNIX socket so services can connect to it.
11075
11076 2003-04-06  Havoc Pennington  <hp@pobox.com>
11077
11078         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11079         so it detects deadlocks and also we actually init threads when
11080         debugging.
11081
11082 2003-04-06  Havoc Pennington  <hp@pobox.com>
11083
11084         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11085         save the domain socket name, and unlink it when we disconnect the
11086         server. Means that at least when we exit normally, we won't leave
11087         a bunch of junk in /tmp
11088
11089         * dbus/dbus-transport-unix.c
11090         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11091         memory management). (I was making a real change here but then
11092         didn't)
11093
11094 2003-04-06  Havoc Pennington  <hp@pobox.com>
11095
11096         * bus/bus.c (bus_context_new): fix wrong handling of
11097         server_data_slot_unref() in the error case.
11098
11099         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11100         "(condition) != 0" to _dbus_real_assert so that
11101         "_dbus_assert (pointer)" doesn't cause a warning
11102
11103         * bus/main.c (main): accept --print-address option to print out
11104         the message bus address
11105
11106         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11107
11108         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11109         "tmpdir" option to unix: address on client side
11110
11111         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11112         to unix: address
11113
11114         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11115         we can use to create sockets in the test suite.
11116
11117         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11118         cleanly. To be used for testing.
11119
11120         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11121
11122         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11123
11124         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11125         handle trying to call this when there's no servers active
11126
11127 2003-04-05  Havoc Pennington  <hp@pobox.com>
11128
11129         * NEWS: update
11130
11131         * configure.in: 0.8
11132
11133 2003-04-05  Havoc Pennington  <hp@pobox.com>
11134
11135         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11136         crash on startup. Need to get "try starting the daemon"
11137         in the test suite I guess. ;-)
11138
11139         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11140         tracked the number of open connections; it's better done in
11141         application-specific code as you want it to span all servers etc.
11142
11143 2003-04-05  Havoc Pennington  <hp@pobox.com>
11144
11145         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11146         patch from Colin Walters
11147
11148 2003-04-05  Havoc Pennington  <hp@pobox.com>
11149
11150         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11151         reality; in fact multiple mechanisms are allowed.
11152
11153         * dbus/dbus-internals.c (_dbus_real_assert)
11154         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11155         _dbus_assert_not_reached() into functions, so that they don't show
11156         up in basic block counts for test coverage, and don't use up as
11157         much disk space. Does mean slower execution speed though, so
11158         assumes --disable-asserts is the normal production case.
11159
11160 2003-04-05  Havoc Pennington  <hp@pobox.com>
11161
11162         * test/Makefile.am (dist-hook): also dist *.in files
11163
11164         * NEWS: update
11165
11166         * configure.in: 0.7
11167
11168 2003-04-05  Havoc Pennington  <hp@pobox.com>
11169
11170         * dbus/dbus-string.c: docs warning
11171
11172         * dbus/dbus-spawn.c: missing docs
11173
11174         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11175
11176 2003-04-05  Havoc Pennington  <hp@pobox.com>
11177
11178         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11179         magic from GLib
11180
11181         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11182         to -1 once we've reaped the babysitter
11183         (_dbus_babysitter_handle_watch): do as much work as we can, not
11184         just one go of it
11185
11186         * bus/activation.c: add code using DBusBabysitter so that we
11187         handle it when a service fails to start up properly.
11188         (bus_activation_service_created): don't remove the activation
11189         entries as we go, just let them get removed when we free the pending
11190         activation. Unref reply messages after sending them.
11191
11192 2003-04-05  Havoc Pennington  <hp@pobox.com>
11193
11194         * test/decode-gcov.c (main): print per-directory stats in the report
11195
11196         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11197
11198 2003-04-05  Havoc Pennington  <hp@pobox.com>
11199
11200         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11201
11202         * test/decode-gcov.c: hack up a little program to suck data
11203         out of gcov files. Yes this is sort of silly.
11204
11205         * configure.in: define something in config.h and do an
11206         AM_CONDITIONAL when gcov is enabled
11207
11208 2003-04-04  Havoc Pennington  <hp@redhat.com>
11209
11210         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11211         return a "babysitter" object that is used to monitor the status of
11212         the spawned process and reap it when required.
11213
11214         * test/test-segfault.c, test/test-exit.c,
11215         test/test-sleep-forever.c: binaries that do various lame things,
11216         used in the test suite.
11217
11218         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11219
11220 2003-04-03  Havoc Pennington  <hp@pobox.com>
11221
11222         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11223         in preparation for modifying it, dbus-sysdeps is getting
11224         a bit unmanageable.
11225
11226 2003-04-03  Havoc Pennington  <hp@redhat.com>
11227
11228         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11229         have multiple ones
11230
11231         * bus/*.[hc]: adapt to mainloop change
11232
11233 2003-04-03  Havoc Pennington  <hp@redhat.com>
11234
11235         * bus/activation.c (load_directory): fix up memleaks
11236         (bus_activation_entry_free): free the entry
11237
11238         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11239         we get one from the message bus; fix memleaks.
11240
11241         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11242
11243 2003-04-03  Havoc Pennington  <hp@pobox.com>
11244
11245         * bus/config-parser.c (bus_config_parser_unref): free
11246         list of mechanisms, bug discovered by test suite enhancements
11247         (putting system.conf and session.conf into suite)
11248
11249         * test/Makefile.am, test/test-service.c: add placeholder for a
11250         test service that we'll activate as part of test suite. Doesn't
11251         do anything yet.
11252
11253         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11254         setting NULL value, and use system malloc not dbus_malloc()
11255         when we have unavoidable memleakage.
11256
11257         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11258         didn't work, and support DBUS_BUS_ACTIVATION.
11259
11260         * bus/activation.c (child_setup): pass our well-known bus type to
11261         the child
11262
11263         * bus/config-parser.c: support <type> to specify well-known type
11264
11265         * doc/dbus-specification.sgml: document the env variables to
11266         locate well-known buses and find service activator
11267
11268 2003-04-02  Havoc Pennington  <hp@redhat.com>
11269
11270         * test/Makefile.am (all-local): add a rule to copy tests to
11271         builddir, so we can have generated tests. Use this to remove the
11272         silly hack for testing system.conf and session.conf. Will use this
11273         shortly to generate .service files pointing to test binaries.
11274
11275 2003-04-02  Havoc Pennington  <hp@redhat.com>
11276
11277         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11278         current alloc and needed new length, not max of the doubled
11279         allocation and needed new length. Also, when building tests,
11280         don't do the double-allocation stuff, just realloc every time.
11281
11282 2003-04-02  Havoc Pennington  <hp@redhat.com>
11283
11284         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11285         in error messages
11286         (_dbus_string_get_dirname): new
11287         (_dbus_sysdeps_test): new
11288         (_dbus_directory_open): include dirnames in error messages
11289
11290         * bus/config-parser.c: interpret <include> and <includedir> and
11291         <servicedir> relative to config file location if the given
11292         filename is not absolute.
11293
11294         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11295
11296 2003-04-02  Havoc Pennington  <hp@redhat.com>
11297
11298         * bus/connection.c (bus_transaction_send_error_reply): set sender
11299         service for the error, and unref the reply on success
11300
11301         * bus/activation.c: convert to use BusTransaction so OOM can be
11302         handled correctly
11303         (bus_activation_service_created): set sender of the message
11304
11305 2003-04-01  Havoc Pennington  <hp@redhat.com>
11306
11307         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11308         <includedir> (at least mostly)
11309
11310         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11311         first, then the user ID
11312
11313 2003-04-01  Havoc Pennington  <hp@pobox.com>
11314
11315         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11316         function
11317
11318         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11319
11320         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11321
11322         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11323         socket 0777, and unlink any existing socket.
11324
11325         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11326         the configuration file so specifies; set up auth mechanism
11327         restrictions
11328
11329         * bus/config-parser.c (bus_config_parser_content): add support
11330         for <fork> option and fill in code for <auth>
11331
11332         * bus/system.conf.in: add <fork/> to default configuration,
11333         and limit auth mechanisms to EXTERNAL
11334
11335         * doc/config-file.txt (Elements): add <fork>
11336
11337         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11338         (_dbus_change_identity): new function
11339
11340 2003-03-31  Havoc Pennington  <hp@redhat.com>
11341
11342         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11343         (_dbus_listen_unix_socket): fix off-by-one error in null
11344         termination spotted by Nalin
11345
11346 2003-03-31  Havoc Pennington  <hp@redhat.com>
11347
11348         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11349         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11350         having a real home directory available.
11351
11352 2003-03-31  Havoc Pennington  <hp@redhat.com>
11353
11354         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11355
11356         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11357
11358         * configure.in: add support for specifying a style of init script
11359         to install
11360
11361 2003-03-31  Havoc Pennington  <hp@redhat.com>
11362
11363         Fix some annoying DBusString API and fix all affected code.
11364
11365         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11366         max_length argument
11367         (_dbus_string_get_data): change to return string instead of using
11368         an out param
11369         (_dbus_string_get_const_data): ditto
11370         (_dbus_string_get_data_len): ditto
11371         (_dbus_string_get_const_data_len): ditto
11372
11373 2003-03-31  Havoc Pennington  <hp@redhat.com>
11374
11375         * bus/main.c (main): fix up the command line arguments to be nicer
11376
11377 2003-03-31  Havoc Pennington  <hp@redhat.com>
11378
11379         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11380         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11381         final location that lands in the config file
11382
11383         * bus/config-loader-expat.c (bus_config_load): fix type of
11384         XML_Parser variable
11385
11386         * doc/TODO: remove TODO item for dbus_bus_get()
11387
11388         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11389
11390 2003-03-31  Havoc Pennington  <hp@pobox.com>
11391
11392         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11393         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11394         argument since they are always client side
11395
11396         * dbus/dbus-server.c (dbus_server_get_address): new function
11397
11398         * bus/main.c (main): take the configuration file as an argument.
11399
11400         * test/data/valid-config-files/debug-allow-all.conf: new file to
11401         use with dispatch.c tests for example
11402
11403         * bus/test-main.c (main): require test data dir
11404
11405         * bus/bus.c (bus_context_new): change this to take a
11406         configuration file name as argument
11407
11408         * doc/config-file.txt (Elements): add <servicedir>
11409
11410         * bus/system.conf, bus/session.conf: new files
11411
11412         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11413         well-known socket if none set
11414
11415         * configure.in: create system.conf and session.conf
11416
11417 2003-03-30  Havoc Pennington  <hp@pobox.com>
11418
11419         * bus/config-parser.c: hacking
11420
11421         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11422         to shut down, since it could cause weirdness with the DBusList
11423         lock
11424
11425         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11426         link-oriented stack routines
11427         (alloc_link): free the mempool if the first alloc from it fails
11428
11429         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11430
11431         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11432         from GLib
11433         (_dbus_string_skip_white): new
11434
11435         * doc/config-file.txt (Elements): add <includedir>
11436
11437 2003-03-28  Havoc Pennington  <hp@pobox.com>
11438
11439         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11440         (_dbus_string_copy_data): new functions
11441
11442 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11443
11444         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11445         * dbus/dbus-bus.h:
11446         Add dbus_bus_get.
11447
11448         * dbus/dbus-memory.c:
11449         Fix a doc comment.
11450
11451 2003-03-28  Havoc Pennington  <hp@pobox.com>
11452
11453         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11454         I think it may have just been superstition. Not sure.
11455
11456         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11457         failures that were not being handled.
11458
11459         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11460
11461         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11462         row that will fail on out-of-memory.
11463
11464         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11465         function for testing out-of-memory handling.
11466
11467         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11468         allocation functions, they do map exactly to the expat ones.
11469
11470 2003-03-27  Havoc Pennington  <hp@redhat.com>
11471
11472         * bus/config-loader-libxml.c (bus_config_load): add another error
11473         check
11474
11475 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11476
11477         * doc/TODO:
11478         Add note about automatic service activation.
11479
11480         * doc/dbus-specification.sgml:
11481         Rename the specification and clarify a few things.
11482
11483 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11484
11485         * Doxyfile.in:
11486         * dbus/dbus-address.c:
11487         * dbus/dbus-dict.c:
11488         * dbus/dbus-marshal.c:
11489         * dbus/dbus-server-debug-pipe.c:
11490         * dbus/dbus-transport-unix.c:
11491         Fix documentation warnings.
11492
11493 2003-03-26  Havoc Pennington  <hp@pobox.com>
11494
11495         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11496         after every test so it's quick and easy to see which leaked, and
11497         so we test multiple dbus_shutdown() calls
11498
11499         * configure.in: change configure.in XML stuff to also support
11500         expat
11501
11502         * config-loader-libxml.c: some hacking
11503
11504         * config-loader-expat.c: some hacking
11505
11506         * config-parser.c: some hacking, plus tests
11507
11508 2003-03-25  Havoc Pennington  <hp@redhat.com>
11509
11510         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11511
11512         * configure.in: add --with-xml option to specify XML library,
11513         right now only libxml is supported.
11514
11515         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11516         nonworking code between home and work, still just stubs
11517
11518 2003-03-24  Havoc Pennington  <hp@redhat.com>
11519
11520         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11521         file
11522
11523         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11524         NULL argument for "message" if the error is a well-known one,
11525         fill in a generic message in this case.
11526
11527         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11528         favor of DBusError
11529
11530         * bus/test.c (bus_test_flush_bus): add
11531
11532         * bus/policy.c (bus_policy_test): test code stub
11533
11534 2003-03-24  Havoc Pennington  <hp@pobox.com>
11535
11536         * bus/connection.c (bus_connections_setup_connection): set up
11537         the "can this user connect" function, but it always returns
11538         TRUE until we have a config file parser so we can have a config
11539         file that allows connections.
11540
11541 2003-03-23  Havoc Pennington  <hp@pobox.com>
11542
11543         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11544         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11545         the mutex, so we can check for proper memory management
11546         and OOM handling.
11547
11548         * dbus/dbus-dataslot.c: remove the mutex from
11549         DBusDataSlotAllocator and lock it manually when using it,
11550         to simplify fitting it into the global slots framework.
11551
11552         * dbus/dbus-threads.c (init_static_locks): rework how we're
11553         handling global locks so they are easily shut down.
11554
11555         * bus/policy.c (bus_policy_append_rule): fix
11556
11557         * bus/test-main.c (main): check for memleaks
11558
11559         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11560         test suite check for memleaks
11561
11562         * dbus/dbus-memory.c: add support in test mode for tracking
11563         number of outstanding blocks
11564
11565 2003-03-23  Havoc Pennington  <hp@pobox.com>
11566
11567         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11568         policies code
11569
11570         * dbus/dbus-hash.h: add ULONG hash keys
11571
11572         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11573         (_dbus_get_group_id): new function
11574
11575 2003-03-20  Havoc Pennington  <hp@redhat.com>
11576
11577         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11578         new function
11579         (dbus_connection_get_unix_user): new function
11580
11581 2003-03-20  Havoc Pennington  <hp@pobox.com>
11582
11583         * bus/connection.c (bus_connection_send_oom_error): assert that
11584         message has a sender
11585         (connection_execute_transaction): ditto
11586         (bus_connection_preallocate_oom_error): fix to set the sender, and
11587         set recipient to the destination service, not the bus driver
11588
11589         * bus/policy.c: hacking
11590
11591         * dbus/dbus-message.c (dbus_message_service_is): new function
11592         (dbus_message_sender_is): new
11593
11594 2003-03-19  Havoc Pennington  <hp@redhat.com>
11595
11596         * bus/policy.c: start sketching code for policy restrictions on
11597         what connections can do.
11598
11599 2003-03-18  Havoc Pennington  <hp@redhat.com>
11600
11601         * doc/TODO: some notes on high-level todo items. Little nitpick
11602         stuff is all in @todo, so no need to add it here.
11603
11604         * doc/config-file.txt: some notes on how config file might look
11605
11606 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11607
11608         * configure.in: 0.6
11609
11610         * NEWS: Update.
11611
11612 2003-03-17  Havoc Pennington  <hp@redhat.com>
11613
11614         * dbus/dbus-internals.h: add gcc attributes so that
11615         our printf-style functions warn on bad arguments to
11616         format
11617
11618         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11619         format bug
11620
11621         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11622         printf format bug
11623
11624 2003-03-17  Havoc Pennington  <hp@redhat.com>
11625
11626         * bus/test-main.c (main): make it print something as it runs
11627         so make check doesn't look stuck
11628
11629         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11630         from CVS, now obsolete
11631
11632 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11633
11634         * bus/dispatch.c: (bus_dispatch):
11635         Refetch the service name since it may have been reallocated
11636         when dbus_message_set_sender was called.
11637
11638         * dbus/dbus-sysdeps.c: (_dbus_accept):
11639         Add address and address length variables and use them to stop
11640         valgrind from complaining.
11641
11642 2003-03-17  Havoc Pennington  <hp@pobox.com>
11643
11644         All tests pass, no memleaks, no valgrind complaints.
11645
11646         * bus/test.c: refcount handler_slot
11647
11648         * bus/connection.c (bus_connections_new): refcount
11649         connection_data_slot
11650
11651         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11652         bytes so that auth scripts pass.
11653
11654         * bus/dispatch.c: init message_handler_slot so it gets allocated
11655         properly
11656
11657         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11658
11659         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11660         dealloc server_pipe_hash when no longer used for benefit of
11661         leak checking
11662
11663         * dbus/dbus-auth.c (process_command): memleak fix
11664
11665         * bus/dispatch.c (check_hello_message): memleak fix
11666
11667 2003-03-16  Havoc Pennington  <hp@pobox.com>
11668
11669         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11670
11671 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11672
11673         * bus/activation.c (bus_activation_activate_service): Append
11674         the pending activation entry to the list of pending activations.
11675
11676 2003-03-16  Havoc Pennington  <hp@pobox.com>
11677
11678         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11679         connections
11680
11681         * dbus/dbus-address.c (create_entry): fix OOM handling when
11682         failing to alloc entry->method
11683
11684 2003-03-16  Havoc Pennington  <hp@pobox.com>
11685
11686         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11687         the watch
11688
11689         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11690         add some missing dbus_set_result
11691
11692         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11693         alloc the DBusMessageHandler
11694
11695         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11696         the transport here, since we call this from the finalizer; it
11697         resulted in a double-finalize.
11698
11699         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11700         where we tried to use transport->connection that was NULL,
11701         happened when transport was disconnected early on due to OOM
11702
11703         * bus/*.c: adapt to handle OOM for watches/timeouts
11704
11705         * dbus/dbus-transport-unix.c: port to handle OOM during
11706         watch handling
11707
11708         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11709         reference to unused bytes instead of a copy
11710
11711         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11712         out of memory
11713
11714         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11715         FALSE on OOM
11716
11717         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11718         of memory
11719
11720 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11721
11722         * doc/dbus-specification.sgml:
11723         Document reply message for ActivateService.
11724
11725 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11726
11727         * bus/activation.c: (bus_pending_activation_entry_free),
11728         (bus_pending_activation_free), (bus_activation_new),
11729         (bus_activation_unref), (bus_activation_service_created),
11730         (bus_activation_activate_service):
11731         * bus/activation.h:
11732         * bus/bus.c: (bus_context_new):
11733         * bus/desktop-file.c: (new_section):
11734         * bus/driver.c: (bus_driver_send_service_deleted),
11735         (bus_driver_handle_activate_service):
11736         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11737         * bus/services.h:
11738         * dbus/dbus-connection.c:
11739         (dbus_connection_send_with_reply_and_block):
11740         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11741         * dbus/dbus-protocol.h:
11742         Make activation work better. Now pending activations will be queued
11743         and the daemon won't try to activate services that are already registered.
11744
11745 2003-03-16  Havoc Pennington  <hp@pobox.com>
11746
11747         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11748         connection data
11749
11750         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11751         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11752
11753 2003-03-16  Havoc Pennington  <hp@pobox.com>
11754
11755         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11756         this. always run the test suite before commit...
11757
11758         * bus/*: adapt to DBusConnection API changes
11759
11760         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11761         requires renaming stuff to avoid dbus_connection_dispatch name
11762         conflict.
11763
11764         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11765         function
11766
11767         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11768         separate from _dbus_message_loader_return_buffer()
11769
11770         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11771         this, because it's now always broken to use; the number of
11772         messages in queue vs. the number still buffered by the message
11773         loader is undefined/meaningless. Should use
11774         dbus_connection_get_dispatch_state().
11775         (dbus_connection_dispatch): rename from
11776         dbus_connection_dispatch_message
11777
11778 2003-03-16  Havoc Pennington  <hp@pobox.com>
11779
11780         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11781         implementation
11782
11783 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11784
11785         * dbus/dbus-connection.c:
11786         (dbus_connection_send_with_reply_and_block):
11787         Decrease connection->n_incoming when removing an entry
11788         from the list.
11789         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11790         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11791         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11792         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11793         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11794         (dbus_dict_get_byte_array):
11795         Handle NULL arrays and strings. Also add support for byte arrays.
11796
11797         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11798         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11799         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11800         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11801         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11802         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11803         * dbus/dbus-marshal.h:
11804         Add support for marshalling and demarshalling empty arrays and strings.
11805
11806         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11807         (dbus_message_append_string_array),
11808         (dbus_message_iter_get_boolean),
11809         (dbus_message_iter_get_boolean_array),
11810         (dbus_message_iter_get_int32_array),
11811         (dbus_message_iter_get_uint32_array),
11812         (dbus_message_iter_get_double_array),
11813         (dbus_message_iter_get_byte_array),
11814         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11815         (check_message_handling):
11816         Add support for getting empty arrays and dicts.
11817
11818         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11819         Don't do any validation at all for now, that's better than just checking
11820         for ASCII.
11821
11822         * test/data/valid-messages/emptiness.message:
11823         New test message with lots of empty arrays.
11824
11825 2003-03-16  Havoc Pennington  <hp@pobox.com>
11826
11827         * dbus/dbus-connection.c
11828         (_dbus_connection_queue_received_message_link): new function that
11829         can't fail due to OOM
11830
11831         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11832         new function pops a message together with a list link
11833         containing it.
11834
11835         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11836         message queuing functions to avoid needing to alloc memory
11837
11838 2003-03-16  Havoc Pennington  <hp@pobox.com>
11839
11840         Oops - test code was only testing failure of around 30 of the
11841         mallocs in the test path, but it turns out there are 500+
11842         mallocs. I believe this was due to misguided linking setup such
11843         that there was one copy of dbus_malloc etc. in the daemon and one
11844         in the shared lib, and only daemon mallocs were tested. In any
11845         case, the test case now tests all 500+ mallocs, and doesn't pass
11846         yet, though there are lots of fixes in this patch.
11847
11848         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11849         this so that it doesn't need to allocate memory, since it
11850         has no way of indicating failure due to OOM (and would be
11851         annoying if it did).
11852
11853         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11854
11855         * bus/Makefile.am: rearrange to create two self-contained
11856         libraries, to avoid having libraries with overlapping symbols.
11857         that was resulting in weirdness, e.g. I'm pretty sure there
11858         were two copies of global static variables.
11859
11860         * dbus/dbus-internals.c: move the malloc debug stuff to
11861         dbus-memory.c
11862
11863         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11864         empty.
11865
11866         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11867
11868         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11869         on failure.
11870
11871         * bus/dispatch.c (bus_dispatch_add_connection): free
11872         message_handler_slot when no longer using it, so
11873         memory leak checkers are happy for the test suite.
11874
11875         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11876
11877         * bus/bus.c (new_connection_callback): disconnect in here if
11878         bus_connections_setup_connection fails.
11879
11880         * bus/connection.c (bus_connections_unref): fix to free the
11881         connections
11882         (bus_connections_setup_connection): if this fails, don't
11883         disconnect the connection, just be sure there are no side
11884         effects.
11885
11886         * dbus/dbus-string.c (undo_alignment): unbreak this
11887
11888         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11889         leaking
11890         (_dbus_auth_new): fix the order in which we free strings
11891         on OOM failure
11892
11893         * bus/connection.c (bus_connection_disconnected): fix to
11894         not send ServiceDeleted multiple times in case of memory
11895         allocation failure
11896
11897         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11898         get the base service name
11899         (dbus_bus_register_client): don't return base service name,
11900         instead store it on the DBusConnection and have an accessor
11901         function for it.
11902         (dbus_bus_register_client): rename dbus_bus_register()
11903
11904         * bus/dispatch.c (check_hello_message): verify that other
11905         connections on the bus also got the correct results, not
11906         just the one sending hello
11907
11908 2003-03-15  Havoc Pennington  <hp@pobox.com>
11909
11910         Make it pass the Hello handling test including all OOM codepaths.
11911         Now to do other messages...
11912
11913         * bus/services.c (bus_service_remove_owner): fix crash when
11914         removing owner from an empty list of owners
11915         (bus_registry_ensure): don't leave service in the list of
11916         a connection's owned services if we fail to put the service
11917         in the hash table.
11918
11919         * bus/connection.c (bus_connection_preallocate_oom_error): set
11920         error flag on the OOM error.
11921
11922         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11923         handle _dbus_transport_set_connection failure
11924
11925         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11926         to create watches up front and simply enable/disable them as
11927         needed.
11928         (unix_connection_set): this can now fail on OOM
11929
11930         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11931         of enabling/disabling a watch or timeout.
11932
11933         * bus/loop.c (bus_loop_iterate): don't touch disabled
11934         watches/timeouts
11935
11936         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11937
11938 2003-03-15  Havoc Pennington  <hp@pobox.com>
11939
11940         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11941         write useful test code, after all that futzing around ;-)
11942
11943         Test does not yet pass because we can't handle OOM in
11944         _dbus_transport_messages_pending (basically,
11945         dbus_connection_preallocate_send() does not prealloc the write
11946         watch). To fix this, I think we need to add new stuff to
11947         set_watch_functions, namely a SetEnabled function so we can alloc
11948         the watch earlier, then enable it later.
11949
11950         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11951         dbus-memory.c to the convenience lib
11952
11953         * bus/test.c: rename some static functions to keep them clearly
11954         distinct from stuff in connection.c. Handle client disconnection.
11955
11956 2003-03-14  Havoc Pennington  <hp@pobox.com>
11957
11958         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11959         transport, tests more of the real codepath. Set up clients
11960         with bus_setup_debug_client.
11961
11962         * bus/test.c (bus_setup_debug_client): function to set up debug
11963         "clients" on the main loop
11964
11965         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11966         support
11967
11968         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11969         server type
11970
11971         * dbus/dbus-server-debug.c: support a debug server based on pipes
11972
11973         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11974         (_dbus_close): new function
11975
11976         * configure.in: check for socketpair
11977
11978 2003-03-14  Havoc Pennington  <hp@redhat.com>
11979
11980         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11981         cheesy hack
11982
11983         * dbus/dbus-transport-debug.c: rework this a good bit to be
11984         less complicated. hopefully still works.
11985
11986         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11987         manually
11988
11989         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11990         after running it
11991
11992         * dbus/dbus-message.c (dbus_message_copy): rename from
11993         dbus_message_new_from_message, fix it up to copy
11994         all the message fields, add test case
11995
11996         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11997         not quite passing yet
11998
11999 2003-03-14  Havoc Pennington  <hp@pobox.com>
12000
12001         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12002         until no work remains" in test code. (the large diff here
12003         is just code movement, no actual changes)
12004
12005         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12006         1, no point waiting around for test code.
12007         (_dbus_server_debug_accept_transport): unref the timeout
12008         after adding it (right?)
12009
12010         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12011
12012 2003-03-13  Havoc Pennington  <hp@redhat.com>
12013
12014         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12015         out of memory
12016
12017         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12018         of memory
12019
12020         * dbus/dbus-connection.h: Make AddWatchFunction and
12021         AddTimeoutFunction return a bool so they can fail on out-of-memory
12022
12023         * bus/bus.c (bus_context_new): set up timeout handlers
12024
12025         * bus/connection.c (bus_connections_setup_connection): set up
12026         timeout handlers
12027
12028         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12029         can fail
12030
12031         * bus/bus.c (bus_context_new): adapt to changes
12032
12033         * bus/connection.c: adapt to changes
12034
12035         * test/watch.c: adapt to DBusWatch changes
12036
12037         * bus/dispatch.c (bus_dispatch_test): started adding this but
12038         didn't finish
12039
12040 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12041
12042         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12043
12044 2003-03-13  Havoc Pennington  <hp@pobox.com>
12045
12046         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12047         set up a test framework as for the library
12048
12049 2003-03-12  Havoc Pennington  <hp@pobox.com>
12050
12051         Throughout: purge global variables, introduce BusActivation,
12052         BusConnections, BusRegistry, etc. objects instead.
12053
12054         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12055         message bus object
12056
12057         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12058         going to redo this a bit differently I think
12059
12060 2003-03-12  Havoc Pennington  <hp@redhat.com>
12061
12062         Mega-patch that gets the message bus daemon initially handling
12063         out-of-memory. Work still needed. Also lots of random
12064         moving stuff to DBusError instead of ResultCode.
12065
12066         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12067
12068         * dbus/dbus-connection.c
12069         (dbus_connection_send_with_reply_and_block): use DBusError
12070
12071         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12072         DBusResultCode
12073
12074         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12075         code here, as the only failure possible is OOM.
12076
12077         * bus/connection.c (bus_connection_disconnect):
12078         rename bus_connection_disconnected as it's a notification only
12079
12080         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12081         "name" on get_args failure, should be done by get_args;
12082         don't disconnect client for bad args, just return an error.
12083         (bus_driver_handle_service_exists): ditto
12084
12085         * bus/services.c (bus_services_list): NULL-terminate returned array
12086
12087         * bus/driver.c (bus_driver_send_service_lost)
12088         (bus_driver_send_service_acquired): send messages from driver to a
12089         specific client to the client's unique name, not to the broadcast
12090         service.
12091
12092         * dbus/dbus-message.c (decode_header_data): reject messages that
12093         contain no name field
12094         (_dbus_message_get_client_serial): rename to
12095         dbus_message_get_serial and make public
12096         (_dbus_message_set_serial): rename from set_client_serial
12097         (_dbus_message_set_reply_serial): make public
12098         (_dbus_message_get_reply_serial): make public
12099
12100         * bus/connection.c (bus_connection_foreach): allow stopping
12101         iteration by returning FALSE from foreach function.
12102
12103         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12104         (dbus_connection_free_preallocated_send)
12105         (dbus_connection_preallocate_send): new API for sending a message
12106         without possibility of malloc failure.
12107         (dbus_connection_send_message): rename to just
12108         dbus_connection_send (and same for whole function family)
12109
12110         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12111
12112         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12113
12114         * bus/activation.c: handle/return errors
12115
12116         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12117
12118         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12119         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12120         (_dbus_result_from_errno): move to this file
12121
12122 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12123
12124         * dbus/dbus-marshal.c:
12125         (_dbus_marshal_set_string):
12126         Take a length argument so we can marshal the correct string
12127         length.
12128
12129         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12130         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12131         (_dbus_marshal_test):
12132         * dbus/dbus-marshal.h:
12133         Add support for marshalling and demarshalling dicts.
12134
12135         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12136         Add support for TYPE DICT.
12137
12138         * dbus/dbus-message.c: (set_string_field):
12139         Adjust header padding.
12140
12141         (dbus_message_append_args_valist), (dbus_message_append_dict),
12142         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12143         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12144         (check_message_handling), (check_have_valid_message):
12145         * dbus/dbus-message.h:
12146         Add functions for setting and getting dicts.
12147
12148         * dbus/dbus-protocol.h:
12149         Add DBUS_TYPE_DICT.
12150
12151         * dbus/dbus.h:
12152         Add dbus-dict.h
12153
12154         * doc/dbus-specification.sgml:
12155         Add information about how dicts are marshalled.
12156
12157         * test/data/invalid-messages/dict-with-nil-value.message:
12158         * test/data/invalid-messages/too-short-dict.message:
12159         * test/data/valid-messages/dict-simple.message:
12160         * test/data/valid-messages/dict.message:
12161         Add sample messages containing dicts.
12162
12163 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12164
12165         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12166
12167 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12168
12169         * dbus/Makefile.am:
12170         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12171         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12172         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12173         (dbus_dict_set_double), (dbus_dict_set_string),
12174         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12175         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12176         (dbus_dict_set_string_array), (_dbus_dict_test):
12177         * dbus/dbus-dict.h:
12178         Fix according to comments from Havoc.
12179
12180 2003-03-06  Michael Meeks  <michael@server.home>
12181
12182         * configure.in: if we don't have kde-config, disable have_qt.
12183
12184 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12185
12186         * dbus/Makefile.am:
12187         Add dbus-dict.[ch]
12188
12189         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12190         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12191         (dbus_dict_remove), (dbus_dict_get_value_type),
12192         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12193         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12194         (dbus_dict_put_double), (dbus_dict_put_string),
12195         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12196         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12197         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12198         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12199         (dbus_dict_get_double), (dbus_dict_get_string),
12200         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12201         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12202         (dbus_dict_get_string_array), (_dbus_dict_test):
12203         * dbus/dbus-dict.h:
12204         Add DBusDict implementation
12205
12206         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12207         * dbus/dbus-test.h:
12208         Add _dbus_dict_test
12209
12210 2003-03-04  Havoc Pennington  <hp@pobox.com>
12211
12212         * test/data/auth/*: adapt to changes
12213
12214         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12215         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12216         userid
12217
12218         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12219         more stuff from being in a context name, to make the protocol
12220         simpler to deal with
12221
12222         * dbus/dbus-errors.c (dbus_error_has_name): new function
12223         (dbus_error_is_set): new function
12224
12225         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12226         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12227
12228         * dbus/dbus-connection.c (dbus_connection_flush): also read
12229         messages during a flush operation
12230
12231         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12232
12233 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12234
12235         * configure.in: Check for gethostbyname on Solaris.
12236
12237         * dbus/dbus-transport.c: (_dbus_transport_open):
12238         Remove duplicate "tcp" entry.
12239
12240         * doc/dbus-specification.sgml:
12241         Clarify some things.
12242
12243 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12244
12245         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12246         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12247         (_dbus_keyring_test):
12248         * dbus/dbus-md5.c: (_dbus_md5_compute):
12249         * dbus/dbus-sha.c: (_dbus_sha_compute):
12250         Plug memory leaks.
12251
12252 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12253
12254         * README: Add some things.
12255
12256 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12257
12258         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12259         after case DBUS_TYPE_BOOELAN.
12260
12261 2003-03-02  Havoc Pennington  <hp@pobox.com>
12262
12263         * test/break-loader.c (randomly_set_extreme_ints): add test that
12264         sets really huge and small integers
12265
12266         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12267         that length of boolean array fits in the string, and that
12268         string has room for boolean value in single-bool case.
12269
12270         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12271         optional value to "ALIGN" command which is what to fill the
12272         alignment with.
12273
12274         * test/data/valid-messages/no-padding.message: add regression
12275         test for the message padding problem
12276
12277 2003-03-02  Havoc Pennington  <hp@pobox.com>
12278
12279         * dbus/dbus-message.c (decode_header_data): fix to always init
12280         message_padding, from Benjamin Dauvergne
12281
12282 2003-03-02  Havoc Pennington  <hp@pobox.com>
12283
12284         * configure.in: 0.5
12285
12286         * NEWS: Update.
12287
12288 2003-03-01  Joe Shaw  <joe@assbarn.com>
12289
12290         * configure.in: Check for "struct cmsgcred" and try to access its
12291         members for BSD-like unices.
12292
12293         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12294         _dbus_read_credentials_unix_socket().
12295         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12296         read() for reading the credential byte off the unix socket.  Use
12297         struct cmsgcred on systems that support it.
12298
12299 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12300
12301         * glib/Makefile.am:
12302         * configure.in:
12303         Make gthreads-2.0 dependency optional. Don't build thread test if
12304         its not found.
12305
12306 2003-02-27  Havoc Pennington  <hp@pobox.com>
12307
12308         * dbus/dbus-connection.c
12309         (dbus_connection_send_message_with_reply_and_block): fix doh!
12310         doh! doh! bug that resulted in never removing a reply from the
12311         queue, no wonder we called get_reply_serial so much ;-)
12312
12313         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12314         and client serial instead of demarshaling them every time
12315
12316 2003-02-27  Havoc Pennington  <hp@pobox.com>
12317
12318         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12319         more inlined, using dbus-string-private.h, speeds things up
12320         substantially
12321
12322         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12323         when freeing the string
12324         (_dbus_string_steal_data): fix for align offset
12325         (undo_alignment): new function
12326
12327 2003-02-26  Havoc Pennington  <hp@redhat.com>
12328
12329         All kinds of audit fixes from Owen, plus initial attempt to
12330         handle unaligned memory returned from malloc.
12331
12332         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12333         leave room for align_offset and nul byte
12334         (fixup_alignment): function to track an align_offset and
12335         ensure real->str is aligned
12336         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12337         to allow a nul byte plus align offset
12338         (_dbus_string_lock): fix overflow issue
12339         (_dbus_string_init_const_len): add assertions on sanity of len,
12340         assign allocated to be ALLOCATION_PADDING larger than len
12341         (set_length): fixup the overflow handling
12342         (_dbus_string_get_data_len): fix overflow in assertion
12343         (open_gap): detect overflow in size of gap to be opened
12344         (_dbus_string_lengthen): add overflow check
12345         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12346         (_dbus_string_append): add overflow check
12347         (_dbus_string_append_unichar): overflow
12348         (_dbus_string_delete): fix overflow in assertion
12349         (_dbus_string_copy_len): overflow in assertion
12350         (_dbus_string_replace_len): overflows in assertions
12351         (_dbus_string_find): change to implement in terms of
12352         _dbus_string_find_to
12353         (_dbus_string_find_to): assorted fixage
12354         (_dbus_string_equal_c_str): assert c_str != NULL,
12355         fix logic so the function works
12356         (_dbus_string_ends_with_c_str): fix overflow thingy
12357         (_dbus_string_base64_encode): overflow fix
12358         (_dbus_string_validate_ascii): overflow
12359         (_dbus_string_validate_nul): overflow
12360
12361 2003-02-26  Havoc Pennington  <hp@redhat.com>
12362
12363         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12364
12365 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12366
12367         * configure.in:
12368         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12369
12370         * dbus/dbus-connection.c:
12371         * dbus/dbus-connection.h:
12372         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12373         Add dbus_connection_set_wakeup_main_function and use it when queueing
12374         incoming and outgoing messages.
12375
12376
12377         * dbus/dbus-dataslot.c:
12378         Threadsafe usage of DBusDataSlotAllocator
12379
12380         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12381         dbus_new can fail.
12382
12383         * dbus/dbus-server-unix.c:
12384         Add todo comment
12385
12386         * glib/dbus-gmain.c:
12387         Implement the new wakeup functions for glib.
12388
12389         * glib/Makefile.am:
12390         * glib/test-thread-client.c:
12391         * glib/test-thread-server.c:
12392         * glib/test-thread.h:
12393         Initial cut at some thread test code. Not really done yet.
12394
12395 2003-02-26  Havoc Pennington  <hp@pobox.com>
12396
12397         * dbus/dbus-connection.c
12398         (dbus_connection_send_message_with_reply_and_block): fix crash
12399         where we ref'd the outgoing message instead of the returned reply
12400
12401         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12402         at the end of this function, so if we didn't need to read for
12403         authentication, we reinstall it for receiving messages
12404
12405         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12406         a NULL sender for peer-to-peer case
12407
12408         * dbus/dbus-transport-unix.c (check_read_watch): handle
12409         !authenticated case correctly
12410
12411         * glib/dbus-gmain.c: add support for DBusServer
12412
12413         * dbus/dbus-server.c: add data slot support
12414
12415         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12416         return values and handle errors
12417
12418         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12419         DBusConnection
12420
12421         * Doxyfile.in (INPUT): add glib subdir
12422
12423         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12424         setup_with_g_main instead of hookup_with_g_main; write docs
12425
12426 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12427
12428         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12429         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12430         * dbus/dbus-message.c: (dbus_message_append_boolean),
12431         (dbus_message_append_boolean_array),
12432         (dbus_message_get_args_valist), (_dbus_message_test):
12433         * dbus/dbus-message.h:
12434         * doc/dbus-specification.sgml:
12435         Various fixes as pointed out by Havoc.
12436
12437         * test/data/invalid-messages/bad-boolean-array.message:
12438         * test/data/invalid-messages/bad-boolean.message:
12439         Add invalid boolean value test cases.
12440
12441 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12442
12443         * dbus/dbus-internals.c: (_dbus_type_to_string):
12444         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12445         (_dbus_marshal_validate_arg):
12446         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12447         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12448         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12449         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12450         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12451         (dbus_message_iter_get_double),
12452         (dbus_message_iter_get_boolean_array), (message_iter_test):
12453         * dbus/dbus-message.h:
12454         * dbus/dbus-protocol.h:
12455         * doc/dbus-specification.sgml:
12456         * test/data/valid-messages/lots-of-arguments.message:
12457         Add support for boolean and boolean array types.
12458
12459 2003-02-23  Havoc Pennington  <hp@pobox.com>
12460
12461         * dbus/dbus-keyring.c: finish most of this implementation and
12462         simple unit test
12463
12464         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12465         these barf if the error isn't cleared to NULL
12466
12467         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12468         (_dbus_create_directory): new function
12469
12470         * dbus/dbus-errors.c (dbus_set_error): fix warning
12471
12472         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12473         (_dbus_string_hex_decode): new function
12474         (test_hex_roundtrip): test code
12475
12476         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12477
12478         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12479
12480         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12481         the save-to-temp/rename trick to atomically write the new file
12482         (_dbus_string_parse_uint): new function
12483
12484 2003-02-22  Havoc Pennington  <hp@pobox.com>
12485
12486         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12487
12488 2003-02-22  Havoc Pennington  <hp@pobox.com>
12489
12490         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12491         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12492
12493         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12494
12495         * dbus/test/data/sha-1: add US government test suite for SHA-1
12496
12497 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12498
12499         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12500         Make string arrays NULL-terminated.
12501
12502         * dbus/dbus-memory.c: (dbus_free_string_array):
12503         * dbus/dbus-memory.h:
12504         New function for freeing NULL-terminated string arrays.
12505
12506         * dbus/dbus-message-builder.c: (append_quoted_string),
12507         (_dbus_message_data_load):
12508         Add support for array types.
12509
12510         * dbus/dbus-message.c: (check_message_handling):
12511         Add more types as test cases.
12512
12513         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12514         (_dbus_string_parse_double):
12515         Add the start offset to the end offset.
12516
12517         * test/data/valid-messages/lots-of-arguments.message:
12518         New test message with lots of arguments.
12519
12520 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12521
12522         * dbus/dbus-message.c: (dbus_message_append_nil),
12523         (dbus_message_append_int32), (dbus_message_append_uint32),
12524         (dbus_message_append_double), (dbus_message_append_string),
12525         (dbus_message_append_int32_array),
12526         (dbus_message_append_uint32_array),
12527         (dbus_message_append_double_array),
12528         (dbus_message_append_byte_array),
12529         (dbus_message_append_string_array):
12530         Fix all out-of-memory handling in these functions.
12531
12532 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12533
12534         * dbus/dbus-message.c: (dbus_message_append_nil):
12535         Fix a silly.
12536
12537 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12538
12539         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12540         (dbus_message_append_nil), (dbus_message_append_int32_array),
12541         (dbus_message_append_uint32_array),
12542         (dbus_message_append_double_array),
12543         (dbus_message_append_byte_array),
12544         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12545         (dbus_message_iter_get_int32_array),
12546         (dbus_message_iter_get_uint32_array),
12547         (dbus_message_iter_get_double_array),
12548         (dbus_message_iter_get_byte_array),
12549         (dbus_message_iter_get_string_array):
12550
12551         * dbus/dbus-message.h:
12552         Add functions for appending and getting arrays.
12553
12554 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12555
12556         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12557         element size at least 8 bytes, fixes mempool tests on
12558         64-bit machines.
12559
12560 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12561
12562         * dbus/dbus-transport-unix.c (unix_do_iteration):
12563         Unlock the connection mutex during a blocking select call.
12564         Add todo about how we need a way to wake up the select.
12565
12566         * dbus/dbus-connection-internal.h:
12567         * dbus/dbus-connection.c:
12568         Add _dbus_connection_lock and _dbus_connection_unlock.
12569
12570 2003-02-19  Havoc Pennington  <hp@pobox.com>
12571
12572         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12573         Doxyfile.in, not Doxyfile
12574
12575         * dbus/dbus-keyring.c: do some hacking on this
12576
12577         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12578
12579         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12580         dbus_error_init
12581         (dbus_set_error): remove dbus_error_init, check for message ==
12582         NULL *before* we sprintf into it, and add @todo about including
12583         system headers in this file
12584
12585         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12586
12587         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12588
12589         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12590         get various bits of user information based on either username
12591         or user ID
12592         (_dbus_homedir_from_username): new function
12593
12594 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12595
12596         * configure.in:
12597         Add check for nonposix getpwnam_r
12598
12599         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12600         Align the pool element size to a sizeof (void *) boundary.
12601
12602         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12603         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12604         General Solaris fixes.
12605
12606         * test/data/valid-messages/simplest-manual.message:
12607         Explicitly state that we want little-endian packing.
12608
12609 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12610
12611         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12612
12613         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12614         Added to create a transport connecting using a tcp/ip socket.
12615
12616         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12617         to a tcp socket at given host and port.
12618         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12619         hostname and port.
12620
12621         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12622
12623         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12624         Added to create a server listening on a TCP/IP socket.
12625
12626 2003-02-19  Havoc Pennington  <hp@pobox.com>
12627
12628         Throughout: mop up all the Doxygen warnings and undocumented
12629         stuff.
12630
12631         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12632         to search any paths.
12633
12634         * dbus/dbus-threads.c: move global mutex initializers to
12635         dbus-internals.h, multiple prototypes was confusing doxygen
12636         besides being kind of ugly
12637
12638         * Doxyfile (PREDEFINED): have Doxygen define
12639         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12640         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12641         (do not abuse the feature! it's for stuff like the autogenerated
12642         macros in dbus-md5.c, not just for things you don't feel like
12643         documenting...)
12644
12645 2003-02-18  Havoc Pennington  <hp@pobox.com>
12646
12647         * dbus/dbus-string.c (_dbus_string_zero): new function
12648
12649         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12650         wrap it in some dbus-friendly API
12651
12652         * dbus/dbus-types.h: add 16-bit types
12653
12654 2003-02-18  Joe Shaw  <joe@assbarn.com>
12655
12656         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12657         credentials from our currently running process.
12658         (get_word): Fix a buglet where we were copying the entire length
12659         instead of relative to our position.
12660
12661         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12662         keys on the stack... it's 640k of data.
12663
12664         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12665         read the credentials byte off the socket, even if we don't have
12666         SO_PEERCRED.
12667         (_dbus_poll): Implement poll() using select() for systems which
12668         don't have it.
12669
12670         * glib/test-dbus-glib.c (main): Print out an error if no
12671         parameters are given.
12672
12673         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12674         can fallback to a secondary auth mechanism if the first fails.
12675
12676 2003-02-18  Havoc Pennington  <hp@pobox.com>
12677
12678         * AUTHORS: add Alex
12679
12680 2003-02-17  Havoc Pennington  <hp@pobox.com>
12681
12682         * doc/dbus-specification.sgml: lots of cosmetic
12683         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12684         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12685         s/server/bus/ (except in authentication section). Add a section
12686         "Message Bus Message Routing"
12687
12688 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12689
12690         Release 0.4
12691
12692         * NEWS: Update
12693
12694 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12695
12696         * doc/dbus-specification.sgml:
12697         Specification updates.
12698
12699 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12700
12701         * bus/activation.c: (bus_activation_init), (child_setup),
12702         (bus_activation_activate_service):
12703         * bus/activation.h:
12704         * bus/main.c: (main):
12705         Set DBUS_ADDRESS environment variable.
12706
12707         * dbus/dbus-errors.c: (dbus_set_error):
12708         Don't use va_copy since that's a C99 feature.
12709
12710         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12711         (_dbus_spawn_async):
12712         * dbus/dbus-sysdeps.h:
12713         Add child_setup_func to _dbus_spawn_async.
12714
12715         * doc/dbus-specification.sgml:
12716         Update specification.
12717
12718         * test/spawn-test.c: (setup_func), (main):
12719         Fix test.
12720
12721 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12722
12723         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12724         Added todo.
12725
12726 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12727
12728         * doc/.cvsignore:
12729         * doc/Makefile.am:
12730         * doc/dbus-test-plan.sgml:
12731         Add test plan document.
12732
12733         * test/Makefile.am:
12734         Fix distcheck.
12735
12736 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12737
12738         * dbus/dbus-message.c: (decode_header_data),
12739         (_dbus_message_loader_return_buffer):
12740         Set the header padding amount when loading a message.
12741
12742 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12743
12744         * bus/dispatch.c: (send_one_message):
12745         Only send broadcast messages to registered connections.
12746
12747         * dbus/dbus-message.c: (dbus_message_name_is):
12748         * dbus/dbus-message.h:
12749         New convenience function.
12750
12751         * dbus/dbus-transport-debug.c: (do_reading):
12752         Only dispatch one message per run.
12753
12754         * test/Makefile.am:
12755         * test/bus-test.c: (new_connection_callback), (die),
12756         (test_hello_client1_handler), (test_hello_client2_handler),
12757         (test_hello_replies), (main):
12758
12759         * test/bus-test-loop.[ch]:
12760         Add these.
12761
12762 2003-02-16  Havoc Pennington  <hp@pobox.com>
12763
12764         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12765         backward conditional
12766
12767 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12768
12769         * dbus/dbus-connection.c:
12770         Implement sent_message_with_reply. (with_reply_and block is still
12771         busted).
12772         Made dispatch_message not lose message if OOM.
12773
12774         * dbus/dbus-errors.h:
12775         Add NoReply error (for reply timeouts).
12776
12777 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12778
12779         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12780         Actually free keys and values when destroying hashtable.
12781
12782 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12783
12784         * dbus/dbus-auth.c: (client_try_next_mechanism):
12785         Plug a leak.
12786
12787         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12788         Return TRUE if there's no thread implementation around.
12789
12790         * glib/dbus-gmain.c: (free_source),
12791         (dbus_connection_hookup_with_g_main):
12792         Make sure to remove the GSource when the connection is finalized.
12793
12794 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12795
12796         * bus/dispatch.c: (bus_dispatch_message_handler):
12797         * dbus/dbus-errors.h:
12798         Return an error if someone tries to send a message to a service
12799         that doesn't exist.
12800
12801 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12802
12803         * bus/activation.c: (load_directory), (bus_activation_init),
12804         (bus_activation_activate_service):
12805         * bus/activation.h:
12806         * bus/driver.c:
12807         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12808         More work on the activation handling.
12809
12810         * dbus/dbus-errors.h:
12811         Add some error messages
12812
12813         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12814         * dbus/dbus-message.h:
12815         New function that creates an error message.
12816
12817         * dbus/dbus-protocol.h:
12818         Add ACTIVATE_SERVER message.
12819
12820         * dbus/dbus-server-unix.c: (unix_handle_watch),
12821         (_dbus_server_new_for_domain_socket):
12822         Call _dbus_fd_set_close_on_exec.
12823
12824         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12825         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12826         (_dbus_fd_set_close_on_exec):
12827         * dbus/dbus-sysdeps.h:
12828         Add _dbus_fd_set_close_on exec function. Also add function that checks
12829         that all open fds are set to close-on-exec and warns otherwise.
12830
12831         * dbus/dbus-transport-unix.c:
12832         (_dbus_transport_new_for_domain_socket):
12833         Call _dbus_fd_set_close_on_exec.
12834
12835 2003-02-16  Havoc Pennington  <hp@pobox.com>
12836
12837         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12838         allow people to avoid setting SIGPIPE to SIG_IGN
12839         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12840         we've been asked not to
12841
12842 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12843
12844         * dbus/dbus-list.c: (_dbus_list_append_link),
12845         (_dbus_list_prepend_link):
12846         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12847         (dbus_realloc):
12848         Warning fixes.
12849
12850 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12851
12852         * bus/Makefile.am:
12853         * bus/activation.c: (bus_activation_entry_free),
12854         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12855         * bus/activation.h:
12856         * bus/main.c: (main):
12857         Add simple activation support, doesn't work yet though.
12858
12859 2003-02-15   Zack Rusin  <zack@kde.org>
12860
12861         * qt/dbus-qthread.cpp:  small casting fix
12862
12863 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12864
12865         * dbus/dbus-errors.c: (dbus_set_error):
12866         * dbus/dbus-errors.h:
12867         Add a few errors and make dbus_set_error void.
12868
12869         * dbus/dbus-sysdeps.c:
12870         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12871         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12872         * dbus/dbus-sysdeps.h:
12873         Add _dbus_spawn_async.
12874
12875         * test/spawn-test.c: (main):
12876         Test for _dbus_spawn_async.
12877
12878 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12879
12880         * dbus/dbus-internals.h:
12881         Fix build without tests.
12882
12883         * dbus/dbus-list.c: (alloc_link):
12884         Fix a segfault when a malloc fails.
12885
12886         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12887         (dbus_malloc0), (dbus_realloc):
12888         Add support for malloc debugging.
12889
12890 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12891
12892         * dbus/dbus-threads.c:
12893         * dbus/dbus-threads.h:
12894         Add condvars. Remove static mutext from API.
12895         Implement static mutexes by initializing them from threads_init.
12896
12897         * glib/dbus-gthread.c:
12898         * qt/dbus-qthread.cpp:
12899         Update with the thread api changes.
12900
12901
12902         * dbus/dbus-list.c:
12903         * dbus/dbus-list.h:
12904         Turn StaticMutex into normal mutex + init function.
12905         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12906         _dbus_list_append_link, _dbus_list_prepend_link
12907
12908
12909         * dbus/dbus-sysdeps.c:
12910         * dbus/dbus-sysdeps.h:
12911         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12912         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12913
12914         * dbus/dbus-protocol.h:
12915         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12916
12917         * dbus/dbus-message.c:
12918         Make ref/unref atomic.
12919         Fix some docs.
12920
12921         * dbus/dbus-connection-internal.h:
12922         * dbus/dbus-connection.c:
12923         * dbus/dbus-connection.h:
12924         Make threadsafe.
12925         Change _peek to _borrow,_return & _steal_borrowed.
12926         Change disconnect callback to event.
12927         Make dbus_connection_dispatch_messages reentrant.
12928
12929         * dbus/dbus-transport.c:
12930         Don't ref the connection on calls to the transport
12931         implementation.
12932
12933         * dbus/dbus-message-handler.c:
12934         Make threadsafe.
12935
12936         * glib/dbus-gmain.c:
12937         Don't use peek_message anymore
12938
12939         * test/Makefile.am:
12940         * test/debug-thread.c:
12941         * test/debug-thread.h:
12942         Simple thread implementation that asserts() on deadlocks in
12943         single-threaded code.
12944
12945         * test/bus-test.c:
12946         (main) Call debug_threads_init.
12947
12948         * test/watch.c:
12949         Use disconnect message instead of disconnect callback.
12950
12951         * bus/connection.c:
12952         * bus/connection.h:
12953         Don't call dbus_connection_set_disconnect_function. Instead export
12954         bus_connection_disconnect.
12955
12956         * bus/dispatch.c:
12957         Call bus_connection_disconnect when we get a disconnected message.
12958
12959 2003-02-15  Havoc Pennington  <hp@pobox.com>
12960
12961         * dbus/dbus-message.c (dbus_message_new): fool around with the
12962         docs
12963
12964 2003-02-14  Havoc Pennington  <hp@pobox.com>
12965
12966         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12967
12968         * dbus/dbus-memory.c: fail if the debug functions indicate we
12969         should
12970
12971         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12972         (_dbus_decrement_fail_alloc_counter): debug functions to
12973         simulate memory allocation failures
12974
12975 2003-02-14  Havoc Pennington  <hp@pobox.com>
12976
12977         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12978         to DBusError
12979
12980 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12981
12982         * bus/driver.c: (bus_driver_handle_hello):
12983         * bus/driver.h:
12984         * bus/services.c: (bus_service_lookup):
12985         Reorder message sending so we get a more sane order.
12986
12987         * test/bus-test.c: (message_handler):
12988         Fix tyop.
12989
12990 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12991
12992         * bus/driver.c: (bus_driver_send_service_deleted),
12993         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12994         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12995         (bus_driver_send_welcome_message),
12996         (bus_driver_handle_list_services),
12997         (bus_driver_handle_acquire_service),
12998         (bus_driver_handle_service_exists):
12999         * dbus/dbus-bus.c: (dbus_bus_register_client),
13000         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13001         * dbus/dbus-errors.c: (dbus_result_to_string):
13002         * dbus/dbus-errors.h:
13003         * dbus/dbus-message.c: (dbus_message_append_args),
13004         (dbus_message_append_args_valist), (dbus_message_get_args),
13005         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13006         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13007         (dbus_message_iter_get_byte_array),
13008         (dbus_message_iter_get_string_array), (message_iter_test),
13009         (check_message_handling), (_dbus_message_test):
13010         * dbus/dbus-message.h:
13011         * test/bus-test.c: (main):
13012         Change fields to arguments in messages, so that they won't be
13013         confused with header fields.
13014
13015         * glib/test-dbus-glib.c: (main):
13016         Remove append_fields from hello message.
13017
13018 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13019
13020         * dbus/dbus-errors.c:
13021         * dbus/dbus-message.c:
13022         * dbus/dbus-string.c:
13023         Documentation fixes.
13024
13025 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13026
13027         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13028         (remove_timeout):
13029         Implement support for timeouts in dbus-glib.
13030
13031 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13032
13033         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13034         * dbus/dbus-message.c: (process_test_subdir):
13035         * test/break-loader.c: (find_breaks_based_on):
13036         Plug some memory leaks.
13037
13038 2003-02-13  Richard Hult  <rhult@codefactory.se>
13039
13040         * bus/main.c: Fix build.
13041
13042         * dbus/dbus-errors.h:
13043         * dbus/dbus-errors.c: Fix copyright for Anders.
13044
13045 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13046
13047         * bus/Makefile.am:
13048         Add utils.[ch]
13049
13050         * bus/connection.c: (bus_connection_foreach):
13051         Fix a warning.
13052
13053         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13054         (unescape_string), (new_section), (parse_section_start),
13055         (parse_key_value), (report_error), (bus_desktop_file_load),
13056         (bus_desktop_file_get_string):
13057         * bus/desktop-file.h:
13058         Use DBusError for error reporting.
13059
13060         * bus/dispatch.c: (send_one_message),
13061         (bus_dispatch_message_handler):
13062         * bus/driver.c: (bus_driver_send_service_deleted),
13063         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13064         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13065         (bus_driver_send_welcome_message),
13066         (bus_driver_handle_list_services),
13067         (bus_driver_handle_acquire_service),
13068         (bus_driver_handle_service_exists):
13069         * bus/loop.c: (bus_loop_run):
13070         * bus/main.c:
13071         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13072
13073         * bus/utils.c: (bus_wait_for_memory):
13074         * bus/utils.h:
13075         New files with general utility functions.
13076
13077         * dbus/dbus-internals.h:
13078         Remove _DBUS_HANDLE_OOM.
13079
13080 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13081
13082         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13083         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13084         * dbus/dbus-errors.h:
13085         Add DBusError structure.
13086
13087 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13088
13089         * test/data/valid-messages/standard-acquire-service.message:
13090         * test/data/valid-messages/standard-hello.message:
13091         * test/data/valid-messages/standard-list-services.message:
13092         * test/data/valid-messages/standard-service-exists.message:
13093         Add some standard messages.
13094
13095 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13096
13097         * bus/driver.c: (bus_driver_send_welcome_message),
13098         (bus_driver_handle_list_services),
13099         (bus_driver_handle_acquire_service),
13100         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13101         Update for API changes in libdbus.
13102
13103         * dbus/dbus-message.c: (dbus_message_new_reply):
13104         * dbus/dbus-message.h:
13105         Remove the name argument. The spec states that replies shouldn't
13106         have a name.
13107
13108 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13109
13110         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13111         (report_error), (bus_desktop_file_load), (lookup_section),
13112         (lookup_line), (bus_desktop_file_get_raw),
13113         (bus_desktop_file_get_string):
13114         * bus/desktop-file.h:
13115         Some fixes, and new functions for getting a key value from a section.
13116
13117 2003-02-13  Havoc Pennington  <hp@pobox.com>
13118
13119         * test/data/auth/fail-after-n-attempts.auth-script: new test
13120
13121         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13122         reject the client.
13123
13124 2003-02-13  Havoc Pennington  <hp@pobox.com>
13125
13126         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13127         dbus_credentials_match were backward
13128
13129         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13130         NO_CREDENTIALS and ROOT_CREDENTIALS
13131
13132         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13133         into here. Never process more commands after we've reached an
13134         end state; store further data as unused bytes.
13135
13136         * test/data/auth/*: add more auth tests
13137
13138         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13139         command to match exact string and EXPECT_UNUSED to match unused
13140         bytes
13141
13142         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13143
13144 2003-02-12  Havoc Pennington  <hp@pobox.com>
13145
13146         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13147         \r off of popped lines
13148
13149         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13150         scripts
13151
13152         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13153         SEND, append \r\n
13154
13155 2003-02-12  Havoc Pennington  <hp@pobox.com>
13156
13157         * dbus/Makefile.am: remove break-loader from the build, since it
13158         moved.
13159
13160         * configure.in: add --enable-gcov to turn on coverage profiling
13161         flags and disable optimization
13162
13163 2003-02-10  Havoc Pennington  <hp@pobox.com>
13164
13165         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13166         initial cut at test framework for DBusAuth from laptop.
13167         Doesn't quite work yet but it compiles and I need to get
13168         it off the 266mhz laptop. ;-)
13169
13170         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13171         fix a memleak in error case
13172
13173 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13174
13175         * bus/Makefile.am:
13176         * bus/desktop-file.c:
13177         * bus/desktop-file.h:
13178         Add a desktop file parser.
13179
13180 2003-02-11  Zack Rusin  <zack@kde.org>
13181
13182         * qt/message.[h|cpp]: sample implementation
13183         of the KDE wrapper for DBusMessage
13184
13185 2003-02-09  Zack Rusin  <zack@kde.org>
13186
13187         * test/bus-test.c: make_it_compile
13188         * doc/dbus-specification.sgml: minimal semantic fix
13189
13190 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13191
13192         Release 0.3
13193
13194         * NEWS: Update
13195
13196 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13197
13198         * dbus/Makefile.am:
13199         * dbus/dbus-break-loader.c:
13200         * test/Makefile.am:
13201         * test/break-loader.c:
13202         Move dbus-break-loader to test/ and rename it to break-loader.
13203
13204 2003-02-02  Havoc Pennington  <hp@pobox.com>
13205
13206         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13207         for code to manage cookies in your home directory
13208
13209         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13210
13211         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13212         to authenticate, then disconnect the client.
13213
13214 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13215
13216         * dbus/dbus-message.c (dbus_message_append_fields):
13217         Correct docs.
13218
13219 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13220
13221         * doc/dbus-specification.sgml:
13222         Update address format section.
13223
13224 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13225
13226         * test/Makefile.am:
13227         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13228         (message_handler), (new_connection_callback), (loop_quit),
13229         (loop_run), (main):
13230         Add bus test.
13231
13232 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13233
13234         * bus/driver.c: (bus_driver_handle_service_exists):
13235         Simplify the code a bit.
13236
13237         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13238         Fix a silly.
13239
13240 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13241
13242         * bus/Makefile.am:
13243         Add libdbus-daemon.la and link to it.
13244
13245 2003-02-01  James Willcox  <jwillcox@gnome.org>
13246
13247         * bus/driver.c: (bus_driver_handle_own_service):
13248         Actually include the service reply code in the message.
13249
13250 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13251
13252         * bus/driver.c: (bus_driver_handle_service_exists):
13253         Don't unref the incoming message.
13254
13255 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13256
13257         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13258
13259 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13260
13261         * dbus/dbus-server.c: (dbus_server_listen):
13262         * dbus/dbus-transport.c: (_dbus_transport_open):
13263         ifdef out the calls to the debug transport and server.
13264
13265 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13266
13267         * dbus/dbus-watch.c (dbus_watch_get_flags):
13268         Add note in the docs that ERROR or HANGUP won't be returned
13269         and are assumed always on.
13270
13271         * glib/dbus-gmain.c (add_watch):
13272         Always add IO_ERR | IO_HUP
13273
13274         * dbus/dbus-message.h:
13275         Add semicolon after dbus_message_iter_get_string_array().
13276         Makes qt code build again
13277
13278 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13279
13280         * bus/driver.c: (create_unique_client_name),
13281         (bus_driver_handle_hello):
13282         Don't take a name, just use a numeric id to identify
13283         each client.
13284
13285         * dbus/Makefile.am:
13286         * dbus/dbus-bus.c: (dbus_bus_register_client),
13287         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13288         * dbus/dbus-bus.h:
13289         Add new convenience functions for communicating with the bus.
13290
13291         * dbus/dbus-message.h:
13292
13293         * dbus/dbus-protocol.h:
13294         Fix a typo.
13295
13296 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13297
13298         * dbus/dbus-message.c (dbus_message_append_fields):
13299         Add some more doc comments.
13300
13301 2003-02-01  Havoc Pennington  <hp@pobox.com>
13302
13303         * dbus/dbus-break-loader.c (randomly_modify_length): change
13304         a 4-byte value in the message as if it were a length
13305
13306         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13307         execute bit on saved files
13308
13309 2003-02-01  Havoc Pennington  <hp@pobox.com>
13310
13311         * dbus/dbus-break-loader.c (main): new program to find messages
13312         that break the loader.
13313
13314         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13315         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13316
13317         * dbus/dbus-string.c (_dbus_string_set_byte): new
13318
13319 2003-01-31  Havoc Pennington  <hp@pobox.com>
13320
13321         * dbus/dbus-message.c: refactor the test code to be more general,
13322         in preparation for writing a "randomly permute test cases to
13323         try to break the loader" program.
13324
13325 2003-01-31  Havoc Pennington  <hp@pobox.com>
13326
13327         * doc/dbus-specification.sgml: work on the specification
13328
13329         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13330         the protocol version of the message.
13331
13332         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13333         no longer specifies that.
13334         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13335         1/2/3/4)
13336
13337         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13338         "break" for DBUS_TYPE_NIL, remove @todo
13339
13340 2003-01-31  Havoc Pennington  <hp@pobox.com>
13341
13342         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13343         just set_is_error/get_is_error as this is a commonly-used
13344         function, and write docs.
13345
13346 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13347
13348         * dbus/dbus-address.c: (dbus_address_entry_free):
13349         Free key and value lists.
13350
13351         * dbus/dbus-internals.c: (_dbus_type_to_string):
13352         Add the types we didn't have.
13353
13354         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13355         (_dbus_marshal_validate_arg):
13356         Add NIL types.
13357
13358         * dbus/dbus-message.c: (dbus_message_set_sender):
13359         Remove todo about being able to set sender to NULL.
13360
13361         (dbus_message_set_is_error_reply),
13362         (dbus_message_get_is_error_reply):
13363         * dbus/dbus-message.h:
13364         New functions.
13365
13366         * dbus/dbus-protocol.h:
13367         Add error reply flag.
13368
13369         * test/data/valid-messages/opposite-endian.message:
13370         Add NIL type to test.
13371
13372 2003-01-31  Havoc Pennington  <hp@pobox.com>
13373
13374         * doc/dbus-specification.sgml: fully specify the header.  Add
13375         flags and major protocol version, and change header/body len to
13376         unsigned.
13377
13378         * dbus/dbus-message-builder.c (append_saved_length): append length
13379         as uint32
13380
13381         * dbus/dbus-message.c (dbus_message_create_header): change header
13382         length and body length to unsigned. Add the new fields from the
13383         spec
13384         (_dbus_message_loader_return_buffer): unsigned header/body len
13385
13386 2003-01-30  Havoc Pennington  <hp@pobox.com>
13387
13388         * dbus/dbus-auth.c: rework to use only REJECTED, no
13389         MECHANISMS
13390
13391         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13392         use REJECTED, suggested by Mark McLoughlin
13393
13394 2003-01-30  Havoc Pennington  <hp@pobox.com>
13395
13396         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13397         a better way to report errors here. e.g.  "unix address lacks
13398         path" or something. also "no such file" when the path doesn't
13399         exist, etc.
13400
13401         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13402         leaking list nodes
13403         (dbus_parse_address): add @todo about documenting address format,
13404         and allowing , and ; to be escaped
13405
13406 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13407
13408         * dbus/Makefile.am:
13409         Add dbus-address.[ch]
13410
13411         * dbus/dbus-address.c: (dbus_address_entry_free),
13412         (dbus_address_entries_free), (create_entry),
13413         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13414         (dbus_parse_address), (_dbus_address_test):
13415         * dbus/dbus-address.h:
13416         New files for dealing with address parsing.
13417
13418         * dbus/dbus-connection.c:
13419         Document timeout functions.
13420
13421         * dbus/dbus-message.c:
13422         Document dbus_message_new_from_message.
13423
13424         * dbus/dbus-server-debug.c:
13425         Document.
13426
13427         * dbus/dbus-server.c: (dbus_server_listen):
13428         Parse address and use correct server implementation.
13429
13430         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13431         * dbus/dbus-string.h:
13432         New function with test.
13433
13434         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13435         * dbus/dbus-test.h:
13436         Add address tests.
13437
13438         * dbus/dbus-transport-debug.c:
13439         Document.
13440
13441         * dbus/dbus-transport.c: (_dbus_transport_open):
13442         Parse address and use correct transport implementation.
13443
13444 2003-01-30  Havoc Pennington  <hp@pobox.com>
13445
13446         * dbus/dbus-message.c: use message->byte_order instead of
13447         DBUS_COMPILER_BYTE_ORDER throughout.
13448         (dbus_message_create_header): pad header to align the
13449         start of the body of the message to 8-byte boundary
13450
13451         * dbus/dbus-marshal.h: make all the demarshalers take const
13452         DBusString arguments.
13453
13454         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13455         validate message args here, so we don't have to do slow validation
13456         later, and so we catch bad messages as they are incoming. Also add
13457         better checks on header_len and body_len. Also fill in
13458         message->byte_order
13459
13460         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13461         implemented properly)
13462         (_dbus_string_validate_nul): new function to check all-nul
13463
13464         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13465         get_arg_end_pos and remove all validation
13466         (_dbus_marshal_validate_arg): actually do validation here.
13467
13468 2003-01-29  Havoc Pennington  <hp@pobox.com>
13469
13470         * dbus/dbus-message.c (check_message_handling): fix assertion
13471         failure on set_client_serial
13472
13473 2003-01-28  Havoc Pennington  <hp@pobox.com>
13474
13475         * dbus/dbus-server-debug.c: Add doc section comments
13476
13477         * dbus/dbus-transport-debug.c: add doc section comments
13478
13479 2003-01-28  Havoc Pennington  <hp@redhat.com>
13480
13481         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13482         the reverse order from how I had it
13483         (_dbus_string_base64_encode): reverse encoding order. I was
13484         basically byteswapping everything during encoding.
13485
13486 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13487
13488         * dbus/dbus-connection-internal.h:
13489         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13490         (_dbus_connection_remove_timeout):
13491         Add functions for adding and removing timeouts.
13492
13493         * dbus/dbus-message.c: (dbus_message_new_from_message):
13494         Add new function that takes a message and creates an exact
13495         copy of it, but with the refcount set to 1.
13496         (check_message_handling):
13497         Fix build error.
13498
13499         * dbus/dbus-server-protected.h:
13500         * dbus/dbus-server.c: (_dbus_server_init_base),
13501         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13502         (dbus_server_set_timeout_functions):
13503         (_dbus_server_remove_timeout):
13504         New functions so that a server can add and remove timeouts.
13505
13506         (dbus_server_listen):
13507         Add commented out call to dbus_server_debug_new.
13508
13509         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13510         Actually set the handler, doh.
13511
13512         * dbus/dbus-transport.c: (_dbus_transport_open):
13513         Add commented out call to dbus_transport_debug_client_new.
13514
13515         * dbus/Makefile.am:
13516         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13517
13518 2003-01-28  Havoc Pennington  <hp@pobox.com>
13519
13520         * dbus/dbus-message.c (check_message_handling): function to check
13521         on the loaded message, iterates over it etc.
13522
13523 2003-01-28  Havoc Pennington  <hp@pobox.com>
13524
13525         * test/Makefile.am (dist-hook): fix make distdir
13526
13527         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13528
13529 2003-01-27  Havoc Pennington  <hp@pobox.com>
13530
13531         * dbus/dbus-mempool.c (time_for_size): replace printf with
13532         _dbus_verbose
13533
13534         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13535         empty lines; fix the SAVE_LENGTH stuff to be
13536         START_LENGTH/END_LENGTH so it actually works; couple other
13537         bugfixes
13538
13539         * test/Makefile.am (dist-hook): add dist-hook for .message files
13540
13541         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13542         can be constant or locked.
13543         (_dbus_string_free): allow freeing a const string as
13544         documented/intended
13545
13546         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13547
13548         * dbus/dbus-test-main.c (main): take an argument which is the
13549         directory containing test data
13550
13551         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13552         argument to this and load all the messages in test/data/
13553         checking that they can be loaded or not loaded as appropriate.
13554
13555 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13556
13557         * bus/dispatch.c: (bus_dispatch_message_handler):
13558         Dispatch messages sent to services.
13559
13560         * bus/driver.c: (bus_driver_send_service_deleted),
13561         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13562         (bus_driver_send_service_acquired):
13563         Add helper functions for sending service related messages.
13564
13565         (bus_driver_send_welcome_message):
13566         Send HELLO_REPLY instead of WELCOME.
13567
13568         (bus_driver_handle_list_services):
13569         Send LIST_SERVICES_REPLY instead of SERVICES.
13570
13571         (bus_driver_handle_own_service),
13572         (bus_driver_handle_service_exists):
13573         New message handlers.
13574
13575         (bus_driver_handle_message):
13576         Invoke new message handlers.
13577
13578         (bus_driver_remove_connection):
13579         Don't remove any services here since that's done automatically
13580         by bus_service_remove_owner now.
13581
13582         * bus/driver.h:
13583         New function signatures.
13584
13585         * bus/services.c: (bus_service_add_owner):
13586         Send ServiceAcquired message if we're the only primary owner.
13587
13588         (bus_service_remove_owner):
13589         Send ServiceAcquired/ServiceLost messages.
13590
13591         (bus_service_set_prohibit_replacement),
13592         (bus_service_get_prohibit_replacement):
13593         Functions for setting prohibit replacement.
13594
13595         (bus_service_has_owner):
13596         New function that checks if a connection is in the owner queue of
13597         a certain service.
13598
13599         * bus/services.h:
13600         Add new function signatures.
13601
13602         * dbus/dbus-list.c: (_dbus_list_test):
13603         Add tests for _dbus_list_remove_last and traversing the list backwards.
13604
13605         * dbus/dbus-list.h:
13606         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13607         go any further, so return NULL then.
13608
13609         * dbus/dbus-protocol.h:
13610         Add new messages, service flags and service replies.
13611
13612 2003-01-26  Havoc Pennington  <hp@pobox.com>
13613
13614         * dbus/dbus-message-builder.c: implement, completely untested.
13615
13616         * test/data/*: add data to be used in testing.
13617         ".message" files are our simple loadable text format.
13618         ".message-raw" will be binary dumps of messages.
13619
13620         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13621
13622 2003-01-26  Havoc Pennington  <hp@pobox.com>
13623
13624         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13625
13626         * dbus/dbus-errors.c (dbus_result_to_string): add
13627         file errors
13628
13629         * dbus/dbus-message-builder.c: new file, will contain code to load
13630         up messages from files. Not implemented yet.
13631
13632 2003-01-26  Havoc Pennington  <hp@pobox.com>
13633
13634         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13635         the sender by setting to NULL
13636
13637 2003-01-26  Havoc Pennington  <hp@pobox.com>
13638
13639         The unit tests pass, but otherwise untested.  If it breaks, the
13640         tests should have been better. ;-)
13641
13642         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13643         the connection.
13644
13645         * dbus/dbus-message.c: redo everything so we maintain
13646         message->header as the only copy of the various fields.
13647         This avoids the possibility of out-of-memory in some cases,
13648         for example dbus_message_lock() can't run out of memory anymore,
13649         and avoids extra copying. Figured I may as well go ahead and do
13650         this since it was busted for dbus_message_lock to not return
13651         failure on OOM, and dbus_message_write_header was totally
13652         unchecked for OOM. Also fixed some random other bugs.
13653
13654         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13655         that strings are nul-terminated. Also, end_pos can be equal
13656         to string length just not greater than, I think.
13657         (_dbus_marshal_set_int32): new function
13658         (_dbus_marshal_set_uint32): new function
13659         (_dbus_marshal_set_string): new function
13660
13661         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13662         a warning, init timeout_list to NULL
13663         (dbus_connection_send_message): don't use uninitialized variable
13664         "serial"
13665
13666         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13667
13668 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13669
13670         * bus/driver.c: (bus_driver_handle_hello),
13671         (bus_driver_send_welcome_message):
13672         Plug leaks
13673
13674 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13675
13676         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13677         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13678         (dbus_connection_unref):
13679         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13680         * dbus/dbus-message.c: (dbus_message_unref),
13681         Plug memory leaks.
13682
13683         (dbus_message_get_fields):
13684         Remove debugging printout.
13685
13686         (_dbus_message_loader_return_buffer):
13687         Don't store the header string.
13688
13689         (_dbus_message_test):
13690         Plug leaks.
13691
13692 2003-01-26  Richard Hult  <rhult@codefactory.se>
13693
13694         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13695         the file descriptor list, since it can change under us.
13696
13697 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13698
13699         * glib/dbus-gmain.c: (dbus_connection_prepare),
13700         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13701         (remove_watch), (dbus_connection_hookup_with_g_main):
13702         Rewrite the glib handling to use its own GSource instead of a
13703         GIOChannel so we can catch messages put in the queue while waiting
13704         for a reply.
13705
13706 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13707
13708         * bus/Makefile.am:
13709         * bus/connection.c: (connection_disconnect_handler),
13710         (connection_watch_callback), (bus_connection_setup):
13711         * bus/dispatch.c: (send_one_message),
13712         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13713         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13714         * bus/dispatch.h:
13715         * bus/driver.c: (bus_driver_send_service_deleted),
13716         (bus_driver_send_service_created), (bus_driver_handle_hello),
13717         (bus_driver_send_welcome_message),
13718         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13719         (bus_driver_handle_message):
13720         * bus/driver.h:
13721         Refactor code, put the message dispatching in its own file. Use
13722         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13723         is disconnected.
13724
13725 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13726
13727         * dbus/dbus-internals.h:
13728         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13729
13730         * dbus/dbus-message.c: (dbus_message_get_sender):
13731         * dbus/dbus-message.h:
13732         Implement dbus_message_get_sender.
13733
13734         * dbus/dbus-protocol.h:
13735         Add message and service defines.
13736
13737 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13738
13739         * dbus/dbus-connection.c: (dbus_connection_send_message):
13740         * dbus/dbus-message-internal.h:
13741         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13742         (dbus_message_write_header):
13743         Remove _dbus_messag_unlock and don't set the client serial on a
13744         message if one already exists.
13745
13746 2003-01-24  Havoc Pennington  <hp@pobox.com>
13747
13748         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13749         list_pool
13750
13751         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13752         on OOM
13753
13754 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13755
13756         * dbus/dbus-list.c: (alloc_link), (free_link):
13757         Use a memory pool for the links.
13758
13759 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13760
13761         * bus/connection.c: (bus_connection_foreach):
13762         * bus/connection.h:
13763         Add new bus_connection_foreach function.
13764
13765         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13766         Add function that broadcasts a message to all clients.
13767
13768         (bus_driver_send_service_created), (bus_driver_handle_hello),
13769         (bus_driver_send_welcome_message),
13770         (bus_driver_handle_list_services), (bus_driver_message_handler):
13771         Implement functions that take care of listing services, and notifying
13772         clients when new services are created.
13773
13774         * bus/services.c: (bus_services_list):
13775         * bus/services.h:
13776         Add new function that returns an array of strings with the currently
13777         registered services.
13778
13779         * glib/dbus-glib.h:
13780         * glib/dbus-gmain.c:
13781         Update copyright year.
13782
13783 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13784
13785         * dbus/dbus-connection.c: (dbus_connection_send_message):
13786         Unlock the message in case it was sent earlier.
13787
13788         (dbus_connection_send_message_with_reply_and_block):
13789         Remove the reply message from the list.
13790
13791         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13792         Set array_len and new_pos correctly.
13793
13794         (_dbus_marshal_test):
13795         Remove debug output.
13796
13797         * dbus/dbus-message-internal.h:
13798         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13799         New function that returns the reply serial.
13800
13801         (_dbus_message_unlock):
13802         New function that unlocks a message and resets its header.
13803
13804         (dbus_message_append_string_array),
13805         (dbus_message_get_fields_valist),
13806         (dbus_message_iter_get_field_type),
13807         (dbus_message_iter_get_string_array),
13808         (dbus_message_get_fields),
13809         (dbus_message_append_fields_valist):
13810         Handle string arrays.
13811
13812         (dbus_message_set_sender):
13813         Make this function public since the bus daemon needs it.
13814
13815         (decode_header_data):
13816         Set the reply serial to -1 initially.
13817
13818         * dbus/dbus-message.h:
13819         Add dbus_message_set_sender.
13820
13821 2003-01-24  Havoc Pennington  <hp@pobox.com>
13822
13823         * doc/dbus-specification.sgml: add some stuff
13824
13825 2003-01-22  Havoc Pennington  <hp@pobox.com>
13826
13827         * doc/dbus-specification.sgml: Start to document the protocol.
13828
13829 2003-01-22  Havoc Pennington  <hp@pobox.com>
13830
13831         * dbus/dbus-connection.c
13832         (dbus_connection_send_message_with_reply_and_block): add some @todo
13833
13834         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13835
13836 2003-01-21  Havoc Pennington  <hp@pobox.com>
13837
13838         (patch untested because can't compile)
13839
13840         * bus/driver.c (create_unique_client_name): make this function
13841         never recycle client names. Also, caller should initialize
13842         the DBusString.
13843
13844         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13845
13846 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13847
13848         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13849         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13850         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13851         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13852         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13853         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13854         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13855         * dbus/dbus-marshal.h:
13856         * dbus/dbus-protocol.h:
13857         Add support for marshalling and demarshalling integer, double
13858         and string arrays.
13859
13860 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13861
13862         * bus/Makefile.am:
13863         Add driver.[ch]
13864
13865         * bus/connection.c: (connection_disconnect_handler):
13866         Remove the connection from the bus driver's list.
13867
13868         (connection_watch_callback): Dispatch messages.
13869
13870         (free_connection_data): Free connection name.
13871
13872         (bus_connection_setup): Add connection to the bus driver's list.
13873         (bus_connection_remove_owned_service):
13874         (bus_connection_set_name), (bus_connection_get_name):
13875         Add functions for setting and getting the connection's name.
13876
13877         * bus/connection.h:
13878         Add function headers.
13879
13880         * bus/driver.c: (create_unique_client_name),
13881         (bus_driver_handle_hello_message),
13882         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13883         (bus_driver_add_connection), (bus_driver_remove_connection):
13884         * bus/driver.h:
13885         * bus/main.c:
13886         * bus/services.c: (bus_service_free):
13887         * bus/services.h:
13888         New file that handles communication and registreation with the bus
13889         itself.
13890
13891 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13892
13893         * dbus/dbus-connection.c: (dbus_connection_send_message):
13894         Add a new client_serial parameter.
13895
13896         (dbus_connection_send_message_with_reply):
13897         Remove a @todo since we've implemented the blocking function.
13898
13899         (dbus_connection_send_message_with_reply_and_block):
13900         New function that sends a message and waits for a reply and
13901         then returns the reply.
13902
13903         * dbus/dbus-connection.h:
13904         Add new functions.
13905
13906         * dbus/dbus-errors.c: (dbus_result_to_string):
13907         * dbus/dbus-errors.h:
13908         Add new DBUS_RESULT.
13909
13910         * dbus/dbus-message-internal.h:
13911         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13912         (_dbus_message_set_sender), (dbus_message_write_header),
13913         (dbus_message_new_reply), (decode_header_data),
13914         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13915         * dbus/dbus-message.h:
13916         Add new functions that set the reply serial and sender.
13917         Also marshal and demarshal them correctly and add test.
13918
13919         * dbus/dbus-protocol.h:
13920         Add new DBUS_MESSAGE_TYPE_SENDER.
13921
13922         * glib/dbus-glib.h:
13923         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13924         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13925         (dbus_connection_hookup_with_g_main):
13926         * glib/test-dbus-glib.c: (main):
13927         Rewrite to use GIOChannel and remove the GSource crack.
13928
13929         * test/echo-client.c: (main):
13930         * test/watch.c: (check_messages):
13931         Update for changed APIs
13932
13933 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13934
13935         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13936
13937         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13938         Create a DBusTimeoutList.
13939         (dbus_connection_set_timeout_functions): Add new function to
13940         set timeout callbacks
13941
13942         * dbus/dbus-connection.h: Add public DBusTimeout API.
13943
13944         * dbus/dbus-message.c: (dbus_message_get_service):
13945         * dbus/dbus-message.h:  New function.
13946
13947         * dbus/dbus-server.c: Fix small doc typo.
13948
13949         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13950
13951 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13952
13953         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13954         of the string, just as long as specified.
13955
13956 2003-01-19  Havoc Pennington  <hp@pobox.com>
13957
13958         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13959         new function
13960
13961         * dbus/dbus-server.c (dbus_server_set_max_connections)
13962         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13963         keep track of current number of connections, and add API for
13964         setting a max (but haven't implemented enforcing the max yet)
13965
13966 2003-01-18  Havoc Pennington  <hp@pobox.com>
13967
13968         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13969         reading/writing if read_watch != NULL or write_watch != NULL.
13970
13971         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13972         the message loader code to actually load message->header and
13973         message->body into the newly-created message.
13974
13975         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13976         in OOM case
13977
13978         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13979         (dbus_connection_get_max_message_size)
13980         (dbus_connection_set_max_live_messages_size)
13981         (dbus_connection_get_max_live_messages_size): implement some
13982         resource limitation functions
13983
13984         * dbus/dbus-resources.c: new file implementing some of the
13985         resource limits stuff
13986
13987         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13988         missing docs, add @todo to handle OOM etc.
13989
13990         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13991         docs
13992
13993 2003-01-18  Havoc Pennington  <hp@pobox.com>
13994
13995         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13996         connection if it hasn't been already.
13997
13998         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13999         replace with DisconnectFunction.
14000
14001 2003-01-18  Havoc Pennington  <hp@pobox.com>
14002
14003         Building --disable-verbose-mode --disable-asserts --disable-tests
14004         cuts the library from 112K to 45K or so
14005
14006         * configure.in: check for varargs macro support,
14007         add --enable-verbose-mode, --enable-asserts.
14008
14009         * dbus/dbus-internals.h (_dbus_assert): support
14010         DBUS_DISABLE_ASSERT
14011         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14012
14013 2003-01-18  Havoc Pennington  <hp@pobox.com>
14014
14015         * dbus/dbus-test.c: include config.h so that tests actually run
14016
14017         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14018         so the failure mode when that assumption fails will be plenty
14019         obvious.
14020
14021 2003-01-18  Havoc Pennington  <hp@pobox.com>
14022
14023         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14024
14025         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14026         the distribution
14027
14028         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14029         since we don't want to use those in make check
14030
14031 2003-01-15  Havoc Pennington  <hp@redhat.com>
14032
14033         Release 0.2
14034
14035         * NEWS: update
14036
14037 2003-01-15  Havoc Pennington  <hp@redhat.com>
14038
14039         * test/Makefile.am: fix so that test source code ends up in the
14040         distribution on make distcheck
14041
14042 2003-01-15  Havoc Pennington  <hp@redhat.com>
14043
14044         Release 0.1.
14045
14046         * NEWS: update
14047
14048 2003-01-15  Havoc Pennington  <hp@redhat.com>
14049
14050         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14051         fix build when --disable-tests
14052
14053         * Makefile.am (EXTRA_DIST): put HACKING in here
14054
14055         * HACKING: document procedure for making a tarball release.
14056
14057 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14058
14059         * bus/connection.c: (connection_error_handler),
14060         (bus_connection_setup):
14061         * bus/main.c: (main):
14062         Make sure that the DBusConnectionData struct is NULLed
14063         out to prevent a segfault.
14064
14065         * dbus/dbus-errors.c: (dbus_result_to_string):
14066         * dbus/dbus-errors.h:
14067         * dbus/dbus-message.c: (dbus_message_get_fields),
14068         (dbus_message_get_fields_valist), (_dbus_message_test):
14069         * dbus/dbus-message.h:
14070         Make dbus_message_get_fields return a result code so we can
14071         track invalid fields as well as oom.
14072
14073 2003-01-11  Havoc Pennington  <hp@pobox.com>
14074
14075         * configure.in: change --enable-test/--enable-ansi action-if-given
14076         to enable_foo=$enableval instead of enable_foo=yes
14077
14078 2003-01-08  Havoc Pennington  <hp@pobox.com>
14079
14080         * dbus/dbus-string.c (_dbus_string_align_length): new function
14081
14082         * dbus/dbus-test-main.c: move main() for test app here
14083         * dbus/dbus-test.c
14084         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14085         symbol to run tests, because dbus-test isn't in the main
14086         library
14087
14088         Code review nitpicks.
14089
14090         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14091         for people with narrow emacs ;-). Assert client_serial was filled
14092         in. Assert message->name != NULL.
14093         (dbus_message_append_fields): have "first_field_type" arg separate
14094         from va list, needed for C++ binding that also uses varargs IIRC
14095         and helps with type safety
14096         (dbus_message_new): add @todo about using DBusString to store
14097         service/name internally
14098         (dbus_message_new): don't leak ->service and ->name on OOM later
14099         in the function
14100         (dbus_message_unref): free the service name
14101         (dbus_message_get_fields): same change to varargs
14102         i.e. first_field_type
14103         (_dbus_message_loader_return_buffer): assert that the message data
14104         is aligned (if not it's a bug in our code). Put in verbose griping
14105         about why we set corrupted = TRUE.
14106         (decode_header_data): add FIXME that char* is evil.  Was going to
14107         add FIXME about evil locale-specific string.h strncmp, but just
14108         switched to wacky string-as-uint32 optimization. Move check for
14109         "no room for field name" above get_const_data_len() to avoid
14110         assertion failure in get_const_data_len if we have trailing 2
14111         bytes or the like. Check for service and name fields being
14112         provided twice. Don't leak service/name on error. Require field
14113         names to be aligned to 4 bytes.
14114
14115         * dbus/dbus-marshal.c: move byte swap stuff to header
14116         (_dbus_pack_int32): uscore-prefix
14117         (_dbus_unpack_int32): uscore-prefix
14118         (_dbus_unpack_uint32): export
14119         (_dbus_demarshal_string): add @todo complaining about use of
14120         memcpy()
14121         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14122         handling allowing corrupt data to go unchecked
14123
14124 2003-01-08  Havoc Pennington  <hp@redhat.com>
14125
14126         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14127         to the select() as needed for authentication. (should be using
14128         _dbus_poll() not select, but for another day)
14129
14130         * dbus/dbus.h: include dbus/dbus-protocol.h
14131
14132 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14133
14134         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14135         dbus-connection.h
14136
14137 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14138
14139         * dbus/dbus-internals.c: (_dbus_type_to_string):
14140         New function that returns a string describing a type.
14141
14142         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14143         * dbus/dbus-marshal.h:
14144         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14145         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14146         (dbus_message_iter_get_byte_array):
14147         * dbus/dbus-message.h:
14148         Add new convenience functions for appending and getting message fields.
14149         Also add demarshalling routines for byte arrays.
14150
14151 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14152
14153         * dbus/dbus-connection-internal.h:
14154         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14155         (_dbus_connection_get_next_client_serial),
14156         (dbus_connection_send_message):
14157         * dbus/dbus-internals.h:
14158         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14159         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14160         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14161         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14162         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14163         (_dbus_verbose_bytes), (_dbus_marshal_test):
14164         * dbus/dbus-marshal.h:
14165         * dbus/dbus-message-internal.h:
14166         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14167         (dbus_message_write_header), (_dbus_message_lock),
14168         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14169         (dbus_message_get_name), (dbus_message_append_int32),
14170         (dbus_message_append_uint32), (dbus_message_append_double),
14171         (dbus_message_append_string), (dbus_message_append_byte_array),
14172         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14173         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14174         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14175         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14176         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14177         (decode_header_data), (_dbus_message_loader_return_buffer),
14178         (message_iter_test), (_dbus_message_test):
14179         * dbus/dbus-message.h:
14180         * dbus/dbus-protocol.h:
14181         * dbus/dbus-test.c: (main):
14182         * dbus/dbus-test.h:
14183         * glib/test-dbus-glib.c: (message_handler), (main):
14184         * test/echo-client.c: (main):
14185         * test/watch.c: (check_messages):
14186         Make messages sendable and receivable for real.
14187
14188 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14189
14190         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14191         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14192         * dbus/dbus-message.c: (dbus_message_append_int32),
14193         (dbus_message_append_uint32), (dbus_message_append_double),
14194         (dbus_message_append_string), (dbus_message_append_byte_array):
14195         Handle OOM restoration.
14196
14197 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14198
14199         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14200         (_dbus_demarshal_string), (_dbus_marshal_test):
14201         * dbus/dbus-marshal.h:
14202         * dbus/dbus-message.c: (dbus_message_get_name),
14203         Document these functions.
14204
14205         (dbus_message_append_int32), (dbus_message_append_uint32),
14206         (dbus_message_append_double), (dbus_message_append_string),
14207         (dbus_message_append_byte_array):
14208         * dbus/dbus-message.h:
14209         Add functions for adding message fields of different types.
14210
14211         * dbus/dbus-protocol.h:
14212         Add the different types.
14213
14214 2003-01-05  Havoc Pennington  <hp@pobox.com>
14215
14216         * bus/connection.c: implement routines for handling connections,
14217         first thing is keeping a list of owned services on each connection
14218         and setting up watches etc.
14219
14220         * bus/services.c: implement a mapping from service names to lists
14221         of connections
14222
14223         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14224
14225         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14226         to use static mutexes for global data
14227
14228         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14229         collection of functions to set/get application-specific data
14230         on the DBusConnection.
14231
14232 2003-01-04  Havoc Pennington  <hp@pobox.com>
14233
14234         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14235         (_dbus_poll): new function
14236
14237         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14238         copied from GLib
14239
14240         * bus/loop.c: initial code for the daemon main loop
14241
14242 2003-01-04  Havoc Pennington  <hp@pobox.com>
14243
14244         * test/watch.c (error_handler): make it safe if the error handler
14245         is called multiple times (if we s/error handler/disconnect
14246         handler/ we should just guarantee it's called only once)
14247
14248         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14249         error handler on disconnect (it's quite possible we should
14250         just change the error handler to a "disconnect handler," I'm
14251         not sure we have any other meaningful errors)
14252
14253         * configure.in: check for getpwnam_r
14254
14255         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14256         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14257         mechanism as in SASL spec, using socket credentials
14258
14259         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14260         (_dbus_send_credentials_unix_socket): new function
14261
14262         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14263         dbus_accept()
14264         (_dbus_write): only check errno if <0 returned
14265         (_dbus_write_two): ditto
14266
14267 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14268
14269         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14270         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14271         (_dbus_marshal_test):
14272         * dbus/dbus-marshal.h:
14273         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14274         to _dbus_marshal_utf8_string. Also fix some tests.
14275
14276 2002-12-28  Harri Porten  <porten@kde.org>
14277
14278         * configure.in: added check for C++ compiler and a very cheesy
14279         check for the Qt integration
14280
14281         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14282
14283         * qt/Makefile.am: added
14284
14285         * qt/.cvsignore: added
14286
14287         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14288         latter, added #ifdef QT_THREAD_SUPPORT guard.
14289
14290         * dbus/Makefile.am: added missing headers for make dist
14291
14292 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14293
14294         * dbus/Makefile.am: fixup export-symbols-regex.
14295
14296 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14297
14298         * acinclude.m4: Add this file and put the
14299         PKG_CHECK_MODULE macro in it.
14300
14301 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14302
14303         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14304         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14305         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14306         (_dbus_marshal_test):
14307         Make the demarshalling routines align the pos argument.
14308         Add string marshalling tests and fix the obvious bugs
14309         discovered.
14310
14311 2002-12-26  Havoc Pennington  <hp@pobox.com>
14312
14313         * dbus/dbus-auth.c: fixes fixes fixes
14314
14315         * dbus/dbus-transport-unix.c: wire up support for
14316         encoding/decoding data on the wire
14317
14318         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14319         (_dbus_auth_decode_data): append to target string
14320         instead of nuking it.
14321
14322 2002-12-26  Havoc Pennington  <hp@pobox.com>
14323
14324         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14325         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14326         doh
14327
14328         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14329         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14330         now). Main point is because I wanted unpack_uint32 to implement
14331         _dbus_verbose_bytes
14332         (_dbus_verbose_bytes): new function
14333
14334         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14335
14336         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14337         mechanism to handle a corrupt message stream
14338         (_dbus_message_loader_new): fix preallocation to only prealloc,
14339         not prelengthen
14340
14341         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14342         (_dbus_string_test): enhance tests for copy/move and fix the
14343         functions
14344
14345         * dbus/dbus-transport-unix.c: Hold references in more places to
14346         avoid reentrancy problems
14347
14348         * dbus/dbus-transport.c: ditto
14349
14350         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14351         leak reference count in no-message case
14352
14353         * test/watch.c (do_mainloop): handle adding/removing watches
14354         during iteration over the watches. Also, ref the connection/server
14355         stored on a watch, so we don't try to mangle a destroyed one.
14356
14357         * dbus/dbus-transport-unix.c (do_authentication): perform
14358         authentication
14359
14360         * dbus/dbus-auth.c (get_state): add a state
14361         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14362         (_dbus_auth_get_unused_bytes): append the unused bytes
14363         to the passed in string, rather than prepend
14364
14365         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14366         the auth conversation DBusAuth
14367
14368         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14369         (_dbus_transport_new_for_domain_socket): when creating a
14370         transport, pass in whether it's a client-side or server-side
14371         transport so we know which DBusAuth to create
14372
14373 2002-12-03  Havoc Pennington  <hp@pobox.com>
14374
14375         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14376         _after_ finalizing the derived members
14377         (unix_connection_set): unref watch if we fail to add it
14378
14379         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14380         transport first, so that the connection owned by the
14381         transport will be valid as the transport finalizes.
14382
14383         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14384         if necessary, and remove watches from the connection.
14385
14386         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14387
14388 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14389
14390         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14391         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14392         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14393         (_dbus_marshal_test):
14394         * dbus/dbus-marshal.h:
14395         Add string marshal functions and have the demarshal functions
14396         return the new position.
14397
14398 2002-12-25  Havoc Pennington  <hp@pobox.com>
14399
14400         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14401         it is a simple protocol that just maps directly to SASL.
14402
14403         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14404         initial implementation, not actually used yet.
14405
14406         * dbus/dbus-string.c (_dbus_string_find): new function
14407         (_dbus_string_equal): new function
14408         (_dbus_string_base64_encode): new function
14409         (_dbus_string_base64_decode): new function
14410
14411 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14412
14413         * dbus/Makefile.am:
14414         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14415         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14416         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14417         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14418         * dbus/dbus-marshal.h:
14419         * dbus/dbus-protocol.h:
14420         * dbus/dbus-test.c: (main):
14421         * dbus/dbus-test.h:
14422         Add un-optimized marshalling/demarshalling routines.
14423
14424 2002-12-25  Harri Porten  <porten@kde.org>
14425
14426         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14427
14428 2002-12-24  Zack Rusin  <zack@kde.org>
14429
14430         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14431         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14432         main loop stuff
14433
14434 2002-12-24  Havoc Pennington  <hp@pobox.com>
14435
14436         * glib/dbus-gthread.c: fix include
14437
14438         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14439         I think glib API needs to change, though, as you don't
14440         want to use DBusMessageFunction, you want to use the
14441         DBusMessageHandler object. Probably
14442         dbus_connection_open_with_g_main_loop()
14443         and dbus_connection_setup_g_main_loop() or something like that
14444         (but think of better names...) that just create a connection
14445         that has watch/timeout functions etc. already set up.
14446
14447         * dbus/dbus-connection.c
14448         (dbus_connection_send_message_with_reply): new function just to
14449         show how the message handler helps us deal with replies.
14450
14451         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14452
14453         * dbus/dbus-string.c (_dbus_string_test): free a string that
14454         wasn't
14455
14456         * dbus/dbus-hash.c: use memory pools for the hash entries
14457         (rebuild_table): be more paranoid about overflow, and
14458         shrink table when we can
14459         (_dbus_hash_test): reduce number of sprintfs and write
14460         valid C89. Add tests for case where we grow and then
14461         shrink the hash table.
14462
14463         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14464
14465         * dbus/dbus-connection.c (dbus_connection_register_handler)
14466         (dbus_connection_unregister_handler): new functions
14467
14468         * dbus/dbus-message.c (dbus_message_get_name): new
14469
14470         * dbus/dbus-list.c: fix docs typo
14471
14472         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14473         an object representing a handler for messages.
14474
14475 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14476
14477         * glib/dbus-glib.h:
14478         * glib/dbus-gthread.c: (dbus_gthread_init):
14479         Don't use the gdbus prefix for public functions.
14480
14481 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14482
14483         * Makefile.am:
14484         * configure.in:
14485         Add GLib checks and fixup .pc files
14486
14487         * glib/Makefile.am:
14488         * glib/dbus-glib.h:
14489         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14490         (gdbus_connection_check), (gdbus_connection_dispatch),
14491         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14492         (dbus_connection_gsource_new):
14493         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14494         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14495         * glib/test-dbus-glib.c: (message_handler), (main):
14496         Add GLib support.
14497
14498 2002-12-15  Harri Porten  <porten@kde.org>
14499
14500         * autogen.sh: check for libtoolize before attempting to use it
14501
14502         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14503         struct.
14504
14505         * .cvsignore: ignore more stamp files
14506
14507         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14508
14509         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14510         without make install.
14511
14512 2002-12-15  Havoc Pennington  <hp@pobox.com>
14513
14514         * dbus/dbus-threads.c: add thread stubs that a higher library
14515         layer can fill in. e.g. the GLib wrapper might fill them in with
14516         GThread stuff. We still need to use this thread API to
14517         thread-safe-ize the library.
14518
14519 2002-12-12  Havoc Pennington  <hp@pobox.com>
14520
14521         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14522         below new interfaces and include fewer system headers.
14523
14524         * dbus/dbus-sysdeps.c (_dbus_read): new function
14525         (_dbus_write): new function
14526         (_dbus_write_two): new function
14527         (_dbus_connect_unix_socket): new function
14528         (_dbus_listen_unix_socket): new function
14529
14530         * dbus/dbus-message-internal.h: change interfaces to use
14531         DBusString
14532
14533 2002-12-11  Havoc Pennington  <hp@pobox.com>
14534
14535         * dbus/dbus-types.h: add dbus_unichar
14536
14537         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14538
14539         * dbus/dbus-connection.c (dbus_connection_send_message): return
14540         TRUE on success
14541
14542         * dbus/dbus-transport.c: include dbus-watch.h
14543
14544         * dbus/dbus-connection.c: include dbus-message-internal.h
14545
14546         * HACKING: add file with coding guidelines stuff.
14547
14548         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14549         handling here, for security purposes (as in vsftpd). Not actually
14550         using this class yet.
14551
14552         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14553         system/libc usage here, as in vsftpd, for ease of auditing (and
14554         should also simplify portability). Haven't actually moved all the
14555         system/libc usage into here yet.
14556
14557 2002-11-25  Havoc Pennington  <hp@pobox.com>
14558
14559         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14560         always print the first verbose message.
14561
14562 2002-11-24  Havoc Pennington  <hp@pobox.com>
14563
14564         * test/echo-client.c, test/echo-server.c: cheesy test
14565         clients.
14566
14567         * configure.in (AC_CHECK_FUNCS): check for writev
14568
14569         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14570         function
14571
14572         * dbus/dbus-list.c (_dbus_list_foreach): new function
14573
14574         * dbus/dbus-internals.c (_dbus_verbose): new function
14575
14576         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14577         representing a server that listens for connections.
14578
14579         * dbus/.cvsignore: create
14580
14581         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14582         public API for reporting errors
14583
14584         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14585         public object representing a connection that
14586         sends/receives messages. (Same object used for
14587         both client and server.)
14588
14589         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14590         Basic abstraction for different kinds of stream
14591         that we might read/write messages from.
14592
14593 2002-11-23  Havoc Pennington  <hp@pobox.com>
14594
14595         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14596         _DBUS_INT_MAX
14597
14598         * dbus/dbus-test.c (main): add list test, and include
14599         dbus-test.h as intended
14600
14601         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14602         (_dbus_hash_table_remove_int): return value indicates
14603         whether the entry existed to remove
14604
14605         * dbus/dbus-list.c: add linked list utility class,
14606         with docs and tests
14607
14608         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14609         array sometimes.
14610
14611 2002-11-23  Havoc Pennington  <hp@pobox.com>
14612
14613         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14614         DBUS_END_DECLS to nothing, that should fix this once and for all
14615
14616         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14617
14618         * dbus/dbus-message.c, dbus/dbus-hash.c:
14619         add some missing @brief
14620
14621 2002-11-23  Havoc Pennington  <hp@pobox.com>
14622
14623         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14624         to avoid confusing Doxygen
14625
14626         * dbus/dbus-hash.c: @} not }@
14627
14628         * dbus/dbus-message.c (struct DBusMessage): split out
14629         internals docs
14630
14631 2002-11-23  Havoc Pennington  <hp@pobox.com>
14632
14633         * configure.in: pile on more warning flags if using gcc
14634
14635         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14636         to document static functions
14637
14638         * configure.in: add summary to end of configure so it
14639         looks nice and attractive
14640
14641         * dbus/dbus-hash.c: finish implementation and write unit
14642         tests and docs
14643
14644         * configure.in: add --enable-tests to enable unit tests
14645
14646         * dbus/dbus-test.c: test program to run unit tests
14647         for all files in dbus/*, initially runs a test for
14648         dbus-hash.c
14649
14650         * dbus/dbus-internals.h: file to hold some internal utility stuff
14651
14652 2002-11-22  Havoc Pennington  <hp@redhat.com>
14653
14654         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14655         "ported" away from Tcl
14656
14657         * dbus/dbus-types.h: header for types such as dbus_bool_t
14658
14659 2002-11-22  Havoc Pennington  <hp@redhat.com>
14660
14661         * dbus/dbus.h: fixups for doc warnings
14662
14663         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14664         macros
14665         (QUIET): make it quiet so we can see warnings
14666
14667         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14668
14669 2002-11-22  Havoc Pennington  <hp@redhat.com>
14670
14671         * Makefile.am: include "Doxyfile" target in all-local
14672
14673         * configure.in: generate the Doxyfile
14674
14675         * Doxyfile.in: move Doxyfile here, so we can use
14676         configure to generate a Doxyfile with the right
14677         version number etc.
14678
14679 2002-11-22  Havoc Pennington  <hp@redhat.com>
14680
14681         * dbus/dbus-message.c: move inline docs into .c file
14682
14683         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14684         so all docs are under doc/
14685         (MAN_EXTENSION): generate man pages. Use extension
14686         ".3dbus" which matches ".3qt" on my system,
14687         I guess this is OK, I don't know really.
14688         (FILE_PATTERNS): look for .c files not .h, makes sense
14689         for plain C I think
14690
14691 2002-11-22  Havoc Pennington  <hp@pobox.com>
14692
14693         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14694         because any app can be a server, and any app can be a client,
14695         the bus is a special kind of server.
14696
14697 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14698
14699         * Doxyfile : adding. Still needs Makefile rules to be generated
14700         automatically (just run "doxygen" in the toplevel dir for now to
14701         generate docs)
14702
14703         * dbus/dbus-message.h : Adding sample docs (javadoc since
14704         resembles gtk-doc a little more)
14705
14706         * dbus/dbus.h : Adding sample docs
14707
14708 2002-11-21  Havoc Pennington  <hp@redhat.com>
14709
14710         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14711         so we can allow ourselves to include files directly,
14712         instead of having to use dbus.h
14713
14714         * dbus/dbus.h: fill in
14715
14716         * dbus/dbus-message.h: sketch out a sample header file.
14717         Include griping if you include it directly instead of
14718         via dbus.h
14719
14720         * dbus/dbus-macros.h: new file with macros for extern "C",
14721         TRUE/FALSE, NULL, etc.
14722
14723         * doc/file-boilerplate.c: put include guards in here
14724
14725 2002-11-21  Havoc Pennington  <hp@redhat.com>
14726
14727         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14728
14729         * COPYING: include the GPL as well, and license code
14730         under both AFL and GPL.
14731
14732 2002-11-21  Havoc Pennington  <hp@redhat.com>
14733
14734         * acconfig.h: get rid of this
14735
14736         * autogen.sh (run_configure): add --no-configure option
14737
14738         * configure.in: remove AC_ARG_PROGRAM to make
14739         autoconf complain less. add AC_PREREQ.
14740         add AC_DEFINE third arg.
14741
14742 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14743
14744         * doc/Makefile.am:
14745         Fix references so we can distcheck.
14746
14747 2002-11-21  Havoc Pennington  <hp@redhat.com>
14748
14749         * Initial module creation
14750