2006-10-26 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-10-26  Havoc Pennington  <hp@redhat.com>
2         
3         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
4         to be recursive
5         (_dbus_pthread_mutex_unlock): make it recursive
6         (_dbus_pthread_condvar_wait): save/restore the recursion count
7         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
8
9 2006-10-26  Havoc Pennington  <hp@redhat.com>
10
11         * doc/dbus-specification.xml: clarify the UUID text slightly
12
13         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
14         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
15         in preparation for being able to extend them for e.g. recursive
16         mutexes.
17
18 2006-10-26  Havoc Pennington  <hp@redhat.com>
19
20         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
21         condition variables relate to recursive mutexes.
22         
23         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
24         dbus/dbus-threads.c: Split the platforms-specific thread 
25         implementations into their own files.
26         
27         * dbus/dbus-sysdeps-pthread.c
28         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
29         was backward. Not that anything uses it.
30
31 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
32
33         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
34         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
35         needs to be cleaned up more.
36
37         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
38         up the CREDS issue.
39
40 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
41
42         * configure.in, dbus-1.pc.in: Check to see if thread methods 
43         are in glibc or libpthread and add -lpthread to the link stage 
44         if it is the latter
45
46 2006-10-26  Thiago Macieira  <thiago@kde.org>
47
48         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
49         bug 8780: the connection lock is only required while recording
50         the shared connection, so protect only that code
51         section. Don't require connection_lookup_shared to return a
52         locked connection.
53
54 2006-10-26  Thiago Macieira  <thiago@kde.org>
55
56         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
57         check if get_machine_uuid() returns NULL before proceeding any
58         further: we can't init the X atoms or create a session file
59         name if there is no machine ID.
60         This solves a crash reported by some users if
61         --exit-with-session was used without --autolaunch=<machine-id>
62
63 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
64
65         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
66         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
67
68         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
69         before we run dbus-launch
70
71         * configure.in: define TEST_BUS_BINARY to be the full path to 
72         dbus-daemon in the build root 
73
74 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
75
76         * dbus/Makefile.am:
77         * tools/Makefile.am:
78         * toos/dbus-uuidgen.1:
79                 Move the machine-id file to /var/lib/dbus 
80
81 2006-10-24  David Zeuthen  <davidz@redhat.com>
82
83         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
84         _dbus_assert (thread_init_generation != _dbus_current_generation)
85         not _dbus_assert (thread_init_generation == _dbus_current_generation)
86
87 2006-10-24  Thiago Macieira  <thiago@kde.org>
88
89         * dbus/dbus-sysdeps.h:
90         * dbus/dbus-sysdeps-unix.c: Add function
91         _dbus_make_file_world_readable that chmods a file to 0644.
92
93         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
94         Avoid writing to the static "argv" array, thereby avoiding a
95         COW on the child process.
96
97         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
98         call _dbus_make_file_world_readable on the created file.
99
100 2006-10-23  David Zeuthen  <davidz@redhat.com>
101
102         * dbus/dbus-memory.c: Use atomic variable to protect
103         n_blocks_outstanding otherwise OOM will be reported using SMP on
104         some arches
105         
106         * bus/dispatch.c: Add missing end of line characters
107
108         * bus/desktop-file.c (parse_section_start, parse_key_value) 
109         (bus_desktop_file_load): Propertly handle OOM
110
111         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
112         thread_init_generation equals _dbus_current_generation, not 0
113
114 2006-10-22  Havoc Pennington  <hp@redhat.com>
115
116         * dbus/dbus-connection-internal.h: move prototype of
117         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
118         it isn't in a public header and doesn't end up in the DBusBus
119         group in Doxygen
120
121 2006-10-21  Havoc Pennington  <hp@redhat.com>
122
123         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
124         the tarball if packagers want to run it
125
126         * cleanup-man-pages.sh: Add a script which munges all the internal
127         API man pages out of the Doxygen output. This reduces the size of
128         the installed man pages from 7 to 2 megs, and avoids
129         namespace-polluting pages. Right now (like Doxygen) this script
130         isn't in the build, it's something packagers can do manually.
131
132 2006-10-21  Havoc Pennington  <hp@redhat.com>
133
134         * dbus/dbus-connection.h: don't include the watch/timeout
135         functions in connection section
136
137 2006-10-21  Havoc Pennington  <hp@redhat.com>
138
139         * Documentation! Whee! Doxygen now 100% silent. If you make it
140         angry again, you will be punished.
141         
142 2006-10-21  Havoc Pennington  <hp@redhat.com>
143
144         * More documentation - all public API now documented according to
145         Doxygen
146
147 2006-10-21  Havoc Pennington  <hp@redhat.com>
148
149         * Document a bunch of undocumented stuff
150         
151 2006-10-21  Havoc Pennington  <hp@redhat.com>
152
153         * Clean up Doxygen group markers for public API so Doxygen finds
154         everything (not comprehensively fixed for private API).
155         Means all remaining Doxygen warnings are just about missing docs
156         and thus pretty simple to resolve.
157         
158 2006-10-21  Havoc Pennington  <hp@redhat.com>
159         
160         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
161
162         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
163         as DBUS_GNUC_DEPRECATED
164
165 2006-10-21  Havoc Pennington  <hp@redhat.com>
166
167         * Move all private API into the private Doxygen group sections of
168         the files, so they don't show up in the public API docs
169         
170 2006-10-21  Havoc Pennington  <hp@redhat.com>
171
172         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
173         dbus_message_iter_get_array_len().
174
175         * throughout: documentation improvements.
176
177 2006-10-20  Havoc Pennington  <hp@redhat.com>
178
179         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
180         matter, and the message-loader-breaker thing since nobody is going
181         to do it.  Add an item to 1.0 about supporting recursive locks
182         in dbus_threads_init_default() though, since it should be easy.
183
184         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
185         Fix this in the !dispatch case to avoid busy-looping after
186         disconnection
187
188         * More misc docs improvements
189
190 2006-10-19  Havoc Pennington  <hp@redhat.com>
191
192         * more Doxygen-related fixes (lots of moving things from the
193         public to internal section in dbus-connection.c)
194
195 2006-10-19  Havoc Pennington  <hp@redhat.com>
196
197         * Fix a pile of Doxygen warnings and missing docs
198
199 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
200
201         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
202         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
203         instead of a void *.  kqueue uses this to get the context's loop
204         while the other modules ignore the parameter.  This allows us to
205         avoid platform conditionals
206
207         * bus/bus.c (process_config_postinit): Pass in the context to the 
208         watch
209
210 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
211
212         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
213         when starting the system bus
214
215 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
216
217         * configure.in: More fixups for cross compile (Patch from 
218         Marco Pracucci <development at pracucci dot com>)
219
220 2006-10-17  Havoc Pennington  <hp@redhat.com>
221
222         * tools/dbus-send.c (main): don't close shared connection, fix
223         from Timo Hoenig
224
225 2006-10-17  Havoc Pennington  <hp@redhat.com>
226
227         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
228
229         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
230         since realistically it doesn't look like we'll be changing it
231         anymore.
232
233 2006-10-17  Havoc Pennington  <hp@redhat.com>
234
235         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
236         be used for return_if_fail type warnings; prefixes the pid, and
237         fatal by default.
238
239 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
240
241         * configure.in: Released 1.0 RC 2(0.94)
242         Add check for -fPIC and enable it if available
243
244 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
245
246         * doc/TODO: Remove the check TODO item
247
248 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
249
250         * dbus-transport-socket.c (exchange_credentials):
251         Print out more detailed errors if reading or sending
252         credentials fail (Patch from Julio M. Merino Vidal 
253         <jmmv at NetBSD dot org>)
254
255 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
256
257         * configure.in: when checking for posix getpwnam_r assume true
258         for cross compiles
259
260 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
261
262         * configure.in: Check for gethostbyname first before we check for it
263         in libnsl.  On gnu systems it is implemeneted 
264
265 2006-10-13  Havoc Pennington  <hp@redhat.com>
266
267         * dbus/dbus-connection.c
268         (dbus_connection_send_with_reply_and_block): fix to handle closed
269         connections, from Tambet Ingo bug #8631
270
271 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
272
273         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
274
275 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
276
277         * test/name-test/Makefile.am: don't link against both libdbus and
278         libdbus-convenience
279
280 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
281
282         * configure.in: check for dirfd even if it is a macro
283         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
284
285 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
286
287         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
288         avoid using dirfd on systems that don't have dirfd 
289         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
290
291 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
292
293         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
294         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
295
296         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
297         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
298         macro because _dbus_abort calls it
299
300         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
301         works
302
303 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
304
305         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
306         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
307
308 2006-10-02  Thiago Macieira  <thiago@kde.org>
309
310         * tools/dbus-launch.c (main): make it complain and abort
311         execution in case an unknown option is given. Also, process
312         the '--' argument as the end of arguments.
313
314 2006-10-01  Havoc Pennington  <hp@redhat.com>
315
316         * tools/dbus-launch.c (print_variables): if no syntax is given,
317         don't print something that's sort-of-half-sh-syntax, just print
318         a plain key-value pairs thing.
319
320         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
321         the local machine representation (but still have the hostname in
322         the display). Remove the hostname from the display if it is
323         localhost. Change session files to be named
324         ~/.dbus/session-bus/machine-display. Change X atoms to be
325         underscore-prefixed so nobody whines about ICCCM compliance.
326         Otherwise name them the same as the env variables.
327         Change session file format to include key-value pairs and an
328         explanatory comment. Keys are the same as the env variables.
329         (set_address_in_x11): X property format can't depend on
330         sizeof(pid_t) on a particular machine, fix to always be 32 bits
331
332         * tools/dbus-launch.c: make --autolaunch take a machine id
333         argument. If --autolaunch is used with a program to run, complain
334         for now (but add a FIXME). Also, don't look for existing bus if 
335         there's a program to run (but add a FIXME).
336
337         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
338         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
339         just to get this, and avoids duplicating uuid-reading code).
340
341         * tools/dbus-launch.1: clarify various things
342         
343 2006-10-01  Havoc Pennington  <hp@redhat.com>
344
345         * test/test-service.c (path_message_func): remove broken extra
346         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
347
348         * test/test-shell-service.c (path_message_func): same fix
349         
350         * dbus/dbus-connection.c
351         (_dbus_connection_get_dispatch_status_unlocked): break up the
352         function a little for clarity and fix the notification of
353         dbus-bus.c to not require dispatch to be complete
354
355         * dbus/dbus-connection.c (dbus_connection_unref): improve the
356         warning when you try to finalize an open connection.
357         
358 2006-10-01  Havoc Pennington  <hp@redhat.com>
359
360         * dbus/dbus-bus.c
361         (internal_bus_get): only weak ref the connection; this means 
362         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
363         called safely in any context
364         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
365         unref
366
367         * dbus/dbus-connection.c
368         (_dbus_connection_get_dispatch_status_unlocked): move
369         _dbus_bus_notify_shared_connection_disconnected_unlocked here
370         when queuing Disconnected instead of when the Disconnected message
371         arrives, so dbus_bus_get() won't return closed connections.
372         
373 2006-10-01  Havoc Pennington  <hp@redhat.com>
374
375         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
376         Add a hack to make DBusNewConnectionFunction work right.
377
378         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
379         the hack here. Also, fix the todo about refcount leak.
380         
381         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
382         and use the hack here
383         
384         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
385         "shareable" flag; this was completely broken, since it meant 
386         dbus_connection_open() returned a connection of unknown
387         shared-ness. Now, we always hold a ref on anything opened 
388         as shareable.
389
390         Move the call to notify dbus-bus.c into
391         connection_forget_shared_unlocked, so libdbus consistently forgets
392         all its knowledge of a connection at once. This exposed numerous
393         places where things were totally broken if we dropped a ref inside
394         get_dispatch_status_unlocked where
395         connection_forget_shared_unlocked was previously, so move
396         connection_forget_shared_unlocked into
397         _dbus_connection_update_dispatch_status_and_unlock. Also move the
398         exit_on_disconnect here.
399
400         (shared_connections_shutdown): this assumed weak refs to the
401         shared connections; since we have strong refs now, the assertion 
402         was failing and stuff was left in the hash. Fix it to close
403         still-open shared connections.
404         
405         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
406         debug pipe connections
407         
408         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
409         dbus-bus.c if the closed connection is in fact shared
410         (_dbus_connection_close_possibly_shared): rename from 
411         _dbus_connection_close_internal
412         (dbus_connection_close, dbus_connection_open,
413         dbus_connection_open_private): Improve docs to explain the deal
414         with when you should close or unref or both
415
416         * dbus/dbus-bus.c
417         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
418         from _dbus_bus_check_connection_and_unref_unlocked and modify to
419         loop over all connections
420
421         * test/test-utils.c (test_connection_shutdown): don't try to close
422         shared connections.
423
424         * test/name-test/test-threads-init.c (main): fix warnings in here
425
426         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
427         env variable to cause blocking waiting for gdb; drop
428         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
429         unconditionally.
430
431         * configure.in: add -export-dynamic to libtool flags if assertions enabled
432         so _dbus_print_backtrace works.
433
434         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
435         instead of _dbus_verbose to print the backtrace, and diagnose lack 
436         of -rdynamic/-export-dynamic
437         
438 2006-09-30  Havoc Pennington  <hp@redhat.com>
439
440         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
441         (internal_bus_get): fix screwy code formatting. whoever committed
442         that was not paying attention!
443
444 2006-09-30  Havoc Pennington  <hp@redhat.com>
445
446         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
447         reflect addition of interfaces.
448
449         * doc/dbus-specification.xml: describe a new
450         org.freedesktop.DBus.Peer.GetMachineId method
451
452         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
453         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
454         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
455         at end of skip_white
456         (_dbus_string_chop_white): new function
457
458         * bus/connection.c (bus_connections_setup_connection): call
459         dbus_connection_set_route_peer_messages.
460
461         * dbus/dbus-connection.c
462         (_dbus_connection_peer_filter_unlocked_no_update): modify to
463         support a GetMachineId method.
464
465         Also, support a new flag to let the bus pass peer methods through
466         to apps on the bus, which can be set with
467         dbus_connection_set_route_peer_messages.
468
469         Finally, handle and return an error for anything unknown on the
470         Peer interface, which will allow us to extend the Peer interface
471         in the future without fear that we're now intercepting something
472         apps were wanting to see.
473         
474         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
475         dbus/dbus-uuidgen.c
476
477         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
478         binary here, since most of the code is already in libdbus
479
480         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
481         uuid from the system config file
482
483         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
484         (_dbus_read_uuid_file_without_creating) 
485         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
486         uuid-related functions, partly factored out from dbus-server.c
487
488         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
489         DBUS_ERROR_FILE_EXISTS instead of EEXIST
490
491         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
492
493         * tools/dbus-cleanup-sockets.1: explain what the point of this
494         thing is a bit more
495
496         * autogen.sh (run_configure): add --config-cache to default
497         configure args
498
499         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
500         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
501
502         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
503         don't try to save address, fixes crash in make check
504         
505 2006-09-30  Thiago Macieira  <thiago@kde.org>
506
507         * configure.in: add DBUS_BINDIR as a #define to C source code.
508
509         * tools/dbus-launch.c
510         * tools/dbus-launch.h
511         * tools/dbus-launch-x11.c:
512         * tools/dbus-launch.1: Add the --autolaunch option to
513         dbus-launch, which makes it scan for an existing session
514         started with --autolaunch. With that option, it also creates
515         an X11 window and saves the bus address and PID to it.
516
517         * dbus/dbus-sysdeps.h:
518         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
519         a function that runs "dbus-launch --autolaunch" to retrieve
520         the running D-Bus session address (or start one if none was running)
521
522         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
523         address protocol, which tries to get the running session from
524         dbus-launch.
525
526         * dbus/dbus-bus.c:
527         * dbus/dbus-internals.h: Make "autolaunch:" be the default
528         D-Bus session bus address.
529
530         * dbus/dbus-connection.c: Fix horrible typo in error message.
531
532 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
533
534         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
535
536 2006-09-17  Havoc Pennington  <hp@redhat.com>
537
538         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
539         fix so that if unix_user_function is set on windows, we still
540         do the default check that the auth identity matches the bus identity
541
542 2006-09-16  Havoc Pennington  <hp@redhat.com>
543
544         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
545         to _dbus_transport_open_platform_specific,
546         _dbus_transport_open_socket,
547         and _dbus_transport_open_debug_pipe
548
549         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
550
551 2006-09-16  Havoc Pennington  <hp@redhat.com>
552
553         Attempt auditing public API to remove all cases where a Unix
554         function returns weird emulated goo to Windows. This probably 
555         breaks the bus daemon on Windows, to fix it again we may 
556         need to stop processing unix-specific config options on Windows,
557         and may need to add Windows-specific public API or config options.
558         
559         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
560         to reflect added interfaces; should not break soname.
561         
562         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
563         not invoke unix user function on Windows. Kind of a hacky fix, but 
564         we don't want a "unix uid" leaking out on Windows.
565
566         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
567         to get the socket fd on Windows or UNIX
568         (dbus_connection_get_unix_fd): make this always fail on Windows
569
570 2006-09-16  Havoc Pennington  <hp@redhat.com>
571
572         * dbus/dbus-server.c (dbus_server_listen): change how this works
573         to be able to delegate to a set of handlers that can succeed,
574         fail, or choose not to handle. Allows us to have 
575         dbus_server_listen_platform_specific.
576
577         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
578         factor out the tcp socket stuff to be used on windows, leaving
579         unix domain socket only in dbus-socket-unix.c
580
581         * dbus/dbus-transport-socket.c
582         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
583         stuff to be used on windows, leaving unix domain socket only 
584         in dbus-transport-unix.c
585
586         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
587         temporary hack to be sure this fails on windows
588         (dbus_connection_get_unix_process_id): ditto
589
590 2006-09-16  Havoc Pennington  <hp@redhat.com>
591
592         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
593         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
594         _dbus_open_socket so the domain/type/protocol from system headers
595         are not required. This is kind of pointless though unless we move
596         part of _dbus_connect_tcp_socket into sysdeps.c instead of
597         sysdeps-unix.c, which would mean adding a wrapper around
598         bind/listen/etc.
599         Also, add DBusError to the socket-opening functions so they 
600         don't require use of errno.
601
602 2006-09-16  Havoc Pennington  <hp@redhat.com>
603
604         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
605         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
606
607         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
608         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
609         functions specifically for sockets only, and move generic 
610         read/write/open/close into unix-specific code.
611
612 2006-09-14  Havoc Pennington  <hp@redhat.com>
613
614         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
615         complaint about accessing revents when poll returns 0, from Julian Seward.
616
617 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
618
619         * Released 1.0 RC 1 (0.93) 
620
621 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
622
623         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
624         use _dbus_close instead of close
625
626 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
627
628         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
629         credentials.  Fixes "external" authentication under e.g. NetBSD
630         which does not support any other socket credentials mechanism.
631         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
632
633 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
634
635         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
636         dbus_threads_init and be used by the dbus mutex functions to
637         avoid deadlocks.
638
639         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
640
641 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
642
643         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
644         use threadsafe readdir_r instead of readdir
645
646 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
647
648         * dbus-threads.c (dbus_threads_init_default): New method for
649         initializing the internal thread implementation (Patch from
650         Alexander Larsson <alexl at redhat dot com>)
651
652 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
653
654         * remove a bunch of todo items from the 1.0 list
655
656 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
657
658         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
659         key not found
660
661 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
662
663         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
664         complex debugging code
665
666         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
667         between the test suite ifdefs
668         (_dbus_verbose_bytes): return if verbosity is not enabled 
669
670 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
671
672         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
673         remove DBusMark
674
675 2006-09-10  Havoc Pennington  <hp@redhat.com>
676
677        patch mostly by Peter Kümmel, bug #8211
678         
679         * dbus/dbus-sysdeps-unix.c: new file, which splits out
680         unix-specific stuff in dbus-sysdeps.c
681
682         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
683         and move unix-specific stuff to dbus-sysdeps-unix.c
684
685         * configure.in: check HAVE_ERRNO_H
686         
687 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
688
689         * bus/test-main.c (main): Initialize threading during tests
690
691         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
692         Unlock connection on error
693         (generate_local_error_message): static method for generating
694         an error message when we don't have a message to reply to
695         (_dbus_connection_block_pending_call): Send a disconnect error
696         instead of just a timeout (NULL) when the bus gets disconnected
697         while blocking for a reply.
698         
699 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
700
701         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
702         filters (Patch from Kimmo Hämäläinen 
703         <kimmo dot hamalainen at nokia dot com>)
704
705 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
706
707         * dbus/dbus-connection-internal.h: Add prototype for 
708         _dbus_connection_test_get_locks to remove warning
709
710 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
711
712         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
713         close child_err_report_pipe[WRITE_END] on exec (Patch from 
714         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
715
716 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
717
718         * Clean up close calls to use _dbus_close (Patch from 
719         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
720
721 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
722
723         * doc/TODO:
724         - Remove pending call locking todo item
725         - dbus_connection_open now holds hard ref.  Remove todo item
726         - do proper locking on _dbus_bus_check_connection_and_unref
727           and handle DBUS_BUS_STARTER. Remove todo item
728         - Warn on closing of a shared connection.  Remove todo item
729
730         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
731         dbus/dbus-connection.c: Use the dbus_connection_close_internal
732         so we don't get the warning when closing shared connections
733
734         * test/test-service.c, test/test-shell-service.c: Applications
735         don't close shared connections themselves so we unref instead of
736         close
737
738         * test/test-utils.c (test_connection_shutdown): Close the connection
739
740         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
741         _dbus_bus_check_connection_and_unref_unlocked since we only call this
742         method on a locked connection.  
743         Make sure we call _dbus_connection_unref_unlocked instead of 
744         dbus_connection_unref also.
745         Handle DBUS_BUS_STARTER correctly
746
747         * dbus/dbus-connection.c (connection_record_shared_unlocked):
748         Mark as shared and hard ref the connection
749         (connection_forget_shared_unlocked): Remove the hard ref from the 
750         connection
751         (_dbus_connection_close_internal_and_unlock):  New internal function
752         which takes a locked connection and unlocks it after closing it
753         (_dbus_connection_close_internal): New internal function which acts
754         like the origonal dbus_connection_close method by grabbing a connection
755         lock and calling _dbus_connection_close_internal_and_unlock
756         (dbus_connection_close): Public close method, warns when the app
757         trys to close a shared connection
758
759 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
760
761         * bus/driver.c:
762         (bus_driver_generate_introspect_string): New method for populating
763         a DBusString with the introspect data
764         (bus_driver_handle_introspect): Move introspect generation code to 
765         bus_driver_generate_introspect_string
766
767         * bus/main.c:
768         (introspect): New function which prints out the intropect data and
769         exits
770         (main): Add a --introspect switch
771
772 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
773
774         * doc/TODO: Removed dtd publishing item.  
775         It seems the dtd has already been added at
776         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
777
778 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
779
780         * doc/TODO, various source files: Audited todo's and FIXME's and
781         prepended the ones we should be looking at with 1.0.  Those
782         prepended with 1.0? need clerification or might not be needed
783         for 1.0
784
785 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
786
787         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
788         NULL in the public API (Patch from Kimmo Hämäläinen 
789         <kimmo dot hamalainen at nokia dot com>)
790
791 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
792
793         * configure.in: Fix for OS-X compile time endian issues (patch from
794         Benjamin Reed <ranger at befunk dot com>)
795
796 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
797
798         * configure.in: Check for no-common compiler flag (OS-X fix from
799         Benjamin Reed <ranger at befunk dot com>)
800
801 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
802
803         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
804         <fcrozat at mandriva dot com>)
805
806 2006-08-29  Havoc Pennington  <hp@redhat.com>
807
808         * test/test-service.c (path_message_func): fix lack of return value
809
810         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
811         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
812         any more sense than on anything else in this file.
813         (_dbus_get_tmpdir): add const to return value, and keep the
814         results of the various getenv around in a static variable.
815
816 2006-08-29  Havoc Pennington  <hp@redhat.com>
817
818         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
819         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
820
821 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
822
823         * test/Makefile.am: change find to use syntax that works with non
824         gnu versions of find
825
826 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
827
828         * dbus/dbus-transport.c: fix invalid deref when checking if
829         a vtable method exists (Patch from Christian Ehrlicher 
830         <ch dot ehrlicher at gmx dot de>)
831
832 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
833
834         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
835         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
836         to build with builddir != srcdir (Taken from a patch by Bernard Leak
837         <bernard at brenda-arkle dot demon dot co dot uk>)
838
839 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
840
841         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
842         default case
843
844 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
845
846         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
847         it works on any system providing this interface, not only FreeBSD.
848         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
849
850 2006-08-20  Havoc Pennington  <hp@redhat.com>
851
852         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
853         the docs
854
855 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
856
857         * Released 0.92 
858
859 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
860
861         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
862         to reflect the init late change
863
864         * bus/bus.c (bus_context_new): Check user before we fork so we can
865         print out an error message a user will be able to see
866
867 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
868
869         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
870
871         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
872         Add two more global locks for use on windows platforms.  These are
873         unused on non-windows platforms but are not ifdefed out to avoid
874         potential bugs (i.e. the few bytes lost does not warrent the extra
875         maintanence and complexity that having seperate sets of locks would
876         cause)
877
878 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
879
880         * bus/services.c (bus_registry_acquire_service): Return an error
881         when an application tries to register the org.freedesktop.DBus Bus Name
882
883         * bus/services.c (bus_registry_release_service): Return an error
884         when an application tries to release the org.freedesktop.DBus Bus Name
885
886 2006-08-17  Alp Toker  <alp@atoker.com>
887
888         * doc/dbus-specification.xml: Fix some minor typos.
889
890 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
891
892         * configure.in: use $with_init_scripts instead of $operating_system
893         to determine where to store the pid since the init scripts manipulate 
894         the pid file (patch from Marcelo Ricardo Leitner 
895         <marcelo dot leitner at terra dot com dot br>.  
896
897 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
898
899         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
900         static DBusList *uninitialized_condvar_list to support new late 
901         initialization threading model.  In this model threads can be initialized
902         even after the D-Bus API has been used but still needs to be initialized 
903         before the second thread has been started.  Mutexes and condvar addresses
904         are stored in the two static lists and are replaced with actuall locks
905         when threads are initalized.
906         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
907         the location into the static list
908         (_dbus_mutex_free_at_location): New method for removing a mutex location 
909         from the static list and freeing the mutex
910         (_dbus_condvar_new_at_location): New method for creating a conditional 
911         variable and placing the location into the static list
912         (_dbus_condvar_free_at_location): New method for removing a conditional
913         variable location from the static list and freeing the conditional variable 
914         (init_uninitialized_locks): Atomic method which goes through the static 
915         lists of mutex and condvar location and updates them with actuall locks
916         (init_global_locks): changed to init_locks
917         
918         * dbus/dbus-connection.c:
919         (_dbus_connection_test_get_locks): New method for tests to check connections
920         (_dbus_connection_new_for_transport): Use the new at_location mutex and
921         condvar API
922         (dbus_connection_allocate_data_slot): Pass in the global lock address
923         to _dbus_data_slot_allocator_alloc
924
925         * dbus/dbus-dataslot.c:
926         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
927         instead of the mutex itself
928
929         * dbus/dbus-message.c:
930         (dbus_message_allocate_data_slot): Pass in the global lock address
931         to _dbus_data_slot_allocator_alloc
932
933         * dbus/dbus-pending-call.c:
934         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
935         to _dbus_data_slot_allocator_alloc
936
937         * dbus/dbus-server.c:
938         (_dbus_server_init_base): Use the new at_location mutex API
939         (dbus_server_allocate_data_slot): Pass in the global lock address
940         to _dbus_data_slot_allocator_alloc
941
942         * test/name-test/test-threads-init.c: New test case for late thread
943         initialization
944
945 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
946
947         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
948         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
949         causes compile problems when asserts are turned off
950         Keeping _dbus_warn for printing out the message so even if
951         asserts are turned off the user gets the messages that something is 
952         wrong 
953
954 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
955
956         Patches by Kjartan Maraas <kmaraas at gnome dot org>
957
958         * bus/services.c (bus_service_list_queued_owners):
959         Add a pointer cast to fix compiler warning
960
961         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
962         return a NULL instead of FALSE since the return type
963         is not expecting a boolean
964
965         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
966         Remove unused variable
967
968         * dbus/dbus-marshal-recursive-util.c (node_new):
969         return a NULL instead of FALSE since the return type
970         is not expecting a boolean
971
972         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
973         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
974         because we are expecting a pointer not a boolean
975
976         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
977         add void as the parameter so some compilers
978         don't complain
979
980         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
981           _dbus_transport_new_for_tcp_socket):
982         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
983         because we are expecting a pointer not a boolean
984
985         * test/shell-test.c (test_command_line):
986         cast the second argument to _dbus_list_append to avoid compiler
987         warnings
988
989         * test/test-names.c (main): remove unused variable
990
991         * test/test-service.c (check_hello_from_self_reply):
992         Initialize echo_message and echo_reply to NULL
993         
994         * test/test-shell-service.c (handle_echo):
995         Remove unused variable and cast the third parameter passed to
996         dbus_connection_get_object_path_data to avoid compiler warrnings
997
998         * test/name-test/test-names.c (clear_message_queue):
999         Remove unused function
1000
1001         * test/name-test/test-pending-call-dispatch.c:
1002         Fix format string in printf
1003
1004
1005 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1006
1007         * dbus/dbus-bus.c:
1008         * test/name-test/test-names.c:
1009         Remove test method dbus_bus_connection_get_unique_name because 
1010         we already have public method dbus_bus_get_unique_name that 
1011         does the exact same thing
1012
1013 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1014
1015         * dbus/dbus-signature.c:
1016         fix typos in Julio's previous patch which cause make check to fail
1017
1018 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1019
1020         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1021         In any case it was wrong since this is a test checking to see if
1022         address parsing is correct.  There was no need to get the true
1023         tmp directory.  
1024
1025 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1026
1027         * dbus/dbus-macros.h: Revert the addition of stddef.h
1028         as we should not be adding it to library headers 
1029
1030 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1031
1032         * dbus/dbus-signature.c:
1033         Fix the unit tests so that they work if assertions are not enabled.
1034         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1035
1036 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1037
1038         * tools/run-with-tmp-session-bus.sh:
1039         * test/name-test/run-test.sh:
1040         Remove bashisms (patch from Julio M. Merino Vidal
1041         <jmmv at NetBSD dot org>)
1042
1043 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1044
1045         * configure.in: add a version (>= 2.6.0) check for libxml2
1046
1047 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1048
1049         * configure.in: make sure the compiler supports -Wfloat-equal
1050         
1051         * bus/dir-watch-dnotify.c: move functional code after 
1052         variable declerations (C99 fix)  (patches from Jens Granseuer
1053         <jensgr at gmx dot net>
1054
1055 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1056
1057         * dbus/dbus-macros.h:
1058         add #include <stddef.h> so that Sun compilers don't complain about
1059         the defining NULL
1060
1061 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1062
1063         * dbus/dbus-sysdeps.c:
1064         * dbus/dbus-address.c:
1065         * bus/activation.c:
1066         * test/shell-test.c:
1067         don't hardcode tmp directory (patch from Dave Meikle 
1068         <dmk at davemeikle dot co dot uk>)
1069
1070 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1071
1072         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1073         Change an assert to a detailed warning and abort.  
1074         When allocator->lock != mutex it indicates that the user has failed
1075         to initalize threads before using the D-Bus library.  This warning
1076         helps the user identify the issue and fix their app.
1077
1078 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1079
1080         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1081         with cleanups of bugs found from Coverity reports:
1082
1083         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1084         close the file on error to avoid a leak
1085
1086         * bus/expirelist.c (bus_expire_list_test):
1087         Check for NULL on dbus_new0
1088
1089         * bus/activation.c (update_directory):
1090         remove dead code
1091
1092         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1093         Fix some leaks
1094
1095         * bus/bus.c (process_config_every_time):
1096         Fixed a leak
1097
1098         * bus/desktop-file.c (parse_key_value):
1099         Fixed leak
1100
1101         * bus/selinux.c (bus_selinux_id_table_insert):
1102         Fixed leak
1103
1104 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1105
1106         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1107         remove dead code
1108
1109 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1110
1111         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1112         #!/bin/bash
1113
1114 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1115
1116         * Doxyfile.in: fix the INPUT line so we can generate docs 
1117         when sourcedir != builddir (patch from Cygwin Ports maintainer
1118         <yselkowitz at users dot sourceforge dot net>
1119
1120 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1121
1122         * dbus/dbus-sysdeps.h:
1123         * dbus/dbus-sysdeps.c: 
1124         * dbus/dbus-string.c: 
1125         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1126         GLib's function which does the same thing
1127
1128         * configure.in:
1129         * bus/Makefile.am:
1130         * bus/dir-watch-default.c:
1131         * bus/dir-watch-dnotify.c:
1132         * bus/dir-watch-kqueue.c:
1133         Add kqueue directory watching for freebsd and split the directory
1134         watching code into seperate files per method/arch
1135         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1136
1137 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1138
1139         * configure.in:
1140         * tools/Makefile.am:
1141         * tools/dbus-launch.c:
1142         * bus/Makefile.am:
1143         allow --with-dbus-daemondir switch to be used to make the
1144         daemon install to a seperate bindir like /usr/libexec
1145         (patch from Brian Cameron <brian dot cameron at sun dot com)
1146
1147 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1148
1149         * bus/Makefile.am (install-data-hook): removed the slash after 
1150         $(DESTDIR) so we don't get the double slash which does not work
1151         in windows (patch from Andras Porjesz 
1152         <andras dot porjesz at siemens dot com>)
1153
1154 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1155
1156         * dbus/dbus-sysdeps.h:
1157         * dbus/dbus-sysdeps.c: 
1158           add _dbus_printf_length (patch from Peter Kümmel 
1159           <syntheticpp at gmx dot net>)
1160
1161 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1162
1163         * dbus/dbus-internals.c: unistd.h is not used 
1164         (_dbus_verbose_real): only enable verbose printing 
1165         if DBUS_VERBOSE environment var is set to '1'
1166         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1167
1168 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1169
1170         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1171         so we still compile on older gcc (patch from Frederic Peters 
1172         <fpeters at 0d dot be>
1173
1174 2006-08-04  Havoc Pennington  <hp@redhat.com>
1175
1176         * configure.in: add -Wdeclaration-after-statement
1177
1178         * dbus/dbus-connection.c: change all the pending call stuff to
1179         reflect the fact that pending call operations use the connection
1180         lock
1181
1182         * dbus/dbus-pending-call.c: add locking here
1183
1184         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1185         field const consistent with how message field is done
1186
1187 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1188
1189         * s/D-BUS/D-Bus/g
1190
1191 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1192
1193         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1194         <in7y118 at public.uni-hamburg dot de> - fix invalid
1195         read/write reported by valgrind
1196
1197 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1198
1199         * Released 0.91
1200
1201 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1202
1203         * dbus/dbus-connection.c:
1204         (_dbus_connection_attach_pending_call_unlocked):
1205         (connection_timeout_and_complete_all_pending_calls_unlocked):
1206         Make sure we set timeout_added on pending calls to FALSE when
1207         we remove the timeout from the connection
1208
1209 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1210
1211         * Removed some extra bindings stuff lingering around (thanks timo)
1212         * dbus-pendingcall.c (_dbus_pending_call_new): 
1213         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1214         when we tried to take a lock on an already locked connection
1215
1216 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1217
1218         * Released 0.90
1219
1220 2006-07-17  Havoc Pennington  <hp@redhat.com>
1221
1222         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1223         ints, reported by Owen Taylor
1224
1225 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1226
1227         * doc/TODO:
1228         * dbus/dbus-bus.c:
1229         * dbus-errors.c:
1230         * dbus/dbus-marshal-validate.c:
1231           Removed TODO items which were fixed or are no longer relevent
1232
1233 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1234
1235         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1236         Remove stray files from the stripped bindings
1237
1238 2006-07-16  Havoc Pennington  <hp@redhat.com>
1239
1240         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1241         Improve the error message on reply timeout
1242
1243 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1244
1245         * Remove all bindings
1246
1247 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1248
1249         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1250         and set pending_reply out arg to NULL is connection is disconnected
1251         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1252         static method for cleaning up pending calls on disconnect
1253         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1254         calls queued timeouts on disconnect 
1255
1256          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1257         Remove 
1258
1259 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1260
1261         * bus/activation.[ch] (bus_activation_list_services): new function to 
1262         get the list of services that can be activated
1263
1264         * bus/dispatch.c: test coverage for the new bus method
1265         ListActivatableNames
1266
1267         * bus/driver.c: new bus method ListActivatableNames to get the list of
1268         services that can be activated
1269
1270         * doc/dbus-specification.xml: ListActivatableNames method documentation
1271
1272 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1273         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1274         source files
1275
1276 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1277         * dbus/dbus-message-factory.c:
1278         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1279
1280 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1281         * dbus/dbus-connection-internal.h:
1282         * dbus/dbus-connection.c:
1283         * file dbus/dbus-pending-call.c:
1284         * dbus/dbus-pending-call.h:
1285         Make DBusPendingCall an opaque type even to D-Bus internals
1286
1287 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1288
1289         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1290         connection_close
1291
1292         * dbus/dbus-connection.c: include dbus-bus.h
1293         (_dbus_connection_read_write_dispatch): make static
1294
1295 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1296
1297         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1298         function
1299         (dbus_connection_dispatch): On disconnect unref any shared connections
1300
1301         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1302         for cleaning up shared connections on disconnect
1303         (internal_bus_get): get a hard refrence to shared connections when
1304         they are created
1305         
1306         * doc/TODO: Remove items which are no longer relevent or have been fixed
1307         Split 1.0 todo items with a 0.90 freeze todo list
1308  
1309 2006-06-14  Ross Burton  <ross@openedhand.com>
1310
1311         * glib/dbus-gobject.c:
1312         Free a leaking GArray (surely not!) in dbus_g_method_return.
1313
1314 2006-06-14  Ross Burton  <ross@openedhand.com>
1315
1316         * tools/Makefile.am:
1317         * tools/dbus-monitor.c:
1318         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1319         Habacker).
1320         
1321 2006-06-14  Ross Burton  <ross@openedhand.com>
1322
1323         * tools/dbus-print-message.c:
1324         Also print the object path when outputting signals or method calls.
1325
1326 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1327
1328         * qt/src/Makefile.am: install the qdbus.h header.
1329         This allows people to actually use the installed code.
1330
1331 2006-06-12  Ross Burton  <ross@openedhand.com>
1332
1333         * glib/dbus-gproxy.c:
1334         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1335
1336 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1337
1338         * Released 0.62
1339
1340 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1341
1342         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1343         break pedantic builds. Closes bug 6043 (patch approved by
1344         Havoc back in February).
1345
1346 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1347
1348         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1349         that took a QDBusMessage parameter.
1350         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1351         * qt/tools/dbus.cpp: Don't use automatic call because we might
1352         be calling an async method: request a reply.
1353
1354 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1355
1356         * test/qt/*: Update the testcases, including testing the new
1357         functionality of sending null QByteArray and QString over the
1358         bus. Add new headertest test and restore the old
1359         qdbusxmlparser test.
1360
1361 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1362
1363         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1364         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1365
1366         * qt/examples/Makefile.am:
1367         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1368         form.
1369
1370         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1371         QByteArray() (nulls) over the bus.
1372         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1373         the one that has the signature suffix stripped.
1374         * qt/src/qdbusreply.h: Make some methods const.
1375
1376 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1377
1378         Patch from Timo Hoenig <thoenig@suse.de>.
1379
1380         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1381         required during build to EXTRA_DIST.
1382         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1383         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1384         * configure.in: Fix "make dist", take care that the Makefile for
1385         qt/dbus is being generated.
1386
1387 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1388
1389         * bus/bus.c: Fix eavesdropping on method calls
1390
1391 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1392
1393         * configure.in:
1394         * dbus/dbus-userdb-util.c:
1395         Add Solaris console owner patch from Artem Kachitchkine
1396
1397 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1398
1399         * qt/Makfile.am:
1400         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1401         reorganisation. Thanks to Timo Hoenig for pointing this out.
1402
1403 2006-06-06  Robert McQueen  <robot101@debian.org>
1404
1405         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1406           call to dbus_g_type_get_struct.
1407
1408 2006-06-06  Robert McQueen  <robot101@debian.org>
1409
1410         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1411           pointers were put into a GPtrArray-based specialised collection, and
1412           then freed along with the array. GValues which you add into
1413           collections or maps which have the NOCOPY flag set are assumed to not
1414           belong to the caller, so rather than the existing pointer-stealing
1415           semantics, they are copied instead. Given that the main consumers of
1416           this abstraction are the bindings themselves, I don't think this is
1417           too bad, but others should watch their choice of take vs set_static.
1418
1419 2006-06-06  Robert McQueen  <robot101@debian.org>
1420
1421         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1422           of g_slist_prepend not being used. Fixed copying of slist-based
1423           specialised collections, then wrote a test case and found that it was
1424           all broken. Went on to fix iterating and appending too. Good thing
1425           nobody uses this code yet.
1426
1427 2006-06-06  Robert McQueen  <robot101@debian.org>
1428
1429         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1430           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1431           are discarded without unsetting, so it makes no difference whether
1432           we take or set_static). Remove cases for G_TYPE_POINTER because
1433           there really is nothing useful we can do with them in our
1434           specialised types - we *need* boxed copy/free functions at the very
1435           least.
1436
1437 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1438
1439         * qt/dbus: Add directory. I had forgotten to add this
1440         yesterday after the move...
1441
1442         * qt/examples/Makefile.am:
1443         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1444
1445         * qt/tools/Makefile.am:
1446         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1447         Added feature to get and set properties.
1448         Added validation of service, object path and interface names.
1449
1450         * qt/tools/dbusidl2cpp.cpp: Two new features:
1451         1) Allow specifying both the header and the source file names,
1452         by separating them with a colon.
1453         2) Don't write an interface output if the -p switch wasn't
1454         given, but the -a was.
1455
1456         * qt/src/*: Fix usage of Iterators and ConstIterators.
1457         Fix shadowing of variables by other variables (-Wshadow).
1458         Fix keyword-cleanliness in headers.
1459         Fix ASCII-cast (QLatin1String, QLatin1Char).
1460         Fix validation of member names.
1461         Add extra checking of introspection data during XML parsing.
1462         Various bug fixes.
1463
1464 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1465
1466         * dbus/Makefile.am:
1467         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1468         qt/dbus/qdbus.h now.
1469
1470 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1471
1472         * configure.in: Make --disable-qt actually do
1473           something. Patch inspired by Zack Rusin.
1474
1475 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1476
1477         * qt/: Update to Subversion r548032.
1478         This includes a big reorganisation of the files inside the
1479         subdir.
1480
1481 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1482
1483         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1484         clear:  
1485         "Failed to connect to socket <host>:<port> <error>" instead of
1486         "Failed to connect to socket <host>: <error>:<port>"
1487
1488         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1489         for a tcp transport. 
1490
1491 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1492
1493         * qt/*: Update the QtDBus bindings up to revision 546310 in
1494         Subversion.
1495         This adds the dbuscpp2xml tool, that parses a C++ header and
1496         outputs a D-BUS Introspection XML.
1497
1498 2006-05-21  Havoc Pennington  <hp@redhat.com>
1499
1500         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1501         is not NULL when it shouldn't be. Also a couple of possible fixes
1502         for #4637 though I don't understand why the bug happens, to be
1503         honest... also the object constructor has an assert name != NULL
1504         and the name is only currently NULL for peer-to-peer proxies that 
1505         I don't think anyone uses? So it should be asserting.
1506         Anyway, for now at least see if we get an earlier assertion failure.
1507
1508         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1509         apparently broken code to be sure the tests fail and someone 
1510         will fix them...
1511
1512 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1513
1514         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1515         and arrays when they had a single element: has_next returns
1516         false, even before you read the element. So, instead, check
1517         the array length.
1518
1519 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1520
1521         * qt/qdbusmessage.cpp:
1522         * qt/qdbustypehelper_p.h:
1523         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1524         the list is a const-reference
1525
1526 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1527
1528         * Adding old doc patch that never got applied
1529         
1530         * dbus/bus.c (dbus_bus_add_match): Add documentation
1531
1532         * doc/dbus-specification.xml: Add documentation for the match rules
1533           and the AddMatch and RemoveMatch methods
1534
1535 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1536
1537         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1538         call (r535506)
1539
1540         * qt/dbusidl2cpp.cpp:
1541         * qt/qdbusabstractadaptor.cpp:
1542         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1543         sibling of the QDBusAbstractAdaptor objects instead of the
1544         parent. (r535848)
1545
1546         * qt/dbusidl2cpp.cpp:
1547         * qt/qdbusabstractinterface.cpp:
1548         * qt/qdbusabstractinterface.h:
1549         * qt/qdbusabstractinterface_p.h:
1550         * qt/qdbusinterface.cpp: Make properties in interfaces
1551         actually work. The code that was generated would not compile,
1552         due to moc calls to functions that did not exist. They now
1553         shall. (r536571)
1554
1555 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1556
1557         * Makefile.am:
1558         * configure.in:
1559         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1560         Thanks to Brad Hards for providing the patch
1561
1562 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1563
1564         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1565         call. (r535506)
1566
1567 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1568
1569         * qt/examples/dbus.cpp: Enhance error messages and use
1570         QDBusInterfacePtr.
1571
1572 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1573
1574         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1575         and disable the copy operators. (r533772, r534746)
1576
1577         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1578
1579         * qt/qdbusabstractinterface.cpp:
1580         * qt/qdbusabstractinterface.h: Change the default call mode to
1581         not use the event loop. Add convenience call() methods that
1582         take a CallMode parameter. (r534042)
1583
1584         * qt/qdbusconnection.h: Change the default call mode to not
1585         use the event loop. (r534042)
1586
1587         * qt/qdbusinterface.cpp:
1588         * qt/qdbusinterface.h: Add a method to tell us if the
1589         interface is valid (since we don't return a null pointer
1590         anymore) (r534099)
1591
1592         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1593         (r534101)
1594
1595         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1596         function in two so taht we get the chance to introspect
1597         without having a QDBusMessage (r534102)
1598
1599         * qt/qdbusbus.h:
1600         * qt/qdbusconnection.cpp:
1601         * qt/qdbusconnection_p.h:
1602         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1603         avoid a round-trip to the server when attempting to introspect
1604         one of our own objects. Also make sure the filter functions
1605         match the empty interface as well. (r534108)
1606         Don't keep the connection names. Instead, trust the unique
1607         connection name (r534111)
1608         Remove event loop usage (r534112)
1609
1610 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1611
1612         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1613         Brad Hards.
1614
1615 2006-04-28  Robert McQueen  <robot101@debian.org>
1616
1617         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1618         any order, making it easier for people who inherit from this
1619         object.
1620
1621 2006-04-28  Robert McQueen  <robot101@debian.org>
1622
1623         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1624         of memory from within pointer arrays and lists. Fixes bug #6300.
1625
1626 2006-04-28  Robert McQueen  <robot101@debian.org>
1627
1628         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1629         generating struct signatures. Fixes bug #6083.
1630
1631 2006-04-28  Robert McQueen  <robot101@debian.org>
1632
1633         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1634         to qdbusconnection_p.moc.
1635
1636 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1637
1638         * README, INSTALL: Doc fixes
1639         Patch from Brad Hards <bradh at frogmouth.net>
1640
1641 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1642
1643         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1644         the dynamic meta object. No need to guess which interface to
1645         call.
1646
1647 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1648
1649         * qt/qdbusconnection_p.h:
1650         * qt/qdbusmetaobject.cpp:
1651         * qt/qdbusmetaobject_p.h:
1652         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1653         for the dynamic meta object. No need to guess which
1654         interface to call.
1655         * qt/qdbusabstractinterface_p.h:
1656         * qt/qdbusconnection.cpp:
1657         * qt/qdbusintegrator.cpp:
1658         * qt/qdbusinterface.cpp:
1659         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1660         Add a QDBusRef that looks and behaves like DCOPRef.
1661
1662 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1663
1664         * dbus/dbus-connection.c: Interfaces are optional in method
1665         calls, so don't give up if the interface parameter is NULL.
1666         Patch reviewed by Havoc Pennington.
1667
1668 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1669
1670         * qt/qdbusreply.h: Add default constructor and operator=
1671           (r532625)
1672         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1673           in public headers (r532952)
1674         * qt/qdbusabstractinterface.cpp:
1675         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1676           make it the default (r532951)
1677
1678 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1679
1680         * dbus/dbus-connection.c: Fix asserts
1681         Patch from Tim Moloney <t.moloney at verizon.net>
1682
1683 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1684
1685         * mono/Connection.cs, mono/Message.cs: Check Target type
1686         Patch from Aaron Bockover (abockover at novell.com)
1687
1688 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1689
1690         * INSTALL: fine-tune the requirements for the Qt4 binding.
1691
1692 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1693
1694         * tools/dbus-print-message.c: Added support for printing of all 
1695           remaining data types. Fixed logic for indentation of compound
1696           data types.
1697         
1698 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1699
1700         * INSTALL: fill out content of file providing DBus specific
1701           build installations, followed by generic Auto* INSTALL file
1702           content
1703         
1704 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1705
1706         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1707           Patch by Stefan Eilers. (r529537)
1708
1709 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1710
1711         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1712           contents (r528208)
1713
1714 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1715
1716         * qt/Makefile.am: fix the dependency for
1717           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1718           not in qdbusconnection.cpp.
1719           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1720           spotting this.
1721
1722 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1723
1724         * qt/examples/listnames.cpp:
1725         * qt/examples/Makefile.am: Three ways to list the names on the
1726           bus.
1727
1728 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1729
1730         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1731           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1732
1733 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1734
1735         Merge from Subversion:
1736         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1737           something that exists (r526315)
1738         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1739           slots/signals (r526316)
1740         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1741           also return an unknown-method error if the parameters don't
1742           match for org.freedesktop.DBus.Properties. (r526842)
1743         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1744         * qt/qdbusintegrator.cpp: Restore the proper order of
1745           delivery: don't make method returns be delivered on priority
1746           (r528150)
1747
1748 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1749
1750         * configure.in qt/Makefile.am: add qt/examples
1751         * qt/examples: Add QtDBus example programs:
1752           - hello: Hello, World
1753           - ping: Simple method-calling program
1754           - pong: Simple object-exporting program (not using adaptors)
1755           - complexping: Interactive method-calling program 
1756                 (also gets and sets properties).
1757           - complexpong: Sample program exporting methods, signals and
1758                 properties, using adaptors.
1759           - dbus: Simple implementation of a generic method-calling
1760                 program, similar to 'dbus-send', but with semantics
1761                 similar to 'dcop'.
1762           - chat: Simplistic chat program, implemented using signals
1763                 and the system bus. Looks like IRC.
1764
1765 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1766
1767         * configure.in: Detect QtGui (necessary for one of the
1768           example programs). Note: this increases the minimum required
1769           version of Qt to 4.1.3.
1770
1771 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1772
1773         * test/qt/*: Sync with KDE Subversion revision 523647.
1774         Update the testcases to the new API. Remove testcases for
1775         classes that are no longer public or have been removed.
1776
1777 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1778
1779         * qt/*: 
1780         * dbus/qdbus.h: Sync with KDE Subversion revision
1781         523647. Hopefully, this will be the last of the
1782         source-incompatible changes. Documentation has been improved;
1783         support for QList<basic-types> has been added; QDBusObject is
1784         gone; QDBus(Abstract)Interface is now a QObject with
1785         auto-generated meta-object; QDBusIntrospection is marked
1786         private, since QMetaObject can be used now; lots of bugfixes.
1787
1788 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1789
1790         Patch from Milosz Derezynski <internalerror at gmail.com>
1791         
1792         * configure.in:
1793         Output the service directory in the configure summary
1794
1795         * dbus-1.pc.in:
1796         Add session_bus_services_dir
1797
1798 2006-03-10  Ross Burton  <ross@openedhand.com>
1799
1800         * tools/dbus-print-message.c:
1801         Add support for object paths and signatures.
1802
1803 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1804
1805         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1806         config reload.
1807         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1808         information caches
1809         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1810         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1811         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1812         * dbus/dbus-userdb.h: Add function to flush all user/group information
1813         caches.
1814
1815 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1816
1817         * qt/dbusidl2cpp.cpp:
1818         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1819         for dcopidl2cpp, found in the KDE installations (or the more
1820         modern kalyptus): generate Qt4 C++ code for the input XML
1821         introspection. Currently no IDL parsing.
1822
1823 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1824
1825         * test/qt/*: Update the self-tests.
1826
1827 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1828
1829         * qt/*: 
1830         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1831         represents the first feature-complete version of the Qt4
1832         bindings since I took ove maintainership.
1833
1834 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1835
1836         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1837         dir. This is C++, so we can't use the DBus ones.
1838
1839 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1840
1841         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1842         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1843
1844 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1845
1846         * dbus/dbus-connection.c: 
1847         (_dbus_connection_block_pending_call):
1848         Check to see if our data has already been read off the connection
1849         by another blocking pending call before we block in poll.
1850         (check_for_reply_and_update_dispatch_unlocked):
1851         Code taken from _dbus_connection_block_pending_call - checks for
1852         an already read reply and updates the dispatch if there is one.
1853
1854         * test/name-test/test-pending-call-dispatch.c:
1855         New test for making sure we don't get stuck polling a 
1856         dbus connection which has no data on the socket when
1857         blocking out of order on two or more pending calls.
1858
1859 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1860
1861         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1862         make/automake don't detect that we're talking about the same
1863         .lo file if I specify the full path to the source files.
1864
1865 2006-02-26  Havoc Pennington  <hp@redhat.com>
1866
1867         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1868
1869         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1870         session bus variable is unset, suggest "man dbus-launch" and "man
1871         dbus-daemon" to figure out how to fix the problem
1872
1873 2006-02-25  Havoc Pennington  <hp@redhat.com>
1874
1875         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1876         should make this thing use the new glib options parser
1877
1878 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1879
1880         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1881         .lo files taking moc sources.
1882
1883 2006-02-25  Havoc Pennington  <hp@redhat.com>
1884
1885         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1886         and install it as a public header
1887
1888 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1889
1890         * Released 0.61
1891
1892 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1893         
1894         * proxies.py: Fix the callchain
1895
1896 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1897         
1898         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1899
1900         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1901         dbus/dbus-sysdeps.c
1902
1903         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1904         call _dbus_group_info_free_allocated which causes infinite loop,
1905         correctly call _dbus_group_info_free
1906
1907 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1908
1909         * qt/qdbusinterface_p.h:
1910         * qt/qdbusinterface.cpp: Use the standard
1911         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1912         calls instead of creating one for us.
1913
1914         * qt/qdbusconnection_p.h:
1915         * qt/qdbusintegrator.cpp: Remove debugging code.
1916
1917         * qt/qdbusintegrator.cpp:
1918         * qt/qdbusmessage.cpp:
1919         * qt/qdbusmessage_p.h:
1920         * qt/qdbusmessage.h: Change the behaviour of automatic
1921         reply-sending: now a reply is always sent, unless the caller
1922         didn't request one or if the user slot has already sent one.
1923
1924 2006-02-16  Robert McQueen  <robot101@debian.org>
1925
1926         * configure.in: Patch from Debian packages by Sjoerd Simons
1927         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1928         arguments so it's possible to build both bindings in the
1929         same tree.
1930
1931         * qt/Makefile.am: Fix truncated value so that make dist works.
1932
1933 2006-02-16  Robert McQueen  <robot101@debian.org>
1934
1935         * acinclude.m4, configure.in: Patch from Brad Hards
1936         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1937         improving quoting, re-ordering a few checks, and a few other
1938         aesthetic tidy-ups.
1939
1940 2006-02-16  Robert McQueen  <robot101@debian.org>
1941
1942         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1943         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1944         assertion that the next element to read from the iter is fixed in
1945         size. This is not the case when you are at the end of the iter,
1946         because the next element type is INVALID.
1947
1948         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1949         a bogus assert which means that you may not initialise a 0-length
1950         string unless you provide a non-NULL pointer. This prevented
1951         you from marshalling messages containing zero-length arrays in
1952         some cases.
1953
1954         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1955         from Rob to correct bogus asserts when trying to demarshal an
1956         array and get_fixed_array got you 0 elements. Append nothing to
1957         the GArray in this case.
1958
1959         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1960         an empty array via the glib bindings. Without all of the above
1961         patches, this new test fails.
1962
1963 2006-02-16  Robert McQueen  <robot101@debian.org>
1964
1965         * glib/dbus-gmain.c: Make the previous commit compile.
1966
1967         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1968         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1969         specify sender_keyword="foo", path_keyword="bar" when adding
1970         a signal listener, so that you can bind to signals generically
1971         but still do something useful in your callback.
1972
1973         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1974         chars so that they're not cast to chars and made negative. Thanks
1975         to Jakub Stachowski for reporting this and testing the fix.
1976
1977 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1978
1979         * dbus/dbus-glib.h:
1980         * glib/dbus-gmain.h:
1981         (dbus_g_connection_open): new method for openning
1982         a connection to an arbitrary address in the glib bindings
1983
1984         * ChangeLog: checkin last entry which doesn't seem to be commited
1985
1986 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1987
1988         * tools/dbus-launch.c: Fixed sh syntax output
1989
1990 2006-02-13  Robert McQueen  <robot101@debian.org>
1991
1992         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1993         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1994         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1995         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1996         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1997         missing piece of the glib bindings jigsaw puzzle. This modifies
1998         the existing specialised types to have N type parameters (rather
1999         than the current 1 or 2 for arrays and dictionaries respectively).
2000         You can then use this to get a glib type to represent any arbitrary
2001         D-Bus struct type using dbus_g_type_get_struct. The only
2002         implementation of these types is with GValueArrays as before,
2003         but it's now possible to store these in arrays, emit them in
2004         signals, etc.
2005
2006 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2007
2008         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2009         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2010         <thiago.macieira at trolltech.com>
2011
2012 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2013
2014         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2015         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2016
2017 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2018
2019         * bus/connection.c (bus_connections_expect_reply): Make
2020         pending reply limit not common to all connections (Bug #5416)
2021         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2022
2023 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2024
2025         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2026
2027 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2028
2029         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2030         patch from Doug Goldstein <cardoe at gentoo.org>
2031
2032 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2033
2034         * mono/Arguments.cs: Fix a magic number in the mono bindings
2035         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2036
2037 2006-01-27  Robert McQueen  <robot101@debian.org>
2038
2039         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2040         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2041         when generating the client-side methods, instead of overloading
2042         CSymbol which broke everything horribly. My apologies.
2043
2044 2006-01-27  Robert McQueen  <robot101@debian.org>
2045
2046         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2047         by me and Rob Taylor to add a simple_free function to D-Bus map
2048         and collection types, which allows those types which can be freed
2049         with a GDestroyNotify (such as GHashTables and GArrays, but not
2050         GPtrArrays) to be stored as the values in hashtables.
2051
2052         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2053         Patch by Rob Taylor to add nested dicts to the glib tests to check
2054         the above code works, and appears not to leak when called repeatedly.
2055
2056 2006-01-27  Robert McQueen  <robot101@debian.org>
2057
2058         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2059         to free a D-Bus allocated string with dbus_free () instead of
2060         g_free ().
2061
2062 2006-01-27  Iain Holmes  <iain@openedhand.com>
2063
2064         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2065         method from being called multiple times.
2066
2067 2006-01-19  Robert McQueen  <robot101@debian.org>
2068
2069         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2070         <rob.taylor@collabora.co.uk> to add support for generating bindings
2071         to arrays that are represented as GPtrArrays rather than GArrays (ie
2072         size-variable things, such as strings, objects, structs, etc).
2073
2074 2006-01-05  Robert McQueen  <robot101@debian.org>
2075
2076         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2077         <ricardo.kekki@movial.fi> to make it possible to inherit from
2078         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2079         a private part, and moving the setting of the DBusGProxyManager into a
2080         connection property, allowing proper GObject construction.
2081
2082 2006-01-05  Robert McQueen  <robot101@debian.org>
2083
2084         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2085         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2086         annotations when generating glib client bindings.
2087
2088 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2089
2090         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2091
2092         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2093
2094 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2095
2096         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2097
2098 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2099
2100         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2101
2102 2005-12-19  Ross Burton  <ross@openedhand.com>
2103
2104         * doc/dbus-tutorial.xml:
2105         Document the Glib client-side bindings, and list all possible annotations.
2106
2107 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2108
2109         * dbus/bus.c (dbus_bus_release_name): Add documentation
2110
2111 2005-12-06  Robert McQueen  <robot101@debian.org>
2112
2113         * python/service.py: s/sucessful/successful/ so we're allocating to
2114         and reading from the same variable. Oops.
2115
2116 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2117
2118         * Released 0.60
2119
2120 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2121
2122         * test/qt/Makefile.am: build from srcdir
2123
2124         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2125         Note - this code is wrong and needs to be fixed by the Qt binding
2126         developers.  The flags should be treated as bitfields and not enums.
2127
2128         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2129
2130 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2131
2132         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2133           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2134           in production code
2135
2136 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2137
2138         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2139         method for getting messages off the bus in the absence of a
2140         mainloop.  This method is much like 
2141         dbus_connection_read_write_dispatch except it does not dispatch
2142         the messages to a registered filter function.  Instead it
2143         allows a developer to process messages by directly popping
2144         them off the bus.
2145
2146 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2147
2148         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2149         the parser to continue instead of returning error
2150         (bus_desktop_file_load): Do not free parser data when
2151         parse_section_start or parse_key_value fails because it was 
2152         already freed by parser_free (patch from Carlos Garcia Campos  
2153         <carlosgc at gnome.org>)
2154
2155 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2156
2157         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2158         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2159         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2160         test/test-segfault.c, test/test-utils.c,
2161         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2162         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2163         Various cleanup of dead code and compiler warnings (patch from
2164         Kjartan Maraas <kmaraas at gnome.org>) 
2165
2166 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2167
2168         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2169         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2170
2171 2005-11-27  Robert McQueen  <robot101@debian.org>
2172
2173         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2174         part of the preceding one. Oops. Merge patch by Johan Hedberg
2175         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2176         on big-endian platforms.
2177
2178         * test/python/test-client.py: Add some 16-bit integers to the test
2179         values.
2180
2181 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2182
2183         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2184         method return message for property getters
2185
2186 2005-11-27  Robert McQueen  <robot101@debian.org>
2187
2188         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2189         with type v of an instance of dbus.Variant(foo, type='x') caused
2190         it to be boxed twice before sending over the bus.
2191
2192         * python/dbus_bindings.pyx, python/service.py,
2193         test/python/test-client.py: Update the constants for the new
2194         request_name flags, and update comments/test cases now that queueing
2195         is the default action.
2196
2197 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2198
2199         * configure.in:
2200         - Change version to 0.60 for impending release
2201         - upped the sonames because of ABI and API breakage
2202
2203 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2204
2205         * configure.in: Add test/name-test/Makefile to the generated
2206         Makefile list
2207
2208         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2209         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2210         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2211         not to queue an ower if it can't be the primary owner
2212
2213         * bus/bus.h: Add new internal BusOwner struct
2214
2215         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2216         to bus_registry_ensure and don't set the prohibit_replacement flag
2217         since they are now set per BusOwner and not per name.
2218         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2219         that returns the list of connections in a name's connection queue
2220         
2221         * bus/services.c (struct BusService): remove prohibit_replacement field
2222         (struct BusOwner): new struct for keeping track of queued connections
2223         and their associated flags for the queue
2224         (struct BusRegistry): add a BusOwner memory pool
2225         (bus_registry_new): initialize the BusOwner memory pool
2226         (bus_registry_unref): free the BusOwner memory pool
2227         (_bus_service_find_owner_link): new internal method for
2228         searching the queue for a specific connection
2229         (bus_owner_set_flags): new method for adding setting the flags on a
2230         bus owner
2231         (bus_owner_new): new method that creates a BusOwner object from the
2232         pool and sets its flags
2233         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2234         (bus_registry_ensure): Add the flags parameter
2235         (bus_registry_acquire_service): Switch from using raw connections to
2236         using the BusOwner struct
2237         Add new state machine for dealing with the new set of flags
2238         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2239         cancel_ownership, free_ownership_cancel_data, 
2240         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2241         restore_ownership, free_ownership_restore_data, 
2242         add_restore_ownership_to_transaction): Switch to using BusOwner 
2243         instead of raw connections
2244         (bus_service_add_owner): Add flags parameter
2245         Switch to using BusOwner instead of raw connections
2246         Add state machine for dealing with the new set of flags
2247         (bus_service_swap_owner): Swaps the first and second owners in the
2248         queue.  Used to make sure proper signals are sent when a service looses 
2249         or gains primary ownership.  We never insert an owner at the top of the
2250         queue.  Instead we insert it in the second position and then swap.
2251         (bus_service_remove_owner): Remove the owner from the queue sending
2252         out the NameLost and NameOwnerChanged signals if the we were the 
2253         primary owner
2254         (bus_service_get_primary_owners_connection): New method that extracts
2255         the connection from the primary owner
2256         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2257         connection
2258         (bus_service_get_allow_replacement): Changed from the old 
2259         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2260         primary owner and returns if it can be replaced or not
2261         (bus_service_set_prohibit_replacement): removed
2262         (bus_service_has_owner): returns TRUE if and owner with
2263         the specified connection exists in the queue
2264         
2265         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2266         method that only compiles if tests are enabled.  Allows us to get the 
2267         unique name of a connection so we can check it against the queue when
2268         doing regression tests
2269
2270         * bus/activation.c (bus_activation_send_pending_auto_activate),
2271         bus/dispatch.c (bus_dispatch),  
2272         bus/driver.c (bus_driver_handle_get_service_owner, 
2273         bus_driver_handle_get_connection_unix_user, 
2274         bus_driver_handle_get_connection_unix_process_id,
2275         bus_driver_handle_get_connection_selinux_security_context),
2276         bus/signals.c (connection_is_primary_owner): 
2277         use bus_service_get_primary_owners_connection instead of
2278         bus_service_get_primary_owner
2279
2280         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2281         _dbus_listen_unix_socket): Calculate the length of the socket
2282         path and use that instead of using a fixed length which was
2283         causing socket names to contain many trailing Nul bytes.
2284
2285         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2286         (dbus_g_method_get_sender): New method for extracting the sender 
2287         from a DBusGMethodInvocation
2288         (dbus_g_method_return_get_reply): changed name to 
2289         dbus_g_method_get_reply
2290         (dbus_g_method_return_send_reply): changed name to
2291         dbus_g_method_send reply
2292
2293         * doc/dbus-specification.xml: New docs that describe how the new
2294         queueing system works and talks about the changes to the how
2295         we specify socket names
2296
2297         * glib/examples/example-service.c, 
2298         glib/examples/example-signal-emitter.c,
2299         glib/examples/statemachine/statemachine-server.c:
2300         Changed the RequestName flags to the new system
2301
2302         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2303         regression test suite for testing various states of the new
2304         queueing system
2305         
2306 2005-11-15  Robert McQueen  <robot101@debian.org>
2307
2308         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2309         Taylor to add two methods, dbus_g_method_return_get_reply and
2310         dbus_g_method_return_send_reply, to allow you to get the reply
2311         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2312         and send it. The GLib bindings can't marshal a return value of
2313         something like a(s) if the array is empty - ultimately they should be
2314         made to heed the signature of the out arguments as the Python bindings
2315         now can, but this is a workable interim solution which might have
2316         other applications.
2317
2318 2005-11-15  Robert McQueen  <robot101@debian.org>
2319
2320         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2321         method to org.freedesktop.DBus to release a bus name or give up
2322         waiting in the queue for it.
2323
2324         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2325         dbus_bus_release_name method to send the ReleaseName method calls.
2326         Add constants for the return values to dbus/dbus-shared.h.
2327
2328         * doc/dbus-specification.xml: Document the new ReleaseName method
2329         in the specification.
2330
2331         * python/dbus_bindings.pyx: Add a low-level python binding for the
2332         release name method.
2333
2334         * python/exceptions.py, python/service.py: Make freeing BusName
2335         objects release the name. Add a NameExistsException, and fix a
2336         bug with creating UnknownMethodException.
2337
2338         * test/python/test-client.py: Add tests for freeing BusName
2339         objects causing names to be released.
2340
2341 2005-11-14  Robert McQueen  <robot101@debian.org>
2342
2343         * python/service.py: Include the traceback in the error reply when we
2344         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2345
2346 2005-11-14  David Zeuthen  <davidz@redhat.com>
2347
2348         Patch from Timo Hoenig <thoenig@suse.de>.
2349
2350         * bus/bus.c: I've recently investigated why the automatic reload
2351         of configuration files does not work as expected.
2352
2353         Currently, reloading configuration files does only work when
2354         running dbus-daemon with --nodaemon.  If we are running as daemon
2355         we're hitting a dnotify bug once we fork the process.
2356
2357         We're initializing the dnotify fds before calling fork().  Once
2358         the child process forked it does still have the fds (and they
2359         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2360         getting SIGIO as changes are made to the configuration files.
2361
2362         The attached patch moves the initialization of the dnotify fds to
2363         process_config_postinit().  This is safe for all current code
2364         paths and solves the dnotify disfunction.  If we're running
2365         dbus-daemon as daemon the fds for dnotify are now being
2366         initialized after fork() for the child process.
2367
2368         * configure.in: The current configure.in check for dnotify probes
2369         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2370         match for 'xlinux', too. Additionally I have adapted the configure
2371         option's style to match with the others.
2372
2373 2005-11-14  Robert McQueen  <robot101@debian.org>
2374
2375         * python/decorators.py, python/service.py: Add a new argument to the
2376         dbus.service.method decorator called sender_keyword, which if set,
2377         specifies the name of an argument which will be provided the bus
2378         name of the method caller.
2379
2380         * test/python/test-client.py, test/python/test-service.py: Add a
2381         method and test to check the sender_keyword functionality.
2382
2383 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2384
2385         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2386         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2387         Simons <sjoerd at luon.net>)
2388
2389         * AUTHORS: Add Robert McQueen for his work on the Python
2390         Bindings and other parts of D-Bus
2391
2392 2005-11-07  Robert McQueen  <robot101@debian.org>
2393
2394         * python/decorators.py: Change emit_signal function to use the
2395         signature annotation of the signal when marhsalling the arguments from
2396         the service. Fix a bug where the code checking signature length
2397         against argument length referenced the wrong variable.
2398
2399         * python/introspect_parser.py: Avoid adding the type signature of
2400         signal arguments to any methods which occur after them in the
2401         introspection data (!) by making the parser a little more careful
2402         about its current state.
2403
2404         * python/service.py: Remove debug prints from last commit (again :D).
2405
2406         * test/python/test-client.py, test/python/test-service.py: Add test
2407         signals with signature decorators to test the strict marshalling code
2408         gives errors at the right time. Could do with checking the signals
2409         actually get emitted too, given that the test does nothing with
2410         signals at the moment...
2411
2412 2005-11-07  Robert McQueen  <robot101@debian.org>
2413
2414         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2415         instances to stop madness of creating new instances representing
2416         the same bus connection all the time, rendering any tracking of
2417         match rules and bus names quite meaningless. Caught a bug where
2418         the private argument to SessionBus() and friends was being passed
2419         in as use_default_mainloop by mistake. Still some problems with
2420         multiple dbus_binding.Connection instances representing the same
2421         low-level connection (eg when you use both SessionBus() and
2422         StarterBus() in same process), but it's a lot better now than it
2423         was.
2424
2425         * python/dbus_bindings.pyx: Add constants with the return values
2426         for bus_request_name().
2427
2428         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2429         and retrieve the same instances for the same name, so deletion can be
2430         done with refcounting. Also now throws some kind of error if you
2431         don't actually get the name you requested, unlike previously...
2432
2433         * test/python/test-client.py: Add tests for instance caching of buses
2434         and bus name objects.
2435
2436 2005-11-04  Robert McQueen  <robot101@debian.org>
2437
2438         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2439         marshalling of boolean values. Add some booleans to the values in
2440         the test client.
2441
2442         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2443         argument to the dbus.service.method decorator, which allows you to
2444         name arguments to take two callback functions for replying with
2445         return values or an exception.
2446
2447         * test/python/test-client.py, test/python/test-service.py: Add test
2448         case using asynchronous method reply functions, both return values and
2449         errors, and from within both the function itself and from a mainloop
2450         callback.
2451
2452         * python/decorators.py, python/service.py: Perform checking that the
2453         number of method/signal arguments matches the number of types in the
2454         signature at class loading time, not when you first introspect the
2455         class.
2456
2457         * python/service.py: Remove debug print left by the last commit.
2458
2459 2005-11-03  Robert McQueen  <robot101@debian.org>
2460
2461         * python/service.py: Heavy refactoring of method invocation, with
2462         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2463         in favour of a new _message_cb that uses seperate functions for
2464         looking up the method to call, marshalling the return values, and
2465         sending exceptions as errors, and is easier to follow as a
2466         consequence.  Fixes some corner cases about returning things that
2467         don't match your declared out_signature, allows exceptions to define
2468         _dbus_error_name and have it be sent over the bus as the error name,
2469         and paves the way for cool stuff like heeding the message no reply
2470         flag, asynchronous method implementations, informing the method of the
2471         sender, and including backtraces in the error messages.
2472
2473         * test/python/test-client.py: Catch and print exceptions thrown in the
2474         async callback tests, rather than passing them to the low-level
2475         bindings to be ignored in a noisy and frustrating manner.
2476
2477 2005-11-03  Robert McQueen  <robot101@debian.org>
2478
2479         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2480         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2481         tweak others to be consistent.
2482
2483         * test/python/test-client.py: Tweak output of testInheritance.
2484
2485 2005-10-29  Robert McQueen  <robot101@debian.org>
2486
2487         * python/service.py: Major changes to allow multiple inheritance
2488         from classes that define D-Bus interfaces:
2489         
2490          1. Create a new Interface class which is the parent class of
2491             Object, and make the ObjectType metaclass into InterfaceType.
2492         
2493          2. Patch written with Rob Taylor to replace use of method_vtable
2494             with code that walks the class's __MRO__ (method resolution order)
2495             to behave like Python does when invoking methods and allow
2496             overriding as you'd expect. Code is quite tricky because
2497             we have to find two methods, the one to invoke which has the
2498             right name and isn't decorated with the /wrong/ interface,
2499             and the one to pick up the signatures from which is decorated
2500             with the right interface.
2501         
2502             The same caveats apply as to normal multiple inheritance -
2503             this has undefined behaviour if you try and inherit from two
2504             classes that define a method with the same name but are
2505             decorated with different interfaces. You should decorate
2506             your overriding method with the interface you want.
2507         
2508          3. Replace grungy introspection XML generation code in the metaclass
2509             with dictionaries that cope correctly with multiple inheritance
2510             and the overriding of methods. This also uses the signature
2511             decorations to provide correct introspection data, including
2512             the debut appearance of the types of your return values. :D
2513
2514         * test/python/test-client.py, test/python/test-service.py: Add a test
2515         case to try invoking an method that overrides one inherited from a
2516         D-Bus interface class.
2517
2518 2005-10-29  Robert McQueen  <robot101@debian.org>
2519
2520         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2521         Add checking for the end of struct character when marshalling a
2522         struct in MessageIter.append_strict.
2523
2524         * python/examples/example-service.py,
2525         python/examples/gconf-proxy-service.py,
2526         python/examples/gconf-proxy-service2.py: Update to use gobject
2527         mainloop directly rather than appearing to depend on gtk.
2528
2529         * python/test/test-client.py, python/test/test-server.py: Remove
2530         obsolete and broken test scripts for old bindings. We have up to date
2531         and working tests in test/python/.
2532
2533 2005-10-29  Robert McQueen  <robot101@debian.org>
2534
2535         * python/decorators.py: Add optional arguments to the method and
2536         signal decorators to allow you to specify the signature of arguments
2537         and return values. Preserve the doc strings of signal functions in the
2538         decorated version, for pydoc and friends.
2539
2540         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2541         parse_signature_block function with an iterable dbus.Signature()
2542         type. Fix a bug in MessageIter.append_strict where you could append
2543         anything by claiming it was a string.
2544
2545         * python/service.py: Use the out_signature decoration on methods to
2546         marshal return values, meaning you no longer require dbus.Array()
2547         or dbus.Dictionary() to indicate the type when returning empty
2548         arrays or dictionaries. Fix a bug where exceptions which are defined
2549         in __main__ are not turned into error replies.
2550
2551         * test/python/test-client.py, test/python/test-service.py: Add test
2552         for correct marshalling of return values according to out_signature.
2553         Fix a bug in the async call test where the error_handler is missing a
2554         self argument.
2555
2556 2005-10-29  Robert McQueen  <robot101@debian.org>
2557
2558         * glib/Makefile.am, glib/examples/Makefile.am,
2559         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2560         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2561
2562         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2563
2564         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2565         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2566         the command line.
2567
2568 2005-10-27  Ross Burton  <ross@openedhand.com>
2569
2570         * dbus/dbus-marshal-header.c:
2571         Remove dead code.
2572
2573         * glib/dbus-gobject.c:
2574         Stop compiler warning.
2575
2576 2005-10-25  Ross Burton  <ross@openedhand.com>
2577
2578         * dbus/dbus-auth.c:
2579         * dbus/dbus-server-unix.c:
2580         * dbus/dbus-transport-unix.c:
2581         * glib/dbus-gmain.c:
2582         * glib/dbus-gobject.c:
2583         Add some const keywords.
2584
2585 2005-10-25  Ross Burton  <ross@openedhand.com>
2586
2587         * doc/dbus-specification.xml:
2588         Document the NoReply annotation.
2589
2590         * glib/dbus-binding-tool-glib.h:
2591         * glib/dbus-binding-tool-glib.c:
2592         Respect the NoReply annotation.
2593
2594 2005-10-24  Robert McQueen <robot101@debian.org>
2595
2596         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2597         derive from unicode instead of str, and encode/decode UTF-8 when
2598         marshalling/unmarshalling bus messages
2599
2600         * python/introspect_parser.py: encode introspection data as UTF-8
2601         before passing the buffer into libxml2
2602
2603         * test/python/test-client.py: add unicode test strings
2604
2605         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2606         ignore generated python test files
2607
2608 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2609
2610         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2611         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2612         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2613
2614         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2615         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2616         when constructing struct signatures
2617
2618         * python/_dbus.py (Bus): handle private connections using the
2619         private keyword in the constructor. defaults to private=False
2620         (Bus::close): new method to close a connection to the bus
2621
2622         * python/dbus_bindings.pyx (Connection::close): renamed method
2623         was previously called disconnect
2624         (bus_get): now supports getting a private connection
2625
2626         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2627         keyword is set to True.  if it is, execute the method without waiting
2628         for a reply
2629         (ProxyObject::_introspect_execute_queue): new method for executing
2630         all the pending methods that were waiting for the introspect to
2631         finish.  this is called when introspect either succeeds or fails
2632         (ProxyObject::_introspect_error_handler): call queued methods
2633
2634 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2635
2636         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2637         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2638
2639         * python/service.py (Object::_message_cb): handle exceptions correctly
2640         by sending them over the wire to the calling app.  This makes sure
2641         the client returns immediately instead of waiting the 15 seconds to
2642         timeout.
2643
2644         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2645         Add a test to benchmark how long it takes to introspect a service and 
2646         call a method which returns a large element (pretty fast)
2647
2648         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2649         method which pushes a lot of data
2650
2651 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2652
2653         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2654         reclaim memory outside of the loop and use del istead of just setting
2655         the key to None
2656
2657 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2658
2659         * python/service.py (ObjectType::_reflect_on_signal): Always close
2660         signal tag even when there are no arguments
2661
2662 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2663
2664         * configure.in: Set mono, mono-docs and Qt3 to default
2665         to no instead of auto when building.  These bindings do not
2666         have full time maintainers and will not be supported for the
2667         1.0 release.
2668
2669 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2670
2671         patches from Michael Krivoruchko <misha at sun.com>: 
2672         
2673         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2674         _dbus_connection_message_sent, 
2675         _dbus_connection_send_preallocated_unlocked_no_update, 
2676         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2677         is NULL when calling _dbus_verbose
2678
2679         * configure.in: check for functions getpeerucred and getpeereid
2680
2681         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2682         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2683         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2684         Patch was only tested on Solaris 10 x86 so it might be issues
2685         with other platforms (i.e. BSDs and MacOSX)
2686         
2687
2688 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2689
2690         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2691         instead of marshal basic so we can handle recursive types in a variant
2692
2693         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2694         in variants
2695
2696         * test/glib/test-service-glib.c, test-service-glib.xml
2697         (my_object_echo_variant [EchoVariant], 
2698         my_object_process_variant_of_array_of_ints123
2699         [ProcessVariantOfArrayOfInts123]): 
2700         Add two test methods
2701
2702         * python/introspect_parser.py: New module for parsing introspect
2703         data.
2704
2705         * python/dbus_bindings.pyx:
2706         (various places): when throwing errors fix to use errormsg instead 
2707         of message local variable because Pyrex can get confused with other 
2708         message variables (initial patch by Robert McQueen 
2709         <robert.mcqueen at collabora.co.uk>)
2710         (MessageIter::parse_signature_block): new method for getting the next
2711         block in a signiture.
2712         (MessageIter::append_strict): new method for appending values strictly
2713         using the passed in signature instead of guessing at the type
2714         (MessageItter:: append_dict, append_struct, append_array): use 
2715         signatures to marshal children if the signature is available
2716         
2717         * python/exceptions.py (IntrospectionParserException): new exception
2718
2719         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2720         introspected signatures if available, else we fall back to the
2721         old way of doing things.
2722         (ProxyObject::_introspect_reply_handler ): parse introspection data
2723         
2724         * python/service.py (ObjectType::_reflect_on_method): Properly
2725         terminate <method> if there are no args in the reflection data
2726
2727         * test/python/test-client.py: add tests for talking with the GLib
2728         test server.  This gives us better coverage for introspection since
2729         python to python will always generate arguments as variants.  It also
2730         allows us to test the robustness of the GLib bindings and interlanguage
2731         communications.
2732
2733         
2734 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2735
2736         * bus/driver.c (bus_driver_handle_introspect): Add signals
2737         to the introspect data. (patch from Daniel P. Berrange 
2738         <dan at berrange.com>)
2739
2740         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2741         
2742         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2743         _dbus_connection_run_builtin_filters): Changed these to
2744         be unlock_no_update functions and call 
2745         _dbus_connection_send_unlocked_no_update instead of
2746         dbus_connection_send to avoid locking errors.
2747         
2748         * doc/TODO: Removed the make Ping test TODO
2749         
2750 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2751
2752         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2753         We now copy the message from a DBusError and then free 
2754         the error object befor throwing the error
2755
2756         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2757         DBusBindingOutputMode enum which was causing a warning.
2758         #include <time.h> so using time_t is explicitly defined
2759
2760 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2761
2762         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2763         - dbus/dbus-bus.c
2764         (internal_bus_get): new method that take over the heavy lifting
2765         of dbus_bus_get and adds the ability to get a private connection
2766         to the bus
2767         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2768         interface as in previous versions
2769         (dbus_bus_get_private): new method that is a wrapper to 
2770         internal_bus_get to get a private connection to the bus
2771
2772         - dbus/dbus-bus.h
2773         (dbus_bus_get_private): add as a public libdbus interface
2774
2775         - dbus-1.pc.in: output system_bus_default_address and 
2776         sysconfdir variables so apps can use them when compiling
2777
2778 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2779         * dbus/qt: New Qt bindings
2780
2781 2005-09-12  Waldo Bastian  <bastian@kde.org>
2782
2783         * dbus/dbus-marshal-validate.c,
2784         doc/dbus-specification.xml, test/Makefile.am,
2785         test/test-names.c: allow hyphens in bus names.
2786
2787 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2788
2789         * test/data/auth/fallback.auth-script: we don't
2790         retry the EXTERNAL method when we know its going
2791         to fail anymore.
2792
2793 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2794
2795         * dbus/dbus-connection-internal.h: rename
2796         (add|remove|toggle)_(watch|timeout) to unlocked()
2797         
2798         * dbus/dbus-connection.c: ditto.
2799         
2800         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2801         Update some callers for the renaming.
2802
2803 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2804
2805         * dbus/dbus-auth.c: (record_mechanisms): don't
2806         retry the first auth mechanism because we know
2807         we're just going to get rejected again.
2808         
2809         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2810         Fix thinko ... and what a nasty little bugger to
2811         track down you were ...
2812
2813         * dbus/dbus-connection.c:
2814         (_dbus_connection_add_watch),
2815         (_dbus_connection_remove_watch): add note about
2816         these needing the connection to be locked.
2817         (_dbus_connection_get_dispatch_status_unlocked):
2818         set status to DATA_REMAINS when we queue the
2819         disconnected message.
2820         
2821         * bus/dispatch.c:
2822         (bus_dispatch): fix warning.
2823         (check_existent_service_no_auto_start):
2824         Expect ChildSignaled error too.
2825         (check_existent_hello_from_self): fix another
2826         couple of warnings.
2827         
2828 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2829
2830         Patches from James Willcox <snorp@snorp.net>
2831
2832         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2833
2834         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2835         support array "out" parameters.
2836
2837         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2838         for 16-bit int support.
2839
2840 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2841
2842         * Released 0.50
2843
2844         * Patch from Steve Grubb:
2845         - bus/activation.c (bus_activation_service_reload_test): clean up
2846         some indentation
2847         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2848         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2849         buffer overflows in the test suite.  This is non critical because
2850         it can not be exploited and this code is only run when doing a 
2851         make check.
2852
2853         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2854         - configure.in: Don't check and link against kdecore, only qt headers
2855         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2856         - gcj/org/freedesktop/dbus/Makefile.am:
2857         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2858         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2859         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2860         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2861         - tools/Makefile.am: Add platform extentions to binaries 
2862         (i.e. .exe on windows)
2863
2864         * configure.in: 
2865         - Make it so if no suitable version of python is found we only 
2866         disable building python instead of exiting the configure script
2867         - Require version 2.4 of glib for glib bindings
2868         - Up version to 0.50
2869
2870         * python/__init__.py: Sync version with libdbus to (0,50,0)
2871         
2872 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2873
2874         * dbus/dbus-object-tree.c (find_subtree_recurse):
2875         a couple of optimizations (bug #710):
2876         - do a binary search in the tree
2877         - insert a new child at the right place directly, no need for
2878           qsort anymore
2879         - do the "double alloc" thing when allocating children
2880
2881 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2882
2883         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2884
2885         * python/dbus_bindings.pyx: Memory management foo
2886         (global): remove hacky _user_data_references global list
2887         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2888         tuples. Unref user_data
2889         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2890         (Connection::__del__): Remove and replace with __dealloc__ method
2891         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2892         to keep tuple from being deallocated instead of the global var hack
2893         (Connection::register_object_path): Stuff user_data into a tuple.
2894         Use Py_INCREF to keep tuple from being deallocated instead of the 
2895         global var hack
2896         (Connection::register_fallback): Stuff user_data into a tuple.
2897         Use Py_INCREF to keep tuple from being deallocated instead of the 
2898         global var hack
2899         (GIL_safe_pending_call_notification): Don't unref the message
2900         because it gets unreffed when going out of scope.  Py_XDECREF
2901         the user_data
2902         (PendingCall::__del__): Remove and replace with __dealloc__ method
2903         (PendingCall::set_notify): ref the pending call because we will
2904         need it to stick around for when the notify callback gets called
2905         (Message::__del__): Remove and replace with __dealloc__ method
2906
2907         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2908         gthreads_init to match up with the dbus call
2909
2910         * python/glib.py (init_threads): Changed to threads_init to match
2911         up with gobject.threads_init().  init_threads is kept for backwards
2912         compat but will most likely be deprecated in the future
2913
2914         * test/python/test-client.py: 
2915         - revamp to use Python's unittest functionality
2916         - add async call tests
2917         - setup threads in glib and dbus so we make sure locks are working
2918         
2919 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2920
2921         * python/dbus_bindings.pyx 
2922         (_pending_call_notification, cunregister_function_handler, 
2923         cmessage_function_handler): All callback functions have been rearranged 
2924         to workaround a bug in Pyrex when working with the GIL which is Python's 
2925         global lock when dealing with threads.  They have been split into
2926         a wrapper function (which assumes the name of the old function) and
2927         a _GIL_safe_<function name> function which contains the functionality
2928         of the old function.  This ensures that Pyrex does not write code
2929         the lock is released.
2930         
2931
2932 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2933
2934         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2935         GIL global lock when calling back into Python
2936
2937 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2938
2939         * Release 0.36.2
2940
2941         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2942
2943         * bus/policy.c (bus_policy_allow_user): change default "user is
2944         allowed" to be "user has same uid as the bus itself"; any
2945         allow/deny rules will override.
2946
2947         * bus/session.conf.in: don't allow all users, since now by default
2948         the user that ran the bus can connect.
2949
2950 2005-08-26  Colin Walters  <walters@verbum.org>
2951
2952         * tools/dbus-print-message.c (print_message): Flush stdout
2953         after printing a message, so that redirecting to a file, then
2954         hitting Ctrl-C works.
2955
2956 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2957
2958         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2959         (EmptyMessage): new class that subclasses Message.  This is a workaround
2960         to a Pyrex bug that fails to call __del__ when the Message object goes out
2961         of scope.  For some reason subclassing Message fixes this bug
2962         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2963         - s/Message(_create=0)/EmptyMessage everywhere else
2964         
2965         * test/python/test-{server|client}.py: add the python/.libs directory
2966         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2967         get picked up from the system
2968
2969 2005-08-25  Colin Walters  <walters@verbum.org>
2970
2971         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2972         to Ryan Lortie for the suggestion.
2973
2974 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2975
2976         * test/python: Add python regression test
2977
2978         * configure.in: Add test/python/Makefile
2979
2980         * test/Makefile.am: Add the python directory to SUBDIRS
2981
2982 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2983
2984         * Release 0.36.1
2985
2986         * python/_dbus.py: 
2987         (Interface::connect_to_signal): propigate keywords for match on args
2988         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2989
2990         * python/proxies.py (ProxyObject::connect_to_signal):
2991         propigate keywords for match on args
2992
2993         * Makefile.am: point everything to pyexecdir since python borks
2994         on multilib
2995
2996 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2997
2998         * Release 0.36
2999
3000 2005-08-23  Colin Walters  <walters@verbum.org>
3001
3002         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3003
3004 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3005
3006         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3007         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3008         of defining DBusConnection ourselves.
3009
3010 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3011
3012         * python/dbus.pth: New path file to fix up problems when installing
3013         c libraries to lib64 and python files to lib.
3014
3015         * python/Makefile.am: install dbus.pth in the correct spot
3016
3017 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3018         * ChangeLog: clean up my last entry a bit
3019
3020         * doc/introspect.xsl: New stylesheet for converting introspection data
3021         into browser renderable xhtml. Contributed by Lennart Poettering.
3022
3023         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3024         Poettering.
3025
3026         * doc/dbus-tutorial.xml: 
3027         - Add Colin Walter to the Authors section for authoring the GLib
3028         section
3029         - Add descriptions of the new signature and type functionality
3030         in the Python complex type mapping section
3031         - Add a sidenote on the new args matching functionality in 
3032         the Python bindings
3033         - Fixed up some of the examples to use the gobject.MainLoop
3034         instead of gtk.main
3035         
3036         * python/_dbus.py:
3037         (Bus::_create_args_dict): New. Converts a hash of arg matches
3038         to a more useable format
3039         (Bus::add_signal_receiver): add a **keywords parameter for catching
3040         arg match parameters
3041         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3042         arg match parameters
3043         
3044         * python/matchrules.py:
3045         (MatchTree::exec_matches): Check for arg matches
3046         (SignalMatchRule::add_args_match): New method
3047         (SignalMatchRule::execute): Added args_list parameter as an optimization
3048         so we don't have to marshal the args more than once
3049         (SignalMatchRule::match_args_from_list): New method that checks to see
3050         if the rule's arg matches match an argument list.  Only arguments
3051         set in the rule are checked.
3052         (SignalMatchRule::match_args_from_rule): New method that checks to see
3053         if the rule's arg matches match another rule's.  All args have to match
3054         in order for this method to return true.  If either rule has more args
3055         then it is not a match.
3056         (SignalMatchRule::is_match): Add args match
3057         (SignalMatchRule::repr): Add args to the final output if they exist
3058
3059 2005-08-17  Ross Burton  <ross@burtonini.com>
3060
3061         * glib/dbus-gproxy.c:
3062         (dbus_g_proxy_call_no_reply): unref the message once sent.
3063         (dbus_g_proxy_call): protect against NULL proxy.
3064
3065 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3066
3067         * python/__init__.py: Version updated (0, 43, 0)
3068         
3069         * python/dbus_bindings.pyx: 
3070         - Fixed type objects to have self passed into __init__
3071         - Added the Variant type
3072         - Add the ability to specify types or signatures for Array, Variant 
3073         and Dictionary
3074         (Connection::send_with_reply_handlers): return a PendingCall object
3075         (_pending_call_notification): handle the case when an error is returned 
3076         without an error message in the body
3077         (MessageIter::get_boolean): return True or False instead of an integer
3078         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3079         and add checks for objects with embeded signatures or types (Array, 
3080         Variant and Dictionary)
3081         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3082         (MessageIter::append_dict): handle embeded types or signatures
3083         (MessageIter::append_array): handle embeded types or signatures
3084         (MessageIter::append_variant): new method
3085         
3086         * python/proxies.py:
3087         (DeferedMethod): New. Dummy executable object used when queuing calls 
3088         blocking on introspection data
3089         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3090         or shorter timeouts for method calls
3091         (ProxyObject): Add first pass at an introspection state machine
3092         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3093         introspection. 
3094         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3095         the usual mechanisms for sending messages.  This is to avoid a deadlock
3096         where the Intospect call would be queued waiting for the Introspect 
3097         call to finish ;-)
3098         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3099         when introspection returns with no error
3100         (ProxyObject::_introspect_error_handler): New.  This method is called 
3101         when introspection encounters an error
3102         (ProxyObject::__getattr__): Code to handle different introspection 
3103         states.  Queue async calls or block blocking calls if we are 
3104         introspecting.  Pass through as normal if we are not or are done with 
3105         introspecting.
3106         
3107         * python/service.py: Import signal and method from decorators.py
3108
3109         * python/types.py: Add Variant type
3110
3111 2005-08-16  Colin Walters  <walters@verbum.org>
3112
3113         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3114         DBusError message is NULL.
3115
3116 2005-08-09  Havoc Pennington  <hp@redhat.com>
3117
3118         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3119         malloc'd copy of the name parameter
3120
3121 2005-08-09  Havoc Pennington  <hp@redhat.com>
3122
3123         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3124         warning if the reply serial is set to 0
3125
3126 2005-08-04  Colin Walters  <walters@verbum.org>
3127
3128         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3129         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3130         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3131         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3132         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3133         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3134         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3135         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3136         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3137         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3138         
3139         Prefix name with _ to ensure they're not exported.  All callers
3140         updated.
3141
3142         * glib/dbus-gvalue.c (typecode_to_gtype)
3143         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3144         (signature_iter_to_g_type_dict)
3145         (signature_iter_to_g_type_array)
3146         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3147         (dbus_gtypes_from_arg_signature):
3148         Move to dbus-gsignature.c.
3149
3150         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3151         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3152         (dbus_binding_tool_output_glib_client): Ditto.
3153
3154         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3155         and dbus-gsignature.h
3156
3157         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3158         unused variable.
3159
3160 2005-08-03  Colin Walters  <walters@verbum.org>
3161
3162         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3163         catch any incompatible changes accidentally made.
3164
3165 2005-08-03  Havoc Pennington  <hp@redhat.com>
3166
3167         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3168         typo, from Julien Puydt
3169
3170         * bus/connection.c (bus_connection_disconnected): we were always
3171         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3172
3173 2005-08-01  Colin Walters  <walters@verbum.org>
3174
3175         Patch from Joe Markus Clarke:   
3176         
3177         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3178         use-after-free.
3179
3180 2005-08-01  Colin Walters  <walters@verbum.org>
3181         
3182         Patch from Joe Markus Clarke:   
3183         
3184         * tools/dbus-send.c (main): 
3185         
3186         Don't use C99 style initializers (bug #3933).
3187         
3188 2005-08-01  Colin Walters  <walters@verbum.org>
3189
3190         Patch from Joe Markus Clarke:   
3191
3192         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3193         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3194         * glib/dbus-gobject.c (write_interface):
3195
3196         Don't use C99 style initializers (bug #3933).
3197
3198 2005-07-31  Havoc Pennington  <hp@redhat.com>
3199
3200         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3201         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3202
3203 2005-07-30  Havoc Pennington  <hp@redhat.com>
3204
3205         * fix a bunch of Doxygen warnings and mistakes
3206
3207 2005-07-30  Havoc Pennington  <hp@redhat.com>
3208
3209         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3210         DBUS_BUILD_TESTS since it's now used in production code
3211
3212 2005-07-29  Havoc Pennington  <hp@redhat.com>
3213
3214         * test/glib/test-profile.c (write_junk): initialize the junk
3215         buffer so valgrind doesn't have a breakdown
3216
3217 2005-07-29  Havoc Pennington  <hp@redhat.com>
3218
3219         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3220         (match_rule_matches): remove unused arg
3221         (test_matching): add tests for match_rule_matches()
3222
3223         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3224         do arg0='foo' arg5='bar' in the match rules
3225         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3226
3227         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3228
3229 2005-07-29  Ross Burton  <ross@openedhand.com>
3230
3231         * dbus/dbus-connection.c:
3232         Don't create a DBusCondVar which is never used.
3233
3234 2005-07-27  Ross Burton  <ross@openedhand.com>
3235
3236         * dbus/dbus-message.c:
3237         Reduce the size of the maximum cached message to 10K.
3238
3239 2005-07-25  Ross Burton  <ross@openedhand.com>
3240
3241         * glib/dbus-gproxy.c:
3242         Remove matches when all proxies are unregistered.
3243
3244 2005-07-24  Colin Walters  <walters@verbum.org>
3245
3246         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3247         typedata; recursive arrays won't have it.
3248
3249         * test/glib/test-dbus-glib.c:
3250         * test/glib/test-service-glib.c:
3251         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3252         
3253 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3254
3255         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3256         proxies.py, service.py: Cleanup of code after running it through the
3257         pyflakes code checker mostly dealing with undefined names.  
3258         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3259
3260 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3261
3262         * NEWS: Update to 0.35.2
3263
3264 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3265
3266         * python/_dbus.py: Remove import of the dbus.services
3267         module as it no longer exists (patch from Dimitur Kirov)
3268
3269         * python/service.py (Object::__init__): Fixed typo
3270         s/name/bus_name (patch from Dimitur Kirov)
3271
3272         * python/examples/example-signal-emitter.py: import dbus.glib
3273         to get the main loop and use glib mainloop instead of gtk so
3274         X doesn't have to be running.
3275
3276         * python/examples/example-signal-recipient.py: import dbus.glib
3277         to get the main loop and use glib mainloop instead of gtk so
3278         X doesn't have to be running. Import the decorators module
3279         directly.
3280
3281         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3282         didn't pick up on but are needed to build
3283
3284         * configure.in: upped version to 0.35.2
3285
3286         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3287         added Colin Walters' SELinux API rename patch from head 
3288         s/unix sercurity context/selinux security context/
3289
3290 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3291
3292         * python/Makefile.am: dbus_binding.pxd.in should be included 
3293         in EXTRA_DIST not dbus_binding.pxd
3294         fix up $(srcdir) hopefully for the last time
3295
3296         * NEWS: Update to 0.35.1
3297
3298 2005-07-16  Colin Walters  <walters@verbum.org>
3299
3300         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3301         from bus_driver_handle_get_connection_unix_security_context.  Update for
3302         error usage.
3303         (message_handlers): Update for renames.
3304
3305         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3306         _dbus_string_init failure correctly.
3307         (bus_selinux_append_context): Convert SID to context.  Append it
3308         as a byte array.
3309         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3310         hasn't been called.
3311
3312         * bus/selinux.h: Update prototype.
3313
3314         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3315         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3316
3317 2005-07-15  Colin Walters  <walters@verbum.org>
3318
3319         * doc/TODO: Add note about convenience wrappers.
3320
3321 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3322
3323         * NEWS: Update to 0.35
3324
3325 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3326
3327         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3328         so distcheck doesn't fail
3329
3330         * glib/examples/Makefile.am: Add example-service.xml and 
3331         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3332
3333         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3334         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3335
3336         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3337         compiler looks in the right places during distcheck
3338
3339 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3340
3341         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3342         to fail
3343
3344 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3345
3346         * python/examples/example-service.py,
3347         python/examples/example-signal-emitter.py: Fixed up examples
3348         for API changes
3349
3350 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3351
3352         * python/__init__.py: Upped to version (0,42,0) because of
3353         the API change
3354
3355 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3356
3357         * ChangeLog: fix date in last entry
3358
3359         * configure.in, bus/system.conf.in: add the ability to configure 
3360         the system bus user at compiletime with the --with-dbus-user flag
3361         (patch from Kristof Vansant)
3362
3363 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3364
3365         * bus/dispatch.c, test/test-service.c: Add testcase
3366         for sending messages to oneself (TODO item).
3367
3368         * python/service.py (class Object): Swap ordering of bus_name 
3369         and object_path parameters to better support inheritance.
3370
3371         * doc/dbus-tutorial.xml: change Python docs to reflect change
3372         in parameter ordering and fix the inheritance section.
3373
3374         * doc/TODO: remove sending message to oneself TODO item
3375
3376 2005-07-15  Ross Burton  <ross@openedhand.com>
3377
3378         * glib/dbus-gproxy.c:
3379         Fix a leak when calling methods via the proxy.
3380
3381 2005-07-15  Colin Walters  <walters@verbum.org>
3382
3383         * bus/selinux.c (bus_selinux_append_context): Wrap in
3384         HAVE_SELINUX.
3385
3386 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3387
3388         * python/_dbus.py (Bus::remove_signal_receiver):
3389         don't add a callback to the match if none has been passed in
3390         
3391         * python/matchrules.py (SignalMatchTree::remove): if the rule
3392         being matched does not have a callback treat it as a wildcard
3393         fix matching logic
3394
3395         * doc/dbus-tutorial.xml: Add Python tutorial
3396
3397 2005-07-14  Colin Walters  <walters@verbum.org>
3398
3399         * bus/driver.c
3400         (bus_driver_handle_get_connection_unix_security_context): New function.
3401         (message_handlers): Add.
3402
3403         * bus/selinux.c (bus_selinux_append_context): New function; appends
3404         security context to message.
3405
3406         * bus/selinux.h: Prototype.
3407
3408         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3409
3410 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3411
3412         * bus/activation.c: clean up all tabs to be 8 spaces 
3413         (bus_activation_activate_service): make sure we clean up
3414         if activation fails
3415
3416         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3417         (check_shell_fail_service_auto_start): New function
3418         tests to make sure we get fail properly when trying to auto start a service
3419         with a faulty command line
3420         (check_shell_service_success_auto_start): New function tests to make sure
3421         auto started services get the arguments on the command line
3422
3423         * test/test-shell-service.c: Added service for testing auto-starting with 
3424         command line arguments
3425
3426         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3427         test/data/valid-service-files/debug-shell-echo-success.service.in:
3428         Added service files for testing auto-starting with command line arguments
3429
3430         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3431
3432 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3433
3434         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3435         
3436         * dbus/Makefile.am: added new files to build.
3437
3438         * bus/activation.c (bus_activation_activate_service): support
3439         activation commands with parameters.
3440
3441         * test/shell-test.c: added test program for the shell parsing
3442         code.
3443
3444 2005-07-13  David Zeuthen  <davidz@redhat.com>
3445
3446         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3447         64 bit signed and unsigned parameters
3448
3449 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3450
3451         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3452
3453         * python/service.py (class Name): renamed BusName to make it clearer
3454         what the object is for (a name on the bus)
3455
3456         * python/examples/example-service.py,
3457         python/examples/example-signal-emitter.py: change the Name object to
3458         BusName
3459
3460 2005-07-12  Colin Walters  <walters@verbum.org>
3461
3462         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3463
3464         * tools/dbus-launch.c: Include sys/select.h.
3465
3466 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3467         * python/dbus_bindings.pyx.in: removed
3468
3469         * python/dbus_bindings.pyx: Added.
3470         - Fixed some memleaks (patch from 
3471         Sean Meiners <sean.meiners@linspireinc.com>)
3472         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3473         own pxd file (Pyrex definition)
3474         - Broke out glib dependancies into its own pyx module
3475         
3476         * python/dbus_bindings.pdx: Added.
3477         - Defines C class Connection for exporting to other modules
3478
3479         * python/dbus_glib_bindings.pyx: Added.
3480         - New module to handle lowlevel dbus-glib mainloop integration
3481
3482         * python/glib.py: Added.
3483         - Registers the glib mainloop when you import this module
3484
3485         * python/services.py: Removed (renamed to service.py)
3486         
3487         * python/service.py: Added.
3488         - (class Server): renamed Name
3489
3490         * python/__init__.py: Bump ro version (0,41,0)
3491         -don't import the decorators or service module
3492         by default.  These now reside in the dbus.service namespace
3493
3494         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3495         setup function on creation 
3496
3497         * python/examples/example-service.py,
3498         python/examples/example-signal-emitter.py: update examples
3499
3500         * python/examples/gconf-proxy-service.py,
3501         python/examples/gconf-proxy-service2.py: TODO fix these up
3502
3503         * doc/TODO: Addition
3504         - Added a Python Bindings 1.0 section
3505         - added "Add match on args or match on details to match rules"
3506
3507
3508 2005-07-12  Colin Walters  <walters@verbum.org>
3509
3510         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3511         (statemachine-glue.h): 
3512         * glib/examples/Makefile.am (example-service-glue.h) 
3513         (example-signal-emitter-glue.h): 
3514         * glib/Makefile.am (dbus-glib-error-switch.h): 
3515         Add libtool --mode=execute so we use the built library instead
3516         of any installed one.
3517
3518 2005-07-11  Colin Walters  <walters@verbum.org>
3519
3520         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3521         (dbus_g_value_types_init): Remove assertion.
3522         (dbus_g_value_get_g_type, dbus_g_value_open)
3523         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3524         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3525         functions related to DBusGValue.  Now we marshal/demarshal
3526         structures as GValueArray.
3527         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3528         structures.
3529         (signature_iter_to_g_type_array): Don't call
3530         signature_iter_to_g_type_struct.
3531         (signature_iter_to_g_type_struct): Delete.
3532         (dbus_gvalue_to_signature): Delete.
3533         (dbus_gvalue_to_signature): New function with same name as other
3534         one; we can convert structures to signatures.
3535         (demarshal_valuearray): New function.
3536         (get_type_demarshaller): Use it.
3537         (demarshal_recurse): Delete.
3538         (marshal_proxy): New function.
3539         (marshal_map): Warn if we can't determine signature from type.
3540         (marshal_collection_ptrarray): Ditto.
3541         (marshal_collection_array): Ditto.
3542         (get_type_marshaller): Use marshal_valuearray.
3543         (marshal_recurse): Delete.
3544         (_dbus_gvalue_test): Add some tests.
3545
3546         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3547         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3548         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3549         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3550         (dbus_g_value_free): Remove prototypes.
3551
3552         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3553         G_TYPE_VALUE_ARRAY.
3554
3555         * glib/examples/example-service.c:
3556         * glib/examples/example-client.c: Implement GetTuple.
3557
3558         * test/glib/test-dbus-glib.c:
3559         * test/glib/test-service-glib.c:
3560         * test/glib/test-service-glib.xml: Add structure tests.
3561
3562 2005-07-10  Colin Walters  <walters@verbum.org>
3563
3564         * doc/TODO: Knock off some GLib items with this patch.
3565
3566         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3567         (_dbus_gvalue_signals_error): New functions.
3568
3569         * glib/dbus-gvalue-utils.h: Prototype them.
3570
3571         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3572         and change to not output const/retval flags for input args.  All
3573         callers updated.
3574         (invoke_object_method): Refactor to handle return values.  Add
3575         some more comments in various places.  Remove debug g_print.
3576
3577         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3578
3579         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3580         Handle G_TYPE_NONE.
3581         (compute_gsignature): New function; refactored from code from
3582         compute_marshaller and compute_marshaller_name.  Enhance to
3583         handle return values and async ops more cleanly.  Update for
3584         async ops returning NONE instead of BOOLEAN.
3585         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3586         and output appropriate string.
3587         (generate_glue): Handle return value annotation.  Also don't dump
3588         constness flag for input arguments.
3589
3590         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3591         files shared between installed library and utilities.
3592         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3593         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3594         binding tool can access gtype utility functions.
3595
3596         * test/glib/test-service-glib.c: 
3597         * test/glib/test-service-glib.xml: 
3598         * test/glib/test-dbus-glib.c: Add some tests for return values.
3599
3600 2005-07-09  Colin Walters  <walters@verbum.org>
3601
3602         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3603         argument if available, not method.
3604
3605         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3606         (invoke_object_method): First, remove some redundant
3607         GValues (object_value, error_value) in favor of working on
3608         array directly.  Second, rework constness to be less buggy.
3609         Now we iterate directly over the argument metadata instead
3610         of parallel iterating over output signature and metadata.
3611
3612         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3613
3614         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3615         annotation on input args.
3616         
3617 2005-07-09  Colin Walters  <walters@verbum.org>
3618
3619         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3620         Define.
3621
3622         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3623         annotation.
3624
3625         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3626         (method_dir_signature_from_object_info): Handle arg_iterate change.
3627         (write_interface): Ditto.
3628         (lookup_object_info): Don't barf if format_version is > 0.
3629         (invoke_object_method): Handle arg constness.
3630
3631         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3632         (arg_info_new): Create.
3633         (arg_info_unref): Destroy.
3634         (arg_info_get_annotations, arg_info_get_annotation) 
3635         (arg_info_add_annotation): New functions.
3636
3637         * glib/dbus-gidl.h: Prototype them.
3638
3639         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3640         args, disallow them in properties.
3641         (parse_annotation): Handle arg annotations.
3642
3643         * test/glib/test-service-glib.xml: 
3644         * test/glib/test-service-glib.c: Update to make some methods
3645         const.
3646
3647 2005-07-08  Colin Walters  <walters@verbum.org>
3648
3649         * test/glib/test-service-glib.xml: 
3650         * test/glib/test-service-glib.c:
3651         * test/glib/test-dbus-glib.c: Test a{sv}.
3652
3653         * glib/examples/statemachine/statemachine.c:
3654         * glib/examples/statemachine/statemachine-server.c:
3655         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3656         add progress bar, etc.
3657
3658         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3659         needed anymore due to generic array/map marshalling.
3660         (dbus_g_value_types_init): Don't register basic arrays or the
3661         string/string hash.
3662         (dbus_gtype_from_signature_iter): Don't try to recurse into
3663         variants.
3664         (dbus_gtype_to_signature): Check collection/map before type
3665         metadata.
3666         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3667         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3668         generic map creation/append functions instead of hash table
3669         specifically.
3670         (get_type_demarshaller): Handle maps.
3671         (demarshal_collection): Dispatch on collection type to either
3672         demarshal_collection_ptrarray or demarshal_collection_array.
3673         (get_type_marshaller): Handle maps.
3674         (marshal_collection): Dispatch collection type to either
3675         marshal_collection_ptrarray or marshal_collection_array.
3676         (_dbus_gvalue_test): New test.
3677
3678         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3679         (hash_free_from_gtype): Use it to free GValues.
3680         (hashtable_append): New function.
3681         (ptrarray_append): Fix prototype.
3682         (slist_append): Ditto.
3683         (_dbus_gvalue_utils_test): Extend tests.
3684
3685         * glib/dbus-gtype-specialized.c
3686         (dbus_g_type_specialized_init_append): Renamed from
3687         dbus_g_type_specialized_collection_init_append.  Remove const from
3688         value, since we steal it.
3689         (dbus_g_type_specialized_map_append): New function.
3690
3691         * glib/dbus-gtype-specialized.h: Update prototypes.
3692         Add DBusGTypeSpecializedMapAppendFunc.
3693
3694         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3695         _dbus_gvalue_test.
3696         
3697         * glib/dbus-gtest.h: Prototype it.
3698
3699 2005-07-08  Ross Burton  <ross@openedhand.com>
3700
3701         * dbus/dbus-glib.h:
3702         Add DBysGAsyncData for the async bindings.
3703
3704         * glib/dbus-binding-tool-glib.c:
3705         Re-enable the async bindings.
3706
3707         * test/glib/test-dbus-glib.c:
3708         Add a test for the generated async bindings.
3709
3710 2005-07-08  Colin Walters  <walters@verbum.org>
3711
3712         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3713         connection concept.
3714         
3715 2005-07-08  Colin Walters  <walters@verbum.org>
3716         
3717         * tools/Makefile.am: Kill of print-introspect in favor of using
3718         dbus-send --print-reply=literal.
3719
3720         * test/glib/test-service-glib.xml: 
3721         * test/glib/test-service-glib.c (my_object_get_objs): New test
3722         for "ao".
3723
3724         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3725         (main): Test GetObjs.
3726
3727         * glib/examples/statemachine/Makefile.am:
3728         * glib/examples/statemachine/sm-marshal.list:
3729         * glib/examples/statemachine/statemachine-client.c:
3730         * glib/examples/statemachine/statemachine-server.c:
3731         * glib/examples/statemachine/statemachine-server.xml:
3732         * glib/examples/statemachine/statemachine.c:
3733         * glib/examples/statemachine/statemachine.h:
3734         * glib/examples/statemachine/statemachine.xml:
3735
3736         New example.
3737
3738         * glib/examples/example-service.c (main): Move invocation
3739         of dbus_g_object_type_install_info earlier, to emphasize it
3740         should only be done once.
3741
3742         * glib/examples/example-signal-emitter.c (main): Ditto.
3743
3744         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3745
3746         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3747         (dbus_gvalue_marshal): Update prototypes.
3748
3749         * glib/dbus-gvalue.c: Update all marshalling functions to take
3750         const GValue instead of GValue.
3751         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3752         types.
3753         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3754         change.
3755         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3756         Return a newly-allocated string.
3757         (demarshal_proxy, demarshal_object_path, demarshal_object)
3758         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3759         we get the wrong types from message.
3760         (get_type_demarshaller): New function, extracted from
3761         dbus_gvalue_demarshal.
3762         (demarshal_collection): New function, demarshals generic
3763         collection.
3764         (dbus_gvalue_demarshal): Just invoke result of
3765         get_type_demarshaller.  Throw error if we don't have one.
3766         (marshal_garray_basic): Abort on OOM.
3767         (get_type_marshaller): New function, extracted from
3768         dbus_gvalue_marshal.
3769         (collection_marshal_iterator, marshal_collection): New functions;
3770         implements generic marshalling for an iteratable specialized
3771         collection.
3772         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3773
3774         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3775         G_TYPE_STRING.
3776         (ptrarray_value_from_gvalue): Ditto.
3777         (ptrarray_append, ptrarray_free): New functions.
3778         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3779         (slist_append, slist_end_append, slist_free): New functions.
3780         (dbus_g_type_specialized_builtins_init): Add append fuctions
3781         for GPtrArray and GSList.  Register GSList.
3782         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3783
3784         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3785         New.
3786         (dbus_g_type_specialized_collection_init_append)
3787         (dbus_g_type_specialized_collection_append)
3788         (dbus_g_type_specialized_collection_end_append): Prototype.
3789         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3790         end_append_func.
3791
3792         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3793         (dbus_g_type_specialized_collection_append) 
3794         (dbus_g_type_specialized_collection_end_append): New functions.
3795         (dbus_g_type_map_value_iterate): Take const GValue.
3796         (dbus_g_type_collection_value_iterate): Ditto.
3797
3798         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3799         _dbus_gvalue_utils_test.
3800         
3801         * glib/dbus-gtest.h: Prototype it.
3802
3803         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3804         using uninitialized owner_list.
3805         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3806         public API.
3807         (dbus_g_proxy_end_call_internal): Update to use error set
3808         from dbus_gvalue_demarshal instead of setting it here.
3809         (dbus_g_proxy_begin_call): Move return_if_fail here.
3810
3811         * glib/dbus-gobject.c (write_interface): Update for
3812         dbus_gtype_to_signature returning new string.
3813
3814         * configure.in: Add glib/examples/statemachine.
3815
3816 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3817
3818         * configure.in: Add a configure option, --with-console-auth-dir
3819         
3820         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3821         new setting.  Patch from Kay Sievers.
3822
3823 2005-07-06  Colin Walters  <walters@verbum.org>
3824
3825         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3826         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3827         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3828         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3829         Delete in favor of dbus_g_proxy_begin_call and
3830         dbus_g_proxy_cancel_call.
3831         (DBusGProxyCall, DBusGProxyCallNotify): New.
3832         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3833         data, and destroy function.  This replaces
3834         dbus_g_pending_call_set_notify.
3835         (dbus_g_proxy_cancel_call): Prototype.
3836         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3837
3838         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3839         pending_calls map.
3840         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3841         internal proxy for calls to the bus. Remove
3842         pending_nameowner_calls, now the internal proxy keeps track.
3843         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3844         pending_nameowner_calls.
3845         (got_name_owner_cb): Update prototype, and use
3846         dbus_g_proxy_end_call.
3847         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3848         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3849         favor of using internal proxy.
3850         (dbus_g_proxy_manager_unregister): Update to use
3851         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3852         (dbus_g_proxy_init): Initialize pending calls map.
3853         (dbus_g_proxy_constructor): New.
3854         (dbus_g_proxy_class_init): Add get/set property functions,
3855         constructor, and add NAME, PATH, and INTERFACE properties.
3856         (cancel_pending_call): New function.
3857         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3858         cancel them.
3859         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3860         (GPendingNotifyClosure): New structure.
3861         (d_pending_call_notify, d_pending_call_free): Moved here from
3862         dbus-glib.c.
3863         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3864         ordering.
3865         (manager_begin_bus_call): New internal function for talking to
3866         internal bus proxy.
3867         (dbus_g_proxy_new): Construct object using GObjet properties.
3868         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3869         Create closure of same, and insert call into map of pending calls.
3870         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3871         call.  Look up pending call in current set.  Remove it when we've
3872         completed.
3873         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3874         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3875         and destroy function directly.
3876         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3877         (dbus_g_proxy_call): Invoke with NULL callback.
3878         (dbus_g_proxy_cancel_call): New function, replaces
3879         dbus_g_pending_call_cancel.
3880
3881         * glib/dbus-gparser.c (validate_signature): Fix call to
3882         dbus_set_g_error.
3883
3884         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3885         New quark for attaching metadata to GType.
3886         (info_hash): Delete.
3887         (lookup_object_info): Look up using quark.
3888         (dbus_g_object_type_install_info): Check that a type is classed,
3889         not that it's an object.  Also just install type data using quark
3890         instead of using global hash.
3891
3892         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3893         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3894         (GPendingNotifyClosure): Delete.
3895         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3896         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3897
3898         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3899         client method generation until we can fix it...
3900         
3901         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3902         (load_from_service_thread_func): Ditto.
3903
3904         * tools/dbus-names-model.c (struct NamesModel): Hold
3905         DBusGProxyCall.
3906         (have_names_notify): Update prototype, use
3907         dbus_g_proxy_cancel_call.
3908         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3909
3910         * tools/dbus-monitor.c (filter_func): Update for print_message
3911         API change.
3912
3913         * test/glib/test-dbus-glib.c: Add more tests for async
3914         invocations.  Update many begin_call/end_call pairs to just use
3915         dbus_g_proxy_call.
3916
3917         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3918         allows us to dump print-introspect.c.
3919
3920         * tools/dbus-print-message.h (print_message): Add literal argument
3921         to print_message which is intended to allow printing arguments without
3922         metadata like "string=".
3923
3924         * tools/dbus-print-message.c (print_iter): Add literal argument.
3925         (print_message): Allow printing string messages literally.
3926
3927 2005-07-05  Colin Walters  <walters@verbum.org>
3928
3929         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3930         Remove value refcount leak, original patch from Jorn Baayen
3931         <jorn@openedhand.com>.  Also remove useless extra value in favor
3932         of prepending to value array directly.
3933
3934 2005-07-02  Colin Walters  <walters@verbum.org>
3935
3936         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3937
3938 2005-07-01  Colin Walters  <walters@verbum.org>
3939
3940         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3941         
3942         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3943         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3944         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3945         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3946
3947 2005-06-30  Colin Walters  <walters@verbum.org>
3948
3949         * test/glib/test-dbus-glib.c:
3950         * test/glib/test-service-glib.c:
3951         * test/glib/test-service-glib.xml: Update tests for new error
3952         setting bits, also add async tests (patch from Ross Burton).
3953
3954         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3955         DBUS_GLIB_THREADS_LIBS.
3956
3957         * glib/dbus-gproxy.c (get_name_owner)
3958         (dbus_g_pending_call_end_valist): Ditto.
3959
3960         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3961         domain (GQuark) to DBusGErrorInfo.  
3962         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3963         quark in error_metadata.  Take message interface as default
3964         error message interface.
3965         (gerror_to_dbus_error_message): Pass message interface.
3966         (dbus_set_g_error): Resurrected.
3967         (dbus_g_error_info_free): New function.
3968         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3969         of _peek to actually create the object class if it hasn't been
3970         created yet.
3971         (dbus_g_error_domain_register): New function.
3972
3973         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3974
3975         * glib/dbus-gparser.c (validate_signature): Ditto.
3976
3977         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3978         (dbus_g_error_domain_register): Prototype.
3979
3980         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3981         Update tests.
3982
3983 2005-06-29  Colin Walters  <walters@verbum.org>
3984
3985         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3986         DBUS_TYPE_G_OBJECT_PATH.
3987
3988         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3989         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3990         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3991         (dbus_g_object_path_get_g_type): New function.
3992         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3993         to DBUS_TYPE_G_OBJECT_PATH by default.
3994         (demarshal_proxy): Remove unused name variable.
3995         (demarshal_object_path, marshal_object_path): New functions.
3996         (demarshal_proxy_array, marshal_proxy_array): Delete.
3997         
3998         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3999         DBUS_TYPE_G_OBJECT_PATH to char *.
4000         (dbus_g_type_get_lookup_function): Map builtin
4001         DBUS_TYPE_G_OBJECT_PATH.
4002
4003         * test/glib/test-dbus-glib.c
4004         * test/glib/test-service-glib.c (my_object_objpath): 
4005         Adapt tests to new object path marshalling.
4006
4007 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4008
4009         * configure.in: force check for Python >= 2.4
4010
4011 2005-06-29  Colin Walters  <walters@verbum.org>
4012         
4013         Patch from Ross Burton <ross@openedhand.com>
4014         
4015         * glib/dbus-gobject.c (invoke_object_method): Unset object
4016         value in all cases, not only in async case.
4017
4018 2005-06-29  Colin Walters  <walters@verbum.org>
4019
4020         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4021         name_call for keeping track of any outgoing GetNameOwner call.
4022         Also add for_owner and associated.
4023         (struct _DBusGProxyManager): Add owner_names, which is hash table
4024         that maps a base name to a list of names it owns (that we're
4025         interested in).  Add pending_nameowner_calls which is a list of
4026         all outstanding GetNameOwner; avoids us having to iterate over
4027         every proxy.  Add unassociated_proxies which keeps track of name
4028         proxies with no associated name owner.
4029         (dbus_g_proxy_manager_unref): Destroy owner_names.
4030         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4031         name refcounts.
4032         (find_name_in_info, name_owner_foreach)
4033         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4034         (dbus_g_proxy_manager_monitor_name_owner)
4035         (dbus_g_proxy_manager_unmonitor_name_owner)
4036         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4037         New functions; they manipulate the owner_names mapping.
4038         (got_name_owner_cb): New function.
4039         (get_name_owner): New function, extracted from
4040         dbus_g_proxy_new_for_name_owner.
4041         (dbus_g_proxy_manager_register): For now we need to keep track of
4042         all NameOwnerChanged.  Also if the proxy is for a name, if we
4043         don't already know the name owner, queue a new GetNameOwner
4044         request and add it to our list of unassociated proxies.  Otherwise
4045         inc the refcount.
4046         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4047         cancel any pending GetNameOwner call, etc.
4048         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4049         the owner_names mapping to look up the current names for the
4050         signal source, and dispatch to any proxies for that name.
4051         (dbus_g_proxy_new): Initialize new members.
4052         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4053         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4054         (dbus_g_pending_call_end_valist): New function, extracted from
4055         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4056         but want to use the GLib infrastructure.  Also note how many
4057         arguments in reply were over.
4058         (dbus_g_pending_call_end): New function, just call
4059         dbus_g_pending_call_end_valist.
4060         (dbus_g_proxy_end_call_internal): Just call
4061         dbus_g_pending_call_end_valist.
4062
4063         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4064         of builtin marshaller for STRING_STRING_STRING.
4065
4066         * test/glib/test-dbus-glib.c: 
4067         * test/glib/test-service-glib.c:
4068         * test/glib/test-service-glib.xml:
4069         Extend tests to cover name proxies, destruction of owner proxies,
4070         etc.
4071         
4072         * glib/examples/example-signal-recipient.c
4073         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4074         
4075         * tools/dbus-send.c (main): Print D-BUS error name in addition
4076         to message.
4077
4078 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4079
4080         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4081         cmessage_function_handler): Patch from 
4082         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4083         by using the Py_GILState_Ensure/Release to synchronize with the
4084         python runtime.
4085         
4086 2005-06-28  Ray Strode  <rstrode@redhat.com>
4087
4088         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4089         babysitter helper process on last unref, bug #2813.
4090
4091 2005-06-27  Colin Walters  <walters@verbum.org>
4092
4093         * test/glib/test-dbus-glib.c: 
4094         * test/glib/test-service-glib.c:
4095         * test/glib/test-service-glib.xml:
4096         Test hash table signal emitting.
4097
4098         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4099         types to their fundamental basis types, since this is what
4100         marshallers operate on.  Also add an entry for VOID__BOXED.
4101         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4102
4103 2005-06-26  Havoc Pennington  <hp@redhat.com>
4104
4105         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4106         from Don Park
4107
4108 2005-06-26  Colin Walters  <walters@verbum.org>
4109
4110         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4111         (dbus_g_error_set): New public function from its ashes; used by
4112         both service-side method implementation and GLib bindings
4113         internals.
4114         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4115         (_dbus_glib_test): Add some tests.
4116
4117         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4118
4119         * test/glib/test-service-glib.c (my_object_throw_error): Use
4120         dbus_g_error_set.
4121
4122         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4123         errors thrown by dbus_g_error_set.
4124
4125         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4126
4127         * glib/dbus-gparser.c (validate_signature): Ditto.
4128
4129         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4130         (dbus_g_proxy_end_call_internal): Ditto.
4131
4132         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4133         converts DBUS_ERROR_x to DBUS_GERROR_x.
4134         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4135
4136         * doc/TODO: Remove error TODO.
4137
4138         * doc/dbus-tutorial.xml: Update with documentation about error
4139         handling.
4140
4141         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4142         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4143         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4144
4145 2005-06-22  Colin Walters  <walters@verbum.org>
4146         
4147         Patch from Ross Burton <ross@openedhand.com>
4148
4149         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4150
4151 2005-06-20  Colin Walters  <walters@verbum.org>
4152
4153         * configure.in: Add glib/examples.
4154
4155         * glib/Makefile.am: Add examples/
4156
4157         * glib/examples/.cvsignore
4158         * glib/examples/Makefile.am
4159         * glib/examples/example-client.c
4160         * glib/examples/example-service.c
4161         * glib/examples/example-service.xml
4162         * glib/examples/example-signal-emitter.c
4163         * glib/examples/example-signal-emitter.xml
4164         * glib/examples/example-signal-recipient.c:
4165         New files; GLib binding examples, ported from
4166         python/examples.
4167
4168 2005-06-20  Colin Walters  <walters@verbum.org>
4169
4170         * dbus/dbus-glib.h: 
4171         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4172         dbus_g_proxy_call.
4173
4174         * glib/dbus-binding-tool-glib.c: 
4175         * doc/dbus-tutorial.xml: 
4176         * test/glib/test-dbus-glib.c: Update for rename.
4177         
4178 2005-06-20  Colin Walters  <walters@verbum.org>
4179
4180         Patch suggested by Ross Burton <ross@openedhand.com>
4181
4182         * glib/dbus-gobject.c (export_signals): Free signal name.
4183         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4184         memory leak.  Add a bit of documentation.
4185         (dbus_g_method_return_error): Free context, and note we do
4186         so.
4187
4188 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4189
4190         * dbus/dbus-glib.h:
4191         * glib/dbus-gobject.c:
4192         * glib/dbus-gproxy.c:
4193         * glib/dbus-gvalue.c: Predeclare structs as 
4194         typedef struct _Something Something instead of 
4195         typedef struct Something Something, so we can 
4196         redeclare the prototypes. Other GNOME libraries 
4197         do this already.
4198
4199 2005-06-17  Colin Walters  <walters@verbum.org>
4200
4201         * tools/dbus-names-model.c (have_names_notify): Fix call
4202         to dbus_g_proxy_end_call.
4203         
4204 2005-06-17  Colin Walters  <walters@verbum.org>
4205
4206         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4207         spew warnings if we get malformed remote signals.
4208
4209         * glib/dbus-gobject.c (propsig_iterate): New function.
4210         (lookup_object_info): New function, extracted from
4211         lookup_object_and_method.
4212         (introspect_properties, introspect_signals): Delete; these
4213         are merged into write_interface.
4214         (write_interface): Write out signals and properties here;
4215         dump the org.gtk.object stuff and use the interface given
4216         in the introspection data blob.  Also fix up property XML.
4217         (lookup_values): New function.
4218         (introspect_interfaces): Gather a mapping from interface to a
4219         list of its methods, signals, and properties, then write out
4220         each interface.
4221         (lookup_object_and_method): Use lookup_object_info.
4222         (struct DBusGSignalClosure): Add interface.
4223         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4224         we can just use the constant data.
4225         (dbus_g_signal_closure_finalize): Don't free signal name.
4226         (signal_emitter_marshaller): Use interface from signal closure.
4227         (export_signals): Only export signals mentioned in introspection
4228         blob.
4229         (dbus_g_connection_register_g_object): Warn if we have no
4230         introspection data for an object.
4231         (funcsig_equal): Remove unused variable.
4232         (dbus_g_object_register_marshaller): Take varargs instead of
4233         list.
4234         (dbus_g_object_register_marshaller_array): New function,
4235         extracted from old dbus_g_object_register_marshaller.
4236
4237         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4238         signals and property data.
4239         (write_quoted_string): New function, extracted from generate_glue.
4240         (generate_glue): Write signals and properties to introspection
4241         blob.
4242
4243         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4244         exported_signals and exported_properties.
4245         (dbus_g_object_register_marshaller): Update prototype.
4246         (dbus_g_object_register_marshaller_array): Prototype.
4247         
4248         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4249
4250         * test/glib/test-service-glib.c: Add new test signals and method
4251         to emit them.
4252
4253         * test/glib/test-service-glib.xml: Add some test signals.
4254
4255         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4256         and my-object-marshal.h
4257         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4258         my-object-marshal.c.
4259         (my-object-marshal.c, my-object-marshal.h): Implement.
4260
4261         * test/glib/.cvsignore: Update.
4262
4263         * doc/TODO: Remove two GLib TODO items fixed by this
4264         patch.
4265
4266 2005-06-16  Colin Walters  <walters@verbum.org>
4267
4268         * doc/TODO: Update for GLib bindings.
4269         
4270 2005-06-16  Colin Walters  <walters@verbum.org>
4271
4272         * glib/dbus-binding-tool-glib.c:
4273         * glib/dbus-gobject.c:
4274         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4275         from Ross Burton, for his GLib bindings work.
4276
4277 2005-06-16  Colin Walters  <walters@verbum.org>
4278
4279         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4280         to iterate instead of walking to G_TYPE_INVALID.
4281
4282         Patch based on a patch from Ryan Gammon.
4283
4284 2005-06-16  Colin Walters  <walters@verbum.org>
4285
4286         * bus/bus.c (bus_context_new): Set parser to NULL
4287         after we unref it (Patch from Chris Boscolo, #2174).
4288         
4289 2005-06-16  Colin Walters  <walters@verbum.org>
4290
4291         * python/dbus_bindings.pyx.in: Import size_t,
4292         __int64_t, __uint64_t, and __signed.
4293
4294         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4295         Define cmsg struct, output it.
4296         (_dbus_read_credentials_unix_socket):
4297         Use cmsg struct.
4298         
4299         Patch from Joe Markus Clarke for FreeBSD support.
4300         
4301 2005-06-16  Colin Walters  <walters@verbum.org>
4302
4303         * tools/dbus-send.c (append_array): Use strtok.
4304         (append_dict): New function.
4305         (type_from_name): New function, extracted from main.
4306         (main): Handle sending dicts.
4307
4308         * tools/dbus-print-message.c (print_iter): Print dict
4309         entries.
4310         
4311 2005-06-16  Colin Walters  <walters@verbum.org>
4312
4313         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4314         values as the empty string (#2948).
4315         
4316 2005-06-16  Colin Walters  <walters@verbum.org>
4317
4318         * dbus/Makefile.am:
4319         * mono/doc/Makefile.am:
4320         * test/glib/Makefile.am:
4321
4322         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4323
4324 2005-06-16  Colin Walters  <walters@verbum.org>
4325
4326         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4327         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4328
4329         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4330         Increment pointer after swapping fixed array.  Add assertion
4331         for array length.
4332                 
4333 2005-06-15  Colin Walters  <walters@verbum.org>
4334
4335         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4336         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4337         
4338 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4339
4340         * NEWS: Update to 0.34
4341
4342 2005-06-15  David Zeuthen  <davidz@redhat.com>
4343
4344         * configure.in (LT_CURRENT): Revert back to 1 as the library
4345         hasn't changed and we've certainly not committed to protocol
4346         stability yet.  All this does is to break ABI. See commit note
4347         from hp@redhat.com 2005-05-05 for details.
4348         
4349 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4350
4351         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4352         (_dbus_connection_run_builtin_filters): New method
4353         (dbus_connection_dispatch): Run the builtin filters which in turn
4354         runs the peer filter which handles Ping messages.
4355
4356         * doc/TODO: 
4357          - Ping isn't handled: This patch fixes it
4358          
4359          - Add a test case for the Ping message: added TODO item
4360
4361 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4362
4363         * dbus/dbus-message.c:
4364         (dbus_message_has_path): New method
4365         (dbus_message_has_interface): New method
4366         (dbus_message_has_member): New method
4367
4368         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4369         New method
4370
4371         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4372         the keyring directory is private to the user
4373
4374         * doc/TODO:
4375          - The convenience functions in dbus-bus.h should perhaps have
4376          the signatures that they would have if they were autogenerated
4377          stubs. e.g. the acquire service function. We should also evaluate
4378          which of these functions to include, in light of the fact that
4379          GLib/Qt native stubs will probably also exist.: Punted
4380
4381          - add dbus_message_has_path(), maybe has_member/interface:
4382          fixed in this patch
4383
4384          - in dbus-keyring.c, enforce that the keyring dir is not
4385          world readable/writable: Fixed in this patch
4386
4387 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4388
4389         * dbus/dbus-marshal-validate.h: Added a new validation
4390         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4391         out of memory errors when validating signitures
4392
4393         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4394         in places where we previously used DBUS_VALID and a FALSE return 
4395         value to indicate OOM
4396         
4397         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4398         Use a stack to track the number of elements inside containers.  The 
4399         stack values are then used to validate that dict entries have only two
4400         elements within them.
4401         (validate_body_helper): check the reason for failure when validating
4402         varients
4403         
4404         * dbus/dbus-message.c (load_message): use 
4405         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4406         DBUS_VALID and a FALSE return value to indicate OOM
4407
4408         * doc/TODO: remove "- validate dict entry number of fields" as this
4409         patch fixes it
4410
4411 2005-06-14  David Zeuthen  <davidz@redhat.com>
4412
4413         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4414         watches (if applicable) and add new watches
4415
4416         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4417         (main): Setup SIGIO signal handler if using D_NOTIFY
4418
4419         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4420
4421         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4422         (merge_included): Also merge conf_dirs list
4423         (bus_config_parser_unref): Clear conf_dirs list
4424         (include_dir): Add directory to conf_dirs list
4425         (bus_config_parser_get_conf_dirs): New function
4426
4427         * bus/dir-watch.[ch]: New files
4428
4429         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4430
4431         * configure.in: Add checks for D_NOTIFY on Linux
4432
4433 2005-06-14  Colin Walters  <walters@verbum.org>
4434
4435         * glib/dbus-binding-tool-glib.c:
4436         * glib/dbus-gobject.c:
4437         * glib/dbus-gvalue.c: Fix indentation and brace style.
4438         
4439 2005-06-14  Ross Burton <ross@openedhand.com>.
4440
4441         * glib/dbus-glib.h: Make DBusGMethodInvocation
4442         a private structure.  Rearrange prototypes a bit.
4443         
4444         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4445         documentation for first_arg_type.
4446         
4447         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4448         here, add documentation.  Move dbus_g_method_return
4449         and dbus_g_method_return_error into public API
4450         section.
4451
4452 2005-06-14  Colin Walters  <walters@verbum.org>
4453
4454         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4455         Add missing return statements, noticed by Ross Burton.
4456         
4457 2005-06-13  Ross Burton <ross@openedhand.com>.
4458
4459         * glib/dbus-gobject.c: Handle errors on message
4460         demarshalling by sending error message back.
4461         * glib/dbus-gvalue.c: Initialize return variables.
4462
4463 2005-06-13  Colin Walters  <walters@verbum.org>
4464
4465         * glib/Makefile.am: Fix thinko in last patch.
4466
4467 2005-06-13  Colin Walters  <walters@verbum.org>
4468
4469         * glib/Makefile.am: Move dbus-gtype-specialized.c
4470         and dbus-gtype-specialized.h into a _HEADERS variable,
4471         install them.
4472
4473 2005-06-12  Colin Walters  <walters@verbum.org>
4474
4475         Async signals and various bugfixes and testing by
4476         Ross Burton <ross@openedhand.com>.
4477
4478         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4479         (dbus_gvalue_genmarshal_name_from_type)
4480         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4481         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4482         (dbus_g_value_types_init, dbus_gtype_from_signature)
4483         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4484         (dbus_gtypes_from_arg_signature): New function prototypes.
4485         (dbus_gvalue_demarshal): Take context and error arguments.
4486         (dbus_gvalue_demarshal_variant): New function.
4487         (dbus_gvalue_demarshal_message): New function.
4488         (dbus_gvalue_store): Delete.
4489
4490         * glib/dbus-gvalue.c:
4491
4492         File has been almost entirely rewritten; now we special-case
4493         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4494         hash tables correctly, etc.  Full support for recursive values
4495         is not yet complete.
4496
4497         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4498         argument of signal to G_TYPE_POINTER since we now pass a
4499         structure.
4500         (lookup_g_marshaller): Delete in favor of
4501         _dbus_gobject_lookup_marshaller.
4502         (marshal_dbus_message_to_g_marshaller): Use
4503         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4504         to handle remote signal callbacks.
4505         (dbus_g_proxy_new_from_proxy): New function; creates a new
4506         DBusGProxy by copying an existing one.
4507         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4508         (dbus_g_proxy_get_path): New functions.
4509         (dbus_g_proxy_marshal_args_to_message): New function;
4510         factored out of existing code.
4511         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4512         from a varargs array.
4513         (dbus_g_proxy_begin_call_internal): New function.
4514         (dbus_g_proxy_end_call_internal): New function.
4515         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4516         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4517         after collecting args into value array.
4518         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4519         invoke dbus_g_proxy_end_call_internal.
4520         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4521         end_call_internal.
4522         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4523         types.
4524         (array_free_all): New function.
4525         (dbus_g_proxy_add_signal): Take GTypes.
4526
4527         * glib/dbus-gobject.h:
4528         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4529         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4530         Prototype.
4531
4532         * glib/dbus-gobject.c: Add a global marshal_table hash which
4533         stores mappings from type signatures to marshallers.  Change lots
4534         of invocations of dbus_gtype_to_dbus_type to
4535         dbus_gtype_to_signature.
4536         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4537         (introspect_signals): Fix test for query.return_type.
4538         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4539         (invoke_object_method): Many changes.  Handle asynchronous
4540         invocations.  Convert arguments with
4541         dbus_gvalue_demarshal_message.  Handle errors.  Use
4542         DBusSignatureIter instead of strlen on args. Handle all arguments
4543         generically.  Special-case variants.
4544         (dbus_g_method_return, dbus_g_method_return_error): New function.
4545         (DBusGSignalClosure): New structure, closes over signal
4546         information.
4547         (dbus_g_signal_closure_new): New function.
4548         (dbus_g_signal_closure_finalize): New function.
4549         (signal_emitter_marshaller): New function; is special marshaller
4550         which emits signals on bus.
4551         (export_signals): New function; introspects object signals and
4552         connects to them.
4553         (dbus_g_object_type_install_info): Take GType instead of
4554         GObjectClass.
4555         (dbus_g_connection_register_g_object): Invoke export_signals.
4556         (dbus_g_connection_lookup_g_object): New function.
4557         (DBusGFuncSignature) New structure; used for mapping type
4558         signatures to marshallers.
4559         (funcsig_hash): New function; hashes DBusGFuncSignature.
4560         (funcsig_equal): New function; compares DBusGFuncSignature.
4561         (_dbus_gobject_lookup_marshaller): New function.
4562         (dbus_g_object_register_marshaller): New function; used to
4563         register a marshaller at runtime for a particular signature.
4564
4565         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4566
4567         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4568         which notes a server method implementation should be
4569         asynchronous.
4570
4571         * glib/dbus-binding-tool-glib.c
4572         (dbus_binding_tool_output_glib_server): Call
4573         dbus_g_value_types_init.
4574         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4575         variants specially.
4576         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4577         of a lookup function.
4578         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4579         (write_untyped_out_args): New method; write output arguments.
4580         (write_formal_declarations_for_direction): Function for
4581         writing prototypes.
4582         (write_formal_parameters_for_direction): Function for
4583         writing implementations.
4584         (write_typed_args_for_direction): Function for writing
4585         arguments prefixed with GTypes.
4586         (write_async_method_client): Write out async version
4587         of method.
4588
4589         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4590         (dbus_g_type_get_marshal_name): Move mapping from GType
4591         to marshal name into here.
4592         (dbus_g_type_get_c_name): Move into here.
4593         (compute_marshaller): Convert signature to type with
4594         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4595         (compute_marshaller_name): Ditto.
4596         (compute_marshaller): Handle async signal annotations.
4597         (gather_marshallers): Return if we don't have a known
4598         prefix.
4599         (generate_glue): Collect introspection blob here, and
4600         write all of the blob at the end.  This allows an object
4601         with multiple interfaces to work.
4602         Mark async methods in introspection blob.
4603
4604         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4605         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4606         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4607
4608         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4609         avoids people accidentally using DBUS_TYPE_* which should
4610         not be necessary anymore.
4611         Do include dbus-gtype-specialized.h, which are utilities
4612         for GLib container types.
4613         Add various #defines for types such as
4614         DBUS_TYPE_G_BOOLEAN_ARRAY.
4615         (DBusGValueIterator, DBusGValue): Define, not fully used
4616         yet.
4617         (dbus_g_value_get_g_type): Type for recursive value.
4618         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4619         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4620         (dbus_g_value_free): Prototypes.
4621         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4622         (dbus_g_proxy_set_interface): Prototype.
4623         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4624         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4625         types.
4626         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4627         Accessors.
4628         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4629         doing async invocations.
4630         (dbus_g_method_return, dbus_g_method_return_error):
4631         Prototypes.
4632         * doc/dbus-tutorial.xml: Update GLib section.
4633         
4634         * tools/dbus-viewer.c (load_child_nodes): Update
4635         for new invocation type of dbus_g_proxy_end_call.
4636         (load_from_service_thread_func): Ditto.
4637
4638         * tools/print-introspect.c (main): Ditto.
4639
4640         * tools/dbus-names-model.c (have_names_notify)
4641         (names_model_reload, names_model_set_connection)
4642         Use GTypes.
4643
4644         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4645         needed since Python bindings use GLib bindings.
4646
4647         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4648         Add --prefix argument.
4649
4650         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4651         unneeded --ignore-unsupported arg.
4652         
4653         * test/glib/test-service-glib.c: 
4654         * test/glib/test-service-glib.xml:
4655         * test/glib/test-dbus-glib.c: Add many more tests.
4656
4657 2005-06-06  David Zeuthen  <davidz@redhat.com>
4658
4659         * doc/TODO: Add item about need to remove deprecated functions.
4660
4661         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4662
4663         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4664         to repair the ABI which was broken with the last commit.
4665
4666 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4667
4668         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4669         (dbus_connection_disconnect): renamed to dbus_connection_close 
4670         for API symmetry with dbus_connection_open
4671         (_dbus_connection_open_internal): 
4672         s/dbus_connection_disconnect/dbus_connection_close
4673
4674         * dbus/dbus-bus.c (dbus_bus_get):
4675         s/dbus_connection_disconnect/dbus_connection_close
4676
4677         * bus/connection.c (bus_connections_unref, 
4678         bus_connections_setup_connection, bus_connections_expire_incomplete):
4679         s/dbus_connection_disconnect/dbus_connection_close
4680
4681         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4682         kill_client_connection_unchecked, check_hello_connection):
4683         s/dbus_connection_disconnect/dbus_connection_close
4684
4685         * bus/bus.c (new_connection_callback):
4686         s/dbus_connection_disconnect/dbus_connection_close
4687
4688         * tools/dbus-send.c (main):
4689         s/dbus_connection_disconnect/dbus_connection_close
4690
4691         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4692         s/dbus_connection_disconnect/dbus_connection_close
4693         
4694         * test/test-service.c (path_message_func, filter_func):
4695         s/dbus_connection_disconnect/dbus_connection_close
4696         
4697         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4698         
4699 2005-05-25  Colin Walters  <walters@verbum.org>
4700
4701         * dbus/dbus-protocol.h: Move various bus service #defines such
4702           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4703           dbus/dbus-shared.h.
4704         * dbus/dbus-shared.h: Various defines moved here.
4705         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4706
4707 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4708
4709         * python/__init__.py: Python bindings deserve a minor version
4710         update.  Upped to (0, 40, 2)
4711
4712 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4713
4714         * python/decorators.py: add explicitly_pass_message decorator
4715         for passing in the dbus message as keyword for edge case signal
4716         handling
4717
4718         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4719         to conform with what dbus expects for match rules
4720         (SignalMatchRule.execute): add the dbus message as a keyword
4721         if the signal handler has requested it
4722
4723         * python/examples/example/signal-recipient.py: added some more
4724         examples on how to hook up to signals
4725
4726 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4727
4728         * python/decorators.py: import dbus_bindings
4729
4730         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4731         SignalMatchNode): new classes that implement wildcard signal
4732         callback matching using a tree lookup. Heavily modified from a
4733         patch sent by Celso Pinto (fd.o bug #3241)
4734
4735         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4736         use new match classes to handle signals.
4737
4738 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4739         
4740         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4741
4742 2005-05-18  Havoc Pennington  <hp@redhat.com>
4743
4744         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4745         gettext. Not really worth requiring yet perhaps, but any
4746         production quality 1.0 would require it so we should go ahead and
4747         get things set up. We do have a couple token calls to
4748         bindtextdomain in the code already.
4749
4750 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4751
4752         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4753         when using recursive g_main_loops
4754
4755         * python/_dbus.py (class Bus): add the ProxyObjectClass
4756         alias for ProxyObject to make it easier for the Twisted 
4757         networking framework to integrate dbus.
4758
4759         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4760         alias for ProxyMethod to make it easier for the Twisted 
4761         networking framework to integrate dbus. 
4762
4763 2005-05-11  Ross Burton  <ross@openedhand.com>
4764
4765         * glib/dbus-glib-tool.c: Add --prefix argument.
4766         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4767         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4768         Add prefix argument.
4769         (generate_glue): Pass prefix argument down.
4770         (dbus_binding_tool_output_glib_server): Pass prefix to
4771         glib-genmarshal.
4772         
4773 2005-05-11  Colin Walters  <walters@verbum.org>
4774
4775         * tools/dbus-send.c (append_array): New function.
4776         (append_arg): Broken out from main.
4777         (main): Add cheesy hack to send arrays and variants.
4778         (usage): Update.
4779         * tools/dbus-print-message.c (print_iter): Broken out
4780         from main.
4781
4782 2005-05-11  Colin Walters  <walters@verbum.org>
4783
4784         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4785         New function, returns signature string for signature iter.
4786         * dbus/dbus-signature.h: Prototype it.
4787         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4788         New function, returns signature string for message iter.
4789         (dbus_message_iter_get_array_len): New function, returns
4790         length of array.
4791         (dbus_message_iter_get_fixed_array): Fix assertion; this
4792         function should be used when the iter is pointing to the
4793         contents of an array
4794         * dbus/dbus-message.h: Prototypes.
4795         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4796         New function; returns length of an array.
4797         * dbus/dbus-marshal-recursive.h: Prototype it.
4798         
4799 2005-05-11  Colin Walters  <walters@verbum.org>
4800
4801         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4802         compilation error.
4803         
4804 2005-05-08  Havoc Pennington  <hp@redhat.com>
4805
4806         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4807         daemon's pid, not the parent's pid, to the file descriptor.
4808         Reported by Taj Morton.
4809
4810 2005-05-05  Havoc Pennington  <hp@redhat.com>
4811
4812         * configure.in (LT_*): add notes on how the libtool versioning
4813         works to save thinking. Increment soname to indicate protocol
4814         breakage (though really the library interface hasn't changed I
4815         guess)
4816
4817         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4818         verify the GUID received from server matches what we were
4819         expecting, if we had an expectation
4820
4821         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4822         (_dbus_auth_get_guid_from_server): new function
4823         (send_begin): parse the OK args
4824
4825         * doc/dbus-specification.xml: add GUID to the auth protocol
4826
4827 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4828
4829         * Fix my name in previous changelog ;)
4830
4831         * python/proxies.py (ProxyObject.__getattr__): add further patch
4832         from Anthony Baxter to throw an AttributeError when python 
4833         __special__ functions are called instead of marshling them over 
4834         the bus (Bug#1685 comment 3).
4835
4836 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4837
4838         * python/Makefile.am: changed to use pyexecdir for the binding
4839         shared libraries (Bug#2494)
4840
4841         * python/exceptions.py: bring exceptions over from the bindings
4842         so they can be used in applications (Bug#2036)
4843         Make all exceptions derive from DBusException
4844
4845         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4846         of classes so that print obj doesn't throw an exception (Bug #1685)
4847
4848 2005-05-03  Ross Burton  <ross@openedhand.com>
4849
4850         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4851         Return if we get an error during registration.  Set up a
4852         weak reference on object to unregister if object is destroyed.
4853         (unregister_gobject): New function.
4854         
4855 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4856
4857         * python/dbus_bindings.pyx.in: 
4858         - added new type classes for hinting to the marashaler what type 
4859         to send over the wire
4860         - added int16 and uint16 marshalers
4861         - Fixed a bug in the type constants that caused int32 to go out
4862         as uint16 over the wire
4863         * python/dbus.py: split up into different files and renamed _dbus.py
4864         * python/__init__.py, python/_util.py, python/decorators.py, 
4865         python/exceptions.py, python/proxies.py, python/services.py,
4866         python/types.py: new files split off from dbus.py
4867         * python/Makefile.am: Add new files, remove dbus.py and 
4868         install all python files to <python module dir>/dbus
4869         * python/examples/*: Added #!/usr/bin/env python to the top of
4870         every example.  Patch provided by Tatavarty Kalyan
4871
4872 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4873
4874         * NEWS: Update to 0.33
4875
4876 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4877
4878         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4879         method for doing async calls
4880         (_pending_call_notification): New C function for handling pendning call
4881         callbacks
4882         (set_notify): New method for setting pending call notification
4883         
4884         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4885         Async capabilities added to remote method calls
4886         (Sender): class removed
4887         (RemoteService): class removed
4888         (ObjectTree): class removed for now
4889         (RemoteObject): Renamed to ProxyObject
4890         (RemoteMethod): Renamed to ProxyMethod
4891         (method): Decorator added for decorating python methods as dbus methods
4892         (signal): Decorator added for decorating python methods as signal emitters
4893         (ObjectType): Metaclass added for generating introspection data and the
4894         method callback vtable
4895         (Interface): Wrapper class added to wrap objects in a dbus interface
4896         (Object): Uses ObjectType as its metaclass and exports Introspect
4897         of the org.freedesktop.DBus.Introspectable interface
4898         (ValidationException, UnknownMethodException): new exceptions
4899
4900         * python/examples/*: Modified to fit with the new bindings
4901
4902 2005-04-23  Havoc Pennington  <hp@redhat.com>
4903
4904         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4905         reported by Tony Houghton
4906
4907         * test/test-service.c (main): test
4908         dbus_connection_get_object_path_data()
4909
4910         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4911         the exact_match
4912         (_dbus_object_tree_get_user_data_unlocked): new function used by
4913         dbus_connection_get_object_path_data()
4914         (do_register): add assertion test for get_user_data_unlocked
4915         (object_tree_test_iteration): more tests
4916
4917         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4918         new function from Dan Reed to let you get the user data from 
4919         dbus_connection_register_object_path()
4920
4921 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4922
4923         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4924         in numerous places that did not account for the NULL terminator
4925         (signature_from_seed): changed the manual string copy loop to 
4926         just use strcpy instead
4927         make check should now pass
4928
4929 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4930
4931         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4932         so that it allows messages that are not signals to pass in 
4933         NULL as the interface.
4934
4935 2005-04-18  David Zeuthen  <davidz@redhat.com>
4936
4937         * glib/dbus-gmain.c (io_handler_destroy_source): 
4938         (timeout_handler_destroy_source, connection_setup_free): 
4939         Also unref the source to avoid memory leaks.
4940
4941 2005-04-13  David Zeuthen  <davidz@redhat.com>
4942
4943         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4944         more reasonable, yet still totally arbitrary, value :-). 
4945
4946 2005-04-13  David Zeuthen  <davidz@redhat.com>
4947
4948         * doc/TODO: Added an "important for 1.0" item about selinux
4949         allow/deny messages
4950
4951 2005-04-13  David Zeuthen  <davidz@redhat.com>
4952
4953         * bus/selinux.c: Add c-file-style to top of file
4954         (log_audit_callback): Don't free the data here anymore
4955         (bus_selinux_check): Don't take spid and tpid since appending
4956         that to auxdata may OOM.
4957         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4958         to the caller if we are OOM by taking an error object.
4959         (bus_selinux_allows_send): -do-
4960
4961         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4962         and bus_selinux_allows_send
4963
4964         * bus/bus.c (bus_context_check_security_policy): Pass error and
4965         pass on OOM thrown by bus_selinux_allows_send()
4966
4967         * bus/services.c (bus_registry_acquire_service): Pass error and
4968         pass on OOM thrown by bus_selinux_allows_acquire_service()
4969
4970 2005-04-13  Havoc Pennington  <hp@redhat.com>
4971
4972         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4973         message at a time to avoid monopolizing the main loop, bug 
4974         #2953 from Benjamin Otte
4975
4976 2005-04-09  Havoc Pennington  <hp@redhat.com>
4977
4978         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4979         possible overlap, fix from Daniel Reed
4980         (fixup_alignment): fix signedness warnings
4981         (_dbus_string_append_unichar): ditto
4982
4983 2005-04-09  Havoc Pennington  <hp@redhat.com>
4984
4985         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4986
4987         * glib/dbus-glib-tool.c (main): fix warning
4988
4989         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4990
4991         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4992         add a new function that can be used in simple applications that
4993         don't have a main loop and are willing to block
4994
4995 2005-04-05  David Zeuthen  <davidz@redhat.com>
4996
4997         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4998
4999         * glib/dbus-gmain.c:
5000         (io_handler_destroy_source): Remove from list of IO handlers
5001         of the ConnectionSetup object
5002         (timeout_handler_destroy_source): -do- for timeout handlers
5003         (io_handler_source_finalized): Don't remove from list since
5004         we now do that in io_handler_destroy_source(). Renamed from
5005         io_handler_source_destroyed
5006         (timeout_handler_source_destroyed): -do- for timeout handlers
5007         (connection_setup_free): It is now safe to iterate over all
5008         IO and timeout handlers as the _destroy_source removes them
5009         from the list synchronously
5010
5011 2005-03-30  Havoc Pennington  <hp@redhat.com>
5012
5013         * configure.in: change check to gtk 2.4
5014
5015         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5016         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5017         to 2.4
5018
5019 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5020
5021         * News: Update 0.32
5022
5023         * HACKING: Fixed realease instructions.  configure.in should be updated to
5024           the next release by the person who made the last release.
5025
5026 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5027
5028         * python/lvalue_cast_post_process.py - removed.  Patch has been
5029           submitted to Pyrex maintainers that fixes gcc4.0 errors
5030
5031         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5032
5033 2005-03-24  Daniel Reed  <n@ml.org>
5034
5035         * tools/Makefile.am: Make print-introspect and
5036         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5037
5038 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5039
5040         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5041
5042         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5043           had in Red Hat packages for a while but for some reason never 
5044           got merged upstream
5045           (_dbus_is_a_number): New checks if a string
5046           can be converted to a number and does the conversion if it can
5047           (_dbus_user_database_lookup): Add check to see if the given username
5048           is a udi.  This allows udi's to be used instead of usernames in the
5049           config file.
5050           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5051           is a gdi.  This allows gdi's to be used instead of groupnames in the
5052           config file.
5053
5054 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5055
5056         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5057           code so that it compiles with gcc4.0
5058
5059         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5060           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5061           results back to dbus_binding.c
5062
5063 2005-03-20  Colin Walters  <walters@verbum.org>
5064
5065         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5066
5067         * configure.in: Require GTK+ 2.6.
5068         
5069 2005-03-20  Colin Walters  <walters@verbum.org>
5070
5071         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5072
5073 2005-03-17  Tom Parker  <palfrey@tevp.net>
5074
5075         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5076         print DBUS_UID_UNSET; instead print passed username.  Also
5077         be sure to actually use gid looked up in cache.
5078         
5079         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5080         for DBUS_GID_UNSET and groupname.
5081
5082 2005-03-17  Colin Walters  <walters@verbum.org>
5083
5084         * bus/print-introspect.c: Move to tools/.
5085         * bus/run-with-tmp-session-bus.sh: Ditto.
5086         
5087         * glib/Makefile.am (dbus-glib-bindings.h): Move
5088         generation to tools/Makefile.am.
5089
5090         * test/glib/run-test.sh: Update to handle move
5091         of run-with-tmp-session-bus.sh.
5092
5093         * test/glib/test-service-glib.c: Update to handle
5094         move of dbus-glib-bindings.h.
5095
5096         * tools/print-introspect.c: Moved here
5097         from bus/, and ported to GLib bindings.
5098
5099         * tools/run-with-tmp-session-bus.sh: Moved here
5100         from bus/.
5101
5102         * tools/Makefile.am: Generate dbus-glib-bindings.h
5103         and dbus-bus-introspect.xml here.
5104
5105         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5106         Update.
5107
5108 2005-03-17  Colin Walters  <walters@verbum.org>
5109
5110         * bus/driver.c (write_args_for_direction): Use
5111         _dbus_string_get_const_data to retrieve string;
5112         _dbus_string_get_const_data_len doesn't actually return
5113         a NULL-terminated substring.
5114
5115         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5116         (main): Change to use org_freedesktop_DBus_request_name
5117         instead of using g_proxy_begin_call/end_call.
5118
5119 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5120
5121         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5122         generating the finalizer.  Fixes from Ben Maurer.
5123
5124 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5125
5126         * mono/BusDriver.cs: Update method names: ListServices
5127         becomes ListNames; GetOwner becomes GetNameOwner.
5128
5129         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5130         onto the eval stack when removing the delegate.
5131
5132 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5133
5134         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5135         LT_CURRENT.  Set it to the autoconf variable.
5136                                                                                 
5137         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5138         classes that disconnects the signal handler delegate from the
5139         service object.  Fixes a big leak of proxy objects on the
5140         client side of things.  Patch from Ben Maurer
5141         <bmaurer@ximian.com>
5142
5143 2005-03-12  Colin Walters  <walters@verbum.org>
5144
5145         * bus/driver.c (write_args_for_direction): New function,
5146         parses a type signature into arguments and outputs to
5147         XML.
5148         (bus_driver_handle_introspect): Use it instead of
5149         hardcoding XML for certain signatures.
5150         
5151         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5152         dependency on dbus-daemon.
5153
5154         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5155         argument, pass it to dbus_binding_tool_output_glib_client.
5156
5157         * glib/dbus-binding-tool-glib.c
5158         (generate_client_glue): Protect against multiple inclusion.
5159         (dbus_binding_tool_output_glib_client): Add
5160         G_BEGIN_DECLS/G_END_DECLS.
5161
5162         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5163         Change to just take iface prefix directly.
5164         (write_formal_parameters): Clarify error message.
5165         (check_supported_parameters): New function; checks to see type
5166         signatures of method parameters are supported.
5167         (generate_client_glue): Handle ignore_unsupported flag.
5168         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5169         parameter.
5170
5171         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5172         --ignore-unsupported by default until glib bindings
5173         support arrays.
5174
5175 2005-03-11  Colin Walters  <walters@verbum.org>
5176
5177         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5178         install it.
5179
5180         * bus/print-introspect.c: New file; prints introspection
5181         data for a given name and object path.
5182
5183         * bus/run-with-tmp-session-bus.sh: New file, refactored
5184         from test/glib/run-test.sh.  Creates a temporary session
5185         bus and runs another program.
5186
5187         * test/glib/run-test.sh: Refactor to invoke
5188         run-with-tmp-session-bus.sh.
5189
5190         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5191         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5192         macros instead of hardcoding.
5193
5194         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5195
5196 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5197
5198         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5199         this unref; it doesn't match up evenly in some codepaths.
5200         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5201         this evenly matches with the ref near the top of this function.
5202
5203 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5204
5205         * dbus/dbus-object-tree.c
5206         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5207         and we try to unregister a path that's not registered, still go
5208         through the process of unlocking and don't just return.
5209
5210 2005-03-09  Colin Walters  <walters@verbum.org>
5211
5212         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5213         to this are generated for client-side wrappers.  Invokes a
5214         D-BUS method and returns reply values.  
5215
5216         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5217         function; writes signature string for argument direction.
5218         (write_args_for_direction): Change to pass input values directly
5219         instead of via address, and fix indentation.
5220         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5221         make generated wrappers inlineable.
5222
5223         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5224         note about using dbus_type_is_fixed.
5225
5226         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5227         dbus/dbus-signature.c as dbus_type_is_fixed.
5228
5229         All callers updated.
5230
5231         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5232         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5233
5234         * dbus/dbus-signature.h: Prototype.
5235
5236         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5237         error printf code.
5238
5239         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5240         appropriate instead of just freeing it.
5241         (main): Free returned strings using g_free.
5242
5243         * test/glib/Makefile.am (test-service-glib-glue.h)
5244         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5245
5246         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5247         simply maps a simple D-BUS type to GType.
5248         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5249         GType.
5250         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5251         initialize the value with it.
5252         (dbus_gvalue_binding_type_from_type): Unused, delete.
5253         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5254         various types instead of unmarshalling to value data directly.
5255         Remove can_convert boolean.
5256         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5257         returning directly instead of using can_convert boolean.
5258         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5259         Stores a GValue in a pointer to a value of its corresponding C
5260         type.
5261
5262         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5263         add dbus_gvalue_store.
5264
5265 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5266
5267         Fix a bunch of lifecycle and memory management problems
5268         in the mono bindings.
5269
5270         * mono/Arguments.cs (Arguments): Implement IDisposable
5271
5272         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5273         strictly a static class.
5274
5275         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5276         delegates into this file.
5277         (Connection): Implement IDisposable.
5278         (Dispose): Disconnect the connection and set the raw connection
5279         pointer to IntPtr.Zero.
5280         (~Connection): Call Dispose().
5281         (RegisterObjectPath): Added.  Manages the registration of object
5282         paths so we can cleanly disconnect them at dispose/finalize time.
5283         (UnregisterObjectPath): Ditto.
5284         (set_RawConnection): Unregister all of the object paths when
5285         changing the underlying DBusConnection.  Add them back onto the
5286         new connection, if any.
5287
5288         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5289         more unmanaged resources anymore, so it's not necessary.  Move all
5290         the DBusObjectPathVTable stuff out of here.
5291         (Handler): Save references to our delegates so that they don't get
5292         finalized.  Call Connection.RegisterObjectPath() instead of
5293         dbus_connection_register_object_path() directly.
5294         (Message_Called): Dispose the message after we're finished with
5295         it.
5296
5297         * mono/Message.cs (Message): Implement IDisposable.
5298         (Dispose): Dispose the Arguments, and set the RawMessage to
5299         IntPtr.Zero.
5300         (SendWithReplyAndBlock): We own the ref to the reply that comes
5301         back from dbus_connection_send_with_reply_and_block() so add a
5302         comment about that and unref it after we've constructed a managed
5303         MethodReturn class around it.  Fixes a big, big leak.
5304
5305         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5306         method.
5307         (BuildSignalHandler): After we've sent the Signal message, dispose
5308         of it.
5309         (BuildMethod): Dispose of the method call and reply messages after
5310         we've sent the message and extracted the data we want from the
5311         reply.
5312
5313         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5314         anymore.
5315         (Service_FilterCalled): Dispose of the message after we're
5316         finished with it.
5317
5318 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5319
5320         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5321         After we attach our pending call to the connection, unref
5322         it.  Fixes a leak.
5323  
5324         * mono/Connection.cs (set_RawConnection): Disconnect our
5325         filter and match callbacks from the old connection and
5326         reconnect them to the new connection, if any.
5327
5328         * mono/DBusType/Array.cs: "Code" is a static member, so
5329         don't use "this" to refer to it.  Fix for stricter checking
5330         in Mono 1.1.4.
5331  
5332         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5333         object path that we pass into unmanaged code.
5334  
5335         * mono/DBusType/String.cs (Append): Don't leak the string
5336         that we pass into unmanged code.
5337
5338 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5339         * NEWS: Update for 0.31
5340
5341         * configure.in: Release 0.31
5342         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5343
5344         * qt/Makefile.am: fixed build
5345
5346         * dbus/Makefile.am: soname bump for libdbus
5347
5348         * glib/Makefile.am: soname bump for libdbus-glib
5349
5350 2005-03-05  Havoc Pennington  <hp@redhat.com>
5351
5352         * dbus/dbus-sysdeps.c:
5353         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5354         value
5355         (_dbus_generate_random_bytes_buffer): fix return value
5356
5357         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5358         checks actually work, from Tom Parker <fdo@tevp.net>
5359
5360 2005-03-01  Colin Walters  <walters@verbum.org>
5361
5362         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5363         functions copied from dbus-glib-tool.c.
5364         (main): Convert lots of error code to use them.
5365         Also add some testing for introspection bits.
5366
5367 2005-03-01  Colin Walters  <walters@verbum.org>
5368         
5369         * doc/TODO: Remove introspection signature TODO.
5370
5371 2005-02-27  Colin Walters  <walters@verbum.org>
5372
5373         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5374         Change return value to const char * instead of int so we can do
5375         full signatures.
5376         (struct PropertyInfo, struct ArgInfo): Store char *.
5377         (property_info_new, arg_info_new): Update parameters, strdup.
5378         (property_info_unref, arg_info_unref): Free.
5379
5380         * glib/dbus-gidl.h: Update prototypes.
5381
5382         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5383         (validate_signature): New function, just validates signature and
5384         sets GError.
5385         (parse_property, parse_arg): Invoke validate_signature.  Store
5386         signature instead of just type code.
5387
5388         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5389         function to return a primary type for a signature, dropping
5390         information about types in container types.
5391         (dbus_gvalue_genmarshal_name_from_type)
5392         (dbus_gvalue_binding_type_from_type)
5393         (dbus_gvalue_ctype_from_type): Update to take full signature
5394          instead of type code.
5395         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5396
5397         * glib/dbus-gvalue.h: Update prototypes for above.
5398
5399         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5400         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5401         (introspect_properties, introspect_signals, write_interface):
5402         Update to handle signatures, and remove usage of
5403         _dbus_gutils_type_to_string.
5404         (handle_introspect): Print out type codes instead of e.g. "string"
5405         in hardcoded introspection XML; also use x_AS_STRING constants
5406         instead of hardcoding in string.
5407
5408         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5409         to string.  Remove usage of _dbus_gutils_type_to_string.
5410
5411         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5412
5413         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5414         deletion.
5415         
5416         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5417         (compute_marshaller_name, generate_glue): Handle signature change
5418         to string.
5419         (write_formal_parameters, write_args_for_direction): Ditto, and
5420         remove FIXME.
5421
5422         * tools/dbus-tree-view.c (type_to_string): Delete.
5423         (info_set_func_text): Update to print full signatures.
5424
5425         * test/glib/test-service-glib.xml: Change types to new
5426         introspection format.
5427
5428 2005-02-26  Havoc Pennington  <hp@redhat.com>
5429
5430         * doc/TODO: remove the "guid" item
5431
5432         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5433         (with_bus_thread_func): use open_private
5434
5435         * dbus/dbus-connection.c (dbus_connection_open_private): new
5436         function that works like the old dbus_connection_open()
5437         (dbus_connection_open): now returns an existing connection if
5438         possible
5439
5440         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5441         through the GUID to the transport
5442
5443         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5444         GUID in hex-encoded form.
5445
5446         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5447         pass GUID argument in to the transport
5448
5449         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5450         guid argument
5451
5452         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5453
5454         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5455
5456 2005-02-25  Havoc Pennington  <hp@redhat.com>
5457
5458         * doc/dbus-specification.xml: document the GUID thing
5459
5460         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5461         globally unique ID for the server, and put a "guid=hexencoded"
5462         field in the address
5463
5464         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5465
5466         * dbus/dbus-message.c: ditto
5467
5468         * dbus/dbus-dataslot.c: ditto
5469
5470         * dbus/dbus-list.c: ditto
5471
5472         * dbus/dbus-internals.h: wait, just include
5473         dbus-threads-internal.h here
5474         
5475         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5476         use in main library
5477
5478         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5479
5480 2005-02-24  Colin Walters  <walters@verbum.org>
5481
5482         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5483
5484 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5485
5486         * glib/Makefile.am: added dbus-gobject.h to sources list
5487         so distcheck doesn't fail
5488         
5489 2005-02-24  Havoc Pennington  <hp@redhat.com>
5490
5491         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5492         you must disconnect before unref, since locking and other things
5493         are screwed up otherwise. Fix assorted other locking stuff.
5494
5495         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5496         fix compilation
5497
5498         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5499         into a private header and don't export from the library
5500
5501         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5502
5503 2005-02-24  Colin Walters  <walters@verbum.org>
5504         
5505         * dbus/dbus-signature.c: New file; implements various functions
5506         related to type signatures.  Includes an interator for parsing,
5507         validation functions.
5508         (dbus_type_is_basic): Moved here from
5509         dbus-marshal-basic.c:_dbus_type_is_basic.
5510         (dbus_type_is_container): Moved here from
5511         dbus-marshal-basic.c:_dbus_type_is_container.
5512
5513         All callers of _dbus_type_is_container and _dbus_type_is_basic
5514         updated, and include dbus-signature.h.
5515
5516         * dbus/dbus-signature.h: New file; prototypes for the above.
5517
5518         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5519         dbus-signature.h.
5520
5521         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5522         function factored out of _dbus_first_type_in_signature.
5523         (_dbus_first_type_in_signature_c_str): New function; returns first
5524         type code for a type signature character.
5525
5526         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5527         handle function moves.
5528
5529         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5530
5531         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5532         function; skips to next complete type in type signature.
5533         Implemented using previous skip_one_complete_type.  Now
5534         skip_one_complete_type just delegates to
5535         _dbus_type_signature_next.
5536
5537         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5538         to dbus-signature.c
5539         (_dbus_type_is_container): Ditto.
5540
5541         * doc/dbus-specification.xml: Update introspection sample to
5542         use real type signatures.
5543
5544         * dbus/dbus-test.h: Prototype signature test.
5545
5546         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5547         signature tests.
5548
5549         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5550
5551 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5552
5553         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5554         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5555
5556 2005-02-21  Colin Walters  <walters@verbum.org>
5557
5558         * dbus/dbus-test-main.c (main): Take optional specific test
5559         argument.
5560
5561         * dbus/dbus-test.c (run_test): New function, runs a test function
5562         with no data directory.
5563         (run_data_test): Like above, but takes data directory.
5564         (dbus_internal_do_not_use_run_tests): Take
5565         specific test argument.  Replace lots of cut n' paste code
5566         with run_test and run_data_test.
5567
5568         * dbus/dbus-test.h: Update prototype for
5569         dbus_internal_do_not_use_run_tests.
5570
5571 2005-02-20  Havoc Pennington  <hp@redhat.com>
5572
5573         Fix bugs reported by Daniel P. Berrange
5574         
5575         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5576         (protected_change_watch): new function
5577         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5578         (_dbus_server_add_watch): change to work like the
5579         dbus-connection.c equivalents; like those, probably kind of
5580         busted, but should at least mostly work for now
5581         (dbus_server_disconnect): drop the lock if we were already
5582         disconnected, patch from Daniel P. Berrange
5583
5584         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5585         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5586         same stuff
5587
5588         * doc/TODO: todo about unscrewing this mess
5589
5590 2005-02-19  Colin Walters  <walters@verbum.org>
5591
5592         * glib/dbus-binding-tool-glib.c
5593         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5594
5595         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5596         as errno.h and sys/stat.h.
5597         (lose): New function, prints error with
5598         newline and exits.
5599         (lose_gerror): Similar, but takes GError for message.
5600         (main): Add --output argument to specify output file to write to,
5601         instead of always printing to stdout.  In this mode, determine
5602         timestamps on source files to see whether any are newer than the
5603         target file.  If not, exit.  Also convert a number of error
5604         messages to use lose (since it's shorter), and switch to using
5605         g_io_channel_shutdown.
5606
5607 2005-02-19  Havoc Pennington  <hp@redhat.com>
5608
5609         * glib/dbus-gobject.c
5610         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5611
5612         * glib/dbus-glib.c: fix doxygen warnings
5613
5614         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5615         is found on an <arg>
5616
5617 2005-02-17  Colin Walters  <walters@verbum.org>
5618
5619         * glib/dbus-gobject.h: Don't export
5620         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5621         
5622         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5623         (invoke_object_method): Handle it.
5624
5625         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5626         Handle rename.
5627         
5628 2005-02-17  Colin Walters  <walters@verbum.org>
5629
5630         * bus/.cvsignore, doc/.cvsignore
5631         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5632         Update.
5633
5634 2005-02-17  Colin Walters  <walters@verbum.org>
5635         
5636         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5637         Rename to DBUS_SERVICE_DBUS.
5638         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5639         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5640         Change the value from "org.freedesktop.Local"
5641         to "org.freedesktop.DBus.Local".
5642         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5643         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5644         DBUS_INTERFACE_INTROSPECTABLE.
5645         Change the value from "org.freedesktop.Introspectable"
5646         to "org.freedesktop.DBus.Introspectable".
5647         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5648         DBUS_INTERFACE_PROPERTIES.
5649         Change the value from "org.freedesktop.Properties"
5650         to "org.freedesktop.DBus.Properties".
5651         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5652         DBUS_INTERFACE_PEER.
5653         Change the value from "org.freedesktop.Peer"
5654         to "org.freedesktop.DBus.Peer".
5655         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5656         DBUS_INTERFACE_LOCAL.
5657         Change the value from "org.freedesktop.Local"
5658         to "org.freedesktop.DBus.Local".
5659
5660         All other users of those constants have been changed.
5661
5662         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5663
5664         * glib/dbus-gobject.c (handle_introspect): Use constants.
5665
5666         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5667
5668 2005-02-17  Colin Walters  <walters@verbum.org>
5669
5670         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5671         (parse_node, parse_interface, parse_method, parse_signal)
5672         (parse_property, parse_annotation): Lose if we're currently in an
5673         annotation.
5674         (parse_annotation): New function.
5675         (parser_start_element, parser_end_element): Handle annotation.
5676         (parse_method, parse_interface): Remove support for c_name attribute,
5677         switch to annotations.
5678
5679         * glib/dbus-gidl.h (interface_info_get_binding_names)
5680         (method_info_get_binding_names)
5681         (interface_info_get_binding_name, method_info_get_binding_name)
5682         (interface_info_set_binding_name, method_info_set_binding_name):
5683         Remove.
5684         (interface_info_get_annotations, method_info_get_annotations)
5685         (interface_info_get_annotation, method_info_get_annotation)
5686         (interface_info_add_annotation, method_info_add_annotation):
5687         Prototype.
5688
5689         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5690         for "bindings".
5691         (struct MethodInfo): Ditto.
5692         Straightfoward conversion of binding methods into annotation methods
5693         as prototyped.
5694
5695         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5696
5697         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5698
5699         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5700         Use new annotation API.
5701
5702         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5703         annotation element.
5704         
5705         * doc/dbus-specification.xml: Discuss introspection annotations,
5706         include list of well-known annotations.
5707
5708         * test/glib/test-service-glib.xml: Make validate against new DTD.
5709
5710 2005-02-17  Colin Walters  <walters@verbum.org>
5711
5712         This patch is based on initial work from
5713         Paul Kuliniewicz <kuliniew@purdue.edu>.
5714
5715         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5716         initialization of GValue from dbus type to here.
5717         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5718         for the "glib-genmarshal" program from a DBus type.
5719         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5720         into the C name for it we use in the glib bindings.
5721         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5722         glib C type (not GValue).
5723         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5724
5725         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5726         from dbus-gobject.c.
5727
5728         * glib/dbus-gutils.h: Prototype it.
5729
5730         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5731         (marshal_dbus_message_to_g_marshaller): Use new shared function
5732         dbus_glib_marshal_dbus_message_to_gvalue_array.
5733
5734         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5735         Will be changed once we have annotations.
5736
5737         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5738         GStaticRWLock.  Callers updated.
5739         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5740         (string_table_next): New function for iterating over zero-terminated
5741         string value array.
5742         (string_table_lookup): New function; retrieves specific entry in
5743         array.
5744         (get_method_data): New function; look up method data in object data chunk.
5745         (object_error_domain_prefix_from_object_info)
5746         (object_error_code_from_object_info): New functions, but not implemented yet.
5747         (method_interface_from_object_info): New function; retrieve interface name.
5748         (method_name_from_object_info): New function; retrieve method name.
5749         (method_arg_info_from_object_info): New function; retrieve argument data.
5750         (arg_iterate): New function; iterates over serialized argument data.
5751         (method_dir_signature_from_object_info): New function; returns a
5752         GString holding type signature for arguments for just one
5753         direction (input or output).
5754         (method_input_signature_from_object_info)
5755         (method_output_signature_from_object_info): New functions.
5756         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5757         converts dbus message arguments into a GValue array.  Used for both
5758         signal handling and method invocation.
5759         (struct DBusGlibWriteIterfaceData): New utility structure.
5760         (write_interface): New function; generate introspection XML for
5761         an interface.
5762         (introspect_interfaces): New function; gathers all interface->methods,
5763         generates introspection XML for them.
5764         (handle_introspect): Invoke introspect_interfaces.
5765         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5766         (lookup_object_and_method): New function; examines an incoming message
5767         and attempts to match it up (via interface, method name, and argument
5768         signature) with a known object and method.
5769         (gerror_domaincode_to_dbus_error_name): New function; converts a
5770         GError domain and code into a DBus error name.  Needs GError data
5771         added to object introspection to work well.
5772         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5773         GError.
5774         (invoke_object_method): New function to invoke an object method
5775         looked up via lookup_object_and_method.  Parses the incoming
5776         message, turns it into a GValue array, then invokes the marshaller
5777         specified in the DBusGMethodInfo.  Creates a new message with
5778         either return values or error message as appropriate.
5779         (gobject_message_function): Invoke lookup_object_and_method and
5780         invoke_object_method.
5781
5782         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5783         (enum DBusBindingOutputMode): New enum for binding output modes.
5784         (pretty_print): Print binding names.
5785         (dbus_binding_tool_error_quark): GError bits.
5786         (version): Fix typo.
5787         (main): Create GIOChannel for output.  Parse new --mode argument,
5788         possible values are "pretty-print", "glib-server", "glib-client".
5789         Use mode to invoke appropriate function.
5790         
5791         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5792
5793         * glib/dbus-glib-tool.h: New header, just includes GError bits
5794         for now.
5795
5796         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5797         maps binding style to name.
5798         (struct MethodInfo): Ditto.
5799         (get_hash_keys, get_hash_key): Utility function, returns keys for
5800         a GHashTable.
5801         (interface_info_new, method_info_new): Initialize bindings.
5802         (interface_info_unref, method_info_unref): Destroy bindings.
5803         (method_info_get_binding_names, method_info_get_binding_name)
5804         (interface_info_get_binding_names, interface_info_get_binding_name):
5805         Functions for retrieving binding names.
5806         (method_info_set_binding_name, interface_info_set_binding_name):
5807         Functions for setting binding names.
5808
5809         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5810         for glib binding generation.
5811
5812         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5813         and client-side glib glue generation.
5814
5815         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5816         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5817         dbus-glib-tool.h.
5818
5819         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5820         of using GClosureMarshal directly.
5821         (struct DBusGObjectInfo): Add n_infos member.
5822
5823         * test/glib/test-service-glib.xml: New file; contains introspection data
5824         for MyTestObject used in test-service-glib.c.
5825
5826         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5827         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5828         (my_object_uppercase, my_object_many_args): New test methods.
5829         (main): Use dbus_g_object_class_install_info to include generated object
5830         info.
5831
5832         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5833         as well as client-side bindings.
5834
5835         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5836         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5837         using both the dbus_gproxy stuff directly as well as the generated bindings.
5838
5839 2005-02-15  Havoc Pennington  <hp@redhat.com>
5840
5841         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5842         complete a pending call, don't run filters first.
5843
5844         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5845         dbus_pending_call_steal_reply
5846
5847         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5848         _dbus_connection_block_pending_call
5849         (dbus_pending_call_get_reply): change to steal_reply and return a
5850         ref
5851
5852         * dbus/dbus-connection.c
5853         (dbus_connection_send_with_reply_and_block): port to work in terms
5854         of DBusPendingCall
5855         (_dbus_connection_block_pending_call): replace block_for_reply
5856         with this
5857
5858 2005-02-14  Havoc Pennington  <hp@redhat.com>
5859
5860         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5861         properly handle looking up group information by name; fix 
5862         from j@bootlab.org
5863
5864 2005-02-13  Havoc Pennington  <hp@redhat.com>
5865
5866         * dbus/dbus-connection.c (dbus_connection_return_message) 
5867         (dbus_connection_borrow_message): hold dispatch lock while message
5868         is outstanding
5869         (_dbus_connection_block_for_reply): hold dispatch lock while we
5870         block for the reply, so nobody steals our reply
5871         (dbus_connection_pop_message): hold the dispatch lock while we
5872         pluck the message
5873
5874 2005-02-13  Havoc Pennington  <hp@redhat.com>
5875
5876         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5877         (_dbus_connection_release_dispatch)
5878         (_dbus_connection_acquire_io_path)
5879         (_dbus_connection_release_io_path): make the mutex and condvar
5880         control access to the "acquired" flag. Drop the connection lock
5881         while waiting on the condvar. Hopefully these are baby steps in
5882         roughly the right direction.
5883
5884 2005-02-13  Havoc Pennington  <hp@redhat.com>
5885
5886         * dbus/dbus-connection.c: use separate mutexes for the condition
5887         variables; this is some kind of baseline for sanity, but the
5888         condition variables still aren't used correctly afaict
5889
5890 2005-02-13  Havoc Pennington  <hp@redhat.com>
5891
5892         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5893         fix a double-unlock
5894
5895         * dbus/dbus-connection.c
5896         (_dbus_connection_detach_pending_call_unlocked): add this
5897
5898         Initial semi-correct pass through to fix thread locking; there are
5899         still some issues with the condition variable paths I'm pretty
5900         sure
5901         
5902         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5903         lock/unlock calls
5904
5905         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5906         rename to add _unlocked
5907         (struct DBusConnection): move "dispatch_acquired" and
5908         "io_path_acquired" to use only one bit each.
5909         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5910         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5911         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5912         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5913         (_dbus_connection_remove_timeout) 
5914         (_dbus_connection_toggle_timeout): drop lock when calling out to
5915         user functions; done in a hacky/bad way.
5916         (_dbus_connection_send_and_unlock): add a missing unlock
5917         (_dbus_connection_block_for_reply): add a missing unlock
5918
5919         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5920         drop lock in a hacky probably unsafe way to call out to user
5921         function
5922
5923 2005-02-12  Havoc Pennington  <hp@redhat.com>
5924
5925         * tools/dbus-tree-view.c (info_set_func_text): display more
5926         details on args
5927
5928         * bus/driver.c (bus_driver_handle_list_services): list the bus
5929         driver
5930
5931         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5932
5933         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5934         (method_info_get_n_args): new function
5935
5936 2005-02-12  Havoc Pennington  <hp@redhat.com>
5937
5938         * bus/driver.c (bus_driver_handle_introspect): add introspection
5939         for bus driver
5940
5941 2005-02-12  Havoc Pennington  <hp@redhat.com>
5942
5943         * bus/driver.c: put the signature of each bus driver method in the
5944         table of handlers and check it on incoming calls; this isn't
5945         really useful, but going to add introspect support in a minute.
5946
5947 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5948
5949         * mono/Connection.cs: The unpredictability of finalizers in mono
5950         prevents us from deterministically disconnecting the filters from
5951         the Service class's finalizer, so move tracking of filters and
5952         matches here.  Add API for that.
5953
5954         * mono/Service.cs: Remove the code, add code which calls the
5955         methods now on the Connection class.
5956
5957 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5958
5959         * python/dbus.py (class Sender): added to support dbus signals better
5960         (Bus::add_signal_receiver): added expand_args parameter which defaults
5961         to True.  When expand args is True the signal handler will pass the 
5962         message arguments as parameters to the signal handler.  If False
5963         revert to previous behavior where the signal handler must get the
5964         argument list from the message.  This is to help port applications
5965         like HAL that have a tendancy to send variable length argument lists.
5966         self._match_rule_to_receivers is now a dict of dicts.
5967         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5968         removing it from a list
5969         (Bus::_signal_func): change signal handlers so that interface,
5970         signal_name, service, path and message are packed into a Sender
5971         object and that is passed to the handler.  If expand_args is True
5972         extract the args list from the message and append it to the parameter
5973         list
5974         
5975         * python/dbus_bindings.pyx.in (class Signature): added to support 
5976         signiature types
5977         (MessageIter::__init__): changed iteration limit to match D-BUS
5978         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5979         STRUCT and VARIENT type support
5980         (MessageIter::python_value_to_dbus_sig): made recursive to support
5981         recursive types
5982         (MessageIter::append*): added Signature, dict, tuple 
5983         support
5984
5985         * python/examples/example-client.py: added examples of getting tuples
5986         and dicts
5987
5988         * python/examples/example-service.py: added examples of sending tuples
5989         and dicts
5990
5991         * python/examples/example-signal-recipient.py: Fixed to handle new
5992         signal callback format
5993
5994 2005-02-10  Havoc Pennington  <hp@redhat.com>
5995
5996         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5997         (call dbus_g_proxy_add_signal)
5998
5999         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6000         escape the hostname
6001         (_dbus_server_new_for_domain_socket): escape the path
6002
6003         * dbus/dbus-address.c (dbus_address_escape_value): new
6004         (dbus_address_unescape_value): new
6005         (dbus_parse_address): unescape values
6006
6007         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6008
6009         * doc/dbus-specification.xml: explain how to escape values in
6010         addresses
6011
6012 2005-02-10  Havoc Pennington  <hp@redhat.com>
6013
6014         * dbus/dbus-message-factory.c (generate_special): modify test to
6015         avoid using a non-basic dict key
6016
6017         * dbus/dbus-marshal-validate-util.c: add test for the below
6018
6019         * doc/dbus-specification.xml: require that dict keys are a basic
6020         type
6021
6022         * dbus/dbus-marshal-validate.c
6023         (_dbus_validate_signature_with_reason): require that dict key is a
6024         basic type
6025
6026 2005-02-10  Havoc Pennington  <hp@redhat.com>
6027
6028         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6029         change to be _and_unlock instead of _unlocked
6030
6031         * dbus/dbus-connection.c
6032         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6033         have no_update so we can find this bug quickly in future
6034
6035 2005-02-10  Havoc Pennington  <hp@redhat.com>
6036
6037         * dbus/dbus-message-util.c (verify_test_message): tests for string
6038         array
6039
6040         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6041         support for arrays of string/signature/path
6042
6043 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6044
6045         * dbus/dbus-connection.c
6046         (_dbus_connection_queue_received_message_link,
6047         _dbus_connection_message_sent): Add the path to
6048         the verbose output.
6049         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6050         _dbus_connection_send_preallocated_unlocked(), updated the
6051         dispatch status, and unlocks.  Fixes a bug where certain
6052         situations (like a broken pipe) could cause a Disconnect message
6053         to not be sent, tricking the bus into thinking a service was still
6054         there when the process had quit.
6055         (_dbus_connection_send_preallocated): Call
6056         _dbus_connection_send_preallocated_and_unlock().
6057         (_dbus_connection_send_and_unlock): Added.  Calls
6058         _dbus_connection_send_preallocated_and_unlock().
6059         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6060         (dbus_connection_send_with_reply): Update the dispatch status and
6061         unlock.
6062
6063         * mono/Service.cs (~Service): Added.  Removes the filter so that
6064         we don't get unmanaged code calling back into a GCed delegate.
6065         (RemoveFilter); Added.
6066
6067 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6068
6069         * dbus/dbus-message.c (dbus_message_iter_open_container):
6070         - Removed check for iterator type being an array because
6071         get_arg_type does not work with writer iterators
6072         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6073
6074 2005-02-07  Havoc Pennington  <hp@redhat.com>
6075
6076         * doc/dbus-specification.xml: some more language cleanups; add
6077         stuff about how to deal with invalid protocol and extension
6078         points; add _ to allowed chars in auth commands; add EXTENSION_
6079         auth command prefix
6080
6081 2005-02-06  Havoc Pennington  <hp@redhat.com>
6082
6083         * s/expected/required/ in a couple places for clarity
6084
6085 2005-02-07  Colin Walters  <walters@verbum.org>
6086
6087         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6088         sender or proposed_recipient.
6089
6090 2005-02-06  Havoc Pennington  <hp@redhat.com>
6091
6092         * dbus/dbus-message-factory.c (generate_special): more tests
6093
6094         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6095         array length that exceeds the maximum
6096
6097 2005-02-05  Havoc Pennington  <hp@redhat.com>
6098
6099         * dbus/dbus-message-factory.c (generate_special): more test cases,
6100         increasing coverage
6101
6102         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6103         reason why a signature was invalid
6104
6105         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6106         skip the length of the string before we look at it in validation
6107
6108         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6109         equal_substring
6110
6111         * dbus/dbus-message.c (_dbus_message_loader_new): default
6112         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6113
6114 2005-02-05  Havoc Pennington  <hp@redhat.com>
6115
6116         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6117         if the signature of a variant was empty
6118         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6119         struct with no element type)
6120
6121         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6122         mangled messages to break things
6123
6124 2005-02-04  Havoc Pennington  <hp@redhat.com>
6125
6126         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6127         g_quark_try_string() so it actually can return 0
6128         (dbus_g_proxy_connect_signal): ditto
6129
6130 2005-02-04  Havoc Pennington  <hp@redhat.com>
6131
6132         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6133         bogus warning
6134         (tristring_from_message): assert cleanly on null path/interface
6135         (should not be possible though I decided later)
6136         (dbus_g_proxy_dispose): move proxy manager unregistration here
6137         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6138         g_return_if_fail() checks
6139
6140 2005-02-04  Havoc Pennington  <hp@redhat.com>
6141
6142         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6143
6144         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6145         (with some minor changes)
6146
6147         * doc/dbus-specification.xml: add deprecated attribute to
6148         introspection format
6149
6150 2005-01-31  Havoc Pennington  <hp@redhat.com>
6151
6152         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6153         think it's sort of right
6154
6155 2005-01-30  Havoc Pennington  <hp@redhat.com>
6156
6157         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6158
6159 2005-01-30  Havoc Pennington  <hp@redhat.com>
6160
6161         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6162
6163         * autogen.sh: change to autotools 1.9
6164
6165         * glib/dbus-gproxy.c: completely change how signals work
6166         (dbus_g_proxy_add_signal): new function to specify signature of a
6167         signal
6168         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6169         and g_warning if the incoming message has the wrong signature.
6170
6171 2005-01-30  Havoc Pennington  <hp@redhat.com>
6172
6173         * tools/dbus-names-model.c (have_names_notify): fix this
6174
6175         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6176         up the string array handling a bit 
6177
6178 2005-01-30  Havoc Pennington  <hp@redhat.com>
6179
6180         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6181         (dbus_g_pending_call_cancel): new function
6182
6183         * dbus/dbus-glib.h: move GType decls for connection/message here;
6184         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6185         here, just kind of rationalizing how we handle all that
6186
6187         * tools/dbus-names-model.c: new file for a tree model listing the
6188         services on a bus
6189
6190         * tools/dbus-tree-view.c (model_new): use proper typing on the
6191         model rows
6192
6193 2005-01-30  Havoc Pennington  <hp@redhat.com>
6194
6195         * glib/dbus-gmain.c: add a custom GSource back that just checks
6196         whether the message queue has anything in it; otherwise, there are 
6197         cases where we won't see messages in the queue since there was no 
6198         IO visible to the glib main loop
6199
6200         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6201         increase default message timeout to 25 seconds
6202
6203 2005-01-30  Havoc Pennington  <hp@redhat.com>
6204
6205         * test/glib/test-profile.c (no_bus_stop_server): remove the
6206         warning about the g_warning that I just fixed
6207
6208         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6209         custom source, seems to be a lot easier to understand and work
6210         better.
6211
6212 2005-01-30  Havoc Pennington  <hp@redhat.com>
6213
6214         I think this main loop thing is conceptually broken, but here are 
6215         some band aids. I'll maybe rewrite it in a minute.
6216         
6217         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6218         custom GSource, so don't pass it in; confusing
6219         (gsource_server_finalize, gsource_connection_finalize): add
6220         finalize handlers that remove all the watches.  
6221
6222 2005-01-30  Havoc Pennington  <hp@redhat.com>
6223
6224         * glib/dbus-gobject.c (introspect_properties): fix the XML
6225         generated
6226
6227         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6228         which effectively detects the use of freed messages
6229
6230         * glib/dbus-gobject.c (handle_introspect): modify and return the
6231         reply message instead of the incoming message
6232
6233         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6234         gee, maybe it should SEND THE XML instead of just making a string
6235         and freeing it again ;-)
6236
6237         * tools/dbus-print-message.c (print_message): improve printing of
6238         messages
6239
6240         * configure.in: add debug-glib.service to the output
6241
6242 2005-01-30  Havoc Pennington  <hp@redhat.com>
6243
6244         dbus-viewer introspected and displayed the bus driver
6245         
6246         * dbus/dbus-object-tree.c 
6247         (object_tree_test_iteration): add tests for a handler registered on "/"
6248
6249         * dbus/dbus-object-tree.c
6250         (_dbus_decompose_path): fix to handle path "/" properly
6251         (run_decompose_tests): add tests for path decomposition
6252         
6253         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6254         properly
6255
6256         * glib/dbus-gobject.c (handle_introspect): fix quotes
6257
6258         * test/glib/run-test.sh: support launching the bus, then running
6259         dbus-viewer
6260
6261         * test/glib/test-service-glib.c (main): put in a trivial gobject
6262         subclass and register it on the connection
6263
6264         * bus/driver.c (bus_driver_handle_introspect): implement
6265         introspection of the bus driver service
6266
6267         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6268         identifiers, doctype decl
6269
6270         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6271         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6272         returning the service unchanged.
6273         (bus_driver_handle_message): remove old check for reply_serial in
6274         method calls, now the message type deals with that
6275         (bus_driver_handle_message): handle NULL interface
6276
6277         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6278
6279         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6280         -1 for len
6281
6282         * tools/dbus-viewer.c: add support for introspecting a service on
6283         a bus
6284
6285         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6286         (dbus_g_pending_call_unref): add
6287
6288 2005-01-29  Havoc Pennington  <hp@redhat.com>
6289
6290         * tools/dbus-tree-view.c: add support for displaying properties.
6291         (run dbus-viewer with an introspect xml file as arg, then resize
6292         the window so the tree elements show up, not sure what that is)
6293
6294         * glib/dbus-gobject.c (handle_introspect): return
6295         org.freedesktop.Properties and org.freedesktop.Introspectable
6296         interfaces when we are introspected.
6297
6298         * doc/dbus-specification.xml: allow empty interface name when 
6299         Get/Set a property
6300
6301 2005-01-29  Havoc Pennington  <hp@redhat.com>
6302
6303         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6304         though it uses glib, it could be extended for any binding in
6305         principle
6306
6307         * glib/dbus-gobject.c (gobject_message_function): change to the
6308         new way properties work
6309
6310         * dbus/dbus-protocol.h: add the new interfaces
6311
6312         * doc/dbus-specification.xml: document the introspection format,
6313         Introspectable interface, and add an org.freedesktop.Properties
6314         interface.
6315
6316         * glib/dbus-gparser.c: add support for a <property> element
6317
6318         * glib/dbus-gidl.c: add PropertyInfo
6319
6320         * glib/dbus-gobject.c (handle_introspect): put the outermost
6321         <node> outside the signal and property descriptions.
6322         (introspect_properties): export properties as <property> rather
6323         than as method calls
6324
6325 2005-01-28  Havoc Pennington  <hp@redhat.com>
6326
6327         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6328         related to authentication protocol
6329
6330 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6331
6332         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6333                 - BUS_ACTIVATION -> BUS_STARTER
6334                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6335                 - class MessageIter (__init__): Added recursion checking 
6336                 so we throw a nice error instead of just disconnecting from the
6337                 bus.
6338                 (get): Added arg_type parameter for recursion.
6339                 Removed the nil type
6340                 Added signiture type placeholder (not implemented)
6341                 Added struct type placeholder (not implemented)
6342                 Added varient type placeholder (not implemented)
6343                 Commented out dict type for now     
6344                 (get_element_type): renamed from get_array_type
6345                 (get_*): changed to use the dbus_message_iter_get_basic API
6346                 (get_*_array): removed in favor of recursive get_array method
6347                 (get_array): new recursive method which calls get to marshal
6348                 the elements of the array
6349                 (value_to_dbus_sig): New method returns the corrasponding
6350                 dbus signiture to a python value
6351                 (append): Comment out dict handling for now
6352                 Handle lists with the new recursive API
6353                 Comment out None handling for now
6354                 (append_nil): removed
6355                 (append_*): changed to use dbus_message_iter_append_basic API
6356                 (append_*_array): removed in favor of recursive append_array 
6357                 method
6358                 (__str__): Make it easier to print out recursive iterators
6359                 for debugging
6360                 - class Message (__str__): moved type inspection to the
6361                 MessageIter class' __str__ method
6362                 (get_iter): Added an append parameter wich defaults to False
6363                 If True use the new API's to create an append iterator
6364
6365         * python/dbus.py: Update to use new bindings API
6366                 - TYPE_ACTIVATION -> TYPE_STARTER
6367                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6368                 - class ActivationBus -> class StarterBus
6369                 - class RemoteObject (__call__): get an append iterator
6370                 - (_dispatch_dbus_method_call): get an append iterator
6371                 - class Object (emit_signal): get an append iterator
6372
6373         * python/examples/: Fixed up the examples to work with the new API
6374                 
6375 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6376
6377         * configure.in: Bump version up to 0.30.
6378
6379         * HACKING: Add a release item to bump the version number up after 
6380         a release.
6381
6382 2005-01-28  Havoc Pennington  <hp@redhat.com>
6383
6384         * doc/dbus-specification.xml: update to describe 16-bit types and
6385         dict entries
6386
6387         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6388         assertion
6389
6390         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6391         type
6392
6393         * dbus/dbus-marshal-recursive.c: implement
6394
6395 2005-01-27  Havoc Pennington  <hp@redhat.com>
6396
6397         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6398
6399         * configure.in: find the right type for 16 and 32 bit ints as well
6400         as 64
6401
6402         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6403         the 16-bit types so people don't have to stuff them in 32-bit or
6404         byte arrays.
6405
6406 2005-01-27  Havoc Pennington  <hp@redhat.com>
6407
6408         * dbus/dbus-message.c: byteswap the message if you init an
6409         iterator to read/write from it
6410         
6411         * dbus/dbus-marshal-byteswap.c: new file implementing 
6412         _dbus_marshal_byteswap()
6413
6414         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6415
6416 2005-01-26  Havoc Pennington  <hp@redhat.com>
6417         
6418         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6419         build, apparently - nobody noticed?)
6420         
6421 2005-01-26  Havoc Pennington  <hp@redhat.com>
6422
6423         * dbus/dbus-marshal-recursive.h: remove todo comment
6424
6425 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6426
6427         * Land the mono binding changes to conform to the new APIs.
6428
6429         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6430         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6431
6432         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6433         type code as a string.
6434         (InitAppending): Rename dbus_message_append_iter_init() to
6435         dbus_message_iter_init_append().
6436
6437         * mono/BusDriver.cs: Rename ServiceEventHandler to
6438         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6439         Rename ServiceOwnerChanged to NameOwnerChanged.
6440
6441         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6442         underlying C call.
6443
6444         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6445
6446         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6447         dbus_bus_acquire_service() to dbus_bus_request_name().
6448
6449         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6450         of Type.UnderlyingSystemType to get the correct element type for
6451         the array.
6452         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6453         dbus_message_get_{element|arg}_type() instead of
6454         dbus_message_iter_init_array_iterator().
6455         (Append): Replace dbus_message_iter_append_array() with
6456         dbus_message_iter_open_container() and
6457         dbus_message_iter_close_container().
6458
6459         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6460         types have been removed.
6461         
6462         * mono/DBusType/*.cs: Replace calls of
6463         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6464         but specify the type in the DllImport extern declaration.  Ditto
6465         for dbus_message_iter_append_[type]() ->
6466         dbus_message_iter_append_basic().
6467
6468         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6469         NameOwnerChangedHandler.
6470
6471 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6472
6473         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6474                 - get_base_service -> get_unique_name
6475                 - bus_get_base_service -> bus_get_unique_name
6476                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6477                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6478                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6479                 - bus_activate_service -> bus_start_service_by_name
6480                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6481                 - bus_acquire_service -> bus_request_name
6482                 - dbus_bus_acquire_service -> dbus_bus_request_name
6483                 - bus_service_exists -> bus_name_has_owner
6484                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6485
6486         * python/dbus.py: Rename of methods
6487                 - activate_service -> start_service_by_name
6488                 - bus_acquire_service -> bus_request_name
6489                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6490                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6491
6492         
6493 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6494
6495         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6496         signature for the method that can't be found.
6497
6498         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6499         the message has any arguments, we need to call
6500         _dbus_type_reader_get_current_type(), not
6501         _dbus_type_reader_has_next().
6502
6503 2005-01-24  Havoc Pennington  <hp@redhat.com>
6504
6505         * dbus/dbus-message-factory.c: more testing of message validation
6506
6507         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6508         header
6509
6510 2005-01-23  Havoc Pennington  <hp@redhat.com>
6511
6512         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6513         get this all working, not many tests in the framework yet though
6514
6515 2005-01-22  Havoc Pennington  <hp@redhat.com>
6516
6517         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6518         tutorial, based on work from David Wheeler.
6519
6520 2005-01-21  Havoc Pennington  <hp@redhat.com>
6521
6522         * dbus/dbus-bus.c: add more return_if_fail checks
6523
6524         * dbus/dbus-message.c (load_message): have the "no validation"
6525         mode (have to edit the code to toggle the mode for now though)
6526
6527         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6528         skips all validation; I want to use this at least for benchmark
6529         baseline, I'm not sure if it should be a publicly-available switch.
6530
6531 2005-01-21  Havoc Pennington  <hp@redhat.com>
6532
6533         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6534         toplevel doxygen group as the low-level API stuff
6535
6536         * dbus/dbus.h: note that libdbus is the low-level API
6537
6538 2005-01-20  Havoc Pennington  <hp@redhat.com>
6539
6540         * update-dbus-docs.sh: script to update docs on the web site, only
6541         works for me though. neener.
6542
6543 2005-01-20  Havoc Pennington  <hp@redhat.com>
6544
6545         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6546         code can reveal bugs in it
6547
6548 2005-01-20  Havoc Pennington  <hp@redhat.com>
6549
6550         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6551         select() version, patches from Tor Lillqvist
6552
6553 2005-01-20  Havoc Pennington  <hp@redhat.com>
6554
6555         * doc/dbus-tutorial.xml: replace > with &gt;
6556
6557         * bus/services.c (bus_registry_acquire_service): validate the name
6558         and return a better error if it's no good.
6559
6560         * doc/dbus-specification.xml: note NO_AUTO_START change
6561
6562         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6563         from AUTO_START, we're toggling the default
6564
6565         * bus/dispatch.c: adapt the tests to change of auto-start default
6566
6567 2005-01-18  Havoc Pennington  <hp@redhat.com>
6568
6569         * rename dbus-daemon-1 to dbus-daemon throughout
6570
6571 2005-01-18  Havoc Pennington  <hp@redhat.com>
6572
6573         * Throughout, grand renaming to strip out the use of "service",
6574         just say "name" instead (or "bus name" when ambiguous).  Did not
6575         change the internal code of the message bus itself, only the
6576         programmer-facing API and messages.
6577         
6578         * doc/dbus-specification.xml: further update the message bus section
6579         
6580         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6581         in error case
6582
6583 2005-01-17  Havoc Pennington  <hp@redhat.com>
6584
6585         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6586         ever
6587
6588         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6589         "invalid name character" not only non-ASCII
6590
6591         * doc/dbus-specification.xml: further update spec, message bus 
6592         parts are still out-of-date but the marshaling etc. stuff is now
6593         accurate-ish
6594
6595 2005-01-17  Havoc Pennington  <hp@redhat.com>
6596
6597         * doc/dbus-specification.xml: partially update spec
6598
6599 2005-01-17  Havoc Pennington  <hp@redhat.com>
6600
6601         * Throughout, align variant bodies according to the contained
6602         type, rather than always to 8. Should save a fair bit of space in
6603         message headers.
6604         
6605         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6606         fix handling of case where p == end
6607
6608         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6609
6610 2005-01-17  Havoc Pennington  <hp@redhat.com>
6611
6612         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6613
6614         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6615         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6616         are marshaling/unmarshaling a boolean.
6617
6618 2005-01-16  Havoc Pennington  <hp@redhat.com>
6619
6620         This is about it on what can be disabled/deleted from libdbus
6621         easily, back below 150K anyhow. Deeper cuts are more work than 
6622         just turning the code off as I've done here.
6623         
6624         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6625         signed int convenience funcs
6626
6627         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6628         verbose mode
6629
6630         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6631         things out of libdbus
6632
6633         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6634         
6635         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6636         tests-enabled-only, though it should probably be deleted)
6637
6638         * dbus/dbus-message-util.c: same stuff
6639
6640         * dbus/dbus-auth-util.c: same stuff
6641
6642 2005-01-16  Havoc Pennington  <hp@redhat.com>
6643
6644         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6645
6646         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6647         way for stripping down dbus-userdb.c stuff included in libdbus.
6648         Rename _dbus_parse_uid for consistency.
6649
6650 2005-01-16  Havoc Pennington  <hp@redhat.com>
6651
6652         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6653         name the assertion failed in
6654
6655         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6656         (_dbus_return_val_if_fail): assert that the name of the function
6657         containing the check doesn't start with '_', since we only want to 
6658         use checks on public functions
6659         
6660         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6661         checks to assertions
6662
6663         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6664         change checks to asserts for private function
6665
6666         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6667         to asserts for private function
6668
6669         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6670         broken assertion that was breaking make check
6671         (_dbus_type_reader_array_is_empty): remove this rather than fix
6672         it, was only used in assertions
6673
6674 2005-01-16  Havoc Pennington  <hp@redhat.com>
6675
6676         * test/unused-code-gc.py: hacky script to find code that's used
6677         only by the bus (not libdbus) or used only by tests or not used at
6678         all. It has some false alarms, but looks like we can clean up a
6679         lot of size from libdbus.
6680
6681         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6682         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6683         
6684 2005-01-16  Havoc Pennington  <hp@redhat.com>
6685
6686         * Add and fix docs according to Doxygen warnings throughout
6687         source.
6688         
6689         * dbus/dbus-marshal-recursive.c
6690         (_dbus_type_reader_array_is_empty): change this to just call
6691         array_reader_get_array_len() and make it static
6692
6693         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6694         from get_array_type
6695         (dbus_message_iter_init_append): rename from append_iter_init
6696
6697         * dbus/dbus-marshal-recursive.c
6698         (_dbus_type_reader_get_element_type): rename from
6699         _dbus_type_reader_get_array_type
6700
6701 2005-01-15  Havoc Pennington  <hp@redhat.com>
6702
6703         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6704
6705         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6706         when DBUS_DISABLE_ASSERT
6707         (_dbus_marshal_set_basic): be sure we align for the string length
6708
6709         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6710         this look faster
6711
6712         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6713         inline macro version
6714         (_dbus_string_set_byte): provide inline macro version
6715
6716 2005-01-15  Havoc Pennington  <hp@redhat.com>
6717
6718         * Land the new message args API and type system.
6719
6720         This patch is huge, but the public API change is not 
6721         really large. The set of D-BUS types has changed somewhat, 
6722         and the arg "getters" are more geared toward language bindings;
6723         they don't make a copy, etc.
6724
6725         There are also some known issues. See these emails for details
6726         on this huge patch:
6727         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6728         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6729         
6730         * dbus/dbus-marshal-*: all the new stuff
6731
6732         * dbus/dbus-message.c: basically rewritten
6733
6734         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6735         freed blocks to be all non-nul bytes so using freed memory is less
6736         likely to work right
6737
6738         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6739         DBUS_FAIL_MALLOC=N environment variable, so you can do
6740         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6741         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6742         thorough.
6743
6744         * qt/message.cpp: port to the new message args API
6745         (operator<<): use str.utf8() rather than str.unicode()
6746         (pretty sure this is right from the Qt docs?)
6747
6748         * glib/dbus-gvalue.c: port to the new message args API
6749
6750         * bus/dispatch.c, bus/driver.c: port to the new message args API
6751
6752         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6753         "locked" flag to TRUE and align_offset to 0; I guess we never
6754         looked at these anyhow, but seems cleaner.
6755
6756         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6757         move allocation padding macro to this header; use it to implement
6758         (_DBUS_STRING_STATIC): ability to declare a static string.
6759
6760         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6761         change to return TRUE if the interface is not set.
6762
6763         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6764         to dbus-marshal-validate.[hc]
6765
6766         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6767         dbus-internals.c
6768
6769         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6770         to dbus-marshal-*.[hc]
6771
6772         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6773         function here from dbus-marshal.c
6774
6775 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6776
6777         * NEWS: Update for 0.23.
6778
6779         * configure.in: Release 0.23.
6780
6781 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6782
6783         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6784         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6785         behind.
6786
6787         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6788         uninstall"
6789
6790         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6791         is an enum, get the enum's underlying type.  Another mono
6792         1.1.3 fix.
6793
6794 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6795
6796         Patch from Sjoerd Simons <sjoerd@luon.net>
6797
6798         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6799         DESTDIR.  It breaks stuff.
6800
6801 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6802
6803         Patch from Tambet Ingo <tambet@ximian.com>
6804
6805         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6806         calling type.GetElementType().  The code previously depended on
6807         broken Mono behavior, which was fixed in Mono 1.1.3.
6808
6809         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6810         Activator.CreateInstance() so that the class's constructor is
6811         called with the right parameters.
6812
6813 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6814
6815         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6816
6817         * dbus/dbus-connection.c
6818         (_dbus_connection_queue_received_message_link): Call
6819         _dbus_connection_remove_timeout() instead of the _locked()
6820         variant, since it's always called from
6821         _dbus_connection_handle_watch(), which handles the locking.
6822         Removed the _locked() variant since it's no longer used.
6823
6824 2005-01-03  Havoc Pennington  <hp@redhat.com>
6825
6826         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6827         return
6828         
6829 2004-12-26  Havoc Pennington  <hp@redhat.com>
6830
6831         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6832
6833 2005-01-03  Havoc Pennington  <hp@redhat.com>
6834
6835         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6836         floating point
6837
6838         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6839
6840 2005-01-02  Havoc Pennington  <hp@redhat.com>
6841
6842         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6843
6844 2005-01-01  Havoc Pennington  <hp@redhat.com>
6845
6846         * configure.in: add -Wfloat-equal
6847
6848 2005-01-01  Havoc Pennington  <hp@redhat.com>
6849
6850         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6851         for a variety of reasons '==' doesn't do this.
6852
6853 2004-12-31  Havoc Pennington  <hp@redhat.com>
6854
6855         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6856         I keep wishing I had
6857
6858 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6859
6860         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6861
6862 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6863
6864         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6865         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6866         dbus-protocol.h.  Because they are defines and not enums they are not
6867         autogenerated.
6868
6869 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6870
6871         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6872         dbus_bus_activate_service
6873
6874         * python/dbus.py (Bus.activate_service): activate a service on the
6875         bus.
6876
6877 2004-12-24  Havoc Pennington  <hp@redhat.com>
6878
6879         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6880         file format has also changed and I haven't adapted to that yet
6881         
6882         * Makefile.am: load .gcno files from latest gcc
6883
6884 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6885         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6886
6887         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6888         lowlevel binding
6889
6890         * python/dbus.py (get_unix_user): Added binding to 
6891         call dbus_bindings.bus_get_unix_user
6892
6893         * python/extract.py: Modified the proto_pat regex to
6894         handle unsigned long
6895
6896 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6897
6898         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6899         better POSIX compliance.
6900
6901 2004-12-19  Havoc Pennington  <hp@redhat.com>
6902
6903         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6904         (_dbus_string_insert_8_aligned): new functions
6905
6906         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6907
6908 2004-12-18  Havoc Pennington  <hp@redhat.com>
6909
6910         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6911         macro
6912
6913         * dbus/dbus-message.c: fix a comment, and add a still-unused
6914         not-implemented function
6915
6916         * dbus/dbus-marshal.h: fix comment
6917
6918         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6919
6920 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6921
6922         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6923         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6924         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6925         Type.UnderlyingSystemType to get the actual system type
6926         underneath.  This code previously depended on the broken Mono
6927         behavior, which was fixed in 1.1.3.
6928
6929 2004-11-27  Havoc Pennington  <hp@redhat.com>
6930
6931         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6932         are disabled
6933         (_dbus_string_get_const_data): inline when asserts are disabled
6934
6935         * dbus/dbus-message.c: record the _dbus_current_generation of
6936         creation so we can complain if dbus_shutdown() is used improperly.
6937         Do this only if checks are enabled.
6938
6939         * dbus/dbus-connection.c: ditto
6940         
6941 2004-11-26  Havoc Pennington  <hp@redhat.com>
6942
6943         * test/glib/test-profile.c: add with_bus mode to profile echoes
6944         that go through the bus.
6945
6946         * test/glib/run-test.sh: add ability to run test-profile
6947
6948         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6949         config file reload.
6950
6951 2004-11-26  Havoc Pennington  <hp@redhat.com>
6952
6953         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6954         thing was implemented
6955
6956 2004-11-26  Havoc Pennington  <hp@redhat.com>
6957
6958         * test/glib/test-profile.c: tweak a bit, add support for some
6959         made-up minimal malloc overhead with plain sockets, since in 
6960         real life some sort of buffers are unavoidable thus we could 
6961         count them in the theoretical best case
6962
6963 2004-11-26  Havoc Pennington  <hp@redhat.com>
6964
6965         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6966         where I was trying to cache one too many messages
6967
6968 2004-11-26  Havoc Pennington  <hp@redhat.com>
6969
6970         * dbus/dbus-message.c: reimplement message cache as an array which 
6971         makes the cache about twice as fast and saves maybe 1.5% overall
6972
6973 2004-11-26  Havoc Pennington  <hp@redhat.com>
6974
6975         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6976         message cache lock here
6977
6978 2004-11-26  Havoc Pennington  <hp@redhat.com>
6979
6980         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6981         the "char byte_order" next to each other to save 4 bytes
6982         (dbus_message_new_empty_header): reduce preallocation, since the
6983         message cache should achieve a similar effect
6984         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6985         message cache that keeps a few DBusMessage around in a pool,
6986         another 8% speedup or so.
6987
6988         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6989
6990 2004-11-25  Havoc Pennington  <hp@redhat.com>
6991
6992         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6993         to write, without reading or blocking, try it before the poll()
6994         and skip the poll() if nothing remains to write. This is about a
6995         3% speedup in the echo client/server
6996
6997 2004-11-25  Havoc Pennington  <hp@redhat.com>
6998
6999         The primary change here is to always write() once before adding
7000         the write watch, which gives us about a 10% performance increase.
7001         
7002         * dbus/dbus-transport-unix.c: a number of modifications to cope
7003         with removing messages_pending
7004         (check_write_watch): properly handle
7005         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7006         messages_pending stuff
7007         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7008         AUTHENTICATED cases
7009         (unix_handle_watch): after writing, see if the write watch can be
7010         removed
7011         (unix_do_iteration): assert that write_watch/read_watch are
7012         non-NULL rather than testing that they aren't, since they 
7013         aren't allowed to be NULL. check_write_watch() at the end so 
7014         we add the watch if we did not finish writing (e.g. got EAGAIN)
7015
7016         * dbus/dbus-transport-protected.h: remove messages_pending call,
7017         since it resulted in too much inefficient watch adding/removing; 
7018         instead we now require that the transport user does an iteration 
7019         after queueing outgoing messages, and after trying the first
7020         write() we add a write watch if we got EAGAIN or exceeded our 
7021         max bytes to write per iteration setting
7022
7023         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7024         function
7025
7026         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7027         freed and then accessed, valgrind flagged this bug, fix it
7028
7029         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7030         as the last valid field plus 1, where really it is equal to the
7031         last valid field. Corrects some message corruption issues.
7032
7033         * dbus/dbus-mainloop.c: verbosity changes
7034
7035         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7036         instead of aborting in one of the test codepaths
7037
7038         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7039         caused not printing the pid ever again if a verbose was missing
7040         the newline at the end
7041         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7042
7043         * dbus/dbus-connection.c: verbosity changes; 
7044         (dbus_connection_has_messages_to_send): new function
7045         (_dbus_connection_message_sent): no longer call transport->messages_pending
7046         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7047         try to write() immediately, so we can avoid the write watch. This
7048         is the core purpose of this patchset
7049         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7050         dump the outgoing message queue, so nobody will get confused
7051         trying to send them or thinking stuff is pending to be sent
7052
7053         * bus/test.c: verbosity changes
7054
7055         * bus/driver.c: verbosity/assertion changes
7056
7057         * bus/dispatch.c: a bunch of little tweaks to get it working again
7058         because this patchset changes when/where you need to block.
7059
7060 2004-11-23  Havoc Pennington  <hp@redhat.com>
7061
7062         * test/glib/test-profile.c: modify to accept a plain_sockets
7063         argument in which case it will bench plain sockets instead of
7064         libdbus, for comparison purposes.
7065
7066 2004-11-22  Havoc Pennington  <hp@redhat.com>
7067
7068         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7069         threads for more time, so sysprof can get a grip on it.
7070
7071         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7072         pointless variable
7073
7074 2004-11-13  Havoc Pennington  <hp@redhat.com>
7075
7076         * test/glib/test-profile.c: fix this thing up a bit
7077
7078         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7079         preallocation sizes by a fair bit; not sure if this will be an
7080         overall performance win or not, but it does reduce reallocs.
7081
7082         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7083         the test hack that forced constant realloc if asserts are
7084         disabled, so we can profile sanely. Sprinkle in some
7085         _DBUS_UNLIKELY() which are probably pointless, but before I
7086         noticed the real performance problem I put them in.
7087         (_dbus_string_validate_utf8): micro-optimize this thing a little
7088         bit, though callgrind says it didn't help; then special-case
7089         ascii, which did help a lot; then be sure we detect nul bytes as
7090         invalid, which is a bugfix.
7091         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7092         superstition; use memset to nul the padding instead of a manual
7093         loop.
7094         (_dbus_string_get_length): inline this as a
7095         macro; it showed up in the profile because it's used for loop
7096         tests and so forth
7097
7098 2004-11-10  Colin Walters  <walters@verbum.org>
7099
7100         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7101         for extra paranoia.
7102
7103 2004-11-09  Colin Walters  <walters@verbum.org>
7104
7105         * dbus/dbus-string.c (_dbus_string_get_length): New
7106         function, writes DBusString to C buffer.
7107
7108         * dbus/dbus-string.h: Prototype it.
7109
7110         * dbus/dbus-message.c (dbus_message_type_to_string): New
7111         function, converts message type into C string.
7112
7113         * dbus/dbus-message.h: Prototype it.
7114
7115         * bus/selinux.c (bus_selinux_check): Take source pid,
7116         target pid, and audit data.  Pass audit data to
7117         avc_has_perm.
7118         (log_audit_callback): New function, appends extra
7119         audit information.
7120         (bus_selinux_allows_acquire_service): Also take
7121         service name, add it to audit data.
7122         (bus_selinux_allows_send): Also take message
7123         type, interface, method member, error name,
7124         and destination, and add them to audit data.
7125         (log_cb): Initialize func_audit.
7126         
7127         * bus/selinux.h (bus_selinux_allows_acquire_service)
7128         (bus_selinux_allows_send): Update prototypes 
7129
7130         * bus/services.c (bus_registry_acquire_service): Pass
7131         service name to bus_selinux_allows_acquire_service.
7132
7133         * bus/bus.c (bus_context_check_security_policy): Pass
7134         additional audit data.  Move assignment of dest
7135         to its own line.
7136
7137 2004-11-07  Colin Walters  <walters@verbum.org>
7138
7139         * dbus/dbus-transport-unix.c (do_authentication): Always
7140         initialize auth_completed.
7141         
7142 2004-11-07  Colin Walters  <walters@verbum.org>
7143
7144         * bus/bus.c (load_config): Break into three
7145         separate functions: process_config_first_time_only,
7146         process_config_every_time, and process_config_postinit.
7147         (process_config_every_time): Move call of
7148         bus_registry_set_service_context_table into
7149         process_config_postinit.
7150         (process_config_postinit): New function, does
7151         any processing that needs to happen late
7152         in initialization (and also on reload).
7153         (bus_context_new): Instead of calling load_config,
7154         open config parser here and call process_config_first_time_only
7155         and process_config_every_time directly.  Later, after
7156         we have forked but before changing UID,
7157         invoke bus_selinux_full_init, and then call
7158         process_config_postinit.
7159         (bus_context_reload_config): As in bus_context_new,
7160         load parse file inside here, and call process_config_every_time
7161         and process_config_postinit.
7162
7163         * bus/services.h, bus/services.c
7164         (bus_registry_set_service_context_table): Rename
7165         from bus_registry_set_sid_table.  Take string hash from config
7166         parser, and convert them here into SIDs.
7167
7168         * bus/config-parser.c (struct BusConfigParser): Have
7169         config parser only store a mapping of service->context
7170         string.
7171         (merge_service_context_hash): New function.
7172         (merge_included): Merge context string hashes instead
7173         of using bus_selinux_id_table_union.
7174         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7175         simply create a new string hash.
7176         (bus_config_parser_unref): Unref it.
7177         (start_selinux_child): Simply insert strings into hash,
7178         don't call bus_selinux_id_table_copy_over.
7179
7180         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7181         (bus_selinux_id_table_copy_over): Delete.
7182
7183 2004-11-03  Colin Walters  <walters@verbum.org>
7184
7185         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7186         variables.
7187         
7188 2004-11-03  Colin Walters  <walters@verbum.org>
7189
7190         * bus/test-main.c (test_pre_hook): Fix test logic,
7191         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7192
7193 2004-11-02  Colin Walters  <walters@redhat.com>
7194
7195         * bus/selinux.c (bus_selinux_init): Split into two functions,
7196         bus_selinux_pre_init and bus_selinux_post_init.
7197         (bus_selinux_pre_init): Just determine whether SELinux is
7198         enabled.
7199         (bus_selinux_post_init): Do everything else.
7200
7201         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7202         config file, and bus_selinux_post_init after.  This ensures that
7203         we don't lose the policyreload notification thread that
7204         bus_selinux_init created before forking previously.
7205         
7206         * bus/test-main.c (test_pre_hook): Update for split.
7207
7208 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7209
7210         Patch from Johan Fischer <linux@fischaz.com>
7211         
7212         * mono/doc/Makefile.am (install-data-local): Added directory
7213         install for DESTDIR
7214
7215 2004-10-29  Colin Walters  <walters@redhat.com>
7216
7217         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7218         parameter for fd to write pid to.       
7219
7220         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7221         
7222         * bus/bus.c (bus_context_new): Pass print_pid_fd
7223         to _dbus_become_daemon (bug #1720)
7224
7225 2004-10-29  Colin Walters  <walters@redhat.com>
7226
7227         Patch from Ed Catmur <ed@catmur.co.uk>
7228
7229         * mono/doc/Makefile.am (install-data-local): Handle
7230         DESTDIR.
7231
7232 2004-10-29  Colin Walters  <walters@redhat.com>
7233
7234         * bus/.cvsignore, qt/.cvsignore: Update.
7235
7236 2004-10-29  Colin Walters  <walters@redhat.com>
7237
7238         Patch from Kristof Vansant <de_lupus@pandora.be>
7239
7240         * configure.in: Detect Slackware.
7241         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7242         * bus/rc.messagebus.in: New file.
7243
7244 2004-10-29  Colin Walters  <walters@redhat.com>
7245
7246         * tools/dbus-monitor.c (filter_func): Return
7247         DBUS_HANDLER_RESULT_HANDLED in filter function
7248         for now.  See:
7249         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7250
7251 2004-10-29  Colin Walters  <walters@redhat.com>
7252
7253         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7254
7255         * bus/services.c (bus_registry_acquire_service): 
7256         Correctly retrieve service name from DBusString
7257         for printing.
7258
7259 2004-10-29  Colin Walters  <walters@redhat.com>
7260
7261         * dbus/dbus-glib.h: Update documentation to not
7262         refer to internal APIs.
7263
7264 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7265
7266         * mono/Arguments.cs (GetDBusTypeConstructor):
7267         type.UnderlyingSystemType will return "System.Byte" if you do it
7268         on "byte[]", which is not what we want.  So check the type.IsArray
7269         property and use System.Array instead.
7270
7271 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7272
7273         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7274         the DBusUserInfo structure since this is passed into the function.
7275         This would cause a double free when the function that allocated
7276         the structure would try to free it when an error occured.
7277
7278         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7279         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7280         for service activation to avoid 32bit/64bit parallel install issues
7281
7282 2004-10-21  Colin Walters  <walters@verbum.org>
7283
7284         * AUTHORS: Fix my email address, the @gnu.org one
7285         has been bouncing for some time.  Also add J5.
7286         
7287 2004-10-21  Colin Walters  <walters@verbum.org>
7288
7289         * dbus/dbus-transport-unix.c (do_authentication): Return
7290         authentication status to callers.
7291         (unix_handle_watch): If we completed authentication this round,
7292         don't do another read.  Instead wait until the next iteration,
7293         after we've read any pending data in the auth buffer.
7294         (unix_do_iteration): Ditto.
7295         (unix_handle_watch): Updated for new do_authentication prototype.
7296
7297 2004-10-18  Colin Walters  <walters@verbum.org>
7298
7299         * bus/selinux.c (bus_selinux_enabled): Handle
7300         --disable-selinux case.
7301         
7302 2004-10-18  Colin Walters  <walters@verbum.org>
7303
7304         * bus/selinux.h: Add bus_selinux_enabled.
7305         
7306         * bus/selinux.c (bus_selinux_enabled): Implement it.
7307         
7308         * bus/config-parser.c (struct include): Add
7309         if_selinux_enabled member.
7310         (start_busconfig_child): Parse if_selinux_enabled
7311         attribute for include.
7312         (bus_config_parser_content): Handle it.
7313
7314         * bus/session.conf.in, bus/system.conf.in: Add
7315         inclusion of context mapping to default config files;
7316         conditional on SELinux being enabled.
7317         
7318         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7319         
7320         * test/data/invalid-config-files/badselinux-1.conf, 
7321         test/data/invalid-config-files/badselinux-2.conf:
7322         Test files for bad syntax.
7323         
7324 2004-10-17  Colin Walters  <walters@verbum.org>
7325
7326         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7327         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7328         format specifier mismatches.
7329
7330 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7331
7332         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7333         format string.
7334
7335         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7336         pointer (bug #1540, Leonardo Boiko).
7337
7338 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7339
7340         * mono/BusDriver.cs: Changed BusDriver struct to remove
7341         the ServiceCreated and ServiceDeleted events and replace them
7342         with the new ServiceOwnerChanged event.
7343
7344         * mono/example/BusListener.cs: Added a new example program,
7345         which listens for and reports any ServiceOwnerChanged events
7346         on the bus driver.
7347
7348         * mono/example/Makefile.am (DESTDIR): Build changes for the
7349         new BusListener.cs example.
7350
7351 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7352
7353         * bus/signals.c (bus_match_rule_parse): validate the components of
7354         match rules (bug #1439).
7355
7356         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7357
7358 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7359
7360         * doc/dbus-specification.xml: document ServiceOwnerChanged
7361         signal.
7362         
7363         * bus/driver.c, bus/driver.h, bus/services.c: Use
7364         ServiceOwnerChanged signal instead of ServiceCreated and
7365         ServiceDeleted.
7366         
7367         * bus/dispatch.c: update testcase for the new signal.
7368
7369 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7370
7371         Patch from Nat Friedman <nat@novell.com>
7372
7373         * mono/Makefile.am: A number of small build fixes to allow "make
7374         distcheck" to succeed.
7375
7376         * mono/example/Makefile.am: "make distcheck" fixes.
7377
7378         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7379         key in @srcdir@.
7380
7381         * test/Makefile.am: "make distcheck" fixes.
7382
7383 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7384
7385         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7386
7387         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7388
7389         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7390         messages after the first one (bug #1389).
7391         
7392         * bus/dispatch.c (check_double_hello_message): add a test case for
7393         the double hello message bug.
7394         (check_existent_service_activation): fix check of spawning error.
7395         
7396 2004-09-16  David Zeuthen  <david@fubar.dk>
7397
7398         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7399
7400 2004-09-12  David Zeuthen  <david@fubar.dk>
7401
7402         Patch from Kay Sievers <kay.sievers@vrfy.org>
7403
7404         * bus/bus.c (bus_context_new):
7405         * bus/bus.h:
7406         * bus/main.c (usage)
7407         (main):
7408         Add commandline option --nofork to override configuration file
7409         setting.
7410
7411 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7412
7413         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7414         compilers don't like it (bug #974).
7415
7416 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7417
7418         * qt/connection.*: Applied patch by Jérôme Lodewyck
7419         <lodewyck@clipper.ens.fr> to integrate an existing
7420         connection into the Qt eventloop
7421
7422 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7423
7424         * mono/BusDriver.cs: Added.  This is a class for interacting with
7425         the org.freedesktop.DBus service.
7426
7427         * mono/Message.cs: Added a mechanism to expose the message that is
7428         currently being dispatched via the static Message.Current
7429         property.  Added Message.Sender and Message.Destination
7430         properties.
7431
7432         * mono/Handler.cs: Expose the dispatched message via
7433         Message.Current when handling method calls.
7434
7435         * mono/Service.cs: Expose the dispatched message via
7436         Message.Current when handling signal emissions.
7437         
7438         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7439         Connection.BaseService property.
7440
7441 2004-08-28  Havoc Pennington  <hp@redhat.com>
7442
7443         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7444
7445         More fixes from Steve Grubb
7446         
7447         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7448         (_dbus_listen_tcp_socket): fix fd leak
7449
7450         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7451         EINTR to a bit lower in the code
7452
7453 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7454
7455         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7456         TRUE if we are inquiring about the existence of the built-in
7457         org.freedesktop.DBus service.
7458
7459 2004-08-25  John Palmieri  <johnp@redhat.com>
7460         * bus/config-parser.c:
7461         (struct PolicyType): Add POLICY_CONSOLE
7462         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7463         (start_busconfig_child): Sets up console element when
7464         <policy at_console=""> is encountered in a policy file
7465         (append_rule_from_element): Convert console elements to console
7466         rules.
7467
7468         * bus/policy.c: 
7469         (bus_policy_create_client_policy): Add console rules to the client
7470         policy based on if the client is at the console
7471         (bus_policy_append_console_rule): New function for adding a
7472         console rule to a policy
7473         (bus_policy_merge): Handle console rule merging
7474
7475         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7476         where we check for console user files
7477         
7478         * dbus/dbus-sysdeps.c:
7479         (_dbus_file_exists): New function which checks if the given
7480         file exists
7481         (_dbus_user_at_console): New function which does the system
7482         specific process of checking if the user is at the console
7483
7484         * dbus/dbus-userdb.c:
7485         (_dbus_is_console_user): New function converts a UID to user name
7486         and then calls the system specific _dbus_user_at_console to 
7487         see if the user is at the console and therefor a console user
7488
7489 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7490
7491         * bus/config-parser.c (set_limit):
7492         * bus/dbus-daemon-1.1.in:
7493         * test/data/valid-config-files/many-rules.conf: set the
7494         max_match_rules_per_connection limt from the config file. 
7495
7496         * doc/busconfig.dtd: update the DTD.
7497
7498         * bus/driver.c: remove some unused variables.
7499
7500 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7501
7502         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7503         it's been replaced by dbus_g_bus_get
7504
7505 2004-08-23  Colin Walters  <walters@redhat.com>
7506
7507         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7508
7509         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7510
7511         * bus/selinux.c: Create a thread for policy reload notification.
7512         (bus_selinux_get_policy_root): Implement.
7513
7514         * bus/config-parser.c (start_busconfig_child)
7515         (bus_config_parser_content): Support SELinux-root relative
7516         inclusion.
7517
7518         * configure.in <HAVE_SELINUX>: Add -lpthread.
7519         
7520         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7521         (test_post_hook): Move memory checking into here.
7522         (test_pre_hook, test_post_hook): Move SELinux checks in
7523         here, but conditional on a DBUS_TEST_SELINUX environment
7524         variable.  Unfortunately we can't run the SELinux checks
7525         as a normal user, since they won't have any permissions
7526         for /selinux.  So this will have to be tested manually
7527         for now, until we have virtualization for most of
7528         libselinux.
7529         
7530 2004-08-23  Havoc Pennington  <hp@redhat.com>
7531
7532         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7533         drop supplementary groups, suggested by Steve Grubb
7534
7535 2004-08-20  Colin Walters  <walters@redhat.com>
7536
7537         * bus/config-parser.c (start_busconfig_child): Remove some unused
7538         variables.
7539         
7540         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7541         warning.
7542
7543 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7544
7545         * configure.in: If --enable-mono is passed in, if we can't find
7546         mono error out.
7547
7548         * mono/Makefile.am: Use /gacutil to install assemblies into the
7549         GAC and not /root.
7550
7551 2004-08-12  Havoc Pennington  <hp@redhat.com>
7552
7553         * NEWS: update for 0.22
7554
7555         * configure.in: release 0.22
7556
7557 2004-08-11  Colin Walters  <walters@redhat.com>
7558
7559         * tools/dbus-send.c (main, usage): Add --reply-timeout
7560         argument.
7561
7562 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7563
7564         * bus/bus.c (process_config_first_time_only): get rid of an unused
7565         DBusError that was causing a memoy leak (bug #989).
7566
7567         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7568         fix compilation on Solaris/Forte C (bug #974)
7569
7570         * bus/main.c (main): plug two minuscule memleaks.
7571
7572 2004-08-10  Havoc Pennington  <hp@redhat.com>
7573
7574         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7575
7576 2004-08-09  Havoc Pennington  <hp@redhat.com>
7577
7578         * COPYING: switch to Academic Free License version 2.1 instead of
7579         2.0, to resolve complaints about patent termination clause.
7580
7581 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7582
7583         * README: added documentation for the --enable-python 
7584         configure switch.
7585
7586 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7587
7588         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7589         _unref in the SELinux support.
7590
7591         * doc/busconfig.dtd: update DTD for SELinux support.
7592
7593         * bus/config-loader-libxml.c: fix error handler and parser
7594         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7595
7596         * configure.in: remove the warning about libxml2.
7597
7598         * dbus/dbus-bus.c: silence doxygen warning.
7599
7600 2004-07-31  Colin Walters  <walters@redhat.com>
7601
7602         * configure.in: Move #error in SELinux check to its own line.
7603
7604 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7605
7606         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7607         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7608         dbus_error_set.
7609
7610         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7611         broken by the change in the _SET_OOM macros.
7612
7613 2004-07-31  Colin Walters  <walters@redhat.com>
7614
7615         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7616         BUS_SET_OOM.
7617
7618 2004-07-31  Colin Walters  <walters@redhat.com>
7619
7620         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7621         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7622         AC_MSG_CHECKING.
7623
7624 2004-07-24  Havoc Pennington  <hp@redhat.com>
7625
7626         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7627
7628         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7629         functionality
7630
7631         * configure.in: add --enable-selinux
7632         
7633         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7634
7635         * bus/main.c (main): initialize and shut down selinux
7636
7637         * bus/connection.c: store SELinux ID on each connection, to avoid 
7638         repeated getting of the string context and converting it into 
7639         an ID
7640
7641         * bus/bus.c (bus_context_get_policy): new accessor, though it
7642         isn't used
7643         (bus_context_check_security_policy): check whether the security
7644         context of sender connection can send to the security context of
7645         recipient connection
7646
7647         * bus/config-parser.c: add parsing for <selinux> and <associate>
7648         
7649         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7650         implement dbus_connection_get_unix_fd()
7651
7652         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7653         function, used by the selinux stuff
7654         
7655 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7656
7657         * bus/config-loader-libxml.c: complete the implementation of
7658         libxml backend for config file loader. Doesn't work with full OOM
7659         test yet. 
7660         
7661         * configure.in: change error when selecting libxml into a warning.
7662         
7663         * test/data/invalid-config-files: add two non-well-formed XML
7664         files. 
7665         
7666         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7667         
7668         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7669         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7670         be necessary to read all the buffer. (bug #894)
7671
7672         * bus/activation.c (bus_activation_activate_service): fix a
7673         potential assertion failure (bug #896). Small optimization in the
7674         case of auto-activation messages.
7675
7676         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7677         add test case for byte-through-vararg bug (#901). patch by Kimmo
7678         Hämäläinen. 
7679
7680 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7681
7682         * python/dbus.py:
7683         * python/dbus_bindings.pyx.in:
7684         Add dbus.init_gthreads (), allow emit_signal to pass
7685         arguments to the signal.
7686         
7687 2004-07-24  Havoc Pennington  <hp@redhat.com>
7688
7689         * AUTHORS: add some people, not really comprehensively, let me
7690         know if I missed you
7691
7692 2004-07-24  Havoc Pennington  <hp@redhat.com>
7693
7694         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7695         Owen
7696
7697         * test/Makefile.am (DIST_SUBDIRS): here also
7698
7699 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7700
7701         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7702         breaking build on Solaris, reported by Farhad Saberi on the ML.
7703
7704         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7705         va_arg invocation to account for integer promotion in the case of
7706         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7707
7708         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7709         _dbus_list_get_first_link, not _dbus_list_get_first.
7710
7711         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7712
7713         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7714         handler functions so that the asserts in _dbus_object_subtree_unref
7715         do not fail.
7716
7717         * dbus/dbus-transport-unix.c (do_reading):
7718         _dbus_transport_queue_messages return value is of type
7719         dbus_bool_t, not DBusDispatchStatus.
7720         
7721 2004-07-19  David Zeuthen  <david@fubar.dk>
7722
7723         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7724
7725         * bus/dispatch.c:
7726         (check_get_connection_unix_user): Debug says GetProperty; but the
7727         method is called GetConnectionUnixUser
7728         (check_get_connection_unix_process_id): New function
7729         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7730         also call check_get_connection_unix_process_id()
7731         
7732         * bus/driver.c:
7733         (bus_driver_handle_get_connection_unix_process_id): New function,
7734         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7735         interface
7736         
7737         * dbus/dbus-auth.c:
7738         (handle_server_data_external_mech): Set pid from the credentials
7739         obtained from the socket
7740         
7741         * dbus/dbus-connection.c:
7742         (dbus_connection_get_unix_process_id): New function
7743         
7744         * dbus/dbus-connection.h: 
7745         Add prototype for dbus_connection_get_unix_process_id
7746         
7747         * dbus/dbus-transport.c:
7748         (_dbus_transport_get_unix_process_id): New function
7749         
7750         * dbus/dbus-transport.h:
7751         Add prototype for _dbus_transport_get_unix_process_id
7752         
7753 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7754
7755         * dbus/dbus-message.c: Message counter fix, patch by Christian
7756         Hammond <chipx86@gnupdate.org>
7757
7758 2004-07-18  Seth Nickell  <seth@gnome.org>
7759
7760         * python/dbus.py:
7761         * python/dbus_bindings.pyx.in:
7762         * python/tests/test-client.py:
7763
7764         Add dbus.ByteArray and dbus_bindings.ByteArray
7765         types so that byte streams can be passed back.
7766
7767         Give jdahlin the heaps of credit that are so
7768         rightfully his.
7769         
7770 2004-07-12  Seth Nickell  <seth@gnome.org>
7771
7772         * python/dbus.py:
7773
7774         Add message argument to the default object_method_handler
7775         function.
7776         
7777         * python/dbus_bindings.pyx.in:
7778
7779         Automatically return NIL when passed an empty list
7780         (we can't pass back a list since lists are typed
7781         and we don't have any idea what type the the client
7782         intended the list to be... :-( )
7783         
7784 2004-07-10  Seth Nickell  <seth@gnome.org>
7785
7786         * python/examples/Makefile.am:
7787
7788         Fix distcheck breakage caused by new examples.
7789
7790 2004-07-10  Seth Nickell  <seth@gnome.org>
7791
7792         * python/dbus.py:
7793
7794         Add "message" argument to service-side dbus.Object
7795         methods. This will break existing services written
7796         using the python bindings, but will allow extraction
7797         of all the message information (e.g. who its from).
7798
7799         Add improved "object oriented" signal handling/emission.
7800         
7801         * python/examples/example-service.py:
7802
7803         Nix this example.
7804         
7805         * python/examples/example-signal-emitter.py:
7806         * python/examples/example-signal-recipient.py:
7807
7808         Two new examples that show how to emit and receive
7809         signals using the new APIs.
7810         
7811         * python/examples/example-signals.py:
7812         * python/examples/gconf-proxy-service.py:
7813         * python/examples/gconf-proxy-service2.py:
7814
7815         Add "message" argument to service methods.
7816
7817 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7818
7819         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7820         * dbus/bus.c (dbus_bus_get_unix_user)
7821         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7822         method of org.freedesktop.DBus interface.
7823
7824         * bus/dispatch.c: test case
7825
7826 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7827
7828         * python/Makefile.am: switched include directory from glib/ to dbus/
7829         since dbus-glib.h moved
7830  
7831 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7832
7833         * configure.in: prevent building the gcj stuff and libxml loader
7834         since they are broken.
7835
7836 2004-06-20  Havoc Pennington  <hp@redhat.com>
7837
7838         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7839         codes from the dbus error names
7840         
7841         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7842         as dbus/dbus-glib.h and that breakage is now visible due to 
7843         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7844         
7845         * glib/dbus-glib.h: s/gproxy/g_proxy/
7846
7847         * dbus/dbus-shared.h: new header to hold stuff shared with
7848         binding APIs
7849         
7850         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7851         than dbus-errors.h
7852
7853         * glib/dbus-glib.h (dbus_set_g_error): move to
7854         dbus-glib-lowlevel.h
7855
7856         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7857         of stuff to enable this
7858
7859         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7860
7861         * a bunch of other changes with the same basic "separate glib 
7862         bindings from dbus.h" theme
7863         
7864 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7865
7866         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7867
7868         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7869
7870 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7871
7872         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7873         the reply value of the ServiceExists message.
7874
7875 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7876
7877         * python/dbus_bindings.pyx.in: No longer need to parse path
7878         elements and pass them as arrays of strings.  The C API now
7879         accepts plain path strings.
7880         (_build_parsed_path): removed 
7881
7882 2004-06-07  Havoc Pennington  <hp@redhat.com>
7883
7884         * doc/TODO: remove auto-activation item since it's done; sort
7885         items by importance/milestone
7886
7887 2004-06-07  Havoc Pennington  <hp@redhat.com>
7888
7889         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7890         random signature when using REQUIRED_FIELDS (this hack won't work
7891         in the long term)
7892
7893         * dbus/dbus-message.c: change the signature to be a header field,
7894         instead of message->signature special-case string. Incremental
7895         step forward. Then we can fix up code to send the signature in the
7896         message, then fix up code to validate said signature, then fix up
7897         code to not put the typecodes inline, etc.
7898         (load_one_message): don't make up the signature after the fact
7899         (decode_header_data): require signature field for the known
7900         message types
7901
7902         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7903
7904         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7905
7906 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7907
7908         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7909
7910         * mono/Handler.cs: Updated to follow new path argument for
7911         (un-)registering objects.
7912
7913         * mono/example/Makefile.am:
7914         * mono/Makefile.am:
7915         * configure.in: Bumped required version for mono and use new -pkg
7916         syntax for deps
7917
7918 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7919
7920         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7921         registration functions take the path argument as char* instead of
7922         char**.
7923
7924         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7925         split off the path decompostion part of
7926         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7927         warnings. 
7928
7929         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7930         
7931 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7932  
7933         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7934         machine approach.  A state is implemented as a function that
7935         handles incoming events as specified for that state.
7936         
7937         * doc/dbus-specification.xml: Update auth protocol state machine
7938         specification to match implementation.  Remove some leftover
7939         base64 examples.
7940
7941 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7942
7943         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7944         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7945         quiet doxygen.
7946
7947         * Doxyfile.in: remove deprecated options.
7948
7949         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7950         glib/test-thread.h, glib/test-thread-client.c,
7951         glib/test-thread-server.c, glib/test-profile.c,
7952         glib/test-dbus-glib.c: remove these unused files.
7953
7954 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7955
7956         * dbus/dbus-object-tree.c
7957         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7958         non-fallback handlers (bug #684).
7959         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7960         (find_subtree_recurse): report wether the returned subtree is an
7961         exact match or a "fallback" match higher up in the tree.
7962         (object_tree_test_iteration): update test case.
7963
7964 2004-06-01  Seth Nickell  <seth@gnome.org>
7965
7966         * python/dbus_bindings.pyx.in:
7967         * python/tests/test-client.py:
7968
7969         Round off basic type support. Add dicts (yay!), and 
7970         remaining array types.
7971
7972         Make MessageIter more general so it works for dicts too.
7973
7974         Mark all loop variables as C integers.
7975         
7976 2004-05-31  Havoc Pennington  <hp@redhat.com>
7977
7978         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7979         "in" before "out"
7980
7981         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7982
7983         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7984         option that runs the tests, and start filling in some code
7985         including for starters just dumping the interfaces to stdout
7986
7987         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7988
7989         * test/data/valid-introspection-files/lots-of-types.xml: test of
7990         an example introspection file
7991
7992         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7993         "node" (I think...)
7994
7995 2004-05-31  Seth Nickell  <seth@gnome.org>
7996
7997         * python/dbus_bindings.pyx.in:
7998         * python/tests/test-client.py:
7999
8000         Test Suite: 1
8001         Python Bindings: 0
8002
8003         Fix string array memory trashing bug... oops...
8004
8005 2004-05-30  Seth Nickell  <seth@gnome.org>
8006
8007         * python/dbus.py:
8008
8009         Add a nicer-but-less-flexible alternate API for handling 
8010         calls to virtual objects in dbus.ObjectTree.
8011
8012         Screw up the argument order to the dbus.Object constructor
8013         for consistency with dbus.ObjectTree (and to make dbus_methods
8014         optional for future extension)
8015         
8016         * python/examples/Makefile.am:
8017         * python/examples/gconf-proxy-service.py:
8018         * python/examples/gconf-proxy-service2.py:
8019
8020         Alternate implementation of gconf-proxy-service using the
8021         nicer dbus.ObjectTree API.
8022         
8023         * python/examples/example-service.py:
8024         * python/tests/test-server.py
8025
8026         Reverse the argument order to deal with dbus.Object constructor
8027         changes.
8028         
8029 2004-05-30  Seth Nickell  <seth@gnome.org>
8030
8031         * python/examples/example-client.py:
8032         * python/examples/example-service.py:
8033
8034         Take it back. Lists seem to work but they're broken
8035         in the test suite. Make the base examples use
8036         lists (works fine).
8037
8038 2004-05-30  Seth Nickell  <seth@gnome.org>
8039
8040         * python/dbus_bindings.pyx.in:
8041         * python/tests/test-client.py:
8042
8043         Add some more tests and fix errors that crop up.
8044         Unfortunately, currently it seems like marshalling
8045         and unmarshalling of lists is completely broken :-(
8046
8047 2004-05-30  Seth Nickell  <seth@gnome.org>
8048
8049         * python/dbus_bindings.pyx.in:
8050
8051         Add support for ObjectPath type.
8052
8053         * python/dbus.py:
8054
8055         Refactor message handling code to a common function.
8056         
8057         * python/tests/test-client.py:
8058         * python/tests/test-server.py:
8059
8060         Add tests that check to make sure values of all types
8061         can be echoed from a service w/o mangling.
8062         
8063 2004-05-29  Seth Nickell  <seth@gnome.org>
8064
8065         * python/dbus.py:
8066
8067         Add ObjectTree class which allows implementation
8068         of trees of "virtual" objects. Basically the python
8069         wrapper for "register_fallback".
8070         
8071         * python/examples/Makefile.am
8072         * python/examples/gconf-proxy-client.py:
8073         * python/examples/gconf-proxy-service.py:
8074
8075         Implement a simple GConf proxy service that supports
8076         get/set on string and int GConf keys using the ObjectTree.
8077         
8078 2004-05-29  Seth Nickell  <seth@gnome.org>
8079
8080         * python/dbus.py:
8081         * python/examples/example-client.py:
8082         * python/examples/example-service.py:
8083         * python/examples/list-system-services.py:
8084
8085         Add SessionBus, SystemBus and ActivationBus classes
8086         so you don't need to know the special little BUS_TYPE
8087         flag.
8088         
8089 2004-05-29  Havoc Pennington  <hp@redhat.com>
8090
8091         * bus/config-parser.c (process_test_valid_subdir): temporarily
8092         stop testing config parser OOM handling, since expat has issues
8093         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8094
8095         * bus/dbus-daemon-1.1.in: change requested_reply to
8096         send_requested_reply/receive_requested_reply so we can send the
8097         replies, not just receive them.
8098
8099         * bus/config-parser.c: parse the new
8100         send_requested_reply/receive_requested_reply
8101
8102         * bus/policy.c (bus_client_policy_check_can_send): add
8103         requested_reply argument and use it
8104
8105         * bus/bus.c (bus_context_check_security_policy): pass through
8106         requested_reply status to message send check
8107
8108         * bus/system.conf.in: adapt to requested_reply change
8109         
8110 2004-05-28  Havoc Pennington  <hp@redhat.com>
8111
8112         * test/glib/test-service-glib.c (main): remove unused variable
8113
8114         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8115
8116         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8117         from the enum, no longer in use.
8118
8119         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8120         works right.
8121
8122         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8123         whether error_name passed in is a valid error name.
8124
8125 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8126
8127         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8128         OBJECT_PATH and OBJECT_PATH_ARRAY
8129
8130 2004-05-28  Seth Nickell  <seth@gnome.org>
8131
8132         * python/examples/Makefile.am:
8133
8134         Forget to add Makefile.am. Do not pass go.
8135
8136 2004-05-28  Michael Meeks  <michael@ximian.com>
8137
8138         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8139         fix no int64 case.
8140
8141         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8142
8143         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8144         (_dbus_message_iter_get_basic_type_array): impl.
8145         drastically simplify ~all relevant _get methods to use these.
8146         (_dbus_message_iter_append_basic_array),
8147         (dbus_message_iter_append_basic): impl
8148         drastically simplify ~all relevant _append methods to use these.
8149
8150         * dbus/dbus-message-builder.c (parse_basic_type) 
8151         (parse_basic_array, lookup_basic_type): impl.
8152         (_dbus_message_data_load): prune scads of duplicate /
8153         cut & paste coding.
8154
8155         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8156         (_dbus_demarshal_basic_type): implement,
8157         (demarshal_and_validate_len/arg): beef up debug.
8158         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8159
8160 2004-05-27  Seth Nickell  <seth@gnome.org>
8161
8162         * configure.in:
8163         * python/Makefile.am:
8164
8165         Include the example python apps in the tarball.
8166         
8167         * python/examples/list-system-services.py
8168
8169         Add a python new example that fetches the list of services
8170         from the system bus.
8171         
8172 2004-05-27  Seth Nickell  <seth@gnome.org>
8173
8174         * python/dbus.py:
8175         * python/dbus_bindings.pyx.in:
8176
8177         Fix failure to notify that a signal was not handled,
8178         resulted in hung functions.
8179         
8180 2004-05-25  Colin Walters  <walters@redhat.com>
8181
8182         * tools/dbus-monitor.c (main): Monitor all types of messages.
8183
8184 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8185
8186         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8187         which unregisters the object path and disposes the handler.
8188
8189 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8190  
8191         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8192          
8193         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8194         operands to && so we call dbus_message_iter_next () for the last
8195         argument also.
8196
8197 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8198
8199         * dbus/dbus-object-tree.c
8200         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8201         children even if the requested path isn't registered.
8202         (object_tree_test_iteration): test object_tree_list_registered.
8203
8204         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8205         it to 0.
8206         
8207 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8208
8209         * doc/TODO: Remove resolved items.
8210
8211         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8212         field.
8213         
8214         * bus/connection.c (bus_connections_expect_reply): Enforce the
8215         per-connection limit on pending replies.
8216         
8217         Patch from Jon Trowbridge <trow@ximian.com>:
8218  
8219         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8220         up a watch that triggers a config reload when one end of the pipe
8221         becomes readable.
8222         (signal_handler): Instead of doing the config reload in our SIGHUP
8223         handler, just write to the reload pipe and let the associated
8224         watch handle the reload when control returns to the main loop.
8225  
8226         * bus/driver.c (bus_driver_handle_reload_config): Added.
8227         Implements a ReloadConfig method for requesting a configuration
8228         file reload via the bus driver.
8229  
8230 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8231
8232         * HACKING: Updated release instructions concerning the wiki page.
8233
8234 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8235
8236         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8237         filter against auth->allowed_mechs; we only add allowed mechs in
8238         record_mechanisms().
8239  
8240         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8241         ALLOWED_MECHS to auth-script format so we can set the list of
8242         allowed mechanisms.
8243  
8244         * data/auth/client-out-of-mechanisms.auth-script: New test to
8245         check client disconnects when it is out of mechanisms to try.
8246  
8247         * dbus/dbus-auth.c (process_command): Remove check for lines
8248         longer that 1 MB; we only buffer up maximum 16 kB.
8249  
8250         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8251         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8252         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8253         assume there might be unused bytes.
8254  
8255         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8256         client-out-of-mechs, it is handled in process_reject(). Move check
8257         for max failures to send_rejected(), as it's a server-only thing.
8258
8259         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8260         send_auth(), send_data(), send_rejected(), send_error(),
8261         send_ok(), send_begin() and send_cancel().
8262
8263 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8264
8265         Remove base64 encoding, replace with hex encoding. Original patch
8266         from trow@ximian.com, added error handling.
8267
8268         * dbus/dbus-string.c (_dbus_string_base64_encode)
8269         (_dbus_string_base64_decode): Remove.
8270         (_dbus_string_hex_decode): Add end_return argument so we can
8271         distinguish between OOM and invalid hex encoding.
8272         (_dbus_string_test): Remove base64 tests and add test case for
8273         invalid hex.
8274
8275         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8276         Replace base64 with hex.
8277
8278         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8279         for invalid hex encoded data in auth protocol.
8280
8281 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8282
8283         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8284         leak.
8285
8286 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8287
8288         * mono/dbus-sharp.dll.config.in: Added for GAC
8289         * mono/dbus-sharp.snk: Added for GAC
8290         * mono/Assembly.cs.in: Added for GAC
8291         * mono/Makefile.am: Changes for GAC installation        
8292         * configure.in: Added refs for dbus-sharp.dll.config.in and
8293         Assembly.cs.in. More fixes for mono testing
8294         * mono/example/Makefile.am: Changed var to CSC
8295         * Makefile.am: Changed flag name to DBUS_USE_CSC
8296
8297 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8298
8299         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8300         * mono/doc/*: Added documentation framework
8301         * configure.in: Added monodoc check
8302         * README: Added description of mono configure flags
8303
8304 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8305
8306         * doc/dbus-specification.xml: Added a "Required" column to the 
8307         header fields table and changed the "zero or more" verbage in
8308         the above paragraph to read "The header must contain the required 
8309         named header fields and zero or more of the optional named header 
8310         fields".
8311         * test/data/invalid-messages/*.message: Added the required PATH 
8312         named header field to the tests so that they don't fail on 
8313         'Missing path field'
8314
8315 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8316
8317         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8318         the stack by implicitly defining variable and parameter types and
8319         removing the hack of defining C pointers as python objects and later
8320         casting them.
8321
8322 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8323
8324         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8325
8326 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8327
8328         * mono/DBusType/Dict.cs: Handle empty dicts
8329         * mono/DBusType/Array.cs: Handle empty arrays
8330         * mono/Arguments.cs: Handle empty arguments
8331
8332 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8333
8334         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8335         field
8336
8337 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8338
8339         * test/data/valid-messages/standard-*.message: Update message
8340         test scripts to new header field names.
8341
8342 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8343
8344         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8345         overflow to times_we_did_each_thing array which would chop off the
8346         first character of the failure_dir string. Increased the size of
8347         the array to 7 to reflect the number of random mutation functions
8348         we have.
8349
8350 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8351
8352         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8353         unix_server->watch here, it is unreffed in disconnect.
8354         (_dbus_server_new_for_tcp_socket): convert NULL host to
8355         "localhost" here so we don't append NULL to address.
8356         
8357         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8358         various addresses, including tcp with no explicit host.
8359
8360 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8361
8362         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8363         fix incorrect setting of .name_offset in the HeaderField (it was
8364         off by two bytes, positioned right after the name and typecode)
8365
8366         * bus/bus.c (bus_context_new, bus_context_unref): test before
8367         calling dbus_server_free_data_slot and _dbus_user_database_unref
8368         in case of an error.
8369
8370         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8371         by libdbus-gtool.
8372
8373 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8374
8375         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8376         _dbus_poll() instead of select().
8377
8378 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8379
8380         * bus/main.c (signal_handler): Reload the configuration files
8381         on SIGHUP.
8382         (main): Set up our SIGHUP handler.
8383
8384         * bus/bus.c (struct BusContext): Store the config file, user and
8385         fork flag in the BusContext.
8386         (process_config_first_time_only): Added.  Contains the code
8387         (previously in bus_context_new) for setting up the BusContext from
8388         the BusConfigParser that should only be run the first time the
8389         config files are read.
8390         (process_config_every_time): Added.  Contains the code (previously
8391         in bus_context_new) for setting up the BusContext from the
8392         BusConfigParser that should be run every time the config files are
8393         read.
8394         (load_config): Added.  Builds a BusConfigParser from the config
8395         files and passes the resulting structure off to
8396         process_config_first_time_only (assuming this is the first time)
8397         and process_config_every_time.
8398         (bus_context_new): All of the config-related code has been moved
8399         to process_config_first_time_only and process_config_every_time.
8400         Now this function just does the non-config-related initializations
8401         and calls load_config.
8402         (bus_context_reload_config): Added.
8403
8404 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8405
8406         * bus/driver.c (bus_driver_handle_get_service_owner):
8407         implement a GetServiceOwner method.
8408         * doc/dbus-specification.xml: document it.
8409         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8410         
8411         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8412         implement, using the bus GetServiceOwner method.
8413
8414         * test/glib/test-dbus-glib.c:
8415         use dbus_gproxy_new_for_service_owner so that we can receive the
8416         signal. 
8417
8418 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8419
8420         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8421         dbus/dbus-message.c, dbus/dbus-protocol.h
8422         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8423
8424         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8425         dbus/dbus-message.c, dbus/dbus-protocol.h
8426         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8427
8428         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8429         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8430         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8431
8432         * doc/dbus-specification.xml (Header Fields Table):
8433         s/SERVICE/DESTINATION
8434         s/SENDER_SERVICE/SENDER
8435
8436
8437 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8438
8439         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8440         a few seconds.
8441
8442 2004-04-13  Michael Meeks  <michael@ximian.com>
8443
8444         * glib/dbus-gobject.c (handle_introspect): split out
8445         (introspect_properties): this.
8446         (handle_introspect): implement this.
8447
8448         * test/glib/Makefile.am: use the absolute path so the bus
8449         daemon's chdir ("/") doesn't kill us dead.
8450
8451         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8452
8453 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8454
8455         * bus/config-parser.c (struct BusConfigParser): Added
8456         included_files field.
8457         (seen_include): Added.  Checks whether or not a file has already
8458         been included by any parent BusConfigParser.
8459         (bus_config_parser_new): Copy the parent's included_files.
8460         (include_file): Track which files have been included, and fail on
8461         circular inclusions.
8462         (process_test_valid_subdir): Changed printf to report if we are
8463         testing valid or invalid conf files.
8464         (all_are_equiv): Changed printf to be a bit clearer about
8465         what we are actually doing.
8466         (bus_config_parser_test): Test invalid configuration files.
8467
8468 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8469
8470         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8471         argument.  If non-null, the newly-constructed BusConfigParser will
8472         be initialized with the parent's BusLimits instead of the default
8473         values.
8474         (include_file): When including a config file, pass in
8475         the current parser as the parent and then copy the BusLimits
8476         from the included BusConfigParser pack to the current parser.
8477         (process_test_valid_subdir): Renamed from process_test_subdir.
8478         (process_test_equiv_subdir): Added.  Walks through a directory,
8479         descending into each subdirectory and loading the config files
8480         it finds there.  If any subdirectory contains two config files
8481         that don't produce identical BusConfigParser structs, fail.
8482         For now, the BusConfigParser's BusPolicies are not compared.
8483         (bus_config_parser_test): Call both process_test_valid_subdir and
8484         process_test_equiv_subdir.
8485
8486         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8487         argument and pass it along to the call to bus_config_parser_new.
8488         Also made a few small changes to allow this code to compile.
8489
8490         * bus/config-loader-expat.c (bus_config_load): Take a parent
8491         argument and pass it along to the call to bus_config_parser_new.
8492
8493         * bus/bus.c (bus_context_new): Load the config file
8494         with a NULL parent argument.
8495
8496 2004-03-29  Michael Meeks  <michael@ximian.com>
8497
8498         * glib/dbus-gobject.c (introspect_properties): split
8499         out, fix mangled 'while' flow control.
8500         (introspect_signals): implement.
8501         (handle_introspect): update.
8502
8503 2004-03-29  Michael Meeks  <michael@ximian.com>
8504
8505         * glib/dbus-gobject.c (set_object_property): split out / 
8506         re-work, use the property type, and not the message type(!)
8507         (get_object_property): ditto.
8508
8509         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8510         (dbus_gvalue_marshal): make this code re-usable, needed
8511         for signals too, also on both proxy and server side.
8512         Re-write for more efficiency / readability.
8513
8514 2004-03-29  Michael Meeks  <michael@ximian.com>
8515
8516         * dbus/dbus-message.c
8517         (dbus_message_new_error_printf): impl.
8518
8519         * dbus/dbus-connection.c
8520         (dbus_connection_unregister_object_path): fix warning.
8521
8522         * configure.in: fix no-mono-installed situation.
8523
8524 2004-03-27  Havoc Pennington  <hp@redhat.com>
8525
8526         Patch from Timo Teräs:
8527         
8528         * tools/dbus-send.c (main): if --print-reply, assume type is
8529         method call; support boolean type args
8530         
8531         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8532         bunch of memleak and logic bugs
8533         
8534 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8535
8536         * mono/Arguments.cs:
8537         * mono/Introspector.cs:
8538         * mono/Handler.cs:
8539         * mono/InterfaceProxy.cs:
8540         * mono/Message.cs
8541         * mono/ProxyBuilder.cs:
8542         * mono/Service.cs:
8543         Added InterfaceProxy class to avoid building proxies for every
8544         object.
8545
8546         * dbus-message.h:
8547         * dbus-message.c (dbus_message_append_args_valist)
8548         (dbus_message_iter_get_object_path)
8549         (dbus_message_iter_get_object_path_array)
8550         (dbus_message_iter_append_object_path)
8551         (dbus_message_iter_append_object_path_array):
8552         Added object_path iter functions to handle OBJECT_PATH arguments
8553         
8554 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8555
8556         First checkin of mono bindings.
8557         * configure.in:
8558         * Makefile.am:
8559         Build stuff for the bindings
8560         * dbus-sharp.pc.in: Added for pkgconfig
8561         
8562 2004-03-21  Havoc Pennington  <hp@redhat.com>
8563
8564         * test/test-service.c (main): remove debug spew
8565
8566 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8567
8568         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8569         arrays
8570
8571         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8572         (dbus_message_iter_init_array_iterator)
8573         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8574         indicate whether the iterator is empty
8575
8576         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8577         warnings
8578
8579 2004-03-19  Havoc Pennington  <hp@redhat.com>
8580
8581         * NEWS: 0.21 updates
8582
8583         * configure.in: 0.21
8584
8585         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8586         
8587         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8588         you don't need pyrex to make dist
8589
8590         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8591         sources; run moc
8592         
8593 2004-03-18  Richard Hult  <richard@imendio.com>
8594
8595         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8596         (dbus_message_set_auto_activation): Add doxygen docs.
8597
8598 2004-03-16  Richard Hult  <richard@imendio.com>
8599
8600         * bus/activation.c: (bus_activation_service_created),
8601         (bus_activation_send_pending_auto_activation_messages),
8602         (bus_activation_activate_service):
8603         * bus/activation.h:
8604         * bus/dispatch.c: (bus_dispatch),
8605         (check_nonexistent_service_auto_activation),
8606         (check_service_auto_activated),
8607         (check_segfault_service_auto_activation),
8608         (check_existent_service_auto_activation), (bus_dispatch_test):
8609         * bus/driver.c: (bus_driver_handle_activate_service):
8610         * bus/services.c: (bus_registry_acquire_service):
8611         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8612         (dbus_message_get_auto_activation):
8613         * dbus/dbus-message.h:
8614         * dbus/dbus-protocol.h: Implement auto-activation.
8615         
8616         * doc/dbus-specification.xml: Add auto-activation to the spec.
8617
8618 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8619
8620         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8621         fix a bug with CUSTOM types.
8622
8623         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8624         a unit test for this bug (used to fail).
8625
8626 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8627
8628         * bus/activation.c:
8629         (babysitter_watch_callback): notify all pending activations waiting for
8630           the same exec that the activation failed.
8631         (bus_activation_activate_service): shortcut the activation if we 
8632           already waiting for the same executable to start up.
8633
8634 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8635
8636         * bus/activation.c: 
8637         - Added service file reloading. 
8638           Each service files directory is kept in an hash table in 
8639           BusActivation and each BusActivationEntry knows what .service-file it
8640           was read from. So when you try to activate a service the bus will 
8641           check if it's been updated, removed or if new .service-files has 
8642           been installed.
8643         - Test code at the bottom for the service file reloading.
8644         * bus/test-main.c: (main):
8645         * bus/test.h:
8646         - added service reloading test.
8647         * dbus/dbus-sysdeps.c: 
8648         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8649
8650 2004-03-08  Michael Meeks  <michael@ximian.com>
8651
8652         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8653         bail immediately if disconnected, to avoid busy loop.
8654
8655         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8656         cleanup cut/paste/inefficiency.
8657
8658 2004-03-01  David Zeuthen  <david@fubar.dk>
8659
8660         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8661         bug where args were used twice. This bug resulted in a segfault
8662         on a Debian/PPC system when starting the messagebus daemon. Include
8663         dbus-sysdeps.h for DBUS_VA_COPY
8664
8665         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8666
8667         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8668         appropriate va_copy implementation. From GLib
8669         
8670 2004-02-24  Joe Shaw  <joe@ximian.com>
8671
8672         * bus/services.c (bus_registry_acquire_service): We need to pass
8673         in the service name to dbus_set_error() to prevent a crash.
8674
8675 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8676
8677         * AUTHORS: Reveal my True identity.
8678
8679 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8680
8681         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8682         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8683
8684 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8685
8686         * doc/TODO: Added not about better error check of configuration files.
8687
8688 2003-12-02  Richard Hult  <richard@imendio.com>
8689
8690         * Update AFL version to 2.0 throughout the source files to reflect
8691         the update that was done a while ago.
8692
8693 2003-12-02  Richard Hult  <richard@imendio.com>
8694
8695         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8696         wrote_dict_key to FALSE on the iter that the dict is appended to,
8697         just like when appending other types. Fixes a bug where a dict
8698         couldn't be put inside a dict.
8699         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8700         (message_iter_test, _dbus_message_test): Add test case for dict
8701         inside dict.
8702
8703 2003-12-01  David Zeuthen  <david@fubar.dk>
8704
8705         * python/dbus.py: Add the actual message when calling the reciever
8706         of a signal such that parameters can be inspected. Add the method
8707         remove_signal_receiver
8708         
8709 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8710
8711         * bus/*.[ch]:
8712         * dbus/*.[ch]:
8713         * glib/*.[ch]: Made ref functions return the pointer
8714
8715 2003-11-25  Zack Rusin  <zack@kde.org>
8716
8717         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8718
8719         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8720         wrappers,
8721
8722         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8723         the Integrator and to better fit with the server,
8724
8725 2003-11-24  Zack Rusin  <zack@kde.org>
8726
8727         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8728         the integrator handles it now
8729
8730         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8731         since QTimer wasn't really meant to be used the way DBusTimeout is
8732
8733 2003-11-24  Zack Rusin  <zack@kde.org>
8734
8735         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8736         Integrator class which integrates D-BUS with the Qt event loop,
8737
8738         * qt/connection.h, qt/connection.cpp: Move all the code which
8739         was dealing with D-BUS integration to the Integrator class,
8740         and start using Integrator,
8741
8742 2003-11-23  Zack Rusin  <zack@kde.org>
8743
8744         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8745         wrapper
8746
8747         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8748         switching namespaces to DBusQt, reworking the class,
8749
8750         * Makefile.cvs: switching dependencies so that it matches KDE 
8751         schematics,
8752         
8753         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8754         the library
8755
8756 2003-11-19  Havoc Pennington  <hp@redhat.com>
8757
8758         * NEWS: update
8759
8760         * configure.in: bump version to 0.20
8761
8762         * configure.in (have_qt): add yet another place to look for qt
8763         (someone hand trolltech a .pc file...)
8764
8765 2003-11-01  Havoc Pennington  <hp@redhat.com>
8766
8767         * doc/dbus-specification.xml: add state machine docs on the auth
8768         protocol; just a first draft, I'm sure it's wrong.      
8769
8770 2003-10-28  David Zeuthen  <david@fubar.dk>
8771
8772         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8773         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8774         
8775 2003-10-28  Havoc Pennington  <hp@redhat.com>
8776
8777         * dbus/dbus-message.c (get_next_field): delete unused function
8778
8779 2003-10-28  Havoc Pennington  <hp@redhat.com>
8780
8781         * bus/expirelist.c (do_expiration_with_current_time): detect
8782         failure of the expire_func due to OOM
8783
8784         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8785
8786         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8787         NoReply error that's now created by the bus when the service exits
8788
8789 2003-10-28  Havoc Pennington  <hp@redhat.com>
8790
8791         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8792         tests for set_path, set_interface, set_member, etc.
8793
8794         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8795
8796         * dbus/dbus-message.c (set_string_field): always just delete and
8797         re-append the field; accept NULL for deletion
8798         (re_align_fields_recurse): reimplement
8799         
8800 2003-10-26  Havoc Pennington  <hp@redhat.com>
8801
8802         * dbus/dbus-connection.c: fix docs to properly describe the
8803         disconnected message
8804         (_dbus_connection_notify_disconnected): remove this function; 
8805         we can't synchronously add the disconnected message, we have to 
8806         do it after we've queued any remaining real messages
8807         (_dbus_connection_get_dispatch_status_unlocked): queue the
8808         disconnect message only if the transport has finished queueing all
8809         its real messages and is disconnected.
8810         (dbus_connection_disconnect): update the dispatch status here
8811
8812 2003-10-22  Havoc Pennington  <hp@redhat.com>
8813
8814         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8815
8816         * bus/connection.c (bus_transaction_send_from_driver): set the
8817         destination to the connection's base service
8818
8819 2003-10-20  Havoc Pennington  <hp@redhat.com>
8820
8821         hmm, make check is currently not passing.
8822         
8823         * doc/dbus-specification.xml: add requirement that custom type
8824         names follow the same rules as interface names.
8825
8826         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8827         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8828         'map'
8829
8830         * doc/dbus-specification.xml: update type codes to match
8831         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8832         CUSTOM. Add type OBJECT_PATH to the spec.
8833
8834 2003-10-17  Havoc Pennington  <hp@redhat.com>
8835
8836         * bus/driver.c (create_unique_client_name): use "." as separator
8837         in base service names instead of '-'
8838
8839         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8840         byte at the end of the string
8841
8842         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8843         optimization macros since string validation seems to be a slow
8844         point.
8845         
8846         * doc/dbus-specification.xml: restrict valid
8847         service/interface/member/error names. Add test suite code for the
8848         name validation.
8849
8850         * dbus/dbus-string.c: limit service/interface/member/error names 
8851         to [0-9][A-Z][a-z]_
8852
8853         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8854         format arg to verbose spew
8855
8856         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8857         memory, return instead of g_error
8858
8859         * test/test-service.c (path_message_func): support emitting a
8860         signal on request
8861
8862         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8863         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8864         assuming the activation bus was the session bus so that services
8865         started manually will still register.
8866         (init_connections_unlocked): fix so that in OOM situation we get
8867         the same semantics when retrying the function
8868         
8869         * test/test-service.c (main): change to use path registration, to
8870         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8871         than DBUS_BUS_SESSION
8872
8873 2003-10-16  Havoc Pennington  <hp@redhat.com>
8874
8875         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8876
8877         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8878         coverage of the tests
8879         (coverage-report.txt): don't move the .da and .bbg files around
8880
8881 2003-10-16  Havoc Pennington  <hp@redhat.com>
8882
8883         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8884         to put there
8885
8886 2003-10-16  Havoc Pennington  <hp@redhat.com>
8887
8888         * bus/connection.c (bus_pending_reply_expired): either cancel or
8889         execute, not both
8890         (bus_connections_check_reply): use unlink, not remove_link, as we
8891         don't want to free the link; fixes double free mess
8892
8893         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8894         where no reply was received
8895
8896         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8897         fix a refcount leak
8898
8899         * bus/signals.c (match_rule_matches): add special cases for the
8900         bus driver, so you can match on sender/destination for it.
8901
8902         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8903         DBUS_PRINT_BACKTRACE is set
8904
8905         * dbus/dbus-internals.c: add pid to assertion failure messages
8906
8907         * dbus/dbus-connection.c: add message type code to the debug spew
8908
8909         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8910         sender=foo not service=foo
8911
8912         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8913         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8914         DBUS_ACTIVATION_ADDRESS instead
8915
8916         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8917         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8918
8919         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8920         context struct
8921
8922         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8923         (dbus_message_iter_get_object_path_array): new function (half
8924         finished, disabled for the moment)
8925         
8926         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8927         DBUS_MESSAGE_TYPE_ERROR
8928
8929         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8930         avoid redirecting stderr to /dev/null
8931         (babysit): close stdin if not doing the "exit_with_session" thing
8932
8933         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8934         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8935         stdout/stdin, so things don't get confused
8936         
8937         * bus/system.conf.in: fix to allow replies, I modified .conf
8938         instead of .conf.in again.
8939
8940 2003-10-14  David Zeuthen  <david@fubar.dk>
8941
8942         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8943         argtype to arg_type when raising unknown arg type exception.
8944         Changed type list to reflect the changes in dbus-protocol.h so 
8945         the bindings actually work.
8946
8947 2003-10-14  Havoc Pennington  <hp@redhat.com>
8948
8949         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8950         to have a bug keeping it from outputting the .da files sometimes
8951         (string_get_string): don't append garbage nul bytes to the string.
8952
8953 2003-10-15  Seth Nickell  <seth@gnome.org>
8954
8955         * python/Makefile.am:
8956
8957         Include dbus_h_wrapper.h in the dist tarball.
8958
8959 2003-10-14  Havoc Pennington  <hp@redhat.com>
8960
8961         * bus/bus.c (bus_context_check_security_policy): revamp this to
8962         work more sanely with new policy-based requested reply setup
8963
8964         * bus/connection.c (bus_transaction_send_from_driver): set bus
8965         driver messages as no reply
8966
8967         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8968         requested_reply attribute on allow/deny rules
8969
8970         * bus/system.conf: add <allow requested_reply="true"/>
8971
8972         * bus/driver.c (bus_driver_handle_message): fix check for replies
8973         sent to the bus driver, which was backward. How did this ever work
8974         at all though? I think I'm missing something.
8975
8976         * dbus/dbus-message.c (decode_header_data): require error and
8977         method return messages to have a reply serial field to be valid
8978         (_dbus_message_loader_queue_messages): break up this function;
8979         validate that reply serial and plain serial are nonzero; 
8980         clean up the OOM/error handling.
8981         (get_uint_field): don't return -1 from this
8982         (dbus_message_create_header): fix signed/unsigned bug
8983
8984         * bus/connection.c (bus_connections_expect_reply): save serial of
8985         the incoming message, not reply serial
8986
8987 2003-10-14  Havoc Pennington  <hp@redhat.com>
8988
8989         * bus/connection.c: implement pending reply tracking using
8990         BusExpireList
8991
8992         * bus/bus.c (bus_context_check_security_policy): verify that a
8993         reply is pending in order to allow a reply to be sent. Deny 
8994         messages of unknown type.
8995
8996         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8997
8998         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8999         (bus_context_get_reply_timeout): new
9000
9001 2003-10-13  Seth Nickell  <seth@gnome.org>
9002
9003         * python/Makefile.am:
9004
9005         Pass "make distcheck": remove a couple files from DIST_FILES
9006         that weren't included in the final version.
9007
9008 2003-10-12  Havoc Pennington  <hp@pobox.com>
9009
9010         Added test code that 1) starts an actual bus daemon and 2) uses
9011         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9012         more testing possible, but this is the basic framework.
9013         
9014         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9015         empty proxy lists from the proxy list hash
9016
9017         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9018         couple of return_if_fail checks
9019
9020         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9021         to allocate, so everything is cleared to NULL as it should be.
9022
9023         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9024         source as data to dbus_connection_set_timeout_functions() as the 
9025         timeout functions expected
9026
9027         * test/glib/run-test.sh: add a little script to start up a message
9028         bus and run tests using it
9029
9030         * tools/dbus-launch.1: updates
9031
9032         * tools/dbus-launch.c (main): add --config-file option
9033
9034         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9035         that could never be reached.
9036
9037         * dbus/dbus-message.c (dbus_message_new_method_return) 
9038         (dbus_message_new_error, dbus_message_new_signal): set the
9039         no-reply-expected flag on all these. Redundant, but may
9040         as well be consistent.
9041
9042 2003-10-11  Havoc Pennington  <hp@pobox.com>
9043
9044         * test/decode-gcov.c (function_solve_graph): make broken block
9045         graph a nonfatal error since it seems to be broken. Need to debug
9046         this.
9047
9048         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9049         can't just check type > INVALID < LAST anymore
9050
9051         * dbus/dbus-message.c (dbus_message_get_signature): new function
9052         (dbus_message_has_signature): new function
9053         (struct DBusMessage): add signature field (right now it isn't sent
9054         over the wire, just generated on the fly)
9055         (dbus_message_copy): copy the signature, and init strings to
9056         proper length to avoid some reallocs
9057         (dbus_message_iter_init_array_iterator): return void, since it
9058         can't fail
9059         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9060         (_dbus_message_loader_queue_messages): add silly temporary hack to
9061         fill in message->signature on load
9062
9063         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9064         characters, so they are relatively human-readable.
9065
9066 2003-10-11  Havoc Pennington  <hp@pobox.com>
9067
9068         * dbus/dbus-message.c (_dbus_message_test): add more test
9069         coverage, but #if 0 for now since they uncover a bug 
9070         not fixed yet; I think in re_align_field_recurse()
9071         (re_align_field_recurse): add FIXME about broken assertion
9072
9073         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9074
9075         * bus/connection.c: share a couple code bits with expirelist.c
9076
9077         * bus/expirelist.h, bus/expirelist.c: implement a generic
9078         expire-items-after-N-seconds facility, was going to share between
9079         expiring connections and replies, decided not to use for expiring
9080         connections for now.
9081
9082         * COPYING: include AFL 2.0 (still need to change all the file headers)
9083
9084 2003-10-09  Havoc Pennington  <hp@redhat.com>
9085
9086         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9087         gcc 3.3. Not that we do anything about it yet.
9088
9089         * bus/signals.c (bus_match_rule_parse): impose max length on the
9090         match rule text
9091
9092         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9093
9094 2003-10-09  Havoc Pennington  <hp@redhat.com>
9095
9096         Make matching rules theoretically work (add parser).
9097         
9098         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9099         the case where destination is explicitly specified as bus driver
9100         and someone else is eavesdropping.
9101         
9102         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9103         definition of eavesdropping and assertion
9104
9105         * tools/dbus-send.c (main): use dbus_message_type_from_string
9106
9107         * bus/signals.c (bus_match_rule_parse): implement
9108
9109         * dbus/dbus-message.c (dbus_message_type_from_string): new
9110
9111         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9112
9113 2003-10-02  Havoc Pennington  <hp@pobox.com>
9114
9115         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9116         dbus_gproxy_oneway_call
9117
9118         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9119         (dbus_server_setup_with_g_main): fix to allow calling them more
9120         than once on the same args
9121         (dbus_bus_get_with_g_main): new function
9122
9123 2003-10-02  Havoc Pennington  <hp@redhat.com>
9124
9125         * doc/dbus-tutorial.xml: write some stuff
9126
9127 2003-09-29  Havoc Pennington  <hp@pobox.com>
9128
9129         * configure.in: split checks for Doxygen from XML docs, check for
9130         xmlto
9131
9132         * doc/Makefile.am: XML-ify all the docs, and add a blank
9133         dbus-tutorial.xml
9134
9135 2003-09-29  Havoc Pennington  <hp@pobox.com>
9136
9137         * Merge dbus-object-names branch. To see the entire patch 
9138         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9139         it's huuuuge though.
9140         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9141         
9142 2003-09-28  Havoc Pennington  <hp@pobox.com>
9143
9144         * HACKING: update to reflect new server
9145
9146 2003-09-26  Seth Nickell  <seth@gnome.org>
9147
9148         * python/dbus.py:
9149         * python/examples/example-signals.py:
9150
9151         Start implementing some notions of signals. The API
9152         is really terrible, but they sort of work (with the
9153         exception of being able to filter by service, and to
9154         transmit signals *as* a particular service). Need to
9155         figure out how to make messages come from the service
9156         we registered :-(
9157         
9158         * python/dbus_bindings.pyx.in:
9159
9160         Removed duplicate message_handler callbacks.
9161         
9162 2003-09-25  Havoc Pennington  <hp@redhat.com>
9163
9164         * bus/session.conf.in: fix my mess
9165
9166 2003-09-25  Havoc Pennington  <hp@pobox.com>
9167
9168         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9169
9170 2003-09-25  Seth Nickell  <seth@gnome.org>
9171
9172         * python/examples/example-service.py:
9173
9174         Johan notices complete wrong code in example-service, but
9175         completely wrong in a way that works exactly the same (!).
9176         Johan is confused, how could this possibly work? Example
9177         code fails to serve purpose of making things clear.
9178         Seth fixes.
9179
9180 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9181
9182         * doc/dbus-specification.sgml: don't require header fields
9183         to be 4-byte aligned and specify that fields should be
9184         distinguished from padding by the fact that zero is not
9185         a valid field name.
9186         
9187         * doc/TODO: remove re-alignment item and add item to doc
9188         the OBJECT_PATH type.
9189         
9190         * dbus/dbus-message.c:
9191         (HeaderField): rename the original member to value_offset
9192         and introduce a name_offset member to keep track of where
9193         the field actually begins.
9194         (adjust_field_offsets): remove.
9195         (append_int_field), (append_uint_field),
9196         (append_string_field): don't align the start of the header
9197         field to a 4-byte boundary.
9198         (get_next_field): impl finding the next marhsalled field
9199         after a given field.
9200         (re_align_field_recurse): impl re-aligning a number of
9201         already marshalled fields.
9202         (delete_field): impl deleting a field of any type and
9203         re-aligning any following fields.
9204         (delete_int_or_uint_field), (delete_string_field): remove.
9205         (set_int_field), (set_uint_field): no need to re-check
9206         that we have the correct type for the field.
9207         (set_string_field): ditto and impl re-aligning any
9208         following fields.
9209         (decode_header_data): update to take into account that
9210         the fields aren't 4-byte aligned any more and the new
9211         way to distinguish padding from header fields. Also,
9212         don't exit when there is too much header padding.
9213         (process_test_subdir): print the directory.
9214         (_dbus_message_test): add test to make sure a following
9215         field is re-aligned correctly after field deletion.
9216         
9217         * dbus/dbus-string.[ch]:
9218         (_dbus_string_insert_bytes): rename from insert_byte and
9219         allow the insert of multiple bytes.
9220         (_dbus_string_test): test inserting multiple bytes.
9221
9222         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9223         warning note to docs about having to re-align any
9224         marshalled values following the string.
9225         
9226         * dbus/dbus-message-builder.c:
9227         (append_string_field), (_dbus_message_data_load):
9228         don't align the header field.
9229         
9230         * dbus/dbus-auth.c: (process_test_subdir): print the
9231         directory.
9232         
9233         * test/break-loader.c: (randomly_add_one_byte): upd. for
9234         insert_byte change.
9235         
9236         * test/data/invalid-messages/bad-header-field-alignment.message:
9237         new test case.
9238         
9239         * test/data/valid-messages/unknown-header-field.message: shove
9240         a dict in the unknown field.
9241
9242 2003-09-25  Seth Nickell  <seth@gnome.org>
9243
9244         * python/dbus.py:
9245         * python/dbus_bindings.pyx.in:
9246
9247         Handle return values.
9248         
9249         * python/examples/example-client.py:
9250         * python/examples/example-service.py:
9251
9252         Pass back return values from the service to the client.
9253         
9254 2003-09-24  Seth Nickell  <seth@gnome.org>
9255
9256         * python/dbus.py:
9257
9258         Connect Object methods (when you are sharing an object) up... pass
9259         in a list of methods to be shared. Sharing all the methods just
9260         worked out too weird. You can now create nice Services over the
9261         DBus in Python. :-)
9262         
9263         * python/dbus_bindings.pyx.in:
9264
9265         Keep references to user_data tuples passed into C functions so 
9266         Python doesn't garbage collect on us.
9267
9268         Implement MethodReturn and Error subclasses of Message for creating
9269         DBusMessage's of those types.
9270         
9271         * python/examples/example-client.py:
9272         * python/examples/example-service.py:
9273
9274         Simple example code showing both how create DBus services and objects,
9275         and how to use them.
9276
9277 2003-09-23  Havoc Pennington  <hp@pobox.com>
9278
9279         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9280
9281 2003-09-23  Havoc Pennington  <hp@redhat.com>
9282
9283         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9284         (dbus_gproxy_disconnect_signal): implement
9285         (dbus_gproxy_manager_remove_signal_match): implement
9286         (dbus_gproxy_manager_add_signal_match): implement
9287         (dbus_gproxy_oneway_call): implement
9288
9289 2003-09-23  Havoc Pennington  <hp@pobox.com>
9290
9291         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9292         subclass. This means dropping the transparent thread safety of the
9293         proxy; you now need a separate proxy per-thread, or your own
9294         locking on the proxy. Probably right anyway.
9295         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9296
9297 2003-09-22  Havoc Pennington  <hp@redhat.com>
9298
9299         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9300
9301 2003-09-21  Seth Nickell  <seth@gnome.org>
9302
9303         First checkin of the Python bindings.
9304         
9305         * python/.cvsignore:
9306         * python/Makefile.am:
9307         * python/dbus_bindings.pyx.in:
9308         * python/dbus_h_wrapper.h:
9309
9310         Pieces for Pyrex to operate on, building a dbus_bindings.so
9311         python module for low-level access to the DBus APIs.
9312         
9313         * python/dbus.py:
9314
9315         High-level Python module for accessing DBus objects.
9316
9317         * configure.in:
9318         * Makefile.am:
9319
9320         Build stuff for the python bindings.
9321
9322         * acinclude.m4:
9323
9324         Extra macro needed for finding the Python C header files.
9325
9326 2003-09-21  Havoc Pennington  <hp@pobox.com>
9327
9328         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9329         implementing the proxy manager, didn't get very far.
9330
9331         * dbus/dbus-bus.c (dbus_bus_add_match): new
9332         (dbus_bus_remove_match): new
9333
9334         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9335         path_name argument; adjust the other not-yet-implemented 
9336         gproxy constructors to be what I think they should be.
9337
9338 2003-09-21  Havoc Pennington  <hp@pobox.com>
9339
9340         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9341         by default for message bus connections.
9342
9343         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9344         exit_on_disconnect flag is set and we process the disconnected
9345         signal.
9346         (dbus_connection_set_exit_on_disconnect): new function
9347
9348 2003-09-21  Havoc Pennington  <hp@pobox.com>
9349
9350         Get matching rules mostly working in the bus; only actually
9351         parsing the rule text remains. However, the client side of
9352         "signal connections" hasn't been started, this patch is only the
9353         bus side.
9354         
9355         * dbus/dispatch.c: fix for the matching rules changes
9356         
9357         * bus/driver.c (bus_driver_handle_remove_match)
9358         (bus_driver_handle_add_match): send an ack reply from these
9359         method calls
9360
9361         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9362         arguments, reported by Seth Nickell
9363
9364         * bus/config-parser.c (append_rule_from_element): support
9365         eavesdrop=true|false attribute on policies so match rules 
9366         can be prevented from snooping on the system bus.
9367
9368         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9369         and "destination" in attribute names; fix some docs bugs; 
9370         add eavesdrop=true|false attribute
9371
9372         * bus/driver.c (bus_driver_handle_add_match)
9373         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9374         messages
9375
9376         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9377         rid of broadcast service concept, signals are just always broadcast
9378
9379         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9380         mostly implement matching rules stuff (currently only exposed as signal
9381         connections)
9382
9383 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9384
9385         * doc/dbus-specification.sgml: Change the header field name
9386         to be an enum and update the rest of the spec to reference
9387         the fields using the conventinal name.
9388
9389         * dbus/dbus-protocol.h: update to reflect the spec.
9390
9391         * doc/TODO: add item to remove the 4 byte alignment requirement.
9392         
9393         * dbus/dbus-message.c: Remove the code to generalise the
9394         header/body length and serial number header fields as named
9395         header fields so we can reference field names using the 
9396         protocol values.
9397         (append_int_field), (append_uint_field), (append_string_field):
9398         Append the field name as a byte rather than four chars.
9399         (delete_int_or_uint_field), (delete_string_field): reflect the
9400         fact that the field name and typecode now occupy 4 bytes instead
9401         of 8.
9402         (decode_string_field), (decode_header_data): update to reflect
9403         protocol changes and move the field specific encoding from
9404         decode_string_field() back into decode_header_data().
9405         
9406         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9407         Add utility to aid debugging.
9408         
9409         * dbus/dbus-message-builder.c:
9410         (append_string_field), (_dbus_message_data_load): Update to
9411         reflect protocol changes; Change the FIELD_NAME directive
9412         to HEADER_FIELD and allow it to take the field's conventional
9413         name rather than the actual value.
9414         
9415         * test/data/*/*.message: Update to use HEADER_FIELD instead
9416         of FIELD_NAME; Always align the header on an 8 byte boundary
9417         *before* updating the header length.
9418
9419 2003-09-15  Havoc Pennington  <hp@pobox.com>
9420
9421         * dbus/dbus-pending-call.c: add the get/set object data
9422         boilerplate as for DBusConnection, etc. Use generic object data
9423         for the notify callback.
9424
9425         * glib/dbus-gparser.c (parse_node): parse child nodes
9426
9427         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9428         
9429         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9430         contain functions shared between the convenience lib and the
9431         installed lib
9432
9433         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9434         -export-symbols-regex to the GLib library
9435
9436         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9437         fix the locking in here, and add a default handler for
9438         Introspect() that just returns sub-nodes.
9439
9440 2003-09-14  Havoc Pennington  <hp@pobox.com>
9441
9442         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9443         rather than gfoo consistent
9444
9445         * glib/dbus-gproxy.h: delete for now, move contents to
9446         dbus-glib.h, because the include files don't work right since we
9447         aren't in the dbus/ subdir.
9448         
9449         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9450         (dbus_gproxy_end_call): finish
9451         (dbus_gproxy_begin_call): finish
9452
9453         * glib/dbus-gmain.c (dbus_set_g_error): new
9454
9455         * glib/dbus-gobject.c (handle_introspect): include information
9456         about child nodes in the introspection
9457
9458         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9459         function to help in implementation of introspection
9460
9461         * dbus/dbus-object-tree.c
9462         (_dbus_object_tree_list_registered_and_unlock): new function
9463
9464 2003-09-12  Havoc Pennington  <hp@pobox.com>
9465
9466         * glib/dbus-gidl.h: add common base class for all the foo_info
9467         types
9468
9469         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9470         similar to kdcop
9471
9472         * test/Makefile.am: try test srcdir -ef . in addition to test
9473         srcdir = ., one of them should work (yeah lame)
9474         
9475         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9476         library
9477         
9478         * glib/dbus-gparser.h: make description_load routines return
9479         NodeInfo* not Parser*
9480
9481         * Makefile.am (SUBDIRS): build test dir after all library dirs
9482
9483         * configure.in: add GTK+ detection
9484
9485 2003-09-07  Havoc Pennington  <hp@pobox.com>
9486
9487         * Make Doxygen contented.
9488
9489 2003-09-07  Havoc Pennington  <hp@pobox.com>
9490
9491         * doc/dbus-specification.sgml: more updates
9492
9493 2003-09-06  Havoc Pennington  <hp@pobox.com>
9494
9495         * doc/dbus-specification.sgml: partial updates
9496
9497         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9498         zillionth time; hopefully I edited the right file this time.
9499
9500         * bus/config-parser.c (append_rule_from_element): support
9501         send_type, send_path, receive_type, receive_path
9502
9503         * bus/policy.c: add message type and path to the list of things
9504         that can be "firewalled"
9505
9506 2003-09-06  Havoc Pennington  <hp@pobox.com>
9507
9508         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9509         (dbus_connection_register_object_path): make this not handle
9510         messages to paths below the given path
9511
9512 2003-09-03  Havoc Pennington  <hp@pobox.com>
9513
9514         * test/glib/Makefile.am: add this with random glib-linked test
9515         programs
9516
9517         * glib/Makefile.am: remove the random test programs from here,
9518         leave only the unit tests
9519
9520         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9521         uscore/javacaps conversion, and fix     
9522         (get_object_property, set_object_property): change to .NET
9523         convention for mapping props to methods, set_FooBar/get_FooBar, 
9524         since one language has such a convention we may as well copy it. 
9525         Plus real methods in either getFooBar or get_foo_bar style won't 
9526         collide with this convention.
9527
9528 2003-09-01  Havoc Pennington  <hp@pobox.com>
9529
9530         * glib/dbus-gparser.c: implement
9531
9532         * glib/dbus-gobject.c: start implementing skeletons support
9533
9534         * configure.in: when disabling checks/assert, also define
9535         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9536
9537 2003-09-01  Havoc Pennington  <hp@pobox.com>
9538
9539         * glib/Makefile.am: rearrange a bunch of files and get "make
9540         check" framework set up
9541
9542 2003-08-31  Havoc Pennington  <hp@pobox.com>
9543
9544         * fix build with --disable-tests
9545
9546 2003-08-30  Havoc Pennington  <hp@pobox.com>
9547
9548         * dbus/dbus-connection.c: purge DBusMessageHandler
9549
9550         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9551         use callbacks everywhere
9552
9553 2003-08-30  Havoc Pennington  <hp@pobox.com>
9554
9555         * test/data/valid-config-files/system.d/test.conf: change to 
9556         root for the user so warnings don't get printed
9557
9558         * dbus/dbus-message.c: add dbus_message_get_path,
9559         dbus_message_set_path
9560         
9561         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9562         dispatching to a path
9563
9564         * dbus/dbus-string.c (_dbus_string_validate_path): add
9565
9566         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9567         (_dbus_marshal_object_path): implement
9568
9569         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9570         to contain the path to the target object
9571         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9572         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9573
9574 2003-08-30  Havoc Pennington  <hp@pobox.com>
9575
9576         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9577
9578 2003-08-29  Havoc Pennington  <hp@pobox.com>
9579
9580         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9581         registered
9582         (struct DBusObjectSubtree): shrink this
9583         a lot, since we may have a lot of them
9584         (_dbus_object_tree_free_all_unlocked): implement
9585         (_dbus_object_tree_dispatch_and_unlock): implement
9586
9587 2003-08-29  Havoc Pennington  <hp@pobox.com>
9588
9589         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9590
9591 2003-08-28  Havoc Pennington  <hp@pobox.com>
9592
9593         purge DBusObjectID
9594         
9595         * dbus/dbus-connection.c: port to no ObjectID, create a
9596         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9597
9598         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9599         everything except UnregisterFunction and MessageFunction
9600         
9601         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9602         add DBUS_TYPE_OBJECT_PATH
9603         
9604         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9605         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9606         path-based object IDs
9607
9608 2003-08-25  Havoc Pennington  <hp@pobox.com>
9609
9610         Just noticed that dbus_message_test is hosed, I wonder when I
9611         broke that. I thought make check was passing earlier...
9612         
9613         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9614         container tree, will replace most of dbus-object-registry
9615
9616         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9617         screwup
9618
9619 2003-08-19  Havoc Pennington  <hp@pobox.com>
9620
9621         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9622         (dbus_message_is_error): fix this function
9623
9624         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9625         match
9626
9627         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9628         reflect clarified man page
9629         (bus_client_policy_check_can_send): ditto
9630         
9631         * bus/session.conf.in: fixup
9632
9633         * bus/system.conf.in: fixup
9634
9635 2003-08-18  Havoc Pennington  <hp@redhat.com>
9636
9637         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9638
9639         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9640         dumb bug created earlier (wrong order of args to
9641         decode_header_data())
9642         
9643         * tools/dbus-send.c: port
9644
9645         * tools/dbus-print-message.c (print_message): port
9646
9647         * test/data/*messages: port all messages over
9648         
9649         * dbus/dbus-message-builder.c: support including 
9650         message type
9651         
9652         * bus/driver.c: port over
9653         
9654         * bus/dispatch.c: port over to new stuff
9655
9656         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9657         rename disconnect signal to "Disconnected"
9658
9659 2003-08-17  Havoc Pennington  <hp@pobox.com>
9660
9661         This doesn't compile yet, but syncing up so I can hack on it from
9662         work. What are branches for if not broken code? ;-)
9663         
9664         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9665         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9666         DBUS_HEADER_FIELD_ERROR_NAME
9667         
9668         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9669         for the interface+member pairs
9670         (string_hash): change to use g_str_hash algorithm
9671         (find_direct_function, find_string_function): refactor these to
9672         share most code.
9673         
9674         * dbus/dbus-message.c: port all of this over to support 
9675         interface/member fields instead of name field
9676
9677         * dbus/dbus-object-registry.c: port over
9678         
9679         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9680         from _dbus_string_validate_name
9681
9682         * bus/dbus-daemon-1.1: change file format for the 
9683         <deny>/<allow> stuff to match new message naming scheme
9684
9685         * bus/policy.c: port over
9686
9687         * bus/config-parser.c: parse new format
9688         
9689 2003-08-16  Havoc Pennington  <hp@pobox.com>
9690
9691         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9692         broken assertion
9693
9694         * glib/dbus-gproxy.c: some hacking
9695
9696 2003-08-15  Havoc Pennington  <hp@redhat.com>
9697
9698         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9699
9700         * dbus/dbus-connection.c
9701         (dbus_connection_send_with_reply_and_block): factor out internals;
9702         change to convert any error replies to DBusError instead of 
9703         returning them as a message
9704
9705 2003-08-15  Havoc Pennington  <hp@pobox.com>
9706
9707         * dbus/dbus-connection.c, 
9708         dbus/dbus-pending-call.c: Finish the pending call stuff
9709
9710 2003-08-14  Havoc Pennington  <hp@redhat.com>
9711
9712         * dbus/dbus-pending-call.c: start on new object that will replace
9713         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9714         replies
9715
9716         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9717         with remote interfaces
9718
9719         * dbus/dbus-gidl.c: do the boring boilerplate in here
9720         
9721 2003-08-12  Havoc Pennington  <hp@pobox.com>
9722
9723         * bus/dispatch.c (bus_dispatch): make this return proper 
9724         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9725
9726         * dbus/dbus-errors.c (dbus_set_error): use
9727         _dbus_string_append_printf_valist
9728
9729         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9730         (_dbus_string_append_printf): new
9731
9732         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9733         UNKNOWN_METHOD
9734
9735         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9736         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9737         message is unhandled.
9738
9739 2003-08-11  Havoc Pennington  <hp@pobox.com>
9740
9741         * bus/test.c (client_disconnect_handler): change to return
9742         HANDLED (would have been REMOVE_MESSAGE)
9743
9744         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9745         HANDLED/NOT_YET_HANDLED instead of
9746         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9747         should be used.
9748
9749 2003-08-10  Havoc Pennington  <hp@pobox.com>
9750
9751         * tools/dbus-send.c (main): add --type argument, for now
9752         supporting only method_call and signal types.
9753
9754         * tools/dbus-print-message.c: print message type
9755
9756         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9757         init connection->objects
9758
9759         * doc/dbus-specification.sgml: fix sgml
9760
9761         * bus/*.c: port over to object-instance API changes
9762
9763         * test/test-service.c: ditto
9764         
9765         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9766         name, we will have to fix up the rest of the code to also handle
9767         this
9768         (dbus_message_new): generic message-creation call
9769         (set_string_field): allow appending name field
9770
9771 2003-08-06  Havoc Pennington  <hp@pobox.com>
9772
9773         * dbus/dbus-object-registry.c: implement signal connection 
9774         and dispatch
9775
9776         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9777
9778         * dbus/dbus-internals.c (_dbus_memdup): new function
9779
9780 2003-08-02  Havoc Pennington  <hp@pobox.com>
9781
9782         * dbus/dbus-message.c (dbus_message_get_no_reply)
9783         (dbus_message_set_no_reply): add these and remove
9784         set_is_error/get_is_error
9785
9786         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9787         remove the ERROR flag, since there's now an ERROR type
9788
9789 2003-08-01  Havoc Pennington  <hp@pobox.com>
9790
9791         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9792         implement
9793
9794         * dbus/dbus-message.c (dbus_message_get_type): new function
9795
9796         * doc/dbus-specification.sgml: add "type" byte to messages
9797
9798 2003-08-01  Havoc Pennington  <hp@pobox.com>
9799
9800         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9801         a message type enum to distinguish kinds of message
9802         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9803         that need not be replied to
9804
9805 2003-08-01  Havoc Pennington  <hp@pobox.com>
9806
9807         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9808         (unpack_8_octets): fix no-64-bit-int bug
9809
9810         * dbus/dbus-object-registry.c (validate_id): validate the 
9811         connection ID bits, not just the instance ID.
9812
9813         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9814         the connection-global 33 bits of the object ID
9815
9816         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9817         object ID in the new way
9818
9819         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9820         define server/client/instance bits.
9821
9822 2003-07-30  Havoc Pennington  <hp@pobox.com>
9823
9824         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9825         build
9826
9827 2003-07-13  Havoc Pennington  <hp@pobox.com>
9828
9829         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9830         fields to DBusObjectVTable and DBusObjectInfo
9831
9832 2003-07-12  Havoc Pennington  <hp@pobox.com>
9833
9834         * dbus/dbus-object-registry.c: implement unit test,
9835         fix bugs discovered in process
9836
9837         * dbus/dbus-connection.c: remove handler_table and
9838         register_handler(), add DBusObjectRegistry usage
9839
9840         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9841         (dbus_object_id_set_null): new functions
9842
9843 2003-07-08  Havoc Pennington  <hp@pobox.com>
9844
9845         * dbus/dbus-object.c: implement some of this
9846
9847         * dbus/dbus-object-registry.c
9848         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9849         param
9850         (_dbus_object_registry_new): handle OOM
9851
9852 2003-07-08  Havoc Pennington  <hp@pobox.com>
9853
9854         * dbus/dbus-object.h: sketch out an API for registering objects
9855         with a connection, that allows us to use as little as 24 bytes
9856         per object and lets application code represent an object in 
9857         any conceivable way.
9858
9859         * dbus/dbus-object-registry.c: implement the hard bits of the
9860         DBusConnection aspect of object API. Not yet wired up.
9861         
9862 2003-07-06  Havoc Pennington  <hp@pobox.com>
9863
9864         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9865         (_dbus_marshal_object_id): new
9866         (_dbus_demarshal_object_id): new
9867         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9868         consolidate identical switch cases. Don't conditionalize handling
9869         of DBUS_TYPE_UINT64, need to handle the type always.
9870         (_dbus_marshal_validate_arg): consolidate identical cases, and
9871         handle DBUS_TYPE_OBJECT_ID
9872
9873         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9874
9875         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9876
9877 2003-09-28  Havoc Pennington  <hp@pobox.com>
9878
9879         * real 0.13 release
9880
9881 2003-09-28  Havoc Pennington  <hp@pobox.com>
9882
9883         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9884         to work with Debian db2html
9885
9886 2003-09-28  Havoc Pennington  <hp@pobox.com>
9887
9888         * configure.in: 0.13
9889
9890         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9891         stylesheet-images for benefit of Debian
9892         
9893         Change back to using filesystem-linked sockets for the system
9894         bus, so only root can create the default system bus address.
9895         
9896         * bus/system.conf.in: change to use
9897         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9898
9899         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9900         from here.
9901
9902         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9903         here, and AC_DEFINE DBUS_SYSTEM_PATH
9904
9905 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9906
9907         * doc/TODO:
9908         * doc/busconfig.dtd:
9909         Add busconfig DTD.
9910         
9911 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9912
9913         * doc/dbus-specification.sgml:
9914         Add activation reply values.
9915         
9916 2003-08-05  Havoc Pennington  <hp@redhat.com>
9917
9918         * configure.in: 0.12
9919
9920 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9921
9922         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9923         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9924         (add_watch), (remove_watch), (create_source):
9925         Refcount fds, fixes some reentrancy issues.
9926         
9927 2003-07-30  Havoc Pennington  <hp@redhat.com>
9928
9929         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9930         bus address to be abstract if we have abstract sockets
9931
9932         * NEWS: update
9933
9934 2003-07-28  Havoc Pennington  <hp@redhat.com>
9935
9936         * bus/messagebus.in: fix to avoid processname/servicename 
9937         confusion, from Michael Kearey
9938         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9939         
9940 2003-07-23  Havoc Pennington  <hp@pobox.com>
9941
9942         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9943         fix from Andy Hanton to remove broken "+1"
9944
9945 2003-07-16  Havoc Pennington  <hp@pobox.com>
9946
9947         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9948         babysitter process, as suggested by Thomas Leonard, so 
9949         an "eval `dbus-launch --exit-with-session`" will actually 
9950         return
9951
9952 2003-07-16  Havoc Pennington  <hp@pobox.com>
9953
9954         * configure.in: print out EXPANDED_* variables in the summary at
9955         the end; clean up the code that computes EXPANDED_ variables and
9956         get the ones using exec_prefix right. Should make things work
9957         when you build without --prefix
9958
9959 2003-06-29  Havoc Pennington  <hp@pobox.com>
9960
9961         * mono/Test.cs (class Test): fire up a main loop and run it
9962
9963         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9964         done once, the app has to do it
9965
9966 2003-06-26  Havoc Pennington  <hp@pobox.com>
9967
9968         * mono/Connection.cs: set up connection with the glib main loop
9969
9970 2003-07-01  Havoc Pennington  <hp@redhat.com>
9971
9972         * doc/dbus-specification.sgml: clarify the format of a type code,
9973         change suggested by Jim Blandy
9974
9975 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9976
9977         * doc/Makefile.am:
9978         * tools/Makefile.am: Don't assume srcdir == builddir.
9979
9980         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9981         the allocated block.
9982         (_dbus_memory_test): New function.
9983         * dbus/dbus-test.h: Add _dbus_memory_test ().
9984         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9985
9986         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9987         of %c%c%c%c.
9988         (dbus_message_new): Remove obsolete @todo.
9989
9990         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9991         (_dbus_marshal_set_uint64): Fix comment.
9992
9993         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9994         hardcode FIELD_REPLY_SERIAL.
9995
9996         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9997         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9998
9999         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10000         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10001
10002 2003-06-24  Havoc Pennington  <hp@pobox.com>
10003
10004         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10005
10006 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10007
10008         * configure.in:
10009         * gcj/.cvsignore:
10010         * gcj/Hello.java:
10011         * gcj/Makefile.am:
10012         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10013         * gcj/org/.cvsignore:
10014         * gcj/org/Makefile.am:
10015         * gcj/org/freedesktop/.cvsignore:
10016         * gcj/org/freedesktop/Makefile.am:
10017         * gcj/org/freedesktop/dbus/.cvsignore:
10018         * gcj/org/freedesktop/dbus/Makefile.am:
10019         * gcj/org/freedesktop/dbus/Message.java: (Message),
10020         (Message.Message):
10021         * gcj/org/freedesktop/dbus/natMessage.cc:
10022         Fix the build system.
10023
10024 2003-06-22  Havoc Pennington  <hp@pobox.com>
10025
10026         * mono/Connection.cs: add more bindings
10027
10028         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10029         more than once.
10030
10031 2003-06-22  Havoc Pennington  <hp@pobox.com>
10032
10033         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10034         Start wrapping more stuff.
10035
10036 2003-06-22  Havoc Pennington  <hp@pobox.com>
10037
10038         * mono/Message.cs: implement Message.Wrap() that ensures we only
10039         have a single C# wrapper per DBusMessage, assuming it works which
10040         it probably doesn't.
10041
10042         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10043         (dbus_message_free_data_slot): new
10044         (dbus_message_set_data): new
10045         (dbus_message_get_data): new
10046
10047 2003-06-22  Havoc Pennington  <hp@pobox.com>
10048
10049         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10050         (_dbus_data_slot_allocator_alloc): rework these to keep a
10051         reference count on each slot and automatically manage a global
10052         slot ID variable passed in by address
10053
10054         * bus/bus.c: convert to new dataslot API
10055
10056         * dbus/dbus-bus.c: convert to new dataslot API
10057
10058         * dbus/dbus-connection.c: convert to new dataslot API
10059
10060         * dbus/dbus-server.c: convert to new dataslot API
10061
10062         * glib/dbus-gmain.c: ditto
10063
10064         * bus/test.c: ditto
10065
10066         * bus/connection.c: ditto
10067
10068 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10069
10070         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10071         after the gcj checks so that the correct configuration tags
10072         will be added to libtool.
10073
10074         * dbus-glib-1.pc.in: No need to specify any includes since
10075         dbus-1.pc.in has those.
10076
10077 2003-06-22  Havoc Pennington  <hp@pobox.com>
10078
10079         * mono/*, gcj/*, configure.in, Makefile.am:
10080         Check in makefiles and subdirs for mono and gcj bindings.
10081         Neither binding actually exists, just trying to get through
10082         all the build and other boring bits.
10083
10084 2003-06-21  Philip Blundell  <philb@gnu.org>
10085
10086         * tools/dbus-monitor.1: Updated.
10087
10088         * tools/dbus-send.1: Likewise.
10089
10090 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10091
10092         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10093         for hangup and error after checking read so we won't discard
10094         pending data if both hangup and read are set.
10095
10096 2003-06-19  Philip Blundell  <philb@gnu.org>
10097
10098         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10099
10100         * tools/dbus-send.c: Accept both --system and --session.
10101
10102         * tools/dbus-monitor.c: Same here.
10103
10104 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10105
10106         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10107         from C++ (Patch by Miloslav Trmac).
10108
10109 2003-06-15  Joe Shaw  <joe@assbarn.com>
10110
10111         * configure.in: Check for socklen_t.
10112
10113         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10114
10115         * test/test-segfault.c: Add #include <sys/time.h>
10116
10117         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10118         dbus-launch needs it.
10119
10120 2003-06-09  Havoc Pennington  <hp@redhat.com>
10121
10122         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10123         SUN_LEN, it breaks abstract socket usage
10124
10125         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10126         starts of lines.
10127
10128 2003-06-04  Havoc Pennington  <hp@pobox.com>
10129
10130         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10131         using unix:abstract=/foo, and when listening in a tmpdir
10132         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10133
10134         * dbus/dbus-transport.c (_dbus_transport_open): support
10135         unix:abstract=/foo
10136
10137         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10138         support abstract sockets
10139
10140         * dbus/dbus-transport-unix.c
10141         (_dbus_transport_new_for_domain_socket): support abstract sockets
10142
10143         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10144         toggle as an argument, implement abstract namespace support
10145         (_dbus_listen_unix_socket): ditto
10146
10147         * configure.in: add --enable-abstract-sockets and implement
10148         a configure check for autodetection of the right value.
10149
10150 2003-06-01  Havoc Pennington  <hp@pobox.com>
10151
10152         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10153         in /tmp (though on Linux this will end up being useless,
10154         when we add abstract namespace support)
10155
10156         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10157         subst'ing it
10158
10159 2003-05-28  Colin Walters  <walters@verbum.org>
10160
10161         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10162
10163 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10164
10165         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10166
10167 2003-05-17  Colin Walters  <walters@gnu.org>
10168
10169         * tools/dbus-send.c: Don't exit with an error code if --help was
10170         passed.  Default to using the session bus instead of the system
10171         one.
10172
10173         * tools/dbus-launch.c: Ditto.
10174
10175         * tools/dbus-monitor.c: Ditto.
10176
10177         * tools/dbus-send.1: Update with new arguments.
10178
10179         * tools/dbus-launch.c: Emit code to export variables.  New
10180         arguments -s and -c to specify shell syntax, and a bit of code to
10181         autodetect syntax.  Also, allow specifying a program to run.
10182
10183         * tools/dbus-launch.1: Update with new arguments.
10184
10185         * tools/dbus-send.1: Ditto.
10186
10187         * tools/dbus-monitor.1: Ditto.
10188
10189 2003-05-17  Havoc Pennington  <hp@pobox.com>
10190
10191         * bus/config-parser.c (merge_included): merge in policies from
10192         child configuration file.
10193
10194         * bus/policy.c (bus_policy_merge): function to merge two policies
10195         together
10196
10197 2003-05-16  Havoc Pennington  <hp@redhat.com>
10198
10199         * dbus/dbus-connection.c: disable verbose lock spew
10200
10201         * tools/dbus-send.c: add --print-reply command line option
10202
10203         * tools/dbus-print-message.h (print_message): new util function
10204         shared by dbus-send and dbus-monitor
10205
10206         * tools/dbus-monitor.c (handler_func): exit on disconnect
10207
10208         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10209         disconnected, don't try to use the read_watch
10210
10211         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10212         so we can find this bug more easily
10213
10214 2003-05-16  Havoc Pennington  <hp@redhat.com>
10215
10216         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10217         NULL as DBusHashTable is annoyingly likely to do.
10218
10219 2003-05-16  Colin Walters  <walters@verbum.org>
10220
10221         * tools/dbus-monitor.c: Add --session argument and usage()
10222         function.
10223
10224         * tools/dbus-monitor.1: Update with new --session arg.
10225
10226         * bus/Makefile.am (install-data-hook): Create
10227         $(libdir)/dbus-1.0/services so that the session bus is happy.
10228
10229 2003-05-15  Havoc Pennington  <hp@redhat.com>
10230
10231         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10232         on non-x86. ifdef's are evil.
10233
10234 2003-05-15  Havoc Pennington  <hp@redhat.com>
10235
10236         * configure.in: 0.11
10237
10238         * NEWS: update
10239
10240         * bus/Makefile.am (initddir): apparently we are supposed to put
10241         init scripts in /etc/rc.d/init.d not /etc/init.d
10242
10243         * bus/Makefile.am: remove the "you must --enable-tests to make
10244         check" as it broke distcheck
10245
10246         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10247
10248 2003-05-13  James Willcox  <jwillcox@gnome.org>
10249
10250         * configure.in:
10251         * bus/activation.c: (bus_activation_service_created),
10252         (bus_activation_activate_service):
10253         * bus/driver.c: (bus_driver_send_service_deleted),
10254         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10255         (bus_driver_send_service_acquired),
10256         (bus_driver_send_welcome_message),
10257         (bus_driver_handle_list_services):
10258         * bus/session.conf.in:
10259         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10260         (dbus_bus_service_exists), (dbus_bus_activate_service):
10261         * dbus/dbus-bus.h:
10262
10263         Add some convenience API which lets you activate a service, and did a
10264         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10265         and dbus_message_get_args()
10266
10267 2003-05-11  Havoc Pennington  <hp@pobox.com>
10268
10269         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10270         calling _dbus_marshal_validate_arg() for every byte in a byte
10271         array, etc.
10272
10273         * dbus/dbus-message-handler.c: use atomic reference counting to
10274         reduce number of locks slightly; the global lock in here sucks
10275
10276         * dbus/dbus-connection.c
10277         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10278         update_dispatch_status that can be called with lock held; then use
10279         in a couple places to reduce locking/unlocking
10280         (dbus_connection_send): hold the lock over the whole function
10281         instead of acquiring it twice.
10282
10283         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10284
10285         * bus/connection.c (bus_connections_setup_connection): fix access
10286         to already-freed memory.
10287
10288         * dbus/dbus-connection.c: keep a little cache of linked list
10289         nodes, to avoid using the global linked list alloc lock in the
10290         normal send-message case. Instead we just use the connection lock
10291         that we already have to take.
10292
10293         * dbus/dbus-list.c (_dbus_list_find_last): new function
10294
10295         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10296         change to use a struct for the atomic type; fix docs,
10297         they return value before increment, not after increment.
10298
10299         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10300         (_dbus_string_append_8_aligned): new functions to try to
10301         microoptimize this operation.
10302         (reallocate_for_length): break this out of set_length(), to
10303         improve profile info, and also so we can consider inlining the
10304         set_length() part.
10305
10306         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10307         strings with some preallocation, cuts down on our calls to realloc
10308         a fair bit. Though if we can get the "move entire string to empty
10309         string" optimization below to kick in here, it would be better.
10310
10311         * dbus/dbus-string.c (_dbus_string_move): just call
10312         _dbus_string_move_len
10313         (_dbus_string_move_len): add a special case for moving
10314         an entire string into an empty string; we can just
10315         swap the string data instead of doing any reallocs.
10316         (_dbus_string_init_preallocated): new function
10317
10318 2003-05-11  Havoc Pennington  <hp@pobox.com>
10319
10320         Write a "test-profile" that does echo client-server with threads;
10321         profile reveals lock contention, memcpy/realloc of buffers, and
10322         UTF-8 validation as hot spots. 20% of lock contention eliminated
10323         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10324         contention is global mempool locks for GList and DBusList.
10325
10326         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10327         x86 implementation
10328
10329         * dbus/dbus-connection.c (struct DBusConnection): use
10330         dbus_atomic_t for the reference count
10331
10332         * dbus/dbus-message.c (struct DBusMessage): declare
10333         dbus_atomic_t values as volatile
10334
10335         * configure.in: code to detect ability to use atomic integer
10336         operations in assembly, from GLib patch
10337
10338         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10339         time, tired of it being wrong in threads and forked processes
10340
10341         * glib/test-profile.c: a little program to bounce messages back
10342         and forth between threads and eat CPU
10343
10344         * dbus/dbus-connection.c: add debug spew macros for debugging
10345         thread locks; include config.h at top; fix deadlock in
10346         dbus_connection_flush()
10347
10348 2003-05-08  Havoc Pennington  <hp@pobox.com>
10349
10350         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10351         data from getting written, and there wasn't a good reason to
10352         use _exit really.
10353
10354         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10355         dbus_verbose lines in test coverage
10356         (main): add list of functions sorted by # of untested blocks
10357         to the coverage report
10358
10359         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10360
10361         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10362
10363         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10364         extend test coverage
10365
10366         * test/data/auth/cancel.auth-script: test canceling an
10367         authentication
10368
10369         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10370         aren't used. in CVS history if we end up needing them.
10371
10372 2003-05-04  Havoc Pennington  <hp@pobox.com>
10373
10374         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10375         unit test
10376
10377         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10378         function, which assumed length was in # of strings, not bytes
10379
10380         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10381         missing coverage
10382
10383         * dbus/dbus-connection.c
10384         (_dbus_connection_queue_received_message): disable function for
10385         now, we are only using it in test mode
10386
10387         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10388         remove a mistaken FIXME
10389
10390 2003-05-04  Havoc Pennington  <hp@pobox.com>
10391
10392         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10393         unlock mutex on successful return, patch from Anders Gustafsson
10394
10395 2003-05-04  Havoc Pennington  <hp@pobox.com>
10396
10397         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10398         Anders Gustafsson
10399
10400 2003-05-04  Havoc Pennington  <hp@pobox.com>
10401
10402         * tools/dbus-launch.c: implement
10403
10404         * bus/main.c (main), bus/bus.c (bus_context_new):
10405         implement --print-pid and --fork
10406
10407 2003-05-03  Havoc Pennington  <hp@redhat.com>
10408
10409         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10410         the address had no value, and add to test suite. Fix and
10411         regression test from Miloslav Trmac
10412
10413 2003-05-03  Havoc Pennington  <hp@pobox.com>
10414
10415         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10416         watch is invalid when handled
10417
10418         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10419         dbus-launch utility to launch the bus from a shell script.  Didn't
10420         actually implement dbus-launch yet, it's just a placeholder still.
10421
10422 2003-05-03  Havoc Pennington  <hp@pobox.com>
10423
10424         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10425         daemon; also documents daemon config file, so replaces
10426         doc/config-file.txt. Corrected some stuff from config-file.txt in
10427         the process of moving it.
10428
10429 2003-05-03  Havoc Pennington  <hp@pobox.com>
10430
10431         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10432         add some man pages
10433
10434 2003-05-03  Colin Walters  <walters@verbum.org>
10435
10436         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10437         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10438
10439         * Makefile.am: Update to use new .pc versioning scheme.
10440
10441 2003-05-02  Havoc Pennington  <hp@redhat.com>
10442
10443         * bus/system.conf.in: allow send/receive to/from message bus
10444         service
10445
10446 2003-04-30  Havoc Pennington  <hp@redhat.com>
10447
10448         * configure.in: print a note when building with unit tests and
10449         without assertions
10450
10451 2003-04-30  Havoc Pennington  <hp@redhat.com>
10452
10453         * Makefile.am: add a check-local that complains if you didn't
10454         configure with --enable-tests
10455
10456 2003-04-29  Havoc Pennington  <hp@redhat.com>
10457
10458         * glib/dbus-gmain.c: docs cleanups
10459
10460         * dbus/dbus-types.h: add docs on int64 types
10461
10462         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10463         public API docs section
10464
10465 2003-04-29  Havoc Pennington  <hp@redhat.com>
10466
10467         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10468         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10469         parallel install API version, not with the D-BUS package version.
10470
10471         * HACKING: move some of README over here
10472
10473         * README: updates, and document API/ABI policy
10474
10475         * configure.in: reindentation
10476
10477 2003-04-29  Havoc Pennington  <hp@redhat.com>
10478
10479         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10480         to use this library" to be sure people have the right
10481         expectations.
10482
10483 2003-04-28  Havoc Pennington  <hp@redhat.com>
10484
10485         * configure.in: add --enable-docs which by default is auto yes if
10486         doxygen and db2html found, no otherwise; but can be forced on/off
10487
10488         * doc/Makefile.am: conditionalize whether to build docs on
10489         --enable-docs
10490
10491 2003-04-28  Havoc Pennington  <hp@redhat.com>
10492
10493         * configure.in: 0.10
10494
10495         * NEWS: update
10496
10497         * bus/system.conf.in: add <includedir>system.d</includedir>
10498
10499         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10500         username was provided but not uid
10501
10502         * bus/config-parser.c (struct BusConfigParser): keep track of
10503         whether the parser is toplevel or was included; change some
10504         of the error handling if it's included.
10505
10506 2003-04-27  Havoc Pennington  <hp@pobox.com>
10507
10508         Unbreak my code...
10509
10510         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10511         report correct status if we finish processing authentication
10512         inside this function.
10513
10514         * bus/activation.c (try_send_activation_failure): use
10515         bus_transaction_send_error_reply
10516
10517         * bus/connection.c (bus_connection_get_groups): return an error
10518         explaining the problem
10519
10520         * bus/bus.c (bus_context_check_security_policy): implement
10521         restriction here that inactive connections can only send the
10522         hello message. Also, allow bus driver to send anything to
10523         any recipient.
10524
10525         * bus/connection.c (bus_connection_complete): create the
10526         BusClientPolicy here instead of on-demand.
10527         (bus_connection_get_policy): don't return an error
10528
10529         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10530         sender field in message being replied to
10531
10532         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10533         causing it to return FALSE always
10534
10535         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10536         we checked sender rather than destination
10537
10538 2003-04-25  Havoc Pennington  <hp@redhat.com>
10539
10540         test suite is slightly hosed at the moment, will fix soon
10541
10542         * bus/connection.c (bus_connections_expire_incomplete): fix to
10543         properly disable the timeout when required
10544         (bus_connection_set_name): check whether we can remove incomplete
10545         connections timeout after we complete each connection.
10546
10547         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10548         probably still broken.
10549
10550         * bus/services.c (bus_registry_acquire_service): implement max
10551         number of services owned, and honor allow/deny rules on which
10552         services a connection can own.
10553
10554         * bus/connection.c (bus_connection_get_policy): report errors here
10555
10556         * bus/activation.c: implement limit on number of pending
10557         activations
10558
10559 2003-04-25  Havoc Pennington  <hp@redhat.com>
10560
10561         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10562         where we used >= 0 instead of != DBUS_UID_UNSET.
10563
10564 2003-04-25  Havoc Pennington  <hp@redhat.com>
10565
10566         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10567         were toggled without add/remove, fix from Anders Gustafsson
10568
10569 2003-04-24  Havoc Pennington  <hp@redhat.com>
10570
10571         * test/data/valid-config-files/basic.conf: add <limit> tags to
10572         this test
10573
10574         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10575         <limit> tag in configuration file.
10576
10577 2003-04-24  Havoc Pennington  <hp@redhat.com>
10578
10579         * bus/dispatch.c: somehow missed some name_is
10580
10581         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10582         (_dbus_timeout_set_interval): new
10583
10584         * bus/connection.c (bus_connections_setup_connection): record time
10585         when each connection is first set up, and expire them after the
10586         auth timeout passes.
10587
10588 2003-04-24  Havoc Pennington  <hp@redhat.com>
10589
10590         * dbus/dbus-message.c (dbus_message_name_is): rename
10591         (dbus_message_service_is): rename
10592         (dbus_message_sender_is): rename
10593         (dbus_message_get_service): rename
10594
10595 2003-04-24  Havoc Pennington  <hp@redhat.com>
10596
10597         * configure.in: add --enable-checks
10598
10599         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10600
10601         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10602         to use thread locks.
10603         (_dbus_connection_handler_destroyed_locked): move some private
10604         functions into proper docs group
10605
10606         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10607         _dbus_return_val_if_fail
10608
10609         Throughout: use dbus_return_if_fail
10610
10611 2003-04-23  James Willcox  <jwillcox@gnome.org>
10612
10613         * glib/dbus-glib.h:
10614         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10615         (dbus_connection_setup_with_g_main),
10616         (dbus_server_setup_with_g_main):
10617         * glib/test-dbus-glib.c: (main):
10618         * glib/test-thread-client.c: (main):
10619         * glib/test-thread-server.c: (new_connection_callback), (main):
10620         * tools/dbus-monitor.c: (main):
10621
10622         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10623         and dbus_server_setup_with_g_main().
10624
10625 2003-04-20  Havoc Pennington  <hp@pobox.com>
10626
10627         * doc/dbus-specification.sgml: document the restrictions on
10628         message and service names
10629
10630 2003-04-22  Havoc Pennington  <hp@redhat.com>
10631
10632         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10633         support, and do some code cleanups to share more code and
10634         speed up array marshal/demarshal.
10635
10636         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10637
10638         * configure.in: generate dbus-arch-deps.h
10639
10640         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10641         64-bit typecodes
10642
10643 2003-04-22  Havoc Pennington  <hp@redhat.com>
10644
10645         * test/data/valid-messages/opposite-endian.message: fix test
10646         to use proper type for rply field
10647
10648         * test/data/invalid-messages: add tests for below validation
10649
10650         * dbus/dbus-message.c (decode_header_data): validate field types,
10651         and validate that named fields are valid names
10652         (decode_name_field): consider messages in the
10653         org.freedesktop.Local. namespace to be invalid.
10654
10655         * dbus/dbus-string.c (_dbus_string_validate_name): new
10656
10657 2003-04-19  Havoc Pennington  <hp@pobox.com>
10658
10659         * bus/driver.c (bus_driver_handle_hello): check limits and
10660         return an error if they are exceeded.
10661
10662         * bus/connection.c: maintain separate lists of active and inactive
10663         connections, and a count of each. Maintain count of completed
10664         connections per user. Implement code to check connection limits.
10665
10666         * dbus/dbus-list.c (_dbus_list_unlink): export
10667
10668         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10669         number of bytes in the message queue for a connection
10670
10671 2003-04-18  Havoc Pennington  <hp@pobox.com>
10672
10673         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10674
10675         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10676         memleaks
10677
10678         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10679         on realloc be sure to update the pointer in the keyring
10680
10681         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10682         offset to avoid writing to unallocated memory
10683
10684         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10685         try the next mechanism, so we properly handle OOM
10686
10687         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10688         on OOM.
10689         (_dbus_keyring_new): fix OOM bug
10690         (_dbus_keyring_new_homedir): always set error; impose a maximum
10691         number of keys we'll load from the file, mostly to speed up the
10692         test suite and make its OOM checks more useful, but also for
10693         general sanity.
10694
10695         * dbus/dbus-auth.c (process_error_server): reject authentication
10696         if we get an error from the client
10697         (process_cancel): on cancel, send REJECTED, per the spec
10698         (process_error_client): send CANCEL if we get an error from the
10699         server.
10700
10701 2003-04-18  Havoc Pennington  <hp@pobox.com>
10702
10703         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10704         debug spew
10705
10706         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10707         handling problem
10708
10709         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10710         about DBUS_TEST_HOMEDIR once
10711
10712         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10713         the environment
10714
10715         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10716         config file so we test the right thing
10717
10718         Throughout: assorted docs improvements
10719
10720 2003-04-18  Havoc Pennington  <hp@pobox.com>
10721
10722         * glib/dbus-gmain.c: adapt to watch changes
10723
10724         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10725
10726         * dbus/dbus-server.h: remove dbus_server_handle_watch
10727
10728         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10729
10730         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10731         like DBusTimeout, so we don't need dbus_connection_handle_watch
10732         etc.
10733
10734 2003-04-17  Havoc Pennington  <hp@redhat.com>
10735
10736         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10737         database usage so it all goes via the DBusUserDatabase cache.
10738
10739 2003-04-17  Havoc Pennington  <hp@redhat.com>
10740
10741         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10742         there was an OOM watch we skipped, we always return TRUE so we
10743         iterate again to have a look at it again. Fixes test suite hang.
10744         Code rearrangement also lets us lose some memset and only iterate
10745         over callbacks once.
10746
10747         * bus/driver.c (bus_driver_handle_message): sense of test for
10748         reply was backward
10749
10750 2003-04-16  Havoc Pennington  <hp@pobox.com>
10751
10752         * doc/dbus-specification.sgml: make spec say serials are unsigned
10753
10754         * dbus/dbus-message.h: change message serials to unsigned
10755
10756         * dbus/dbus-connection.c: adapt to message serials being unsigned
10757
10758 2003-04-15  Havoc Pennington  <hp@pobox.com>
10759
10760         * bus/bus.c: create and keep around a shared DBusUserDatabase
10761         object.
10762
10763         * bus/connection.c (bus_connection_get_groups): don't cache
10764         groups for user in the connection object, since user database
10765         object now does that.
10766
10767 2003-04-16  Havoc Pennington  <hp@redhat.com>
10768
10769         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10770         list of size counters
10771         (_dbus_message_loader_putback_message_link): put back a popped link
10772
10773         * dbus/dbus-connection.c
10774         (dbus_connection_set_max_live_messages_size): rename
10775         max_received_size
10776         (dbus_connection_get_outgoing_size): get size of outgoing
10777         queue
10778         (_dbus_connection_set_connection_counter): remove this cruft
10779
10780 2003-04-14  Havoc Pennington  <hp@redhat.com>
10781
10782         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10783         caching, but at some point we might want to be able to use a
10784         different database.
10785
10786         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10787         SHA1 conf file to test the sha1 auth mechanism, since the regular
10788         test always uses EXTERNAL when available.
10789
10790         * configure.in,
10791         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10792         add conf file that requires use of sha1 auth
10793
10794 2003-04-13  Havoc Pennington  <hp@pobox.com>
10795
10796         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10797         from Philip Blundell to send messages and monitor them.
10798
10799 2003-04-13  Havoc Pennington  <hp@pobox.com>
10800
10801         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10802         callbacks
10803
10804         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10805         users
10806
10807         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10808         fix to only recover unused bytes if we're already authenticated
10809         (_dbus_transport_get_is_authenticated): fix to still mark us
10810         authenticated if there are unused bytes.
10811
10812         * bus/dispatch.c: implement security policy checking
10813
10814         * bus/connection.c (bus_transaction_send_from_driver): new
10815
10816         * bus/bus.c (bus_context_check_security_policy): new
10817
10818         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10819         now we just set the DBusError and it gets converted to an error
10820         reply.
10821
10822         * bus/connection.c (allow_user_function): enable code using actual
10823         data from the config file
10824
10825         * bus/policy.c (list_allows_user): handle wildcard rules for
10826         user/group connection perms
10827
10828 2003-04-13  Havoc Pennington  <hp@pobox.com>
10829
10830         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10831
10832         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10833
10834         * bus/policy.c (bus_policy_append_mandatory_rule)
10835         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10836         (bus_policy_append_group_rule): new functions
10837
10838 2003-04-12  Havoc Pennington  <hp@pobox.com>
10839
10840         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10841
10842         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10843         the pid/gid/uid, just for paranoia.
10844
10845         * test/break-loader.c (randomly_do_n_things): find a byte
10846         containing a type code, and randomly change it to a different
10847         type code.
10848
10849 2003-04-12  Havoc Pennington  <hp@pobox.com>
10850
10851         * bus/policy.h: change BusPolicy to be the thing from the config
10852         file, and rename old BusPolicy to BusClientPolicy
10853
10854         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10855         match change in how policy works
10856
10857         * dbus/dbus-internals.h: mark assert_not_reached as
10858         __attribute((noreturn))__
10859
10860 2003-04-11  Havoc Pennington  <hp@redhat.com>
10861
10862         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10863         the broadcast service. Use boolean return for ServiceExists.
10864
10865 2003-04-11  Havoc Pennington  <hp@redhat.com>
10866
10867         * configure.in: add another directory to look for qt in.
10868
10869 2003-04-11  Havoc Pennington  <hp@redhat.com>
10870
10871         * AUTHORS: add Colin Walters
10872
10873 2003-04-11  Havoc Pennington  <hp@redhat.com>
10874
10875         * NEWS: update
10876
10877         * configure.in: 0.9
10878
10879 2003-04-11  Havoc Pennington  <hp@redhat.com>
10880
10881         * bus/messagebus.in: remove pid file when stopping the
10882         message bus, since the bus won't have privileges to remove it
10883         itself.
10884
10885 2003-04-11  Havoc Pennington  <hp@redhat.com>
10886
10887         * bus/bus.c (bus_context_new): move credentials change after
10888         creating pidfile
10889
10890 2003-04-11  Havoc Pennington  <hp@pobox.com>
10891
10892         * test/decode-gcov.c: add "below average functions" to the
10893         coverage report, and change how some of the code works.
10894
10895         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10896         not in the coverage stats.
10897
10898         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10899         couple places so running the test suite doesn't result in megaspam.
10900
10901 2003-04-11  Havoc Pennington  <hp@pobox.com>
10902
10903         * bus/dispatch.c (check_existent_service_activation): accept a no
10904         memory error in a place we didn't before
10905
10906         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10907         in case the first one failed," since the test suite is less
10908         broken now.
10909
10910 2003-04-10  Havoc Pennington  <hp@pobox.com>
10911
10912         * bus/dispatch.c (check_segfault_service_activation): add test
10913         for launching an executable that just crashes.
10914
10915         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10916         don't leave a million cores. We'll see how portable this is.
10917
10918 2003-04-10  Havoc Pennington  <hp@pobox.com>
10919
10920         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10921         the possible parent failures before we fork, so that we don't
10922         fail to create a babysitter after creating the child.
10923
10924         * bus/activation.c (bus_activation_activate_service): kill child
10925         if we don't successfully complete the activation.
10926
10927 2003-04-10  Havoc Pennington  <hp@redhat.com>
10928
10929         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10930         the connection if it's disconnected
10931
10932         * bus/activation.c (bus_activation_service_created): use new
10933         transaction features to roll back removal of pending activation if
10934         we don't successfully create the service after all. Don't remove
10935         pending activation if the function fails.
10936
10937         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10938         (_dbus_list_insert_after_link): new code to facilitate
10939         services.c fixes
10940
10941         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10942         new functionality, so we can preallocate the ability to insert
10943         into a hash table.
10944
10945         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10946         allowing us to put custom hooks in a transaction to be used for
10947         cancelling said transaction
10948
10949         * doc/dbus-specification.sgml: add some discussion of secondary
10950         service owners, and disallow zero-length service names
10951
10952         * bus/services.c (bus_registry_acquire_service): new function,
10953         splits out part of bus_driver_handle_acquire_service() and fixes
10954         a bug where we didn't remove the service doing the acquiring
10955         from the secondary queue if we failed to remove the current owner
10956         from the front of the queue.
10957
10958 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10959
10960         * doc/dbus-specification.sgml:
10961         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10962
10963 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10964
10965         * bus/.cvsignore:
10966         * glib/.cvsignore:
10967         * test/.cvsignore:
10968         Added files to cvsignore
10969
10970         * dbus/dbus-message.h:
10971         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10972         Make get_named() take two out argument and return a boolean.
10973         (dbus_message_iter_get_args_valist):
10974         Update usage of get_named().
10975         (dbus_message_iter_append_byte):
10976         Fix typo
10977         (dbus_message_iter_append_named)
10978         Fix typo
10979         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10980         More tests.
10981
10982 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10983
10984         * dbus/dbus-marshal.[ch]:
10985         Add array_type_pos argument to _dbus_marshal_validate_arg.
10986         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10987
10988         * dbus/dbus-message.[ch]:
10989         Multi-dimensional arrays have full type specification in the
10990         outermost array. Iter code re-arranged to handle this.
10991         Added some more iter tests.
10992
10993         * doc/dbus-specification.sgml:
10994         Add me to authors.
10995         Remove old FIXME.
10996         Update new array encoding description.
10997         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10998
10999         * test/data/invalid-messages/array-with-mixed-types.message:
11000         * test/data/valid-messages/array-of-array-of-uint32.message:
11001         Change to the new array format.
11002
11003         * test/data/invalid-messages/too-short-dict.message:
11004         Fix bug in test.
11005
11006         * test/data/valid-messages/recursive-types.message:
11007         Fix up and extend test.
11008
11009 2003-04-10  Havoc Pennington  <hp@pobox.com>
11010
11011         * bus/dispatch.c: lots of fixes
11012
11013         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11014         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11015         that was crack, broke the test service.
11016
11017         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11018         handling to avoid piling up errors if we get a failure on the
11019         first address.
11020
11021         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11022         pid in assertion failures.
11023
11024         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11025         to some fixed size of file descriptor array. Don't return TRUE
11026         anytime a timeout exists, that led to lots of busy loop silliness
11027         in the tests.
11028
11029 2003-04-09  Havoc Pennington  <hp@redhat.com>
11030
11031         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11032         I'd checked this in earlier but hadn't.
11033
11034 2003-04-09  Havoc Pennington  <hp@redhat.com>
11035
11036         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11037         the activation test (man this is getting old!)
11038
11039 2003-04-09  Havoc Pennington  <hp@redhat.com>
11040
11041         * test/test-utils.c: use dispatch status function to fix this up
11042
11043         * bus/connection.c (connection_watch_callback): don't dispatch
11044         from here
11045         (connection_timeout_callback): don't dispatch from here
11046         (bus_connections_setup_connection): set the dispatch status function
11047         (bus_connection_disconnected): unset it
11048
11049         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11050         used to add a connection to be dispatched
11051         (_dbus_loop_iterate): do the dispatching at the end of each
11052         iteration
11053
11054         * dbus/dbus-connection.c
11055         (dbus_connection_set_dispatch_status_function): new function
11056         allowing us to fix up main loop usage
11057         (_dbus_connection_last_unref): free all the various function
11058         user data
11059         (dbus_connection_dispatch): call the DispatchStatusFunction
11060         whenever this function returns
11061         (dbus_connection_handle_watch): call DispatchStatusFunction
11062         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11063         (reply_handler_timeout): call DispatchStatusFunction
11064         (dbus_connection_flush): call DispatchStatusFunction
11065
11066 2003-04-09  Havoc Pennington  <hp@redhat.com>
11067
11068         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11069         a memory leak
11070
11071         * bus/dispatch.c (check_service_activated): fix bug in test
11072
11073         * dbus/dbus-mainloop.c (check_timeout): fix this up
11074
11075         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11076         verbose output so we can sort out output from different processes,
11077         e.g. in the activation case.
11078
11079 2003-04-08  Colin Walters  <walters@gnu.org>
11080
11081         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11082         the pid file.
11083         (bus_context_new): Set it.
11084         (bus_context_unref): Use it to delete the pid file.
11085
11086 2003-04-08  Havoc Pennington  <hp@redhat.com>
11087
11088         * test/data/invalid-messages/array-with-mixed-types.message:
11089         regression test that fails for the moment
11090
11091         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11092         tests for convenience
11093
11094         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11095         array of nil, it broke things.
11096
11097         * test/data/invalid-messages/array-of-nil.message: regression test
11098
11099         * test/data/valid-messages/array-of-array-of-uint32.message:
11100         happened to write this so added it to suite
11101
11102 2003-04-08  Havoc Pennington  <hp@redhat.com>
11103
11104         * bus/driver.c (bus_driver_handle_acquire_service): init
11105         retval/reply before checking name
11106
11107         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11108         recursion depth argument
11109
11110         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11111         in the public struct for future extension
11112
11113         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11114         typo
11115
11116         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11117         message
11118
11119         * doc/dbus-specification.sgml: fix typo
11120
11121 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11122
11123         Implemented recursive types, named types and new-style iters
11124
11125         * bus/driver.c:
11126         * glib/test-thread-client.c: (thread_func):
11127         * glib/test-thread-server.c: (handle_test_message):
11128         * test/test-service.c: (handle_echo):
11129         Update to new api
11130
11131         * dbus/Makefile.am:
11132         * dbus/dbus-dict.c:
11133         * dbus/dbus-dict.h:
11134         * dbus/dbus.h
11135         Remove DBusDict
11136
11137         * dbus/dbus-internals.c: (_dbus_type_to_string):
11138         Update for new types.
11139
11140         * dbus/dbus-marshal.[ch]:
11141         Implement recursive types and the new marshalling format.
11142         Remove hardcoded dict marshalling.
11143         Marshal named types.
11144
11145         * dbus/dbus-message-builder.c:
11146         Add BYTE_ARRAY.
11147         Remove references to old types
11148
11149         * dbus/dbus-message.[ch]:
11150         New non-refcounted iter API that supports recursive iters.
11151         Use iters for appending, including support for recursive
11152         iters.
11153         Add byte and named type support.
11154         Update everything to new marshalling formats.
11155         Add tests for new API.
11156
11157         * dbus/dbus-protocol.h:
11158         Remove old array types.
11159         Add types: BYTE, ARRAY, DICT, NAMED
11160
11161         * dbus/dbus-string.c:
11162         * dbus/dbus-sysdeps.c:
11163         Make parse_double locale safe.
11164
11165         * dbus/dbus-test-main.c:
11166         Call setlocale.
11167
11168         * dbus/dbus-test.c:
11169         Kill dict test
11170
11171         * doc/dbus-specification.sgml:
11172         Update spec
11173
11174         * test/data/incomplete-messages/missing-body.message:
11175         * test/data/invalid-messages/bad-boolean.message:
11176         * test/data/invalid-messages/bad-boolean-array.message:
11177         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11178         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11179         * test/data/invalid-messages/too-short-dict.message:
11180         * test/data/valid-messages/dict-simple.message:
11181         * test/data/valid-messages/dict.message:
11182         * test/data/valid-messages/emptiness.message:
11183         * test/data/valid-messages/lots-of-arguments.message:
11184         * test/data/valid-messages/no-padding.message:
11185         * test/data/valid-messages/recursive-types.message:
11186         Add missing NAME fields
11187         Fix up dicts & arrays
11188
11189         * test/data/invalid-messages/dict-with-nil-value.message:
11190         Removed, this is not invalid anymore.
11191
11192         * test/data/valid-messages/recursive-types.message:
11193         Add new test for deeply recursive types.
11194
11195 2003-04-07  Havoc Pennington  <hp@pobox.com>
11196
11197         * bus/driver.c (bus_driver_handle_acquire_service): return an
11198         error if you try to acquire a service that starts with ':'
11199
11200 2003-04-07  Havoc Pennington  <hp@redhat.com>
11201
11202         * doc/dbus-specification.sgml: require that base service names
11203         start with ':' and that the base service is created/deleted
11204         as first and last things a connection does on the bus
11205
11206         * bus/dispatch.c (check_existent_service_activation): lots more
11207         work on the activation test; it doesn't fully pass yet...
11208
11209         * test/test-service.c (main): fix so we don't memleak the
11210         connection to the message bus
11211         (filter_func): accept a message asking us to exit
11212
11213 2003-04-06  Havoc Pennington  <hp@pobox.com>
11214
11215         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11216         from Colin Walters
11217
11218         * configure.in: fixes to Qt detection from Colin Walters
11219
11220         * doc/Makefile.am: Only remove generated docbook dirs if they
11221         exist, from Colin Walters
11222
11223         * dbus/dbus-bus.c: change how we set well-known connections to
11224         NULL, so that it works if a single connection is stored in
11225         two well-known array slots.
11226
11227         * test/Makefile.am: remove a lot of stuff that isn't immediately
11228         useful, it's in CVS history if we want it.
11229
11230         * test/test-service.c: use dbus-mainloop instead of that
11231         watch.[hc] crack
11232
11233 2003-04-06  Havoc Pennington  <hp@pobox.com>
11234
11235         * dbus/Makefile.am: split lists of sources into stuff that goes in
11236         the library, util functions that go in the lib and are also used
11237         elsewhere, and util functions that are used in tests/daemon but
11238         don't go in the lib.
11239
11240         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11241         here so it can be used in test binaries also
11242
11243 2003-04-06  Havoc Pennington  <hp@pobox.com>
11244
11245         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11246         here in the parent process, so we can return an error if it
11247         fails. Also, move some of the code into the child so the parent
11248         is less hosed if we fail midway through.
11249
11250         * bus/bus.c (bus_context_new): move pidfile detection further up
11251         in the function, before we start overwriting sockets and such.
11252
11253         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11254
11255         * configure.in: add --with-system-pid-file and --with-system-socket
11256
11257 2003-04-06  Colin Walters  <walters@verbum.org>
11258
11259         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11260
11261         * bus/system.conf.in: Declare a pidfile.
11262
11263         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11264         create one (if appropriate).
11265
11266         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11267         (struct BusConfigParser) [pidfile]: New.
11268         (element_type_to_name, merge_included, start_busconfig_child)
11269         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11270         (bus_config_parser_unref): Free it.
11271         (bus_config_parser_get_pidfile): New function.
11272
11273         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11274
11275         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11276
11277         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11278
11279         * dbus/dbus-sysdeps.h: Prototype it.
11280
11281 2003-04-06  Havoc Pennington  <hp@pobox.com>
11282
11283         * bus/bus.c (bus_context_new): print the address in here, rather
11284         than in main(), because we need to do it before forking the daemon
11285
11286         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11287         on the service nonexistent error
11288
11289         * bus/driver.c (bus_driver_handle_acquire_service): set the
11290         sender on the AcquireService reply
11291
11292         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11293         server also listen on a UNIX socket so services can connect to it.
11294
11295 2003-04-06  Havoc Pennington  <hp@pobox.com>
11296
11297         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11298         so it detects deadlocks and also we actually init threads when
11299         debugging.
11300
11301 2003-04-06  Havoc Pennington  <hp@pobox.com>
11302
11303         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11304         save the domain socket name, and unlink it when we disconnect the
11305         server. Means that at least when we exit normally, we won't leave
11306         a bunch of junk in /tmp
11307
11308         * dbus/dbus-transport-unix.c
11309         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11310         memory management). (I was making a real change here but then
11311         didn't)
11312
11313 2003-04-06  Havoc Pennington  <hp@pobox.com>
11314
11315         * bus/bus.c (bus_context_new): fix wrong handling of
11316         server_data_slot_unref() in the error case.
11317
11318         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11319         "(condition) != 0" to _dbus_real_assert so that
11320         "_dbus_assert (pointer)" doesn't cause a warning
11321
11322         * bus/main.c (main): accept --print-address option to print out
11323         the message bus address
11324
11325         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11326
11327         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11328         "tmpdir" option to unix: address on client side
11329
11330         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11331         to unix: address
11332
11333         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11334         we can use to create sockets in the test suite.
11335
11336         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11337         cleanly. To be used for testing.
11338
11339         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11340
11341         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11342
11343         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11344         handle trying to call this when there's no servers active
11345
11346 2003-04-05  Havoc Pennington  <hp@pobox.com>
11347
11348         * NEWS: update
11349
11350         * configure.in: 0.8
11351
11352 2003-04-05  Havoc Pennington  <hp@pobox.com>
11353
11354         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11355         crash on startup. Need to get "try starting the daemon"
11356         in the test suite I guess. ;-)
11357
11358         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11359         tracked the number of open connections; it's better done in
11360         application-specific code as you want it to span all servers etc.
11361
11362 2003-04-05  Havoc Pennington  <hp@pobox.com>
11363
11364         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11365         patch from Colin Walters
11366
11367 2003-04-05  Havoc Pennington  <hp@pobox.com>
11368
11369         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11370         reality; in fact multiple mechanisms are allowed.
11371
11372         * dbus/dbus-internals.c (_dbus_real_assert)
11373         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11374         _dbus_assert_not_reached() into functions, so that they don't show
11375         up in basic block counts for test coverage, and don't use up as
11376         much disk space. Does mean slower execution speed though, so
11377         assumes --disable-asserts is the normal production case.
11378
11379 2003-04-05  Havoc Pennington  <hp@pobox.com>
11380
11381         * test/Makefile.am (dist-hook): also dist *.in files
11382
11383         * NEWS: update
11384
11385         * configure.in: 0.7
11386
11387 2003-04-05  Havoc Pennington  <hp@pobox.com>
11388
11389         * dbus/dbus-string.c: docs warning
11390
11391         * dbus/dbus-spawn.c: missing docs
11392
11393         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11394
11395 2003-04-05  Havoc Pennington  <hp@pobox.com>
11396
11397         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11398         magic from GLib
11399
11400         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11401         to -1 once we've reaped the babysitter
11402         (_dbus_babysitter_handle_watch): do as much work as we can, not
11403         just one go of it
11404
11405         * bus/activation.c: add code using DBusBabysitter so that we
11406         handle it when a service fails to start up properly.
11407         (bus_activation_service_created): don't remove the activation
11408         entries as we go, just let them get removed when we free the pending
11409         activation. Unref reply messages after sending them.
11410
11411 2003-04-05  Havoc Pennington  <hp@pobox.com>
11412
11413         * test/decode-gcov.c (main): print per-directory stats in the report
11414
11415         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11416
11417 2003-04-05  Havoc Pennington  <hp@pobox.com>
11418
11419         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11420
11421         * test/decode-gcov.c: hack up a little program to suck data
11422         out of gcov files. Yes this is sort of silly.
11423
11424         * configure.in: define something in config.h and do an
11425         AM_CONDITIONAL when gcov is enabled
11426
11427 2003-04-04  Havoc Pennington  <hp@redhat.com>
11428
11429         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11430         return a "babysitter" object that is used to monitor the status of
11431         the spawned process and reap it when required.
11432
11433         * test/test-segfault.c, test/test-exit.c,
11434         test/test-sleep-forever.c: binaries that do various lame things,
11435         used in the test suite.
11436
11437         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11438
11439 2003-04-03  Havoc Pennington  <hp@pobox.com>
11440
11441         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11442         in preparation for modifying it, dbus-sysdeps is getting
11443         a bit unmanageable.
11444
11445 2003-04-03  Havoc Pennington  <hp@redhat.com>
11446
11447         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11448         have multiple ones
11449
11450         * bus/*.[hc]: adapt to mainloop change
11451
11452 2003-04-03  Havoc Pennington  <hp@redhat.com>
11453
11454         * bus/activation.c (load_directory): fix up memleaks
11455         (bus_activation_entry_free): free the entry
11456
11457         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11458         we get one from the message bus; fix memleaks.
11459
11460         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11461
11462 2003-04-03  Havoc Pennington  <hp@pobox.com>
11463
11464         * bus/config-parser.c (bus_config_parser_unref): free
11465         list of mechanisms, bug discovered by test suite enhancements
11466         (putting system.conf and session.conf into suite)
11467
11468         * test/Makefile.am, test/test-service.c: add placeholder for a
11469         test service that we'll activate as part of test suite. Doesn't
11470         do anything yet.
11471
11472         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11473         setting NULL value, and use system malloc not dbus_malloc()
11474         when we have unavoidable memleakage.
11475
11476         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11477         didn't work, and support DBUS_BUS_ACTIVATION.
11478
11479         * bus/activation.c (child_setup): pass our well-known bus type to
11480         the child
11481
11482         * bus/config-parser.c: support <type> to specify well-known type
11483
11484         * doc/dbus-specification.sgml: document the env variables to
11485         locate well-known buses and find service activator
11486
11487 2003-04-02  Havoc Pennington  <hp@redhat.com>
11488
11489         * test/Makefile.am (all-local): add a rule to copy tests to
11490         builddir, so we can have generated tests. Use this to remove the
11491         silly hack for testing system.conf and session.conf. Will use this
11492         shortly to generate .service files pointing to test binaries.
11493
11494 2003-04-02  Havoc Pennington  <hp@redhat.com>
11495
11496         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11497         current alloc and needed new length, not max of the doubled
11498         allocation and needed new length. Also, when building tests,
11499         don't do the double-allocation stuff, just realloc every time.
11500
11501 2003-04-02  Havoc Pennington  <hp@redhat.com>
11502
11503         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11504         in error messages
11505         (_dbus_string_get_dirname): new
11506         (_dbus_sysdeps_test): new
11507         (_dbus_directory_open): include dirnames in error messages
11508
11509         * bus/config-parser.c: interpret <include> and <includedir> and
11510         <servicedir> relative to config file location if the given
11511         filename is not absolute.
11512
11513         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11514
11515 2003-04-02  Havoc Pennington  <hp@redhat.com>
11516
11517         * bus/connection.c (bus_transaction_send_error_reply): set sender
11518         service for the error, and unref the reply on success
11519
11520         * bus/activation.c: convert to use BusTransaction so OOM can be
11521         handled correctly
11522         (bus_activation_service_created): set sender of the message
11523
11524 2003-04-01  Havoc Pennington  <hp@redhat.com>
11525
11526         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11527         <includedir> (at least mostly)
11528
11529         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11530         first, then the user ID
11531
11532 2003-04-01  Havoc Pennington  <hp@pobox.com>
11533
11534         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11535         function
11536
11537         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11538
11539         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11540
11541         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11542         socket 0777, and unlink any existing socket.
11543
11544         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11545         the configuration file so specifies; set up auth mechanism
11546         restrictions
11547
11548         * bus/config-parser.c (bus_config_parser_content): add support
11549         for <fork> option and fill in code for <auth>
11550
11551         * bus/system.conf.in: add <fork/> to default configuration,
11552         and limit auth mechanisms to EXTERNAL
11553
11554         * doc/config-file.txt (Elements): add <fork>
11555
11556         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11557         (_dbus_change_identity): new function
11558
11559 2003-03-31  Havoc Pennington  <hp@redhat.com>
11560
11561         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11562         (_dbus_listen_unix_socket): fix off-by-one error in null
11563         termination spotted by Nalin
11564
11565 2003-03-31  Havoc Pennington  <hp@redhat.com>
11566
11567         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11568         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11569         having a real home directory available.
11570
11571 2003-03-31  Havoc Pennington  <hp@redhat.com>
11572
11573         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11574
11575         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11576
11577         * configure.in: add support for specifying a style of init script
11578         to install
11579
11580 2003-03-31  Havoc Pennington  <hp@redhat.com>
11581
11582         Fix some annoying DBusString API and fix all affected code.
11583
11584         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11585         max_length argument
11586         (_dbus_string_get_data): change to return string instead of using
11587         an out param
11588         (_dbus_string_get_const_data): ditto
11589         (_dbus_string_get_data_len): ditto
11590         (_dbus_string_get_const_data_len): ditto
11591
11592 2003-03-31  Havoc Pennington  <hp@redhat.com>
11593
11594         * bus/main.c (main): fix up the command line arguments to be nicer
11595
11596 2003-03-31  Havoc Pennington  <hp@redhat.com>
11597
11598         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11599         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11600         final location that lands in the config file
11601
11602         * bus/config-loader-expat.c (bus_config_load): fix type of
11603         XML_Parser variable
11604
11605         * doc/TODO: remove TODO item for dbus_bus_get()
11606
11607         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11608
11609 2003-03-31  Havoc Pennington  <hp@pobox.com>
11610
11611         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11612         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11613         argument since they are always client side
11614
11615         * dbus/dbus-server.c (dbus_server_get_address): new function
11616
11617         * bus/main.c (main): take the configuration file as an argument.
11618
11619         * test/data/valid-config-files/debug-allow-all.conf: new file to
11620         use with dispatch.c tests for example
11621
11622         * bus/test-main.c (main): require test data dir
11623
11624         * bus/bus.c (bus_context_new): change this to take a
11625         configuration file name as argument
11626
11627         * doc/config-file.txt (Elements): add <servicedir>
11628
11629         * bus/system.conf, bus/session.conf: new files
11630
11631         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11632         well-known socket if none set
11633
11634         * configure.in: create system.conf and session.conf
11635
11636 2003-03-30  Havoc Pennington  <hp@pobox.com>
11637
11638         * bus/config-parser.c: hacking
11639
11640         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11641         to shut down, since it could cause weirdness with the DBusList
11642         lock
11643
11644         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11645         link-oriented stack routines
11646         (alloc_link): free the mempool if the first alloc from it fails
11647
11648         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11649
11650         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11651         from GLib
11652         (_dbus_string_skip_white): new
11653
11654         * doc/config-file.txt (Elements): add <includedir>
11655
11656 2003-03-28  Havoc Pennington  <hp@pobox.com>
11657
11658         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11659         (_dbus_string_copy_data): new functions
11660
11661 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11662
11663         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11664         * dbus/dbus-bus.h:
11665         Add dbus_bus_get.
11666
11667         * dbus/dbus-memory.c:
11668         Fix a doc comment.
11669
11670 2003-03-28  Havoc Pennington  <hp@pobox.com>
11671
11672         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11673         I think it may have just been superstition. Not sure.
11674
11675         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11676         failures that were not being handled.
11677
11678         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11679
11680         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11681         row that will fail on out-of-memory.
11682
11683         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11684         function for testing out-of-memory handling.
11685
11686         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11687         allocation functions, they do map exactly to the expat ones.
11688
11689 2003-03-27  Havoc Pennington  <hp@redhat.com>
11690
11691         * bus/config-loader-libxml.c (bus_config_load): add another error
11692         check
11693
11694 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11695
11696         * doc/TODO:
11697         Add note about automatic service activation.
11698
11699         * doc/dbus-specification.sgml:
11700         Rename the specification and clarify a few things.
11701
11702 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11703
11704         * Doxyfile.in:
11705         * dbus/dbus-address.c:
11706         * dbus/dbus-dict.c:
11707         * dbus/dbus-marshal.c:
11708         * dbus/dbus-server-debug-pipe.c:
11709         * dbus/dbus-transport-unix.c:
11710         Fix documentation warnings.
11711
11712 2003-03-26  Havoc Pennington  <hp@pobox.com>
11713
11714         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11715         after every test so it's quick and easy to see which leaked, and
11716         so we test multiple dbus_shutdown() calls
11717
11718         * configure.in: change configure.in XML stuff to also support
11719         expat
11720
11721         * config-loader-libxml.c: some hacking
11722
11723         * config-loader-expat.c: some hacking
11724
11725         * config-parser.c: some hacking, plus tests
11726
11727 2003-03-25  Havoc Pennington  <hp@redhat.com>
11728
11729         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11730
11731         * configure.in: add --with-xml option to specify XML library,
11732         right now only libxml is supported.
11733
11734         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11735         nonworking code between home and work, still just stubs
11736
11737 2003-03-24  Havoc Pennington  <hp@redhat.com>
11738
11739         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11740         file
11741
11742         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11743         NULL argument for "message" if the error is a well-known one,
11744         fill in a generic message in this case.
11745
11746         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11747         favor of DBusError
11748
11749         * bus/test.c (bus_test_flush_bus): add
11750
11751         * bus/policy.c (bus_policy_test): test code stub
11752
11753 2003-03-24  Havoc Pennington  <hp@pobox.com>
11754
11755         * bus/connection.c (bus_connections_setup_connection): set up
11756         the "can this user connect" function, but it always returns
11757         TRUE until we have a config file parser so we can have a config
11758         file that allows connections.
11759
11760 2003-03-23  Havoc Pennington  <hp@pobox.com>
11761
11762         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11763         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11764         the mutex, so we can check for proper memory management
11765         and OOM handling.
11766
11767         * dbus/dbus-dataslot.c: remove the mutex from
11768         DBusDataSlotAllocator and lock it manually when using it,
11769         to simplify fitting it into the global slots framework.
11770
11771         * dbus/dbus-threads.c (init_static_locks): rework how we're
11772         handling global locks so they are easily shut down.
11773
11774         * bus/policy.c (bus_policy_append_rule): fix
11775
11776         * bus/test-main.c (main): check for memleaks
11777
11778         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11779         test suite check for memleaks
11780
11781         * dbus/dbus-memory.c: add support in test mode for tracking
11782         number of outstanding blocks
11783
11784 2003-03-23  Havoc Pennington  <hp@pobox.com>
11785
11786         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11787         policies code
11788
11789         * dbus/dbus-hash.h: add ULONG hash keys
11790
11791         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11792         (_dbus_get_group_id): new function
11793
11794 2003-03-20  Havoc Pennington  <hp@redhat.com>
11795
11796         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11797         new function
11798         (dbus_connection_get_unix_user): new function
11799
11800 2003-03-20  Havoc Pennington  <hp@pobox.com>
11801
11802         * bus/connection.c (bus_connection_send_oom_error): assert that
11803         message has a sender
11804         (connection_execute_transaction): ditto
11805         (bus_connection_preallocate_oom_error): fix to set the sender, and
11806         set recipient to the destination service, not the bus driver
11807
11808         * bus/policy.c: hacking
11809
11810         * dbus/dbus-message.c (dbus_message_service_is): new function
11811         (dbus_message_sender_is): new
11812
11813 2003-03-19  Havoc Pennington  <hp@redhat.com>
11814
11815         * bus/policy.c: start sketching code for policy restrictions on
11816         what connections can do.
11817
11818 2003-03-18  Havoc Pennington  <hp@redhat.com>
11819
11820         * doc/TODO: some notes on high-level todo items. Little nitpick
11821         stuff is all in @todo, so no need to add it here.
11822
11823         * doc/config-file.txt: some notes on how config file might look
11824
11825 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11826
11827         * configure.in: 0.6
11828
11829         * NEWS: Update.
11830
11831 2003-03-17  Havoc Pennington  <hp@redhat.com>
11832
11833         * dbus/dbus-internals.h: add gcc attributes so that
11834         our printf-style functions warn on bad arguments to
11835         format
11836
11837         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11838         format bug
11839
11840         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11841         printf format bug
11842
11843 2003-03-17  Havoc Pennington  <hp@redhat.com>
11844
11845         * bus/test-main.c (main): make it print something as it runs
11846         so make check doesn't look stuck
11847
11848         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11849         from CVS, now obsolete
11850
11851 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11852
11853         * bus/dispatch.c: (bus_dispatch):
11854         Refetch the service name since it may have been reallocated
11855         when dbus_message_set_sender was called.
11856
11857         * dbus/dbus-sysdeps.c: (_dbus_accept):
11858         Add address and address length variables and use them to stop
11859         valgrind from complaining.
11860
11861 2003-03-17  Havoc Pennington  <hp@pobox.com>
11862
11863         All tests pass, no memleaks, no valgrind complaints.
11864
11865         * bus/test.c: refcount handler_slot
11866
11867         * bus/connection.c (bus_connections_new): refcount
11868         connection_data_slot
11869
11870         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11871         bytes so that auth scripts pass.
11872
11873         * bus/dispatch.c: init message_handler_slot so it gets allocated
11874         properly
11875
11876         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11877
11878         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11879         dealloc server_pipe_hash when no longer used for benefit of
11880         leak checking
11881
11882         * dbus/dbus-auth.c (process_command): memleak fix
11883
11884         * bus/dispatch.c (check_hello_message): memleak fix
11885
11886 2003-03-16  Havoc Pennington  <hp@pobox.com>
11887
11888         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11889
11890 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11891
11892         * bus/activation.c (bus_activation_activate_service): Append
11893         the pending activation entry to the list of pending activations.
11894
11895 2003-03-16  Havoc Pennington  <hp@pobox.com>
11896
11897         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11898         connections
11899
11900         * dbus/dbus-address.c (create_entry): fix OOM handling when
11901         failing to alloc entry->method
11902
11903 2003-03-16  Havoc Pennington  <hp@pobox.com>
11904
11905         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11906         the watch
11907
11908         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11909         add some missing dbus_set_result
11910
11911         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11912         alloc the DBusMessageHandler
11913
11914         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11915         the transport here, since we call this from the finalizer; it
11916         resulted in a double-finalize.
11917
11918         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11919         where we tried to use transport->connection that was NULL,
11920         happened when transport was disconnected early on due to OOM
11921
11922         * bus/*.c: adapt to handle OOM for watches/timeouts
11923
11924         * dbus/dbus-transport-unix.c: port to handle OOM during
11925         watch handling
11926
11927         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11928         reference to unused bytes instead of a copy
11929
11930         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11931         out of memory
11932
11933         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11934         FALSE on OOM
11935
11936         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11937         of memory
11938
11939 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11940
11941         * doc/dbus-specification.sgml:
11942         Document reply message for ActivateService.
11943
11944 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11945
11946         * bus/activation.c: (bus_pending_activation_entry_free),
11947         (bus_pending_activation_free), (bus_activation_new),
11948         (bus_activation_unref), (bus_activation_service_created),
11949         (bus_activation_activate_service):
11950         * bus/activation.h:
11951         * bus/bus.c: (bus_context_new):
11952         * bus/desktop-file.c: (new_section):
11953         * bus/driver.c: (bus_driver_send_service_deleted),
11954         (bus_driver_handle_activate_service):
11955         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11956         * bus/services.h:
11957         * dbus/dbus-connection.c:
11958         (dbus_connection_send_with_reply_and_block):
11959         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11960         * dbus/dbus-protocol.h:
11961         Make activation work better. Now pending activations will be queued
11962         and the daemon won't try to activate services that are already registered.
11963
11964 2003-03-16  Havoc Pennington  <hp@pobox.com>
11965
11966         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11967         connection data
11968
11969         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11970         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11971
11972 2003-03-16  Havoc Pennington  <hp@pobox.com>
11973
11974         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11975         this. always run the test suite before commit...
11976
11977         * bus/*: adapt to DBusConnection API changes
11978
11979         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11980         requires renaming stuff to avoid dbus_connection_dispatch name
11981         conflict.
11982
11983         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11984         function
11985
11986         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11987         separate from _dbus_message_loader_return_buffer()
11988
11989         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11990         this, because it's now always broken to use; the number of
11991         messages in queue vs. the number still buffered by the message
11992         loader is undefined/meaningless. Should use
11993         dbus_connection_get_dispatch_state().
11994         (dbus_connection_dispatch): rename from
11995         dbus_connection_dispatch_message
11996
11997 2003-03-16  Havoc Pennington  <hp@pobox.com>
11998
11999         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12000         implementation
12001
12002 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12003
12004         * dbus/dbus-connection.c:
12005         (dbus_connection_send_with_reply_and_block):
12006         Decrease connection->n_incoming when removing an entry
12007         from the list.
12008         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12009         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12010         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12011         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12012         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12013         (dbus_dict_get_byte_array):
12014         Handle NULL arrays and strings. Also add support for byte arrays.
12015
12016         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12017         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12018         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12019         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12020         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12021         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12022         * dbus/dbus-marshal.h:
12023         Add support for marshalling and demarshalling empty arrays and strings.
12024
12025         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12026         (dbus_message_append_string_array),
12027         (dbus_message_iter_get_boolean),
12028         (dbus_message_iter_get_boolean_array),
12029         (dbus_message_iter_get_int32_array),
12030         (dbus_message_iter_get_uint32_array),
12031         (dbus_message_iter_get_double_array),
12032         (dbus_message_iter_get_byte_array),
12033         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12034         (check_message_handling):
12035         Add support for getting empty arrays and dicts.
12036
12037         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12038         Don't do any validation at all for now, that's better than just checking
12039         for ASCII.
12040
12041         * test/data/valid-messages/emptiness.message:
12042         New test message with lots of empty arrays.
12043
12044 2003-03-16  Havoc Pennington  <hp@pobox.com>
12045
12046         * dbus/dbus-connection.c
12047         (_dbus_connection_queue_received_message_link): new function that
12048         can't fail due to OOM
12049
12050         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12051         new function pops a message together with a list link
12052         containing it.
12053
12054         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12055         message queuing functions to avoid needing to alloc memory
12056
12057 2003-03-16  Havoc Pennington  <hp@pobox.com>
12058
12059         Oops - test code was only testing failure of around 30 of the
12060         mallocs in the test path, but it turns out there are 500+
12061         mallocs. I believe this was due to misguided linking setup such
12062         that there was one copy of dbus_malloc etc. in the daemon and one
12063         in the shared lib, and only daemon mallocs were tested. In any
12064         case, the test case now tests all 500+ mallocs, and doesn't pass
12065         yet, though there are lots of fixes in this patch.
12066
12067         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12068         this so that it doesn't need to allocate memory, since it
12069         has no way of indicating failure due to OOM (and would be
12070         annoying if it did).
12071
12072         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12073
12074         * bus/Makefile.am: rearrange to create two self-contained
12075         libraries, to avoid having libraries with overlapping symbols.
12076         that was resulting in weirdness, e.g. I'm pretty sure there
12077         were two copies of global static variables.
12078
12079         * dbus/dbus-internals.c: move the malloc debug stuff to
12080         dbus-memory.c
12081
12082         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12083         empty.
12084
12085         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12086
12087         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12088         on failure.
12089
12090         * bus/dispatch.c (bus_dispatch_add_connection): free
12091         message_handler_slot when no longer using it, so
12092         memory leak checkers are happy for the test suite.
12093
12094         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12095
12096         * bus/bus.c (new_connection_callback): disconnect in here if
12097         bus_connections_setup_connection fails.
12098
12099         * bus/connection.c (bus_connections_unref): fix to free the
12100         connections
12101         (bus_connections_setup_connection): if this fails, don't
12102         disconnect the connection, just be sure there are no side
12103         effects.
12104
12105         * dbus/dbus-string.c (undo_alignment): unbreak this
12106
12107         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12108         leaking
12109         (_dbus_auth_new): fix the order in which we free strings
12110         on OOM failure
12111
12112         * bus/connection.c (bus_connection_disconnected): fix to
12113         not send ServiceDeleted multiple times in case of memory
12114         allocation failure
12115
12116         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12117         get the base service name
12118         (dbus_bus_register_client): don't return base service name,
12119         instead store it on the DBusConnection and have an accessor
12120         function for it.
12121         (dbus_bus_register_client): rename dbus_bus_register()
12122
12123         * bus/dispatch.c (check_hello_message): verify that other
12124         connections on the bus also got the correct results, not
12125         just the one sending hello
12126
12127 2003-03-15  Havoc Pennington  <hp@pobox.com>
12128
12129         Make it pass the Hello handling test including all OOM codepaths.
12130         Now to do other messages...
12131
12132         * bus/services.c (bus_service_remove_owner): fix crash when
12133         removing owner from an empty list of owners
12134         (bus_registry_ensure): don't leave service in the list of
12135         a connection's owned services if we fail to put the service
12136         in the hash table.
12137
12138         * bus/connection.c (bus_connection_preallocate_oom_error): set
12139         error flag on the OOM error.
12140
12141         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12142         handle _dbus_transport_set_connection failure
12143
12144         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12145         to create watches up front and simply enable/disable them as
12146         needed.
12147         (unix_connection_set): this can now fail on OOM
12148
12149         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12150         of enabling/disabling a watch or timeout.
12151
12152         * bus/loop.c (bus_loop_iterate): don't touch disabled
12153         watches/timeouts
12154
12155         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12156
12157 2003-03-15  Havoc Pennington  <hp@pobox.com>
12158
12159         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12160         write useful test code, after all that futzing around ;-)
12161
12162         Test does not yet pass because we can't handle OOM in
12163         _dbus_transport_messages_pending (basically,
12164         dbus_connection_preallocate_send() does not prealloc the write
12165         watch). To fix this, I think we need to add new stuff to
12166         set_watch_functions, namely a SetEnabled function so we can alloc
12167         the watch earlier, then enable it later.
12168
12169         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12170         dbus-memory.c to the convenience lib
12171
12172         * bus/test.c: rename some static functions to keep them clearly
12173         distinct from stuff in connection.c. Handle client disconnection.
12174
12175 2003-03-14  Havoc Pennington  <hp@pobox.com>
12176
12177         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12178         transport, tests more of the real codepath. Set up clients
12179         with bus_setup_debug_client.
12180
12181         * bus/test.c (bus_setup_debug_client): function to set up debug
12182         "clients" on the main loop
12183
12184         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12185         support
12186
12187         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12188         server type
12189
12190         * dbus/dbus-server-debug.c: support a debug server based on pipes
12191
12192         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12193         (_dbus_close): new function
12194
12195         * configure.in: check for socketpair
12196
12197 2003-03-14  Havoc Pennington  <hp@redhat.com>
12198
12199         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12200         cheesy hack
12201
12202         * dbus/dbus-transport-debug.c: rework this a good bit to be
12203         less complicated. hopefully still works.
12204
12205         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12206         manually
12207
12208         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12209         after running it
12210
12211         * dbus/dbus-message.c (dbus_message_copy): rename from
12212         dbus_message_new_from_message, fix it up to copy
12213         all the message fields, add test case
12214
12215         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12216         not quite passing yet
12217
12218 2003-03-14  Havoc Pennington  <hp@pobox.com>
12219
12220         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12221         until no work remains" in test code. (the large diff here
12222         is just code movement, no actual changes)
12223
12224         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12225         1, no point waiting around for test code.
12226         (_dbus_server_debug_accept_transport): unref the timeout
12227         after adding it (right?)
12228
12229         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12230
12231 2003-03-13  Havoc Pennington  <hp@redhat.com>
12232
12233         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12234         out of memory
12235
12236         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12237         of memory
12238
12239         * dbus/dbus-connection.h: Make AddWatchFunction and
12240         AddTimeoutFunction return a bool so they can fail on out-of-memory
12241
12242         * bus/bus.c (bus_context_new): set up timeout handlers
12243
12244         * bus/connection.c (bus_connections_setup_connection): set up
12245         timeout handlers
12246
12247         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12248         can fail
12249
12250         * bus/bus.c (bus_context_new): adapt to changes
12251
12252         * bus/connection.c: adapt to changes
12253
12254         * test/watch.c: adapt to DBusWatch changes
12255
12256         * bus/dispatch.c (bus_dispatch_test): started adding this but
12257         didn't finish
12258
12259 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12260
12261         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12262
12263 2003-03-13  Havoc Pennington  <hp@pobox.com>
12264
12265         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12266         set up a test framework as for the library
12267
12268 2003-03-12  Havoc Pennington  <hp@pobox.com>
12269
12270         Throughout: purge global variables, introduce BusActivation,
12271         BusConnections, BusRegistry, etc. objects instead.
12272
12273         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12274         message bus object
12275
12276         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12277         going to redo this a bit differently I think
12278
12279 2003-03-12  Havoc Pennington  <hp@redhat.com>
12280
12281         Mega-patch that gets the message bus daemon initially handling
12282         out-of-memory. Work still needed. Also lots of random
12283         moving stuff to DBusError instead of ResultCode.
12284
12285         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12286
12287         * dbus/dbus-connection.c
12288         (dbus_connection_send_with_reply_and_block): use DBusError
12289
12290         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12291         DBusResultCode
12292
12293         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12294         code here, as the only failure possible is OOM.
12295
12296         * bus/connection.c (bus_connection_disconnect):
12297         rename bus_connection_disconnected as it's a notification only
12298
12299         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12300         "name" on get_args failure, should be done by get_args;
12301         don't disconnect client for bad args, just return an error.
12302         (bus_driver_handle_service_exists): ditto
12303
12304         * bus/services.c (bus_services_list): NULL-terminate returned array
12305
12306         * bus/driver.c (bus_driver_send_service_lost)
12307         (bus_driver_send_service_acquired): send messages from driver to a
12308         specific client to the client's unique name, not to the broadcast
12309         service.
12310
12311         * dbus/dbus-message.c (decode_header_data): reject messages that
12312         contain no name field
12313         (_dbus_message_get_client_serial): rename to
12314         dbus_message_get_serial and make public
12315         (_dbus_message_set_serial): rename from set_client_serial
12316         (_dbus_message_set_reply_serial): make public
12317         (_dbus_message_get_reply_serial): make public
12318
12319         * bus/connection.c (bus_connection_foreach): allow stopping
12320         iteration by returning FALSE from foreach function.
12321
12322         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12323         (dbus_connection_free_preallocated_send)
12324         (dbus_connection_preallocate_send): new API for sending a message
12325         without possibility of malloc failure.
12326         (dbus_connection_send_message): rename to just
12327         dbus_connection_send (and same for whole function family)
12328
12329         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12330
12331         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12332
12333         * bus/activation.c: handle/return errors
12334
12335         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12336
12337         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12338         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12339         (_dbus_result_from_errno): move to this file
12340
12341 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12342
12343         * dbus/dbus-marshal.c:
12344         (_dbus_marshal_set_string):
12345         Take a length argument so we can marshal the correct string
12346         length.
12347
12348         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12349         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12350         (_dbus_marshal_test):
12351         * dbus/dbus-marshal.h:
12352         Add support for marshalling and demarshalling dicts.
12353
12354         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12355         Add support for TYPE DICT.
12356
12357         * dbus/dbus-message.c: (set_string_field):
12358         Adjust header padding.
12359
12360         (dbus_message_append_args_valist), (dbus_message_append_dict),
12361         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12362         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12363         (check_message_handling), (check_have_valid_message):
12364         * dbus/dbus-message.h:
12365         Add functions for setting and getting dicts.
12366
12367         * dbus/dbus-protocol.h:
12368         Add DBUS_TYPE_DICT.
12369
12370         * dbus/dbus.h:
12371         Add dbus-dict.h
12372
12373         * doc/dbus-specification.sgml:
12374         Add information about how dicts are marshalled.
12375
12376         * test/data/invalid-messages/dict-with-nil-value.message:
12377         * test/data/invalid-messages/too-short-dict.message:
12378         * test/data/valid-messages/dict-simple.message:
12379         * test/data/valid-messages/dict.message:
12380         Add sample messages containing dicts.
12381
12382 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12383
12384         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12385
12386 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12387
12388         * dbus/Makefile.am:
12389         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12390         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12391         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12392         (dbus_dict_set_double), (dbus_dict_set_string),
12393         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12394         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12395         (dbus_dict_set_string_array), (_dbus_dict_test):
12396         * dbus/dbus-dict.h:
12397         Fix according to comments from Havoc.
12398
12399 2003-03-06  Michael Meeks  <michael@server.home>
12400
12401         * configure.in: if we don't have kde-config, disable have_qt.
12402
12403 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12404
12405         * dbus/Makefile.am:
12406         Add dbus-dict.[ch]
12407
12408         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12409         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12410         (dbus_dict_remove), (dbus_dict_get_value_type),
12411         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12412         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12413         (dbus_dict_put_double), (dbus_dict_put_string),
12414         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12415         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12416         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12417         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12418         (dbus_dict_get_double), (dbus_dict_get_string),
12419         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12420         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12421         (dbus_dict_get_string_array), (_dbus_dict_test):
12422         * dbus/dbus-dict.h:
12423         Add DBusDict implementation
12424
12425         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12426         * dbus/dbus-test.h:
12427         Add _dbus_dict_test
12428
12429 2003-03-04  Havoc Pennington  <hp@pobox.com>
12430
12431         * test/data/auth/*: adapt to changes
12432
12433         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12434         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12435         userid
12436
12437         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12438         more stuff from being in a context name, to make the protocol
12439         simpler to deal with
12440
12441         * dbus/dbus-errors.c (dbus_error_has_name): new function
12442         (dbus_error_is_set): new function
12443
12444         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12445         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12446
12447         * dbus/dbus-connection.c (dbus_connection_flush): also read
12448         messages during a flush operation
12449
12450         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12451
12452 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12453
12454         * configure.in: Check for gethostbyname on Solaris.
12455
12456         * dbus/dbus-transport.c: (_dbus_transport_open):
12457         Remove duplicate "tcp" entry.
12458
12459         * doc/dbus-specification.sgml:
12460         Clarify some things.
12461
12462 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12463
12464         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12465         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12466         (_dbus_keyring_test):
12467         * dbus/dbus-md5.c: (_dbus_md5_compute):
12468         * dbus/dbus-sha.c: (_dbus_sha_compute):
12469         Plug memory leaks.
12470
12471 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12472
12473         * README: Add some things.
12474
12475 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12476
12477         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12478         after case DBUS_TYPE_BOOELAN.
12479
12480 2003-03-02  Havoc Pennington  <hp@pobox.com>
12481
12482         * test/break-loader.c (randomly_set_extreme_ints): add test that
12483         sets really huge and small integers
12484
12485         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12486         that length of boolean array fits in the string, and that
12487         string has room for boolean value in single-bool case.
12488
12489         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12490         optional value to "ALIGN" command which is what to fill the
12491         alignment with.
12492
12493         * test/data/valid-messages/no-padding.message: add regression
12494         test for the message padding problem
12495
12496 2003-03-02  Havoc Pennington  <hp@pobox.com>
12497
12498         * dbus/dbus-message.c (decode_header_data): fix to always init
12499         message_padding, from Benjamin Dauvergne
12500
12501 2003-03-02  Havoc Pennington  <hp@pobox.com>
12502
12503         * configure.in: 0.5
12504
12505         * NEWS: Update.
12506
12507 2003-03-01  Joe Shaw  <joe@assbarn.com>
12508
12509         * configure.in: Check for "struct cmsgcred" and try to access its
12510         members for BSD-like unices.
12511
12512         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12513         _dbus_read_credentials_unix_socket().
12514         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12515         read() for reading the credential byte off the unix socket.  Use
12516         struct cmsgcred on systems that support it.
12517
12518 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12519
12520         * glib/Makefile.am:
12521         * configure.in:
12522         Make gthreads-2.0 dependency optional. Don't build thread test if
12523         its not found.
12524
12525 2003-02-27  Havoc Pennington  <hp@pobox.com>
12526
12527         * dbus/dbus-connection.c
12528         (dbus_connection_send_message_with_reply_and_block): fix doh!
12529         doh! doh! bug that resulted in never removing a reply from the
12530         queue, no wonder we called get_reply_serial so much ;-)
12531
12532         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12533         and client serial instead of demarshaling them every time
12534
12535 2003-02-27  Havoc Pennington  <hp@pobox.com>
12536
12537         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12538         more inlined, using dbus-string-private.h, speeds things up
12539         substantially
12540
12541         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12542         when freeing the string
12543         (_dbus_string_steal_data): fix for align offset
12544         (undo_alignment): new function
12545
12546 2003-02-26  Havoc Pennington  <hp@redhat.com>
12547
12548         All kinds of audit fixes from Owen, plus initial attempt to
12549         handle unaligned memory returned from malloc.
12550
12551         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12552         leave room for align_offset and nul byte
12553         (fixup_alignment): function to track an align_offset and
12554         ensure real->str is aligned
12555         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12556         to allow a nul byte plus align offset
12557         (_dbus_string_lock): fix overflow issue
12558         (_dbus_string_init_const_len): add assertions on sanity of len,
12559         assign allocated to be ALLOCATION_PADDING larger than len
12560         (set_length): fixup the overflow handling
12561         (_dbus_string_get_data_len): fix overflow in assertion
12562         (open_gap): detect overflow in size of gap to be opened
12563         (_dbus_string_lengthen): add overflow check
12564         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12565         (_dbus_string_append): add overflow check
12566         (_dbus_string_append_unichar): overflow
12567         (_dbus_string_delete): fix overflow in assertion
12568         (_dbus_string_copy_len): overflow in assertion
12569         (_dbus_string_replace_len): overflows in assertions
12570         (_dbus_string_find): change to implement in terms of
12571         _dbus_string_find_to
12572         (_dbus_string_find_to): assorted fixage
12573         (_dbus_string_equal_c_str): assert c_str != NULL,
12574         fix logic so the function works
12575         (_dbus_string_ends_with_c_str): fix overflow thingy
12576         (_dbus_string_base64_encode): overflow fix
12577         (_dbus_string_validate_ascii): overflow
12578         (_dbus_string_validate_nul): overflow
12579
12580 2003-02-26  Havoc Pennington  <hp@redhat.com>
12581
12582         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12583
12584 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12585
12586         * configure.in:
12587         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12588
12589         * dbus/dbus-connection.c:
12590         * dbus/dbus-connection.h:
12591         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12592         Add dbus_connection_set_wakeup_main_function and use it when queueing
12593         incoming and outgoing messages.
12594
12595
12596         * dbus/dbus-dataslot.c:
12597         Threadsafe usage of DBusDataSlotAllocator
12598
12599         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12600         dbus_new can fail.
12601
12602         * dbus/dbus-server-unix.c:
12603         Add todo comment
12604
12605         * glib/dbus-gmain.c:
12606         Implement the new wakeup functions for glib.
12607
12608         * glib/Makefile.am:
12609         * glib/test-thread-client.c:
12610         * glib/test-thread-server.c:
12611         * glib/test-thread.h:
12612         Initial cut at some thread test code. Not really done yet.
12613
12614 2003-02-26  Havoc Pennington  <hp@pobox.com>
12615
12616         * dbus/dbus-connection.c
12617         (dbus_connection_send_message_with_reply_and_block): fix crash
12618         where we ref'd the outgoing message instead of the returned reply
12619
12620         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12621         at the end of this function, so if we didn't need to read for
12622         authentication, we reinstall it for receiving messages
12623
12624         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12625         a NULL sender for peer-to-peer case
12626
12627         * dbus/dbus-transport-unix.c (check_read_watch): handle
12628         !authenticated case correctly
12629
12630         * glib/dbus-gmain.c: add support for DBusServer
12631
12632         * dbus/dbus-server.c: add data slot support
12633
12634         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12635         return values and handle errors
12636
12637         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12638         DBusConnection
12639
12640         * Doxyfile.in (INPUT): add glib subdir
12641
12642         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12643         setup_with_g_main instead of hookup_with_g_main; write docs
12644
12645 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12646
12647         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12648         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12649         * dbus/dbus-message.c: (dbus_message_append_boolean),
12650         (dbus_message_append_boolean_array),
12651         (dbus_message_get_args_valist), (_dbus_message_test):
12652         * dbus/dbus-message.h:
12653         * doc/dbus-specification.sgml:
12654         Various fixes as pointed out by Havoc.
12655
12656         * test/data/invalid-messages/bad-boolean-array.message:
12657         * test/data/invalid-messages/bad-boolean.message:
12658         Add invalid boolean value test cases.
12659
12660 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12661
12662         * dbus/dbus-internals.c: (_dbus_type_to_string):
12663         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12664         (_dbus_marshal_validate_arg):
12665         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12666         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12667         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12668         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12669         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12670         (dbus_message_iter_get_double),
12671         (dbus_message_iter_get_boolean_array), (message_iter_test):
12672         * dbus/dbus-message.h:
12673         * dbus/dbus-protocol.h:
12674         * doc/dbus-specification.sgml:
12675         * test/data/valid-messages/lots-of-arguments.message:
12676         Add support for boolean and boolean array types.
12677
12678 2003-02-23  Havoc Pennington  <hp@pobox.com>
12679
12680         * dbus/dbus-keyring.c: finish most of this implementation and
12681         simple unit test
12682
12683         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12684         these barf if the error isn't cleared to NULL
12685
12686         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12687         (_dbus_create_directory): new function
12688
12689         * dbus/dbus-errors.c (dbus_set_error): fix warning
12690
12691         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12692         (_dbus_string_hex_decode): new function
12693         (test_hex_roundtrip): test code
12694
12695         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12696
12697         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12698
12699         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12700         the save-to-temp/rename trick to atomically write the new file
12701         (_dbus_string_parse_uint): new function
12702
12703 2003-02-22  Havoc Pennington  <hp@pobox.com>
12704
12705         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12706
12707 2003-02-22  Havoc Pennington  <hp@pobox.com>
12708
12709         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12710         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12711
12712         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12713
12714         * dbus/test/data/sha-1: add US government test suite for SHA-1
12715
12716 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12717
12718         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12719         Make string arrays NULL-terminated.
12720
12721         * dbus/dbus-memory.c: (dbus_free_string_array):
12722         * dbus/dbus-memory.h:
12723         New function for freeing NULL-terminated string arrays.
12724
12725         * dbus/dbus-message-builder.c: (append_quoted_string),
12726         (_dbus_message_data_load):
12727         Add support for array types.
12728
12729         * dbus/dbus-message.c: (check_message_handling):
12730         Add more types as test cases.
12731
12732         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12733         (_dbus_string_parse_double):
12734         Add the start offset to the end offset.
12735
12736         * test/data/valid-messages/lots-of-arguments.message:
12737         New test message with lots of arguments.
12738
12739 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12740
12741         * dbus/dbus-message.c: (dbus_message_append_nil),
12742         (dbus_message_append_int32), (dbus_message_append_uint32),
12743         (dbus_message_append_double), (dbus_message_append_string),
12744         (dbus_message_append_int32_array),
12745         (dbus_message_append_uint32_array),
12746         (dbus_message_append_double_array),
12747         (dbus_message_append_byte_array),
12748         (dbus_message_append_string_array):
12749         Fix all out-of-memory handling in these functions.
12750
12751 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12752
12753         * dbus/dbus-message.c: (dbus_message_append_nil):
12754         Fix a silly.
12755
12756 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12757
12758         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12759         (dbus_message_append_nil), (dbus_message_append_int32_array),
12760         (dbus_message_append_uint32_array),
12761         (dbus_message_append_double_array),
12762         (dbus_message_append_byte_array),
12763         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12764         (dbus_message_iter_get_int32_array),
12765         (dbus_message_iter_get_uint32_array),
12766         (dbus_message_iter_get_double_array),
12767         (dbus_message_iter_get_byte_array),
12768         (dbus_message_iter_get_string_array):
12769
12770         * dbus/dbus-message.h:
12771         Add functions for appending and getting arrays.
12772
12773 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12774
12775         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12776         element size at least 8 bytes, fixes mempool tests on
12777         64-bit machines.
12778
12779 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12780
12781         * dbus/dbus-transport-unix.c (unix_do_iteration):
12782         Unlock the connection mutex during a blocking select call.
12783         Add todo about how we need a way to wake up the select.
12784
12785         * dbus/dbus-connection-internal.h:
12786         * dbus/dbus-connection.c:
12787         Add _dbus_connection_lock and _dbus_connection_unlock.
12788
12789 2003-02-19  Havoc Pennington  <hp@pobox.com>
12790
12791         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12792         Doxyfile.in, not Doxyfile
12793
12794         * dbus/dbus-keyring.c: do some hacking on this
12795
12796         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12797
12798         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12799         dbus_error_init
12800         (dbus_set_error): remove dbus_error_init, check for message ==
12801         NULL *before* we sprintf into it, and add @todo about including
12802         system headers in this file
12803
12804         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12805
12806         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12807
12808         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12809         get various bits of user information based on either username
12810         or user ID
12811         (_dbus_homedir_from_username): new function
12812
12813 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12814
12815         * configure.in:
12816         Add check for nonposix getpwnam_r
12817
12818         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12819         Align the pool element size to a sizeof (void *) boundary.
12820
12821         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12822         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12823         General Solaris fixes.
12824
12825         * test/data/valid-messages/simplest-manual.message:
12826         Explicitly state that we want little-endian packing.
12827
12828 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12829
12830         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12831
12832         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12833         Added to create a transport connecting using a tcp/ip socket.
12834
12835         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12836         to a tcp socket at given host and port.
12837         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12838         hostname and port.
12839
12840         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12841
12842         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12843         Added to create a server listening on a TCP/IP socket.
12844
12845 2003-02-19  Havoc Pennington  <hp@pobox.com>
12846
12847         Throughout: mop up all the Doxygen warnings and undocumented
12848         stuff.
12849
12850         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12851         to search any paths.
12852
12853         * dbus/dbus-threads.c: move global mutex initializers to
12854         dbus-internals.h, multiple prototypes was confusing doxygen
12855         besides being kind of ugly
12856
12857         * Doxyfile (PREDEFINED): have Doxygen define
12858         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12859         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12860         (do not abuse the feature! it's for stuff like the autogenerated
12861         macros in dbus-md5.c, not just for things you don't feel like
12862         documenting...)
12863
12864 2003-02-18  Havoc Pennington  <hp@pobox.com>
12865
12866         * dbus/dbus-string.c (_dbus_string_zero): new function
12867
12868         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12869         wrap it in some dbus-friendly API
12870
12871         * dbus/dbus-types.h: add 16-bit types
12872
12873 2003-02-18  Joe Shaw  <joe@assbarn.com>
12874
12875         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12876         credentials from our currently running process.
12877         (get_word): Fix a buglet where we were copying the entire length
12878         instead of relative to our position.
12879
12880         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12881         keys on the stack... it's 640k of data.
12882
12883         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12884         read the credentials byte off the socket, even if we don't have
12885         SO_PEERCRED.
12886         (_dbus_poll): Implement poll() using select() for systems which
12887         don't have it.
12888
12889         * glib/test-dbus-glib.c (main): Print out an error if no
12890         parameters are given.
12891
12892         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12893         can fallback to a secondary auth mechanism if the first fails.
12894
12895 2003-02-18  Havoc Pennington  <hp@pobox.com>
12896
12897         * AUTHORS: add Alex
12898
12899 2003-02-17  Havoc Pennington  <hp@pobox.com>
12900
12901         * doc/dbus-specification.sgml: lots of cosmetic
12902         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12903         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12904         s/server/bus/ (except in authentication section). Add a section
12905         "Message Bus Message Routing"
12906
12907 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12908
12909         Release 0.4
12910
12911         * NEWS: Update
12912
12913 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12914
12915         * doc/dbus-specification.sgml:
12916         Specification updates.
12917
12918 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12919
12920         * bus/activation.c: (bus_activation_init), (child_setup),
12921         (bus_activation_activate_service):
12922         * bus/activation.h:
12923         * bus/main.c: (main):
12924         Set DBUS_ADDRESS environment variable.
12925
12926         * dbus/dbus-errors.c: (dbus_set_error):
12927         Don't use va_copy since that's a C99 feature.
12928
12929         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12930         (_dbus_spawn_async):
12931         * dbus/dbus-sysdeps.h:
12932         Add child_setup_func to _dbus_spawn_async.
12933
12934         * doc/dbus-specification.sgml:
12935         Update specification.
12936
12937         * test/spawn-test.c: (setup_func), (main):
12938         Fix test.
12939
12940 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12941
12942         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12943         Added todo.
12944
12945 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12946
12947         * doc/.cvsignore:
12948         * doc/Makefile.am:
12949         * doc/dbus-test-plan.sgml:
12950         Add test plan document.
12951
12952         * test/Makefile.am:
12953         Fix distcheck.
12954
12955 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12956
12957         * dbus/dbus-message.c: (decode_header_data),
12958         (_dbus_message_loader_return_buffer):
12959         Set the header padding amount when loading a message.
12960
12961 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12962
12963         * bus/dispatch.c: (send_one_message):
12964         Only send broadcast messages to registered connections.
12965
12966         * dbus/dbus-message.c: (dbus_message_name_is):
12967         * dbus/dbus-message.h:
12968         New convenience function.
12969
12970         * dbus/dbus-transport-debug.c: (do_reading):
12971         Only dispatch one message per run.
12972
12973         * test/Makefile.am:
12974         * test/bus-test.c: (new_connection_callback), (die),
12975         (test_hello_client1_handler), (test_hello_client2_handler),
12976         (test_hello_replies), (main):
12977
12978         * test/bus-test-loop.[ch]:
12979         Add these.
12980
12981 2003-02-16  Havoc Pennington  <hp@pobox.com>
12982
12983         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12984         backward conditional
12985
12986 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12987
12988         * dbus/dbus-connection.c:
12989         Implement sent_message_with_reply. (with_reply_and block is still
12990         busted).
12991         Made dispatch_message not lose message if OOM.
12992
12993         * dbus/dbus-errors.h:
12994         Add NoReply error (for reply timeouts).
12995
12996 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12997
12998         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12999         Actually free keys and values when destroying hashtable.
13000
13001 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13002
13003         * dbus/dbus-auth.c: (client_try_next_mechanism):
13004         Plug a leak.
13005
13006         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13007         Return TRUE if there's no thread implementation around.
13008
13009         * glib/dbus-gmain.c: (free_source),
13010         (dbus_connection_hookup_with_g_main):
13011         Make sure to remove the GSource when the connection is finalized.
13012
13013 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13014
13015         * bus/dispatch.c: (bus_dispatch_message_handler):
13016         * dbus/dbus-errors.h:
13017         Return an error if someone tries to send a message to a service
13018         that doesn't exist.
13019
13020 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13021
13022         * bus/activation.c: (load_directory), (bus_activation_init),
13023         (bus_activation_activate_service):
13024         * bus/activation.h:
13025         * bus/driver.c:
13026         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13027         More work on the activation handling.
13028
13029         * dbus/dbus-errors.h:
13030         Add some error messages
13031
13032         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13033         * dbus/dbus-message.h:
13034         New function that creates an error message.
13035
13036         * dbus/dbus-protocol.h:
13037         Add ACTIVATE_SERVER message.
13038
13039         * dbus/dbus-server-unix.c: (unix_handle_watch),
13040         (_dbus_server_new_for_domain_socket):
13041         Call _dbus_fd_set_close_on_exec.
13042
13043         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13044         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13045         (_dbus_fd_set_close_on_exec):
13046         * dbus/dbus-sysdeps.h:
13047         Add _dbus_fd_set_close_on exec function. Also add function that checks
13048         that all open fds are set to close-on-exec and warns otherwise.
13049
13050         * dbus/dbus-transport-unix.c:
13051         (_dbus_transport_new_for_domain_socket):
13052         Call _dbus_fd_set_close_on_exec.
13053
13054 2003-02-16  Havoc Pennington  <hp@pobox.com>
13055
13056         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13057         allow people to avoid setting SIGPIPE to SIG_IGN
13058         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13059         we've been asked not to
13060
13061 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13062
13063         * dbus/dbus-list.c: (_dbus_list_append_link),
13064         (_dbus_list_prepend_link):
13065         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13066         (dbus_realloc):
13067         Warning fixes.
13068
13069 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13070
13071         * bus/Makefile.am:
13072         * bus/activation.c: (bus_activation_entry_free),
13073         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13074         * bus/activation.h:
13075         * bus/main.c: (main):
13076         Add simple activation support, doesn't work yet though.
13077
13078 2003-02-15   Zack Rusin  <zack@kde.org>
13079
13080         * qt/dbus-qthread.cpp:  small casting fix
13081
13082 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13083
13084         * dbus/dbus-errors.c: (dbus_set_error):
13085         * dbus/dbus-errors.h:
13086         Add a few errors and make dbus_set_error void.
13087
13088         * dbus/dbus-sysdeps.c:
13089         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13090         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13091         * dbus/dbus-sysdeps.h:
13092         Add _dbus_spawn_async.
13093
13094         * test/spawn-test.c: (main):
13095         Test for _dbus_spawn_async.
13096
13097 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13098
13099         * dbus/dbus-internals.h:
13100         Fix build without tests.
13101
13102         * dbus/dbus-list.c: (alloc_link):
13103         Fix a segfault when a malloc fails.
13104
13105         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13106         (dbus_malloc0), (dbus_realloc):
13107         Add support for malloc debugging.
13108
13109 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13110
13111         * dbus/dbus-threads.c:
13112         * dbus/dbus-threads.h:
13113         Add condvars. Remove static mutext from API.
13114         Implement static mutexes by initializing them from threads_init.
13115
13116         * glib/dbus-gthread.c:
13117         * qt/dbus-qthread.cpp:
13118         Update with the thread api changes.
13119
13120
13121         * dbus/dbus-list.c:
13122         * dbus/dbus-list.h:
13123         Turn StaticMutex into normal mutex + init function.
13124         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13125         _dbus_list_append_link, _dbus_list_prepend_link
13126
13127
13128         * dbus/dbus-sysdeps.c:
13129         * dbus/dbus-sysdeps.h:
13130         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13131         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13132
13133         * dbus/dbus-protocol.h:
13134         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13135
13136         * dbus/dbus-message.c:
13137         Make ref/unref atomic.
13138         Fix some docs.
13139
13140         * dbus/dbus-connection-internal.h:
13141         * dbus/dbus-connection.c:
13142         * dbus/dbus-connection.h:
13143         Make threadsafe.
13144         Change _peek to _borrow,_return & _steal_borrowed.
13145         Change disconnect callback to event.
13146         Make dbus_connection_dispatch_messages reentrant.
13147
13148         * dbus/dbus-transport.c:
13149         Don't ref the connection on calls to the transport
13150         implementation.
13151
13152         * dbus/dbus-message-handler.c:
13153         Make threadsafe.
13154
13155         * glib/dbus-gmain.c:
13156         Don't use peek_message anymore
13157
13158         * test/Makefile.am:
13159         * test/debug-thread.c:
13160         * test/debug-thread.h:
13161         Simple thread implementation that asserts() on deadlocks in
13162         single-threaded code.
13163
13164         * test/bus-test.c:
13165         (main) Call debug_threads_init.
13166
13167         * test/watch.c:
13168         Use disconnect message instead of disconnect callback.
13169
13170         * bus/connection.c:
13171         * bus/connection.h:
13172         Don't call dbus_connection_set_disconnect_function. Instead export
13173         bus_connection_disconnect.
13174
13175         * bus/dispatch.c:
13176         Call bus_connection_disconnect when we get a disconnected message.
13177
13178 2003-02-15  Havoc Pennington  <hp@pobox.com>
13179
13180         * dbus/dbus-message.c (dbus_message_new): fool around with the
13181         docs
13182
13183 2003-02-14  Havoc Pennington  <hp@pobox.com>
13184
13185         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13186
13187         * dbus/dbus-memory.c: fail if the debug functions indicate we
13188         should
13189
13190         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13191         (_dbus_decrement_fail_alloc_counter): debug functions to
13192         simulate memory allocation failures
13193
13194 2003-02-14  Havoc Pennington  <hp@pobox.com>
13195
13196         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13197         to DBusError
13198
13199 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13200
13201         * bus/driver.c: (bus_driver_handle_hello):
13202         * bus/driver.h:
13203         * bus/services.c: (bus_service_lookup):
13204         Reorder message sending so we get a more sane order.
13205
13206         * test/bus-test.c: (message_handler):
13207         Fix tyop.
13208
13209 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13210
13211         * bus/driver.c: (bus_driver_send_service_deleted),
13212         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13213         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13214         (bus_driver_send_welcome_message),
13215         (bus_driver_handle_list_services),
13216         (bus_driver_handle_acquire_service),
13217         (bus_driver_handle_service_exists):
13218         * dbus/dbus-bus.c: (dbus_bus_register_client),
13219         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13220         * dbus/dbus-errors.c: (dbus_result_to_string):
13221         * dbus/dbus-errors.h:
13222         * dbus/dbus-message.c: (dbus_message_append_args),
13223         (dbus_message_append_args_valist), (dbus_message_get_args),
13224         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13225         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13226         (dbus_message_iter_get_byte_array),
13227         (dbus_message_iter_get_string_array), (message_iter_test),
13228         (check_message_handling), (_dbus_message_test):
13229         * dbus/dbus-message.h:
13230         * test/bus-test.c: (main):
13231         Change fields to arguments in messages, so that they won't be
13232         confused with header fields.
13233
13234         * glib/test-dbus-glib.c: (main):
13235         Remove append_fields from hello message.
13236
13237 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13238
13239         * dbus/dbus-errors.c:
13240         * dbus/dbus-message.c:
13241         * dbus/dbus-string.c:
13242         Documentation fixes.
13243
13244 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13245
13246         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13247         (remove_timeout):
13248         Implement support for timeouts in dbus-glib.
13249
13250 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13251
13252         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13253         * dbus/dbus-message.c: (process_test_subdir):
13254         * test/break-loader.c: (find_breaks_based_on):
13255         Plug some memory leaks.
13256
13257 2003-02-13  Richard Hult  <rhult@codefactory.se>
13258
13259         * bus/main.c: Fix build.
13260
13261         * dbus/dbus-errors.h:
13262         * dbus/dbus-errors.c: Fix copyright for Anders.
13263
13264 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13265
13266         * bus/Makefile.am:
13267         Add utils.[ch]
13268
13269         * bus/connection.c: (bus_connection_foreach):
13270         Fix a warning.
13271
13272         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13273         (unescape_string), (new_section), (parse_section_start),
13274         (parse_key_value), (report_error), (bus_desktop_file_load),
13275         (bus_desktop_file_get_string):
13276         * bus/desktop-file.h:
13277         Use DBusError for error reporting.
13278
13279         * bus/dispatch.c: (send_one_message),
13280         (bus_dispatch_message_handler):
13281         * bus/driver.c: (bus_driver_send_service_deleted),
13282         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13283         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13284         (bus_driver_send_welcome_message),
13285         (bus_driver_handle_list_services),
13286         (bus_driver_handle_acquire_service),
13287         (bus_driver_handle_service_exists):
13288         * bus/loop.c: (bus_loop_run):
13289         * bus/main.c:
13290         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13291
13292         * bus/utils.c: (bus_wait_for_memory):
13293         * bus/utils.h:
13294         New files with general utility functions.
13295
13296         * dbus/dbus-internals.h:
13297         Remove _DBUS_HANDLE_OOM.
13298
13299 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13300
13301         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13302         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13303         * dbus/dbus-errors.h:
13304         Add DBusError structure.
13305
13306 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13307
13308         * test/data/valid-messages/standard-acquire-service.message:
13309         * test/data/valid-messages/standard-hello.message:
13310         * test/data/valid-messages/standard-list-services.message:
13311         * test/data/valid-messages/standard-service-exists.message:
13312         Add some standard messages.
13313
13314 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13315
13316         * bus/driver.c: (bus_driver_send_welcome_message),
13317         (bus_driver_handle_list_services),
13318         (bus_driver_handle_acquire_service),
13319         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13320         Update for API changes in libdbus.
13321
13322         * dbus/dbus-message.c: (dbus_message_new_reply):
13323         * dbus/dbus-message.h:
13324         Remove the name argument. The spec states that replies shouldn't
13325         have a name.
13326
13327 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13328
13329         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13330         (report_error), (bus_desktop_file_load), (lookup_section),
13331         (lookup_line), (bus_desktop_file_get_raw),
13332         (bus_desktop_file_get_string):
13333         * bus/desktop-file.h:
13334         Some fixes, and new functions for getting a key value from a section.
13335
13336 2003-02-13  Havoc Pennington  <hp@pobox.com>
13337
13338         * test/data/auth/fail-after-n-attempts.auth-script: new test
13339
13340         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13341         reject the client.
13342
13343 2003-02-13  Havoc Pennington  <hp@pobox.com>
13344
13345         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13346         dbus_credentials_match were backward
13347
13348         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13349         NO_CREDENTIALS and ROOT_CREDENTIALS
13350
13351         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13352         into here. Never process more commands after we've reached an
13353         end state; store further data as unused bytes.
13354
13355         * test/data/auth/*: add more auth tests
13356
13357         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13358         command to match exact string and EXPECT_UNUSED to match unused
13359         bytes
13360
13361         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13362
13363 2003-02-12  Havoc Pennington  <hp@pobox.com>
13364
13365         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13366         \r off of popped lines
13367
13368         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13369         scripts
13370
13371         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13372         SEND, append \r\n
13373
13374 2003-02-12  Havoc Pennington  <hp@pobox.com>
13375
13376         * dbus/Makefile.am: remove break-loader from the build, since it
13377         moved.
13378
13379         * configure.in: add --enable-gcov to turn on coverage profiling
13380         flags and disable optimization
13381
13382 2003-02-10  Havoc Pennington  <hp@pobox.com>
13383
13384         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13385         initial cut at test framework for DBusAuth from laptop.
13386         Doesn't quite work yet but it compiles and I need to get
13387         it off the 266mhz laptop. ;-)
13388
13389         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13390         fix a memleak in error case
13391
13392 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13393
13394         * bus/Makefile.am:
13395         * bus/desktop-file.c:
13396         * bus/desktop-file.h:
13397         Add a desktop file parser.
13398
13399 2003-02-11  Zack Rusin  <zack@kde.org>
13400
13401         * qt/message.[h|cpp]: sample implementation
13402         of the KDE wrapper for DBusMessage
13403
13404 2003-02-09  Zack Rusin  <zack@kde.org>
13405
13406         * test/bus-test.c: make_it_compile
13407         * doc/dbus-specification.sgml: minimal semantic fix
13408
13409 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13410
13411         Release 0.3
13412
13413         * NEWS: Update
13414
13415 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13416
13417         * dbus/Makefile.am:
13418         * dbus/dbus-break-loader.c:
13419         * test/Makefile.am:
13420         * test/break-loader.c:
13421         Move dbus-break-loader to test/ and rename it to break-loader.
13422
13423 2003-02-02  Havoc Pennington  <hp@pobox.com>
13424
13425         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13426         for code to manage cookies in your home directory
13427
13428         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13429
13430         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13431         to authenticate, then disconnect the client.
13432
13433 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13434
13435         * dbus/dbus-message.c (dbus_message_append_fields):
13436         Correct docs.
13437
13438 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13439
13440         * doc/dbus-specification.sgml:
13441         Update address format section.
13442
13443 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13444
13445         * test/Makefile.am:
13446         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13447         (message_handler), (new_connection_callback), (loop_quit),
13448         (loop_run), (main):
13449         Add bus test.
13450
13451 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13452
13453         * bus/driver.c: (bus_driver_handle_service_exists):
13454         Simplify the code a bit.
13455
13456         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13457         Fix a silly.
13458
13459 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13460
13461         * bus/Makefile.am:
13462         Add libdbus-daemon.la and link to it.
13463
13464 2003-02-01  James Willcox  <jwillcox@gnome.org>
13465
13466         * bus/driver.c: (bus_driver_handle_own_service):
13467         Actually include the service reply code in the message.
13468
13469 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13470
13471         * bus/driver.c: (bus_driver_handle_service_exists):
13472         Don't unref the incoming message.
13473
13474 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13475
13476         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13477
13478 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13479
13480         * dbus/dbus-server.c: (dbus_server_listen):
13481         * dbus/dbus-transport.c: (_dbus_transport_open):
13482         ifdef out the calls to the debug transport and server.
13483
13484 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13485
13486         * dbus/dbus-watch.c (dbus_watch_get_flags):
13487         Add note in the docs that ERROR or HANGUP won't be returned
13488         and are assumed always on.
13489
13490         * glib/dbus-gmain.c (add_watch):
13491         Always add IO_ERR | IO_HUP
13492
13493         * dbus/dbus-message.h:
13494         Add semicolon after dbus_message_iter_get_string_array().
13495         Makes qt code build again
13496
13497 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13498
13499         * bus/driver.c: (create_unique_client_name),
13500         (bus_driver_handle_hello):
13501         Don't take a name, just use a numeric id to identify
13502         each client.
13503
13504         * dbus/Makefile.am:
13505         * dbus/dbus-bus.c: (dbus_bus_register_client),
13506         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13507         * dbus/dbus-bus.h:
13508         Add new convenience functions for communicating with the bus.
13509
13510         * dbus/dbus-message.h:
13511
13512         * dbus/dbus-protocol.h:
13513         Fix a typo.
13514
13515 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13516
13517         * dbus/dbus-message.c (dbus_message_append_fields):
13518         Add some more doc comments.
13519
13520 2003-02-01  Havoc Pennington  <hp@pobox.com>
13521
13522         * dbus/dbus-break-loader.c (randomly_modify_length): change
13523         a 4-byte value in the message as if it were a length
13524
13525         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13526         execute bit on saved files
13527
13528 2003-02-01  Havoc Pennington  <hp@pobox.com>
13529
13530         * dbus/dbus-break-loader.c (main): new program to find messages
13531         that break the loader.
13532
13533         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13534         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13535
13536         * dbus/dbus-string.c (_dbus_string_set_byte): new
13537
13538 2003-01-31  Havoc Pennington  <hp@pobox.com>
13539
13540         * dbus/dbus-message.c: refactor the test code to be more general,
13541         in preparation for writing a "randomly permute test cases to
13542         try to break the loader" program.
13543
13544 2003-01-31  Havoc Pennington  <hp@pobox.com>
13545
13546         * doc/dbus-specification.sgml: work on the specification
13547
13548         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13549         the protocol version of the message.
13550
13551         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13552         no longer specifies that.
13553         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13554         1/2/3/4)
13555
13556         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13557         "break" for DBUS_TYPE_NIL, remove @todo
13558
13559 2003-01-31  Havoc Pennington  <hp@pobox.com>
13560
13561         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13562         just set_is_error/get_is_error as this is a commonly-used
13563         function, and write docs.
13564
13565 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13566
13567         * dbus/dbus-address.c: (dbus_address_entry_free):
13568         Free key and value lists.
13569
13570         * dbus/dbus-internals.c: (_dbus_type_to_string):
13571         Add the types we didn't have.
13572
13573         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13574         (_dbus_marshal_validate_arg):
13575         Add NIL types.
13576
13577         * dbus/dbus-message.c: (dbus_message_set_sender):
13578         Remove todo about being able to set sender to NULL.
13579
13580         (dbus_message_set_is_error_reply),
13581         (dbus_message_get_is_error_reply):
13582         * dbus/dbus-message.h:
13583         New functions.
13584
13585         * dbus/dbus-protocol.h:
13586         Add error reply flag.
13587
13588         * test/data/valid-messages/opposite-endian.message:
13589         Add NIL type to test.
13590
13591 2003-01-31  Havoc Pennington  <hp@pobox.com>
13592
13593         * doc/dbus-specification.sgml: fully specify the header.  Add
13594         flags and major protocol version, and change header/body len to
13595         unsigned.
13596
13597         * dbus/dbus-message-builder.c (append_saved_length): append length
13598         as uint32
13599
13600         * dbus/dbus-message.c (dbus_message_create_header): change header
13601         length and body length to unsigned. Add the new fields from the
13602         spec
13603         (_dbus_message_loader_return_buffer): unsigned header/body len
13604
13605 2003-01-30  Havoc Pennington  <hp@pobox.com>
13606
13607         * dbus/dbus-auth.c: rework to use only REJECTED, no
13608         MECHANISMS
13609
13610         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13611         use REJECTED, suggested by Mark McLoughlin
13612
13613 2003-01-30  Havoc Pennington  <hp@pobox.com>
13614
13615         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13616         a better way to report errors here. e.g.  "unix address lacks
13617         path" or something. also "no such file" when the path doesn't
13618         exist, etc.
13619
13620         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13621         leaking list nodes
13622         (dbus_parse_address): add @todo about documenting address format,
13623         and allowing , and ; to be escaped
13624
13625 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13626
13627         * dbus/Makefile.am:
13628         Add dbus-address.[ch]
13629
13630         * dbus/dbus-address.c: (dbus_address_entry_free),
13631         (dbus_address_entries_free), (create_entry),
13632         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13633         (dbus_parse_address), (_dbus_address_test):
13634         * dbus/dbus-address.h:
13635         New files for dealing with address parsing.
13636
13637         * dbus/dbus-connection.c:
13638         Document timeout functions.
13639
13640         * dbus/dbus-message.c:
13641         Document dbus_message_new_from_message.
13642
13643         * dbus/dbus-server-debug.c:
13644         Document.
13645
13646         * dbus/dbus-server.c: (dbus_server_listen):
13647         Parse address and use correct server implementation.
13648
13649         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13650         * dbus/dbus-string.h:
13651         New function with test.
13652
13653         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13654         * dbus/dbus-test.h:
13655         Add address tests.
13656
13657         * dbus/dbus-transport-debug.c:
13658         Document.
13659
13660         * dbus/dbus-transport.c: (_dbus_transport_open):
13661         Parse address and use correct transport implementation.
13662
13663 2003-01-30  Havoc Pennington  <hp@pobox.com>
13664
13665         * dbus/dbus-message.c: use message->byte_order instead of
13666         DBUS_COMPILER_BYTE_ORDER throughout.
13667         (dbus_message_create_header): pad header to align the
13668         start of the body of the message to 8-byte boundary
13669
13670         * dbus/dbus-marshal.h: make all the demarshalers take const
13671         DBusString arguments.
13672
13673         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13674         validate message args here, so we don't have to do slow validation
13675         later, and so we catch bad messages as they are incoming. Also add
13676         better checks on header_len and body_len. Also fill in
13677         message->byte_order
13678
13679         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13680         implemented properly)
13681         (_dbus_string_validate_nul): new function to check all-nul
13682
13683         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13684         get_arg_end_pos and remove all validation
13685         (_dbus_marshal_validate_arg): actually do validation here.
13686
13687 2003-01-29  Havoc Pennington  <hp@pobox.com>
13688
13689         * dbus/dbus-message.c (check_message_handling): fix assertion
13690         failure on set_client_serial
13691
13692 2003-01-28  Havoc Pennington  <hp@pobox.com>
13693
13694         * dbus/dbus-server-debug.c: Add doc section comments
13695
13696         * dbus/dbus-transport-debug.c: add doc section comments
13697
13698 2003-01-28  Havoc Pennington  <hp@redhat.com>
13699
13700         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13701         the reverse order from how I had it
13702         (_dbus_string_base64_encode): reverse encoding order. I was
13703         basically byteswapping everything during encoding.
13704
13705 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13706
13707         * dbus/dbus-connection-internal.h:
13708         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13709         (_dbus_connection_remove_timeout):
13710         Add functions for adding and removing timeouts.
13711
13712         * dbus/dbus-message.c: (dbus_message_new_from_message):
13713         Add new function that takes a message and creates an exact
13714         copy of it, but with the refcount set to 1.
13715         (check_message_handling):
13716         Fix build error.
13717
13718         * dbus/dbus-server-protected.h:
13719         * dbus/dbus-server.c: (_dbus_server_init_base),
13720         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13721         (dbus_server_set_timeout_functions):
13722         (_dbus_server_remove_timeout):
13723         New functions so that a server can add and remove timeouts.
13724
13725         (dbus_server_listen):
13726         Add commented out call to dbus_server_debug_new.
13727
13728         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13729         Actually set the handler, doh.
13730
13731         * dbus/dbus-transport.c: (_dbus_transport_open):
13732         Add commented out call to dbus_transport_debug_client_new.
13733
13734         * dbus/Makefile.am:
13735         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13736
13737 2003-01-28  Havoc Pennington  <hp@pobox.com>
13738
13739         * dbus/dbus-message.c (check_message_handling): function to check
13740         on the loaded message, iterates over it etc.
13741
13742 2003-01-28  Havoc Pennington  <hp@pobox.com>
13743
13744         * test/Makefile.am (dist-hook): fix make distdir
13745
13746         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13747
13748 2003-01-27  Havoc Pennington  <hp@pobox.com>
13749
13750         * dbus/dbus-mempool.c (time_for_size): replace printf with
13751         _dbus_verbose
13752
13753         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13754         empty lines; fix the SAVE_LENGTH stuff to be
13755         START_LENGTH/END_LENGTH so it actually works; couple other
13756         bugfixes
13757
13758         * test/Makefile.am (dist-hook): add dist-hook for .message files
13759
13760         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13761         can be constant or locked.
13762         (_dbus_string_free): allow freeing a const string as
13763         documented/intended
13764
13765         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13766
13767         * dbus/dbus-test-main.c (main): take an argument which is the
13768         directory containing test data
13769
13770         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13771         argument to this and load all the messages in test/data/
13772         checking that they can be loaded or not loaded as appropriate.
13773
13774 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13775
13776         * bus/dispatch.c: (bus_dispatch_message_handler):
13777         Dispatch messages sent to services.
13778
13779         * bus/driver.c: (bus_driver_send_service_deleted),
13780         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13781         (bus_driver_send_service_acquired):
13782         Add helper functions for sending service related messages.
13783
13784         (bus_driver_send_welcome_message):
13785         Send HELLO_REPLY instead of WELCOME.
13786
13787         (bus_driver_handle_list_services):
13788         Send LIST_SERVICES_REPLY instead of SERVICES.
13789
13790         (bus_driver_handle_own_service),
13791         (bus_driver_handle_service_exists):
13792         New message handlers.
13793
13794         (bus_driver_handle_message):
13795         Invoke new message handlers.
13796
13797         (bus_driver_remove_connection):
13798         Don't remove any services here since that's done automatically
13799         by bus_service_remove_owner now.
13800
13801         * bus/driver.h:
13802         New function signatures.
13803
13804         * bus/services.c: (bus_service_add_owner):
13805         Send ServiceAcquired message if we're the only primary owner.
13806
13807         (bus_service_remove_owner):
13808         Send ServiceAcquired/ServiceLost messages.
13809
13810         (bus_service_set_prohibit_replacement),
13811         (bus_service_get_prohibit_replacement):
13812         Functions for setting prohibit replacement.
13813
13814         (bus_service_has_owner):
13815         New function that checks if a connection is in the owner queue of
13816         a certain service.
13817
13818         * bus/services.h:
13819         Add new function signatures.
13820
13821         * dbus/dbus-list.c: (_dbus_list_test):
13822         Add tests for _dbus_list_remove_last and traversing the list backwards.
13823
13824         * dbus/dbus-list.h:
13825         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13826         go any further, so return NULL then.
13827
13828         * dbus/dbus-protocol.h:
13829         Add new messages, service flags and service replies.
13830
13831 2003-01-26  Havoc Pennington  <hp@pobox.com>
13832
13833         * dbus/dbus-message-builder.c: implement, completely untested.
13834
13835         * test/data/*: add data to be used in testing.
13836         ".message" files are our simple loadable text format.
13837         ".message-raw" will be binary dumps of messages.
13838
13839         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13840
13841 2003-01-26  Havoc Pennington  <hp@pobox.com>
13842
13843         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13844
13845         * dbus/dbus-errors.c (dbus_result_to_string): add
13846         file errors
13847
13848         * dbus/dbus-message-builder.c: new file, will contain code to load
13849         up messages from files. Not implemented yet.
13850
13851 2003-01-26  Havoc Pennington  <hp@pobox.com>
13852
13853         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13854         the sender by setting to NULL
13855
13856 2003-01-26  Havoc Pennington  <hp@pobox.com>
13857
13858         The unit tests pass, but otherwise untested.  If it breaks, the
13859         tests should have been better. ;-)
13860
13861         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13862         the connection.
13863
13864         * dbus/dbus-message.c: redo everything so we maintain
13865         message->header as the only copy of the various fields.
13866         This avoids the possibility of out-of-memory in some cases,
13867         for example dbus_message_lock() can't run out of memory anymore,
13868         and avoids extra copying. Figured I may as well go ahead and do
13869         this since it was busted for dbus_message_lock to not return
13870         failure on OOM, and dbus_message_write_header was totally
13871         unchecked for OOM. Also fixed some random other bugs.
13872
13873         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13874         that strings are nul-terminated. Also, end_pos can be equal
13875         to string length just not greater than, I think.
13876         (_dbus_marshal_set_int32): new function
13877         (_dbus_marshal_set_uint32): new function
13878         (_dbus_marshal_set_string): new function
13879
13880         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13881         a warning, init timeout_list to NULL
13882         (dbus_connection_send_message): don't use uninitialized variable
13883         "serial"
13884
13885         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13886
13887 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13888
13889         * bus/driver.c: (bus_driver_handle_hello),
13890         (bus_driver_send_welcome_message):
13891         Plug leaks
13892
13893 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13894
13895         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13896         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13897         (dbus_connection_unref):
13898         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13899         * dbus/dbus-message.c: (dbus_message_unref),
13900         Plug memory leaks.
13901
13902         (dbus_message_get_fields):
13903         Remove debugging printout.
13904
13905         (_dbus_message_loader_return_buffer):
13906         Don't store the header string.
13907
13908         (_dbus_message_test):
13909         Plug leaks.
13910
13911 2003-01-26  Richard Hult  <rhult@codefactory.se>
13912
13913         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13914         the file descriptor list, since it can change under us.
13915
13916 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13917
13918         * glib/dbus-gmain.c: (dbus_connection_prepare),
13919         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13920         (remove_watch), (dbus_connection_hookup_with_g_main):
13921         Rewrite the glib handling to use its own GSource instead of a
13922         GIOChannel so we can catch messages put in the queue while waiting
13923         for a reply.
13924
13925 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13926
13927         * bus/Makefile.am:
13928         * bus/connection.c: (connection_disconnect_handler),
13929         (connection_watch_callback), (bus_connection_setup):
13930         * bus/dispatch.c: (send_one_message),
13931         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13932         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13933         * bus/dispatch.h:
13934         * bus/driver.c: (bus_driver_send_service_deleted),
13935         (bus_driver_send_service_created), (bus_driver_handle_hello),
13936         (bus_driver_send_welcome_message),
13937         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13938         (bus_driver_handle_message):
13939         * bus/driver.h:
13940         Refactor code, put the message dispatching in its own file. Use
13941         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13942         is disconnected.
13943
13944 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13945
13946         * dbus/dbus-internals.h:
13947         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13948
13949         * dbus/dbus-message.c: (dbus_message_get_sender):
13950         * dbus/dbus-message.h:
13951         Implement dbus_message_get_sender.
13952
13953         * dbus/dbus-protocol.h:
13954         Add message and service defines.
13955
13956 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13957
13958         * dbus/dbus-connection.c: (dbus_connection_send_message):
13959         * dbus/dbus-message-internal.h:
13960         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13961         (dbus_message_write_header):
13962         Remove _dbus_messag_unlock and don't set the client serial on a
13963         message if one already exists.
13964
13965 2003-01-24  Havoc Pennington  <hp@pobox.com>
13966
13967         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13968         list_pool
13969
13970         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13971         on OOM
13972
13973 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13974
13975         * dbus/dbus-list.c: (alloc_link), (free_link):
13976         Use a memory pool for the links.
13977
13978 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13979
13980         * bus/connection.c: (bus_connection_foreach):
13981         * bus/connection.h:
13982         Add new bus_connection_foreach function.
13983
13984         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13985         Add function that broadcasts a message to all clients.
13986
13987         (bus_driver_send_service_created), (bus_driver_handle_hello),
13988         (bus_driver_send_welcome_message),
13989         (bus_driver_handle_list_services), (bus_driver_message_handler):
13990         Implement functions that take care of listing services, and notifying
13991         clients when new services are created.
13992
13993         * bus/services.c: (bus_services_list):
13994         * bus/services.h:
13995         Add new function that returns an array of strings with the currently
13996         registered services.
13997
13998         * glib/dbus-glib.h:
13999         * glib/dbus-gmain.c:
14000         Update copyright year.
14001
14002 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14003
14004         * dbus/dbus-connection.c: (dbus_connection_send_message):
14005         Unlock the message in case it was sent earlier.
14006
14007         (dbus_connection_send_message_with_reply_and_block):
14008         Remove the reply message from the list.
14009
14010         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14011         Set array_len and new_pos correctly.
14012
14013         (_dbus_marshal_test):
14014         Remove debug output.
14015
14016         * dbus/dbus-message-internal.h:
14017         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14018         New function that returns the reply serial.
14019
14020         (_dbus_message_unlock):
14021         New function that unlocks a message and resets its header.
14022
14023         (dbus_message_append_string_array),
14024         (dbus_message_get_fields_valist),
14025         (dbus_message_iter_get_field_type),
14026         (dbus_message_iter_get_string_array),
14027         (dbus_message_get_fields),
14028         (dbus_message_append_fields_valist):
14029         Handle string arrays.
14030
14031         (dbus_message_set_sender):
14032         Make this function public since the bus daemon needs it.
14033
14034         (decode_header_data):
14035         Set the reply serial to -1 initially.
14036
14037         * dbus/dbus-message.h:
14038         Add dbus_message_set_sender.
14039
14040 2003-01-24  Havoc Pennington  <hp@pobox.com>
14041
14042         * doc/dbus-specification.sgml: add some stuff
14043
14044 2003-01-22  Havoc Pennington  <hp@pobox.com>
14045
14046         * doc/dbus-specification.sgml: Start to document the protocol.
14047
14048 2003-01-22  Havoc Pennington  <hp@pobox.com>
14049
14050         * dbus/dbus-connection.c
14051         (dbus_connection_send_message_with_reply_and_block): add some @todo
14052
14053         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14054
14055 2003-01-21  Havoc Pennington  <hp@pobox.com>
14056
14057         (patch untested because can't compile)
14058
14059         * bus/driver.c (create_unique_client_name): make this function
14060         never recycle client names. Also, caller should initialize
14061         the DBusString.
14062
14063         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14064
14065 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14066
14067         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14068         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14069         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14070         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14071         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14072         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14073         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14074         * dbus/dbus-marshal.h:
14075         * dbus/dbus-protocol.h:
14076         Add support for marshalling and demarshalling integer, double
14077         and string arrays.
14078
14079 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14080
14081         * bus/Makefile.am:
14082         Add driver.[ch]
14083
14084         * bus/connection.c: (connection_disconnect_handler):
14085         Remove the connection from the bus driver's list.
14086
14087         (connection_watch_callback): Dispatch messages.
14088
14089         (free_connection_data): Free connection name.
14090
14091         (bus_connection_setup): Add connection to the bus driver's list.
14092         (bus_connection_remove_owned_service):
14093         (bus_connection_set_name), (bus_connection_get_name):
14094         Add functions for setting and getting the connection's name.
14095
14096         * bus/connection.h:
14097         Add function headers.
14098
14099         * bus/driver.c: (create_unique_client_name),
14100         (bus_driver_handle_hello_message),
14101         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14102         (bus_driver_add_connection), (bus_driver_remove_connection):
14103         * bus/driver.h:
14104         * bus/main.c:
14105         * bus/services.c: (bus_service_free):
14106         * bus/services.h:
14107         New file that handles communication and registreation with the bus
14108         itself.
14109
14110 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14111
14112         * dbus/dbus-connection.c: (dbus_connection_send_message):
14113         Add a new client_serial parameter.
14114
14115         (dbus_connection_send_message_with_reply):
14116         Remove a @todo since we've implemented the blocking function.
14117
14118         (dbus_connection_send_message_with_reply_and_block):
14119         New function that sends a message and waits for a reply and
14120         then returns the reply.
14121
14122         * dbus/dbus-connection.h:
14123         Add new functions.
14124
14125         * dbus/dbus-errors.c: (dbus_result_to_string):
14126         * dbus/dbus-errors.h:
14127         Add new DBUS_RESULT.
14128
14129         * dbus/dbus-message-internal.h:
14130         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14131         (_dbus_message_set_sender), (dbus_message_write_header),
14132         (dbus_message_new_reply), (decode_header_data),
14133         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14134         * dbus/dbus-message.h:
14135         Add new functions that set the reply serial and sender.
14136         Also marshal and demarshal them correctly and add test.
14137
14138         * dbus/dbus-protocol.h:
14139         Add new DBUS_MESSAGE_TYPE_SENDER.
14140
14141         * glib/dbus-glib.h:
14142         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14143         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14144         (dbus_connection_hookup_with_g_main):
14145         * glib/test-dbus-glib.c: (main):
14146         Rewrite to use GIOChannel and remove the GSource crack.
14147
14148         * test/echo-client.c: (main):
14149         * test/watch.c: (check_messages):
14150         Update for changed APIs
14151
14152 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14153
14154         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14155
14156         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14157         Create a DBusTimeoutList.
14158         (dbus_connection_set_timeout_functions): Add new function to
14159         set timeout callbacks
14160
14161         * dbus/dbus-connection.h: Add public DBusTimeout API.
14162
14163         * dbus/dbus-message.c: (dbus_message_get_service):
14164         * dbus/dbus-message.h:  New function.
14165
14166         * dbus/dbus-server.c: Fix small doc typo.
14167
14168         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14169
14170 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14171
14172         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14173         of the string, just as long as specified.
14174
14175 2003-01-19  Havoc Pennington  <hp@pobox.com>
14176
14177         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14178         new function
14179
14180         * dbus/dbus-server.c (dbus_server_set_max_connections)
14181         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14182         keep track of current number of connections, and add API for
14183         setting a max (but haven't implemented enforcing the max yet)
14184
14185 2003-01-18  Havoc Pennington  <hp@pobox.com>
14186
14187         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14188         reading/writing if read_watch != NULL or write_watch != NULL.
14189
14190         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14191         the message loader code to actually load message->header and
14192         message->body into the newly-created message.
14193
14194         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14195         in OOM case
14196
14197         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14198         (dbus_connection_get_max_message_size)
14199         (dbus_connection_set_max_live_messages_size)
14200         (dbus_connection_get_max_live_messages_size): implement some
14201         resource limitation functions
14202
14203         * dbus/dbus-resources.c: new file implementing some of the
14204         resource limits stuff
14205
14206         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14207         missing docs, add @todo to handle OOM etc.
14208
14209         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14210         docs
14211
14212 2003-01-18  Havoc Pennington  <hp@pobox.com>
14213
14214         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14215         connection if it hasn't been already.
14216
14217         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14218         replace with DisconnectFunction.
14219
14220 2003-01-18  Havoc Pennington  <hp@pobox.com>
14221
14222         Building --disable-verbose-mode --disable-asserts --disable-tests
14223         cuts the library from 112K to 45K or so
14224
14225         * configure.in: check for varargs macro support,
14226         add --enable-verbose-mode, --enable-asserts.
14227
14228         * dbus/dbus-internals.h (_dbus_assert): support
14229         DBUS_DISABLE_ASSERT
14230         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14231
14232 2003-01-18  Havoc Pennington  <hp@pobox.com>
14233
14234         * dbus/dbus-test.c: include config.h so that tests actually run
14235
14236         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14237         so the failure mode when that assumption fails will be plenty
14238         obvious.
14239
14240 2003-01-18  Havoc Pennington  <hp@pobox.com>
14241
14242         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14243
14244         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14245         the distribution
14246
14247         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14248         since we don't want to use those in make check
14249
14250 2003-01-15  Havoc Pennington  <hp@redhat.com>
14251
14252         Release 0.2
14253
14254         * NEWS: update
14255
14256 2003-01-15  Havoc Pennington  <hp@redhat.com>
14257
14258         * test/Makefile.am: fix so that test source code ends up in the
14259         distribution on make distcheck
14260
14261 2003-01-15  Havoc Pennington  <hp@redhat.com>
14262
14263         Release 0.1.
14264
14265         * NEWS: update
14266
14267 2003-01-15  Havoc Pennington  <hp@redhat.com>
14268
14269         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14270         fix build when --disable-tests
14271
14272         * Makefile.am (EXTRA_DIST): put HACKING in here
14273
14274         * HACKING: document procedure for making a tarball release.
14275
14276 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14277
14278         * bus/connection.c: (connection_error_handler),
14279         (bus_connection_setup):
14280         * bus/main.c: (main):
14281         Make sure that the DBusConnectionData struct is NULLed
14282         out to prevent a segfault.
14283
14284         * dbus/dbus-errors.c: (dbus_result_to_string):
14285         * dbus/dbus-errors.h:
14286         * dbus/dbus-message.c: (dbus_message_get_fields),
14287         (dbus_message_get_fields_valist), (_dbus_message_test):
14288         * dbus/dbus-message.h:
14289         Make dbus_message_get_fields return a result code so we can
14290         track invalid fields as well as oom.
14291
14292 2003-01-11  Havoc Pennington  <hp@pobox.com>
14293
14294         * configure.in: change --enable-test/--enable-ansi action-if-given
14295         to enable_foo=$enableval instead of enable_foo=yes
14296
14297 2003-01-08  Havoc Pennington  <hp@pobox.com>
14298
14299         * dbus/dbus-string.c (_dbus_string_align_length): new function
14300
14301         * dbus/dbus-test-main.c: move main() for test app here
14302         * dbus/dbus-test.c
14303         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14304         symbol to run tests, because dbus-test isn't in the main
14305         library
14306
14307         Code review nitpicks.
14308
14309         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14310         for people with narrow emacs ;-). Assert client_serial was filled
14311         in. Assert message->name != NULL.
14312         (dbus_message_append_fields): have "first_field_type" arg separate
14313         from va list, needed for C++ binding that also uses varargs IIRC
14314         and helps with type safety
14315         (dbus_message_new): add @todo about using DBusString to store
14316         service/name internally
14317         (dbus_message_new): don't leak ->service and ->name on OOM later
14318         in the function
14319         (dbus_message_unref): free the service name
14320         (dbus_message_get_fields): same change to varargs
14321         i.e. first_field_type
14322         (_dbus_message_loader_return_buffer): assert that the message data
14323         is aligned (if not it's a bug in our code). Put in verbose griping
14324         about why we set corrupted = TRUE.
14325         (decode_header_data): add FIXME that char* is evil.  Was going to
14326         add FIXME about evil locale-specific string.h strncmp, but just
14327         switched to wacky string-as-uint32 optimization. Move check for
14328         "no room for field name" above get_const_data_len() to avoid
14329         assertion failure in get_const_data_len if we have trailing 2
14330         bytes or the like. Check for service and name fields being
14331         provided twice. Don't leak service/name on error. Require field
14332         names to be aligned to 4 bytes.
14333
14334         * dbus/dbus-marshal.c: move byte swap stuff to header
14335         (_dbus_pack_int32): uscore-prefix
14336         (_dbus_unpack_int32): uscore-prefix
14337         (_dbus_unpack_uint32): export
14338         (_dbus_demarshal_string): add @todo complaining about use of
14339         memcpy()
14340         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14341         handling allowing corrupt data to go unchecked
14342
14343 2003-01-08  Havoc Pennington  <hp@redhat.com>
14344
14345         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14346         to the select() as needed for authentication. (should be using
14347         _dbus_poll() not select, but for another day)
14348
14349         * dbus/dbus.h: include dbus/dbus-protocol.h
14350
14351 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14352
14353         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14354         dbus-connection.h
14355
14356 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14357
14358         * dbus/dbus-internals.c: (_dbus_type_to_string):
14359         New function that returns a string describing a type.
14360
14361         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14362         * dbus/dbus-marshal.h:
14363         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14364         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14365         (dbus_message_iter_get_byte_array):
14366         * dbus/dbus-message.h:
14367         Add new convenience functions for appending and getting message fields.
14368         Also add demarshalling routines for byte arrays.
14369
14370 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14371
14372         * dbus/dbus-connection-internal.h:
14373         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14374         (_dbus_connection_get_next_client_serial),
14375         (dbus_connection_send_message):
14376         * dbus/dbus-internals.h:
14377         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14378         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14379         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14380         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14381         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14382         (_dbus_verbose_bytes), (_dbus_marshal_test):
14383         * dbus/dbus-marshal.h:
14384         * dbus/dbus-message-internal.h:
14385         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14386         (dbus_message_write_header), (_dbus_message_lock),
14387         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14388         (dbus_message_get_name), (dbus_message_append_int32),
14389         (dbus_message_append_uint32), (dbus_message_append_double),
14390         (dbus_message_append_string), (dbus_message_append_byte_array),
14391         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14392         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14393         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14394         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14395         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14396         (decode_header_data), (_dbus_message_loader_return_buffer),
14397         (message_iter_test), (_dbus_message_test):
14398         * dbus/dbus-message.h:
14399         * dbus/dbus-protocol.h:
14400         * dbus/dbus-test.c: (main):
14401         * dbus/dbus-test.h:
14402         * glib/test-dbus-glib.c: (message_handler), (main):
14403         * test/echo-client.c: (main):
14404         * test/watch.c: (check_messages):
14405         Make messages sendable and receivable for real.
14406
14407 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14408
14409         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14410         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14411         * dbus/dbus-message.c: (dbus_message_append_int32),
14412         (dbus_message_append_uint32), (dbus_message_append_double),
14413         (dbus_message_append_string), (dbus_message_append_byte_array):
14414         Handle OOM restoration.
14415
14416 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14417
14418         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14419         (_dbus_demarshal_string), (_dbus_marshal_test):
14420         * dbus/dbus-marshal.h:
14421         * dbus/dbus-message.c: (dbus_message_get_name),
14422         Document these functions.
14423
14424         (dbus_message_append_int32), (dbus_message_append_uint32),
14425         (dbus_message_append_double), (dbus_message_append_string),
14426         (dbus_message_append_byte_array):
14427         * dbus/dbus-message.h:
14428         Add functions for adding message fields of different types.
14429
14430         * dbus/dbus-protocol.h:
14431         Add the different types.
14432
14433 2003-01-05  Havoc Pennington  <hp@pobox.com>
14434
14435         * bus/connection.c: implement routines for handling connections,
14436         first thing is keeping a list of owned services on each connection
14437         and setting up watches etc.
14438
14439         * bus/services.c: implement a mapping from service names to lists
14440         of connections
14441
14442         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14443
14444         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14445         to use static mutexes for global data
14446
14447         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14448         collection of functions to set/get application-specific data
14449         on the DBusConnection.
14450
14451 2003-01-04  Havoc Pennington  <hp@pobox.com>
14452
14453         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14454         (_dbus_poll): new function
14455
14456         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14457         copied from GLib
14458
14459         * bus/loop.c: initial code for the daemon main loop
14460
14461 2003-01-04  Havoc Pennington  <hp@pobox.com>
14462
14463         * test/watch.c (error_handler): make it safe if the error handler
14464         is called multiple times (if we s/error handler/disconnect
14465         handler/ we should just guarantee it's called only once)
14466
14467         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14468         error handler on disconnect (it's quite possible we should
14469         just change the error handler to a "disconnect handler," I'm
14470         not sure we have any other meaningful errors)
14471
14472         * configure.in: check for getpwnam_r
14473
14474         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14475         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14476         mechanism as in SASL spec, using socket credentials
14477
14478         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14479         (_dbus_send_credentials_unix_socket): new function
14480
14481         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14482         dbus_accept()
14483         (_dbus_write): only check errno if <0 returned
14484         (_dbus_write_two): ditto
14485
14486 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14487
14488         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14489         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14490         (_dbus_marshal_test):
14491         * dbus/dbus-marshal.h:
14492         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14493         to _dbus_marshal_utf8_string. Also fix some tests.
14494
14495 2002-12-28  Harri Porten  <porten@kde.org>
14496
14497         * configure.in: added check for C++ compiler and a very cheesy
14498         check for the Qt integration
14499
14500         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14501
14502         * qt/Makefile.am: added
14503
14504         * qt/.cvsignore: added
14505
14506         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14507         latter, added #ifdef QT_THREAD_SUPPORT guard.
14508
14509         * dbus/Makefile.am: added missing headers for make dist
14510
14511 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14512
14513         * dbus/Makefile.am: fixup export-symbols-regex.
14514
14515 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14516
14517         * acinclude.m4: Add this file and put the
14518         PKG_CHECK_MODULE macro in it.
14519
14520 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14521
14522         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14523         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14524         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14525         (_dbus_marshal_test):
14526         Make the demarshalling routines align the pos argument.
14527         Add string marshalling tests and fix the obvious bugs
14528         discovered.
14529
14530 2002-12-26  Havoc Pennington  <hp@pobox.com>
14531
14532         * dbus/dbus-auth.c: fixes fixes fixes
14533
14534         * dbus/dbus-transport-unix.c: wire up support for
14535         encoding/decoding data on the wire
14536
14537         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14538         (_dbus_auth_decode_data): append to target string
14539         instead of nuking it.
14540
14541 2002-12-26  Havoc Pennington  <hp@pobox.com>
14542
14543         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14544         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14545         doh
14546
14547         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14548         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14549         now). Main point is because I wanted unpack_uint32 to implement
14550         _dbus_verbose_bytes
14551         (_dbus_verbose_bytes): new function
14552
14553         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14554
14555         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14556         mechanism to handle a corrupt message stream
14557         (_dbus_message_loader_new): fix preallocation to only prealloc,
14558         not prelengthen
14559
14560         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14561         (_dbus_string_test): enhance tests for copy/move and fix the
14562         functions
14563
14564         * dbus/dbus-transport-unix.c: Hold references in more places to
14565         avoid reentrancy problems
14566
14567         * dbus/dbus-transport.c: ditto
14568
14569         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14570         leak reference count in no-message case
14571
14572         * test/watch.c (do_mainloop): handle adding/removing watches
14573         during iteration over the watches. Also, ref the connection/server
14574         stored on a watch, so we don't try to mangle a destroyed one.
14575
14576         * dbus/dbus-transport-unix.c (do_authentication): perform
14577         authentication
14578
14579         * dbus/dbus-auth.c (get_state): add a state
14580         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14581         (_dbus_auth_get_unused_bytes): append the unused bytes
14582         to the passed in string, rather than prepend
14583
14584         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14585         the auth conversation DBusAuth
14586
14587         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14588         (_dbus_transport_new_for_domain_socket): when creating a
14589         transport, pass in whether it's a client-side or server-side
14590         transport so we know which DBusAuth to create
14591
14592 2002-12-03  Havoc Pennington  <hp@pobox.com>
14593
14594         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14595         _after_ finalizing the derived members
14596         (unix_connection_set): unref watch if we fail to add it
14597
14598         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14599         transport first, so that the connection owned by the
14600         transport will be valid as the transport finalizes.
14601
14602         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14603         if necessary, and remove watches from the connection.
14604
14605         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14606
14607 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14608
14609         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14610         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14611         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14612         (_dbus_marshal_test):
14613         * dbus/dbus-marshal.h:
14614         Add string marshal functions and have the demarshal functions
14615         return the new position.
14616
14617 2002-12-25  Havoc Pennington  <hp@pobox.com>
14618
14619         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14620         it is a simple protocol that just maps directly to SASL.
14621
14622         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14623         initial implementation, not actually used yet.
14624
14625         * dbus/dbus-string.c (_dbus_string_find): new function
14626         (_dbus_string_equal): new function
14627         (_dbus_string_base64_encode): new function
14628         (_dbus_string_base64_decode): new function
14629
14630 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14631
14632         * dbus/Makefile.am:
14633         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14634         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14635         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14636         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14637         * dbus/dbus-marshal.h:
14638         * dbus/dbus-protocol.h:
14639         * dbus/dbus-test.c: (main):
14640         * dbus/dbus-test.h:
14641         Add un-optimized marshalling/demarshalling routines.
14642
14643 2002-12-25  Harri Porten  <porten@kde.org>
14644
14645         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14646
14647 2002-12-24  Zack Rusin  <zack@kde.org>
14648
14649         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14650         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14651         main loop stuff
14652
14653 2002-12-24  Havoc Pennington  <hp@pobox.com>
14654
14655         * glib/dbus-gthread.c: fix include
14656
14657         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14658         I think glib API needs to change, though, as you don't
14659         want to use DBusMessageFunction, you want to use the
14660         DBusMessageHandler object. Probably
14661         dbus_connection_open_with_g_main_loop()
14662         and dbus_connection_setup_g_main_loop() or something like that
14663         (but think of better names...) that just create a connection
14664         that has watch/timeout functions etc. already set up.
14665
14666         * dbus/dbus-connection.c
14667         (dbus_connection_send_message_with_reply): new function just to
14668         show how the message handler helps us deal with replies.
14669
14670         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14671
14672         * dbus/dbus-string.c (_dbus_string_test): free a string that
14673         wasn't
14674
14675         * dbus/dbus-hash.c: use memory pools for the hash entries
14676         (rebuild_table): be more paranoid about overflow, and
14677         shrink table when we can
14678         (_dbus_hash_test): reduce number of sprintfs and write
14679         valid C89. Add tests for case where we grow and then
14680         shrink the hash table.
14681
14682         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14683
14684         * dbus/dbus-connection.c (dbus_connection_register_handler)
14685         (dbus_connection_unregister_handler): new functions
14686
14687         * dbus/dbus-message.c (dbus_message_get_name): new
14688
14689         * dbus/dbus-list.c: fix docs typo
14690
14691         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14692         an object representing a handler for messages.
14693
14694 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14695
14696         * glib/dbus-glib.h:
14697         * glib/dbus-gthread.c: (dbus_gthread_init):
14698         Don't use the gdbus prefix for public functions.
14699
14700 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14701
14702         * Makefile.am:
14703         * configure.in:
14704         Add GLib checks and fixup .pc files
14705
14706         * glib/Makefile.am:
14707         * glib/dbus-glib.h:
14708         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14709         (gdbus_connection_check), (gdbus_connection_dispatch),
14710         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14711         (dbus_connection_gsource_new):
14712         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14713         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14714         * glib/test-dbus-glib.c: (message_handler), (main):
14715         Add GLib support.
14716
14717 2002-12-15  Harri Porten  <porten@kde.org>
14718
14719         * autogen.sh: check for libtoolize before attempting to use it
14720
14721         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14722         struct.
14723
14724         * .cvsignore: ignore more stamp files
14725
14726         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14727
14728         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14729         without make install.
14730
14731 2002-12-15  Havoc Pennington  <hp@pobox.com>
14732
14733         * dbus/dbus-threads.c: add thread stubs that a higher library
14734         layer can fill in. e.g. the GLib wrapper might fill them in with
14735         GThread stuff. We still need to use this thread API to
14736         thread-safe-ize the library.
14737
14738 2002-12-12  Havoc Pennington  <hp@pobox.com>
14739
14740         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14741         below new interfaces and include fewer system headers.
14742
14743         * dbus/dbus-sysdeps.c (_dbus_read): new function
14744         (_dbus_write): new function
14745         (_dbus_write_two): new function
14746         (_dbus_connect_unix_socket): new function
14747         (_dbus_listen_unix_socket): new function
14748
14749         * dbus/dbus-message-internal.h: change interfaces to use
14750         DBusString
14751
14752 2002-12-11  Havoc Pennington  <hp@pobox.com>
14753
14754         * dbus/dbus-types.h: add dbus_unichar
14755
14756         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14757
14758         * dbus/dbus-connection.c (dbus_connection_send_message): return
14759         TRUE on success
14760
14761         * dbus/dbus-transport.c: include dbus-watch.h
14762
14763         * dbus/dbus-connection.c: include dbus-message-internal.h
14764
14765         * HACKING: add file with coding guidelines stuff.
14766
14767         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14768         handling here, for security purposes (as in vsftpd). Not actually
14769         using this class yet.
14770
14771         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14772         system/libc usage here, as in vsftpd, for ease of auditing (and
14773         should also simplify portability). Haven't actually moved all the
14774         system/libc usage into here yet.
14775
14776 2002-11-25  Havoc Pennington  <hp@pobox.com>
14777
14778         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14779         always print the first verbose message.
14780
14781 2002-11-24  Havoc Pennington  <hp@pobox.com>
14782
14783         * test/echo-client.c, test/echo-server.c: cheesy test
14784         clients.
14785
14786         * configure.in (AC_CHECK_FUNCS): check for writev
14787
14788         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14789         function
14790
14791         * dbus/dbus-list.c (_dbus_list_foreach): new function
14792
14793         * dbus/dbus-internals.c (_dbus_verbose): new function
14794
14795         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14796         representing a server that listens for connections.
14797
14798         * dbus/.cvsignore: create
14799
14800         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14801         public API for reporting errors
14802
14803         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14804         public object representing a connection that
14805         sends/receives messages. (Same object used for
14806         both client and server.)
14807
14808         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14809         Basic abstraction for different kinds of stream
14810         that we might read/write messages from.
14811
14812 2002-11-23  Havoc Pennington  <hp@pobox.com>
14813
14814         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14815         _DBUS_INT_MAX
14816
14817         * dbus/dbus-test.c (main): add list test, and include
14818         dbus-test.h as intended
14819
14820         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14821         (_dbus_hash_table_remove_int): return value indicates
14822         whether the entry existed to remove
14823
14824         * dbus/dbus-list.c: add linked list utility class,
14825         with docs and tests
14826
14827         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14828         array sometimes.
14829
14830 2002-11-23  Havoc Pennington  <hp@pobox.com>
14831
14832         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14833         DBUS_END_DECLS to nothing, that should fix this once and for all
14834
14835         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14836
14837         * dbus/dbus-message.c, dbus/dbus-hash.c:
14838         add some missing @brief
14839
14840 2002-11-23  Havoc Pennington  <hp@pobox.com>
14841
14842         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14843         to avoid confusing Doxygen
14844
14845         * dbus/dbus-hash.c: @} not }@
14846
14847         * dbus/dbus-message.c (struct DBusMessage): split out
14848         internals docs
14849
14850 2002-11-23  Havoc Pennington  <hp@pobox.com>
14851
14852         * configure.in: pile on more warning flags if using gcc
14853
14854         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14855         to document static functions
14856
14857         * configure.in: add summary to end of configure so it
14858         looks nice and attractive
14859
14860         * dbus/dbus-hash.c: finish implementation and write unit
14861         tests and docs
14862
14863         * configure.in: add --enable-tests to enable unit tests
14864
14865         * dbus/dbus-test.c: test program to run unit tests
14866         for all files in dbus/*, initially runs a test for
14867         dbus-hash.c
14868
14869         * dbus/dbus-internals.h: file to hold some internal utility stuff
14870
14871 2002-11-22  Havoc Pennington  <hp@redhat.com>
14872
14873         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14874         "ported" away from Tcl
14875
14876         * dbus/dbus-types.h: header for types such as dbus_bool_t
14877
14878 2002-11-22  Havoc Pennington  <hp@redhat.com>
14879
14880         * dbus/dbus.h: fixups for doc warnings
14881
14882         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14883         macros
14884         (QUIET): make it quiet so we can see warnings
14885
14886         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14887
14888 2002-11-22  Havoc Pennington  <hp@redhat.com>
14889
14890         * Makefile.am: include "Doxyfile" target in all-local
14891
14892         * configure.in: generate the Doxyfile
14893
14894         * Doxyfile.in: move Doxyfile here, so we can use
14895         configure to generate a Doxyfile with the right
14896         version number etc.
14897
14898 2002-11-22  Havoc Pennington  <hp@redhat.com>
14899
14900         * dbus/dbus-message.c: move inline docs into .c file
14901
14902         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14903         so all docs are under doc/
14904         (MAN_EXTENSION): generate man pages. Use extension
14905         ".3dbus" which matches ".3qt" on my system,
14906         I guess this is OK, I don't know really.
14907         (FILE_PATTERNS): look for .c files not .h, makes sense
14908         for plain C I think
14909
14910 2002-11-22  Havoc Pennington  <hp@pobox.com>
14911
14912         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14913         because any app can be a server, and any app can be a client,
14914         the bus is a special kind of server.
14915
14916 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14917
14918         * Doxyfile : adding. Still needs Makefile rules to be generated
14919         automatically (just run "doxygen" in the toplevel dir for now to
14920         generate docs)
14921
14922         * dbus/dbus-message.h : Adding sample docs (javadoc since
14923         resembles gtk-doc a little more)
14924
14925         * dbus/dbus.h : Adding sample docs
14926
14927 2002-11-21  Havoc Pennington  <hp@redhat.com>
14928
14929         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14930         so we can allow ourselves to include files directly,
14931         instead of having to use dbus.h
14932
14933         * dbus/dbus.h: fill in
14934
14935         * dbus/dbus-message.h: sketch out a sample header file.
14936         Include griping if you include it directly instead of
14937         via dbus.h
14938
14939         * dbus/dbus-macros.h: new file with macros for extern "C",
14940         TRUE/FALSE, NULL, etc.
14941
14942         * doc/file-boilerplate.c: put include guards in here
14943
14944 2002-11-21  Havoc Pennington  <hp@redhat.com>
14945
14946         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14947
14948         * COPYING: include the GPL as well, and license code
14949         under both AFL and GPL.
14950
14951 2002-11-21  Havoc Pennington  <hp@redhat.com>
14952
14953         * acconfig.h: get rid of this
14954
14955         * autogen.sh (run_configure): add --no-configure option
14956
14957         * configure.in: remove AC_ARG_PROGRAM to make
14958         autoconf complain less. add AC_PREREQ.
14959         add AC_DEFINE third arg.
14960
14961 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14962
14963         * doc/Makefile.am:
14964         Fix references so we can distcheck.
14965
14966 2002-11-21  Havoc Pennington  <hp@redhat.com>
14967
14968         * Initial module creation
14969