2006-10-01 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-10-01  Havoc Pennington  <hp@redhat.com>
2
3         * dbus/dbus-bus.c
4         (internal_bus_get): only weak ref the connection; this means 
5         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
6         called safely in any context
7         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
8         unref
9
10         * dbus/dbus-connection.c
11         (_dbus_connection_get_dispatch_status_unlocked): move
12         _dbus_bus_notify_shared_connection_disconnected_unlocked here
13         when queuing Disconnected instead of when the Disconnected message
14         arrives, so dbus_bus_get() won't return closed connections.
15         
16 2006-10-01  Havoc Pennington  <hp@redhat.com>
17
18         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
19         Add a hack to make DBusNewConnectionFunction work right.
20
21         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
22         the hack here. Also, fix the todo about refcount leak.
23         
24         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
25         and use the hack here
26         
27         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
28         "shareable" flag; this was completely broken, since it meant 
29         dbus_connection_open() returned a connection of unknown
30         shared-ness. Now, we always hold a ref on anything opened 
31         as shareable.
32
33         Move the call to notify dbus-bus.c into
34         connection_forget_shared_unlocked, so libdbus consistently forgets
35         all its knowledge of a connection at once. This exposed numerous
36         places where things were totally broken if we dropped a ref inside
37         get_dispatch_status_unlocked where
38         connection_forget_shared_unlocked was previously, so move
39         connection_forget_shared_unlocked into
40         _dbus_connection_update_dispatch_status_and_unlock. Also move the
41         exit_on_disconnect here.
42
43         (shared_connections_shutdown): this assumed weak refs to the
44         shared connections; since we have strong refs now, the assertion 
45         was failing and stuff was left in the hash. Fix it to close
46         still-open shared connections.
47         
48         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
49         debug pipe connections
50         
51         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
52         dbus-bus.c if the closed connection is in fact shared
53         (_dbus_connection_close_possibly_shared): rename from 
54         _dbus_connection_close_internal
55         (dbus_connection_close, dbus_connection_open,
56         dbus_connection_open_private): Improve docs to explain the deal
57         with when you should close or unref or both
58
59         * dbus/dbus-bus.c
60         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
61         from _dbus_bus_check_connection_and_unref_unlocked and modify to
62         loop over all connections
63
64         * test/test-utils.c (test_connection_shutdown): don't try to close
65         shared connections.
66
67         * test/name-test/test-threads-init.c (main): fix warnings in here
68
69         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
70         env variable to cause blocking waiting for gdb; drop
71         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
72         unconditionally.
73
74         * configure.in: add -export-dynamic to libtool flags if assertions enabled
75         so _dbus_print_backtrace works.
76
77         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
78         instead of _dbus_verbose to print the backtrace, and diagnose lack 
79         of -rdynamic/-export-dynamic
80         
81 2006-09-30  Havoc Pennington  <hp@redhat.com>
82
83         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
84         (internal_bus_get): fix screwy code formatting. whoever committed
85         that was not paying attention!
86
87 2006-09-30  Havoc Pennington  <hp@redhat.com>
88
89         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
90         reflect addition of interfaces.
91
92         * doc/dbus-specification.xml: describe a new
93         org.freedesktop.DBus.Peer.GetMachineId method
94
95         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
96         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
97         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
98         at end of skip_white
99         (_dbus_string_chop_white): new function
100
101         * bus/connection.c (bus_connections_setup_connection): call
102         dbus_connection_set_route_peer_messages.
103
104         * dbus/dbus-connection.c
105         (_dbus_connection_peer_filter_unlocked_no_update): modify to
106         support a GetMachineId method.
107
108         Also, support a new flag to let the bus pass peer methods through
109         to apps on the bus, which can be set with
110         dbus_connection_set_route_peer_messages.
111
112         Finally, handle and return an error for anything unknown on the
113         Peer interface, which will allow us to extend the Peer interface
114         in the future without fear that we're now intercepting something
115         apps were wanting to see.
116         
117         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
118         dbus/dbus-uuidgen.c
119
120         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
121         binary here, since most of the code is already in libdbus
122
123         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
124         uuid from the system config file
125
126         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
127         (_dbus_read_uuid_file_without_creating) 
128         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
129         uuid-related functions, partly factored out from dbus-server.c
130
131         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
132         DBUS_ERROR_FILE_EXISTS instead of EEXIST
133
134         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
135
136         * tools/dbus-cleanup-sockets.1: explain what the point of this
137         thing is a bit more
138
139         * autogen.sh (run_configure): add --config-cache to default
140         configure args
141
142         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
143         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
144
145         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
146         don't try to save address, fixes crash in make check
147         
148 2006-09-30  Thiago Macieira  <thiago@kde.org>
149
150         * configure.in: add DBUS_BINDIR as a #define to C source code.
151
152         * tools/dbus-launch.c
153         * tools/dbus-launch.h
154         * tools/dbus-launch-x11.c:
155         * tools/dbus-launch.1: Add the --autolaunch option to
156         dbus-launch, which makes it scan for an existing session
157         started with --autolaunch. With that option, it also creates
158         an X11 window and saves the bus address and PID to it.
159
160         * dbus/dbus-sysdeps.h:
161         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
162         a function that runs "dbus-launch --autolaunch" to retrieve
163         the running D-Bus session address (or start one if none was running)
164
165         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
166         address protocol, which tries to get the running session from
167         dbus-launch.
168
169         * dbus/dbus-bus.c:
170         * dbus/dbus-internals.h: Make "autolaunch:" be the default
171         D-Bus session bus address.
172
173         * dbus/dbus-connection.c: Fix horrible typo in error message.
174
175 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
176
177         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
178
179 2006-09-17  Havoc Pennington  <hp@redhat.com>
180
181         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
182         fix so that if unix_user_function is set on windows, we still
183         do the default check that the auth identity matches the bus identity
184
185 2006-09-16  Havoc Pennington  <hp@redhat.com>
186
187         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
188         to _dbus_transport_open_platform_specific,
189         _dbus_transport_open_socket,
190         and _dbus_transport_open_debug_pipe
191
192         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
193
194 2006-09-16  Havoc Pennington  <hp@redhat.com>
195
196         Attempt auditing public API to remove all cases where a Unix
197         function returns weird emulated goo to Windows. This probably 
198         breaks the bus daemon on Windows, to fix it again we may 
199         need to stop processing unix-specific config options on Windows,
200         and may need to add Windows-specific public API or config options.
201         
202         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
203         to reflect added interfaces; should not break soname.
204         
205         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
206         not invoke unix user function on Windows. Kind of a hacky fix, but 
207         we don't want a "unix uid" leaking out on Windows.
208
209         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
210         to get the socket fd on Windows or UNIX
211         (dbus_connection_get_unix_fd): make this always fail on Windows
212
213 2006-09-16  Havoc Pennington  <hp@redhat.com>
214
215         * dbus/dbus-server.c (dbus_server_listen): change how this works
216         to be able to delegate to a set of handlers that can succeed,
217         fail, or choose not to handle. Allows us to have 
218         dbus_server_listen_platform_specific.
219
220         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
221         factor out the tcp socket stuff to be used on windows, leaving
222         unix domain socket only in dbus-socket-unix.c
223
224         * dbus/dbus-transport-socket.c
225         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
226         stuff to be used on windows, leaving unix domain socket only 
227         in dbus-transport-unix.c
228
229         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
230         temporary hack to be sure this fails on windows
231         (dbus_connection_get_unix_process_id): ditto
232
233 2006-09-16  Havoc Pennington  <hp@redhat.com>
234
235         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
236         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
237         _dbus_open_socket so the domain/type/protocol from system headers
238         are not required. This is kind of pointless though unless we move
239         part of _dbus_connect_tcp_socket into sysdeps.c instead of
240         sysdeps-unix.c, which would mean adding a wrapper around
241         bind/listen/etc.
242         Also, add DBusError to the socket-opening functions so they 
243         don't require use of errno.
244
245 2006-09-16  Havoc Pennington  <hp@redhat.com>
246
247         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
248         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
249
250         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
251         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
252         functions specifically for sockets only, and move generic 
253         read/write/open/close into unix-specific code.
254
255 2006-09-14  Havoc Pennington  <hp@redhat.com>
256
257         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
258         complaint about accessing revents when poll returns 0, from Julian Seward.
259
260 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
261
262         * Released 1.0 RC 1 (0.93) 
263
264 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
265
266         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
267         use _dbus_close instead of close
268
269 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
270
271         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
272         credentials.  Fixes "external" authentication under e.g. NetBSD
273         which does not support any other socket credentials mechanism.
274         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
275
276 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
277
278         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
279         dbus_threads_init and be used by the dbus mutex functions to
280         avoid deadlocks.
281
282         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
283
284 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
285
286         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
287         use threadsafe readdir_r instead of readdir
288
289 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
290
291         * dbus-threads.c (dbus_threads_init_default): New method for
292         initializing the internal thread implementation (Patch from
293         Alexander Larsson <alexl at redhat dot com>)
294
295 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
296
297         * remove a bunch of todo items from the 1.0 list
298
299 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
300
301         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
302         key not found
303
304 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
305
306         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
307         complex debugging code
308
309         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
310         between the test suite ifdefs
311         (_dbus_verbose_bytes): return if verbosity is not enabled 
312
313 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
314
315         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
316         remove DBusMark
317
318 2006-09-10  Havoc Pennington  <hp@redhat.com>
319
320        patch mostly by Peter Kümmel, bug #8211
321         
322         * dbus/dbus-sysdeps-unix.c: new file, which splits out
323         unix-specific stuff in dbus-sysdeps.c
324
325         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
326         and move unix-specific stuff to dbus-sysdeps-unix.c
327
328         * configure.in: check HAVE_ERRNO_H
329         
330 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
331
332         * bus/test-main.c (main): Initialize threading during tests
333
334         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
335         Unlock connection on error
336         (generate_local_error_message): static method for generating
337         an error message when we don't have a message to reply to
338         (_dbus_connection_block_pending_call): Send a disconnect error
339         instead of just a timeout (NULL) when the bus gets disconnected
340         while blocking for a reply.
341         
342 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
343
344         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
345         filters (Patch from Kimmo Hämäläinen 
346         <kimmo dot hamalainen at nokia dot com>)
347
348 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
349
350         * dbus/dbus-connection-internal.h: Add prototype for 
351         _dbus_connection_test_get_locks to remove warning
352
353 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
354
355         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
356         close child_err_report_pipe[WRITE_END] on exec (Patch from 
357         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
358
359 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
360
361         * Clean up close calls to use _dbus_close (Patch from 
362         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
363
364 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
365
366         * doc/TODO:
367         - Remove pending call locking todo item
368         - dbus_connection_open now holds hard ref.  Remove todo item
369         - do proper locking on _dbus_bus_check_connection_and_unref
370           and handle DBUS_BUS_STARTER. Remove todo item
371         - Warn on closing of a shared connection.  Remove todo item
372
373         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
374         dbus/dbus-connection.c: Use the dbus_connection_close_internal
375         so we don't get the warning when closing shared connections
376
377         * test/test-service.c, test/test-shell-service.c: Applications
378         don't close shared connections themselves so we unref instead of
379         close
380
381         * test/test-utils.c (test_connection_shutdown): Close the connection
382
383         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
384         _dbus_bus_check_connection_and_unref_unlocked since we only call this
385         method on a locked connection.  
386         Make sure we call _dbus_connection_unref_unlocked instead of 
387         dbus_connection_unref also.
388         Handle DBUS_BUS_STARTER correctly
389
390         * dbus/dbus-connection.c (connection_record_shared_unlocked):
391         Mark as shared and hard ref the connection
392         (connection_forget_shared_unlocked): Remove the hard ref from the 
393         connection
394         (_dbus_connection_close_internal_and_unlock):  New internal function
395         which takes a locked connection and unlocks it after closing it
396         (_dbus_connection_close_internal): New internal function which acts
397         like the origonal dbus_connection_close method by grabbing a connection
398         lock and calling _dbus_connection_close_internal_and_unlock
399         (dbus_connection_close): Public close method, warns when the app
400         trys to close a shared connection
401
402 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
403
404         * bus/driver.c:
405         (bus_driver_generate_introspect_string): New method for populating
406         a DBusString with the introspect data
407         (bus_driver_handle_introspect): Move introspect generation code to 
408         bus_driver_generate_introspect_string
409
410         * bus/main.c:
411         (introspect): New function which prints out the intropect data and
412         exits
413         (main): Add a --introspect switch
414
415 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
416
417         * doc/TODO: Removed dtd publishing item.  
418         It seems the dtd has already been added at
419         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
420
421 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
422
423         * doc/TODO, various source files: Audited todo's and FIXME's and
424         prepended the ones we should be looking at with 1.0.  Those
425         prepended with 1.0? need clerification or might not be needed
426         for 1.0
427
428 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
429
430         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
431         NULL in the public API (Patch from Kimmo Hämäläinen 
432         <kimmo dot hamalainen at nokia dot com>)
433
434 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
435
436         * configure.in: Fix for OS-X compile time endian issues (patch from
437         Benjamin Reed <ranger at befunk dot com>)
438
439 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
440
441         * configure.in: Check for no-common compiler flag (OS-X fix from
442         Benjamin Reed <ranger at befunk dot com>)
443
444 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
445
446         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
447         <fcrozat at mandriva dot com>)
448
449 2006-08-29  Havoc Pennington  <hp@redhat.com>
450
451         * test/test-service.c (path_message_func): fix lack of return value
452
453         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
454         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
455         any more sense than on anything else in this file.
456         (_dbus_get_tmpdir): add const to return value, and keep the
457         results of the various getenv around in a static variable.
458
459 2006-08-29  Havoc Pennington  <hp@redhat.com>
460
461         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
462         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
463
464 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
465
466         * test/Makefile.am: change find to use syntax that works with non
467         gnu versions of find
468
469 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
470
471         * dbus/dbus-transport.c: fix invalid deref when checking if
472         a vtable method exists (Patch from Christian Ehrlicher 
473         <ch dot ehrlicher at gmx dot de>)
474
475 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
476
477         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
478         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
479         to build with builddir != srcdir (Taken from a patch by Bernard Leak
480         <bernard at brenda-arkle dot demon dot co dot uk>)
481
482 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
483
484         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
485         default case
486
487 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
488
489         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
490         it works on any system providing this interface, not only FreeBSD.
491         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
492
493 2006-08-20  Havoc Pennington  <hp@redhat.com>
494
495         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
496         the docs
497
498 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
499
500         * Released 0.92 
501
502 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
503
504         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
505         to reflect the init late change
506
507         * bus/bus.c (bus_context_new): Check user before we fork so we can
508         print out an error message a user will be able to see
509
510 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
511
512         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
513
514         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
515         Add two more global locks for use on windows platforms.  These are
516         unused on non-windows platforms but are not ifdefed out to avoid
517         potential bugs (i.e. the few bytes lost does not warrent the extra
518         maintanence and complexity that having seperate sets of locks would
519         cause)
520
521 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
522
523         * bus/services.c (bus_registry_acquire_service): Return an error
524         when an application tries to register the org.freedesktop.DBus Bus Name
525
526         * bus/services.c (bus_registry_release_service): Return an error
527         when an application tries to release the org.freedesktop.DBus Bus Name
528
529 2006-08-17  Alp Toker  <alp@atoker.com>
530
531         * doc/dbus-specification.xml: Fix some minor typos.
532
533 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
534
535         * configure.in: use $with_init_scripts instead of $operating_system
536         to determine where to store the pid since the init scripts manipulate 
537         the pid file (patch from Marcelo Ricardo Leitner 
538         <marcelo dot leitner at terra dot com dot br>.  
539
540 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
541
542         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
543         static DBusList *uninitialized_condvar_list to support new late 
544         initialization threading model.  In this model threads can be initialized
545         even after the D-Bus API has been used but still needs to be initialized 
546         before the second thread has been started.  Mutexes and condvar addresses
547         are stored in the two static lists and are replaced with actuall locks
548         when threads are initalized.
549         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
550         the location into the static list
551         (_dbus_mutex_free_at_location): New method for removing a mutex location 
552         from the static list and freeing the mutex
553         (_dbus_condvar_new_at_location): New method for creating a conditional 
554         variable and placing the location into the static list
555         (_dbus_condvar_free_at_location): New method for removing a conditional
556         variable location from the static list and freeing the conditional variable 
557         (init_uninitialized_locks): Atomic method which goes through the static 
558         lists of mutex and condvar location and updates them with actuall locks
559         (init_global_locks): changed to init_locks
560         
561         * dbus/dbus-connection.c:
562         (_dbus_connection_test_get_locks): New method for tests to check connections
563         (_dbus_connection_new_for_transport): Use the new at_location mutex and
564         condvar API
565         (dbus_connection_allocate_data_slot): Pass in the global lock address
566         to _dbus_data_slot_allocator_alloc
567
568         * dbus/dbus-dataslot.c:
569         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
570         instead of the mutex itself
571
572         * dbus/dbus-message.c:
573         (dbus_message_allocate_data_slot): Pass in the global lock address
574         to _dbus_data_slot_allocator_alloc
575
576         * dbus/dbus-pending-call.c:
577         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
578         to _dbus_data_slot_allocator_alloc
579
580         * dbus/dbus-server.c:
581         (_dbus_server_init_base): Use the new at_location mutex API
582         (dbus_server_allocate_data_slot): Pass in the global lock address
583         to _dbus_data_slot_allocator_alloc
584
585         * test/name-test/test-threads-init.c: New test case for late thread
586         initialization
587
588 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
589
590         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
591         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
592         causes compile problems when asserts are turned off
593         Keeping _dbus_warn for printing out the message so even if
594         asserts are turned off the user gets the messages that something is 
595         wrong 
596
597 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
598
599         Patches by Kjartan Maraas <kmaraas at gnome dot org>
600
601         * bus/services.c (bus_service_list_queued_owners):
602         Add a pointer cast to fix compiler warning
603
604         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
605         return a NULL instead of FALSE since the return type
606         is not expecting a boolean
607
608         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
609         Remove unused variable
610
611         * dbus/dbus-marshal-recursive-util.c (node_new):
612         return a NULL instead of FALSE since the return type
613         is not expecting a boolean
614
615         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
616         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
617         because we are expecting a pointer not a boolean
618
619         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
620         add void as the parameter so some compilers
621         don't complain
622
623         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
624           _dbus_transport_new_for_tcp_socket):
625         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
626         because we are expecting a pointer not a boolean
627
628         * test/shell-test.c (test_command_line):
629         cast the second argument to _dbus_list_append to avoid compiler
630         warnings
631
632         * test/test-names.c (main): remove unused variable
633
634         * test/test-service.c (check_hello_from_self_reply):
635         Initialize echo_message and echo_reply to NULL
636         
637         * test/test-shell-service.c (handle_echo):
638         Remove unused variable and cast the third parameter passed to
639         dbus_connection_get_object_path_data to avoid compiler warrnings
640
641         * test/name-test/test-names.c (clear_message_queue):
642         Remove unused function
643
644         * test/name-test/test-pending-call-dispatch.c:
645         Fix format string in printf
646
647
648 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
649
650         * dbus/dbus-bus.c:
651         * test/name-test/test-names.c:
652         Remove test method dbus_bus_connection_get_unique_name because 
653         we already have public method dbus_bus_get_unique_name that 
654         does the exact same thing
655
656 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
657
658         * dbus/dbus-signature.c:
659         fix typos in Julio's previous patch which cause make check to fail
660
661 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
662
663         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
664         In any case it was wrong since this is a test checking to see if
665         address parsing is correct.  There was no need to get the true
666         tmp directory.  
667
668 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
669
670         * dbus/dbus-macros.h: Revert the addition of stddef.h
671         as we should not be adding it to library headers 
672
673 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
674
675         * dbus/dbus-signature.c:
676         Fix the unit tests so that they work if assertions are not enabled.
677         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
678
679 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
680
681         * tools/run-with-tmp-session-bus.sh:
682         * test/name-test/run-test.sh:
683         Remove bashisms (patch from Julio M. Merino Vidal
684         <jmmv at NetBSD dot org>)
685
686 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
687
688         * configure.in: add a version (>= 2.6.0) check for libxml2
689
690 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
691
692         * configure.in: make sure the compiler supports -Wfloat-equal
693         
694         * bus/dir-watch-dnotify.c: move functional code after 
695         variable declerations (C99 fix)  (patches from Jens Granseuer
696         <jensgr at gmx dot net>
697
698 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
699
700         * dbus/dbus-macros.h:
701         add #include <stddef.h> so that Sun compilers don't complain about
702         the defining NULL
703
704 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
705
706         * dbus/dbus-sysdeps.c:
707         * dbus/dbus-address.c:
708         * bus/activation.c:
709         * test/shell-test.c:
710         don't hardcode tmp directory (patch from Dave Meikle 
711         <dmk at davemeikle dot co dot uk>)
712
713 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
714
715         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
716         Change an assert to a detailed warning and abort.  
717         When allocator->lock != mutex it indicates that the user has failed
718         to initalize threads before using the D-Bus library.  This warning
719         helps the user identify the issue and fix their app.
720
721 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
722
723         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
724         with cleanups of bugs found from Coverity reports:
725
726         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
727         close the file on error to avoid a leak
728
729         * bus/expirelist.c (bus_expire_list_test):
730         Check for NULL on dbus_new0
731
732         * bus/activation.c (update_directory):
733         remove dead code
734
735         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
736         Fix some leaks
737
738         * bus/bus.c (process_config_every_time):
739         Fixed a leak
740
741         * bus/desktop-file.c (parse_key_value):
742         Fixed leak
743
744         * bus/selinux.c (bus_selinux_id_table_insert):
745         Fixed leak
746
747 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
748
749         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
750         remove dead code
751
752 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
753
754         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
755         #!/bin/bash
756
757 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
758
759         * Doxyfile.in: fix the INPUT line so we can generate docs 
760         when sourcedir != builddir (patch from Cygwin Ports maintainer
761         <yselkowitz at users dot sourceforge dot net>
762
763 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
764
765         * dbus/dbus-sysdeps.h:
766         * dbus/dbus-sysdeps.c: 
767         * dbus/dbus-string.c: 
768         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
769         GLib's function which does the same thing
770
771         * configure.in:
772         * bus/Makefile.am:
773         * bus/dir-watch-default.c:
774         * bus/dir-watch-dnotify.c:
775         * bus/dir-watch-kqueue.c:
776         Add kqueue directory watching for freebsd and split the directory
777         watching code into seperate files per method/arch
778         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
779
780 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
781
782         * configure.in:
783         * tools/Makefile.am:
784         * tools/dbus-launch.c:
785         * bus/Makefile.am:
786         allow --with-dbus-daemondir switch to be used to make the
787         daemon install to a seperate bindir like /usr/libexec
788         (patch from Brian Cameron <brian dot cameron at sun dot com)
789
790 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
791
792         * bus/Makefile.am (install-data-hook): removed the slash after 
793         $(DESTDIR) so we don't get the double slash which does not work
794         in windows (patch from Andras Porjesz 
795         <andras dot porjesz at siemens dot com>)
796
797 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
798
799         * dbus/dbus-sysdeps.h:
800         * dbus/dbus-sysdeps.c: 
801           add _dbus_printf_length (patch from Peter Kümmel 
802           <syntheticpp at gmx dot net>)
803
804 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
805
806         * dbus/dbus-internals.c: unistd.h is not used 
807         (_dbus_verbose_real): only enable verbose printing 
808         if DBUS_VERBOSE environment var is set to '1'
809         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
810
811 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
812
813         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
814         so we still compile on older gcc (patch from Frederic Peters 
815         <fpeters at 0d dot be>
816
817 2006-08-04  Havoc Pennington  <hp@redhat.com>
818
819         * configure.in: add -Wdeclaration-after-statement
820
821         * dbus/dbus-connection.c: change all the pending call stuff to
822         reflect the fact that pending call operations use the connection
823         lock
824
825         * dbus/dbus-pending-call.c: add locking here
826
827         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
828         field const consistent with how message field is done
829
830 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
831
832         * s/D-BUS/D-Bus/g
833
834 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
835
836         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
837         <in7y118 at public.uni-hamburg dot de> - fix invalid
838         read/write reported by valgrind
839
840 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
841
842         * Released 0.91
843
844 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
845
846         * dbus/dbus-connection.c:
847         (_dbus_connection_attach_pending_call_unlocked):
848         (connection_timeout_and_complete_all_pending_calls_unlocked):
849         Make sure we set timeout_added on pending calls to FALSE when
850         we remove the timeout from the connection
851
852 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
853
854         * Removed some extra bindings stuff lingering around (thanks timo)
855         * dbus-pendingcall.c (_dbus_pending_call_new): 
856         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
857         when we tried to take a lock on an already locked connection
858
859 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
860
861         * Released 0.90
862
863 2006-07-17  Havoc Pennington  <hp@redhat.com>
864
865         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
866         ints, reported by Owen Taylor
867
868 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
869
870         * doc/TODO:
871         * dbus/dbus-bus.c:
872         * dbus-errors.c:
873         * dbus/dbus-marshal-validate.c:
874           Removed TODO items which were fixed or are no longer relevent
875
876 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
877
878         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
879         Remove stray files from the stripped bindings
880
881 2006-07-16  Havoc Pennington  <hp@redhat.com>
882
883         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
884         Improve the error message on reply timeout
885
886 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
887
888         * Remove all bindings
889
890 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
891
892         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
893         and set pending_reply out arg to NULL is connection is disconnected
894         (connection_timeout_and_complete_all_pending_calls_unlocked): New
895         static method for cleaning up pending calls on disconnect
896         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
897         calls queued timeouts on disconnect 
898
899          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
900         Remove 
901
902 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
903
904         * bus/activation.[ch] (bus_activation_list_services): new function to 
905         get the list of services that can be activated
906
907         * bus/dispatch.c: test coverage for the new bus method
908         ListActivatableNames
909
910         * bus/driver.c: new bus method ListActivatableNames to get the list of
911         services that can be activated
912
913         * doc/dbus-specification.xml: ListActivatableNames method documentation
914
915 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
916         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
917         source files
918
919 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
920         * dbus/dbus-message-factory.c:
921         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
922
923 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
924         * dbus/dbus-connection-internal.h:
925         * dbus/dbus-connection.c:
926         * file dbus/dbus-pending-call.c:
927         * dbus/dbus-pending-call.h:
928         Make DBusPendingCall an opaque type even to D-Bus internals
929
930 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
931
932         * dbus/dbus-connection.h: remove connection_disconnect and replace with
933         connection_close
934
935         * dbus/dbus-connection.c: include dbus-bus.h
936         (_dbus_connection_read_write_dispatch): make static
937
938 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
939
940         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
941         function
942         (dbus_connection_dispatch): On disconnect unref any shared connections
943
944         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
945         for cleaning up shared connections on disconnect
946         (internal_bus_get): get a hard refrence to shared connections when
947         they are created
948         
949         * doc/TODO: Remove items which are no longer relevent or have been fixed
950         Split 1.0 todo items with a 0.90 freeze todo list
951  
952 2006-06-14  Ross Burton  <ross@openedhand.com>
953
954         * glib/dbus-gobject.c:
955         Free a leaking GArray (surely not!) in dbus_g_method_return.
956
957 2006-06-14  Ross Burton  <ross@openedhand.com>
958
959         * tools/Makefile.am:
960         * tools/dbus-monitor.c:
961         Don't use the GLib bindings in dbus-monitor (patch from Ralf
962         Habacker).
963         
964 2006-06-14  Ross Burton  <ross@openedhand.com>
965
966         * tools/dbus-print-message.c:
967         Also print the object path when outputting signals or method calls.
968
969 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
970
971         * qt/src/Makefile.am: install the qdbus.h header.
972         This allows people to actually use the installed code.
973
974 2006-06-12  Ross Burton  <ross@openedhand.com>
975
976         * glib/dbus-gproxy.c:
977         Don't leak a GArray when firing signals (thank Rob Taylor for review).
978
979 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
980
981         * Released 0.62
982
983 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
984
985         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
986         break pedantic builds. Closes bug 6043 (patch approved by
987         Havoc back in February).
988
989 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
990
991         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
992         that took a QDBusMessage parameter.
993         * qt/src/qdbusbus.h: Add a default flag for RequestName.
994         * qt/tools/dbus.cpp: Don't use automatic call because we might
995         be calling an async method: request a reply.
996
997 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
998
999         * test/qt/*: Update the testcases, including testing the new
1000         functionality of sending null QByteArray and QString over the
1001         bus. Add new headertest test and restore the old
1002         qdbusxmlparser test.
1003
1004 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1005
1006         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1007         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1008
1009         * qt/examples/Makefile.am:
1010         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1011         form.
1012
1013         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1014         QByteArray() (nulls) over the bus.
1015         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1016         the one that has the signature suffix stripped.
1017         * qt/src/qdbusreply.h: Make some methods const.
1018
1019 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1020
1021         Patch from Timo Hoenig <thoenig@suse.de>.
1022
1023         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1024         required during build to EXTRA_DIST.
1025         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1026         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1027         * configure.in: Fix "make dist", take care that the Makefile for
1028         qt/dbus is being generated.
1029
1030 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1031
1032         * bus/bus.c: Fix eavesdropping on method calls
1033
1034 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1035
1036         * configure.in:
1037         * dbus/dbus-userdb-util.c:
1038         Add Solaris console owner patch from Artem Kachitchkine
1039
1040 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1041
1042         * qt/Makfile.am:
1043         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1044         reorganisation. Thanks to Timo Hoenig for pointing this out.
1045
1046 2006-06-06  Robert McQueen  <robot101@debian.org>
1047
1048         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1049           call to dbus_g_type_get_struct.
1050
1051 2006-06-06  Robert McQueen  <robot101@debian.org>
1052
1053         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1054           pointers were put into a GPtrArray-based specialised collection, and
1055           then freed along with the array. GValues which you add into
1056           collections or maps which have the NOCOPY flag set are assumed to not
1057           belong to the caller, so rather than the existing pointer-stealing
1058           semantics, they are copied instead. Given that the main consumers of
1059           this abstraction are the bindings themselves, I don't think this is
1060           too bad, but others should watch their choice of take vs set_static.
1061
1062 2006-06-06  Robert McQueen  <robot101@debian.org>
1063
1064         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1065           of g_slist_prepend not being used. Fixed copying of slist-based
1066           specialised collections, then wrote a test case and found that it was
1067           all broken. Went on to fix iterating and appending too. Good thing
1068           nobody uses this code yet.
1069
1070 2006-06-06  Robert McQueen  <robot101@debian.org>
1071
1072         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1073           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1074           are discarded without unsetting, so it makes no difference whether
1075           we take or set_static). Remove cases for G_TYPE_POINTER because
1076           there really is nothing useful we can do with them in our
1077           specialised types - we *need* boxed copy/free functions at the very
1078           least.
1079
1080 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1081
1082         * qt/dbus: Add directory. I had forgotten to add this
1083         yesterday after the move...
1084
1085         * qt/examples/Makefile.am:
1086         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1087
1088         * qt/tools/Makefile.am:
1089         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1090         Added feature to get and set properties.
1091         Added validation of service, object path and interface names.
1092
1093         * qt/tools/dbusidl2cpp.cpp: Two new features:
1094         1) Allow specifying both the header and the source file names,
1095         by separating them with a colon.
1096         2) Don't write an interface output if the -p switch wasn't
1097         given, but the -a was.
1098
1099         * qt/src/*: Fix usage of Iterators and ConstIterators.
1100         Fix shadowing of variables by other variables (-Wshadow).
1101         Fix keyword-cleanliness in headers.
1102         Fix ASCII-cast (QLatin1String, QLatin1Char).
1103         Fix validation of member names.
1104         Add extra checking of introspection data during XML parsing.
1105         Various bug fixes.
1106
1107 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1108
1109         * dbus/Makefile.am:
1110         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1111         qt/dbus/qdbus.h now.
1112
1113 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1114
1115         * configure.in: Make --disable-qt actually do
1116           something. Patch inspired by Zack Rusin.
1117
1118 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1119
1120         * qt/: Update to Subversion r548032.
1121         This includes a big reorganisation of the files inside the
1122         subdir.
1123
1124 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1125
1126         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1127         clear:  
1128         "Failed to connect to socket <host>:<port> <error>" instead of
1129         "Failed to connect to socket <host>: <error>:<port>"
1130
1131         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1132         for a tcp transport. 
1133
1134 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1135
1136         * qt/*: Update the QtDBus bindings up to revision 546310 in
1137         Subversion.
1138         This adds the dbuscpp2xml tool, that parses a C++ header and
1139         outputs a D-BUS Introspection XML.
1140
1141 2006-05-21  Havoc Pennington  <hp@redhat.com>
1142
1143         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1144         is not NULL when it shouldn't be. Also a couple of possible fixes
1145         for #4637 though I don't understand why the bug happens, to be
1146         honest... also the object constructor has an assert name != NULL
1147         and the name is only currently NULL for peer-to-peer proxies that 
1148         I don't think anyone uses? So it should be asserting.
1149         Anyway, for now at least see if we get an earlier assertion failure.
1150
1151         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1152         apparently broken code to be sure the tests fail and someone 
1153         will fix them...
1154
1155 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1156
1157         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1158         and arrays when they had a single element: has_next returns
1159         false, even before you read the element. So, instead, check
1160         the array length.
1161
1162 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1163
1164         * qt/qdbusmessage.cpp:
1165         * qt/qdbustypehelper_p.h:
1166         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1167         the list is a const-reference
1168
1169 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1170
1171         * Adding old doc patch that never got applied
1172         
1173         * dbus/bus.c (dbus_bus_add_match): Add documentation
1174
1175         * doc/dbus-specification.xml: Add documentation for the match rules
1176           and the AddMatch and RemoveMatch methods
1177
1178 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1179
1180         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1181         call (r535506)
1182
1183         * qt/dbusidl2cpp.cpp:
1184         * qt/qdbusabstractadaptor.cpp:
1185         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1186         sibling of the QDBusAbstractAdaptor objects instead of the
1187         parent. (r535848)
1188
1189         * qt/dbusidl2cpp.cpp:
1190         * qt/qdbusabstractinterface.cpp:
1191         * qt/qdbusabstractinterface.h:
1192         * qt/qdbusabstractinterface_p.h:
1193         * qt/qdbusinterface.cpp: Make properties in interfaces
1194         actually work. The code that was generated would not compile,
1195         due to moc calls to functions that did not exist. They now
1196         shall. (r536571)
1197
1198 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1199
1200         * Makefile.am:
1201         * configure.in:
1202         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1203         Thanks to Brad Hards for providing the patch
1204
1205 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1206
1207         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1208         call. (r535506)
1209
1210 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1211
1212         * qt/examples/dbus.cpp: Enhance error messages and use
1213         QDBusInterfacePtr.
1214
1215 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1216
1217         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1218         and disable the copy operators. (r533772, r534746)
1219
1220         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1221
1222         * qt/qdbusabstractinterface.cpp:
1223         * qt/qdbusabstractinterface.h: Change the default call mode to
1224         not use the event loop. Add convenience call() methods that
1225         take a CallMode parameter. (r534042)
1226
1227         * qt/qdbusconnection.h: Change the default call mode to not
1228         use the event loop. (r534042)
1229
1230         * qt/qdbusinterface.cpp:
1231         * qt/qdbusinterface.h: Add a method to tell us if the
1232         interface is valid (since we don't return a null pointer
1233         anymore) (r534099)
1234
1235         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1236         (r534101)
1237
1238         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1239         function in two so taht we get the chance to introspect
1240         without having a QDBusMessage (r534102)
1241
1242         * qt/qdbusbus.h:
1243         * qt/qdbusconnection.cpp:
1244         * qt/qdbusconnection_p.h:
1245         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1246         avoid a round-trip to the server when attempting to introspect
1247         one of our own objects. Also make sure the filter functions
1248         match the empty interface as well. (r534108)
1249         Don't keep the connection names. Instead, trust the unique
1250         connection name (r534111)
1251         Remove event loop usage (r534112)
1252
1253 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1254
1255         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1256         Brad Hards.
1257
1258 2006-04-28  Robert McQueen  <robot101@debian.org>
1259
1260         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1261         any order, making it easier for people who inherit from this
1262         object.
1263
1264 2006-04-28  Robert McQueen  <robot101@debian.org>
1265
1266         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1267         of memory from within pointer arrays and lists. Fixes bug #6300.
1268
1269 2006-04-28  Robert McQueen  <robot101@debian.org>
1270
1271         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1272         generating struct signatures. Fixes bug #6083.
1273
1274 2006-04-28  Robert McQueen  <robot101@debian.org>
1275
1276         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1277         to qdbusconnection_p.moc.
1278
1279 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1280
1281         * README, INSTALL: Doc fixes
1282         Patch from Brad Hards <bradh at frogmouth.net>
1283
1284 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1285
1286         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1287         the dynamic meta object. No need to guess which interface to
1288         call.
1289
1290 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1291
1292         * qt/qdbusconnection_p.h:
1293         * qt/qdbusmetaobject.cpp:
1294         * qt/qdbusmetaobject_p.h:
1295         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1296         for the dynamic meta object. No need to guess which
1297         interface to call.
1298         * qt/qdbusabstractinterface_p.h:
1299         * qt/qdbusconnection.cpp:
1300         * qt/qdbusintegrator.cpp:
1301         * qt/qdbusinterface.cpp:
1302         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1303         Add a QDBusRef that looks and behaves like DCOPRef.
1304
1305 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1306
1307         * dbus/dbus-connection.c: Interfaces are optional in method
1308         calls, so don't give up if the interface parameter is NULL.
1309         Patch reviewed by Havoc Pennington.
1310
1311 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1312
1313         * qt/qdbusreply.h: Add default constructor and operator=
1314           (r532625)
1315         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1316           in public headers (r532952)
1317         * qt/qdbusabstractinterface.cpp:
1318         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1319           make it the default (r532951)
1320
1321 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1322
1323         * dbus/dbus-connection.c: Fix asserts
1324         Patch from Tim Moloney <t.moloney at verizon.net>
1325
1326 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1327
1328         * mono/Connection.cs, mono/Message.cs: Check Target type
1329         Patch from Aaron Bockover (abockover at novell.com)
1330
1331 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1332
1333         * INSTALL: fine-tune the requirements for the Qt4 binding.
1334
1335 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1336
1337         * tools/dbus-print-message.c: Added support for printing of all 
1338           remaining data types. Fixed logic for indentation of compound
1339           data types.
1340         
1341 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1342
1343         * INSTALL: fill out content of file providing DBus specific
1344           build installations, followed by generic Auto* INSTALL file
1345           content
1346         
1347 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1348
1349         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1350           Patch by Stefan Eilers. (r529537)
1351
1352 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1353
1354         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1355           contents (r528208)
1356
1357 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1358
1359         * qt/Makefile.am: fix the dependency for
1360           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1361           not in qdbusconnection.cpp.
1362           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1363           spotting this.
1364
1365 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1366
1367         * qt/examples/listnames.cpp:
1368         * qt/examples/Makefile.am: Three ways to list the names on the
1369           bus.
1370
1371 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1372
1373         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1374           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1375
1376 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1377
1378         Merge from Subversion:
1379         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1380           something that exists (r526315)
1381         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1382           slots/signals (r526316)
1383         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1384           also return an unknown-method error if the parameters don't
1385           match for org.freedesktop.DBus.Properties. (r526842)
1386         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1387         * qt/qdbusintegrator.cpp: Restore the proper order of
1388           delivery: don't make method returns be delivered on priority
1389           (r528150)
1390
1391 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1392
1393         * configure.in qt/Makefile.am: add qt/examples
1394         * qt/examples: Add QtDBus example programs:
1395           - hello: Hello, World
1396           - ping: Simple method-calling program
1397           - pong: Simple object-exporting program (not using adaptors)
1398           - complexping: Interactive method-calling program 
1399                 (also gets and sets properties).
1400           - complexpong: Sample program exporting methods, signals and
1401                 properties, using adaptors.
1402           - dbus: Simple implementation of a generic method-calling
1403                 program, similar to 'dbus-send', but with semantics
1404                 similar to 'dcop'.
1405           - chat: Simplistic chat program, implemented using signals
1406                 and the system bus. Looks like IRC.
1407
1408 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1409
1410         * configure.in: Detect QtGui (necessary for one of the
1411           example programs). Note: this increases the minimum required
1412           version of Qt to 4.1.3.
1413
1414 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1415
1416         * test/qt/*: Sync with KDE Subversion revision 523647.
1417         Update the testcases to the new API. Remove testcases for
1418         classes that are no longer public or have been removed.
1419
1420 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1421
1422         * qt/*: 
1423         * dbus/qdbus.h: Sync with KDE Subversion revision
1424         523647. Hopefully, this will be the last of the
1425         source-incompatible changes. Documentation has been improved;
1426         support for QList<basic-types> has been added; QDBusObject is
1427         gone; QDBus(Abstract)Interface is now a QObject with
1428         auto-generated meta-object; QDBusIntrospection is marked
1429         private, since QMetaObject can be used now; lots of bugfixes.
1430
1431 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1432
1433         Patch from Milosz Derezynski <internalerror at gmail.com>
1434         
1435         * configure.in:
1436         Output the service directory in the configure summary
1437
1438         * dbus-1.pc.in:
1439         Add session_bus_services_dir
1440
1441 2006-03-10  Ross Burton  <ross@openedhand.com>
1442
1443         * tools/dbus-print-message.c:
1444         Add support for object paths and signatures.
1445
1446 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1447
1448         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1449         config reload.
1450         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1451         information caches
1452         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1453         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1454         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1455         * dbus/dbus-userdb.h: Add function to flush all user/group information
1456         caches.
1457
1458 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1459
1460         * qt/dbusidl2cpp.cpp:
1461         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1462         for dcopidl2cpp, found in the KDE installations (or the more
1463         modern kalyptus): generate Qt4 C++ code for the input XML
1464         introspection. Currently no IDL parsing.
1465
1466 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1467
1468         * test/qt/*: Update the self-tests.
1469
1470 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1471
1472         * qt/*: 
1473         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1474         represents the first feature-complete version of the Qt4
1475         bindings since I took ove maintainership.
1476
1477 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1478
1479         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1480         dir. This is C++, so we can't use the DBus ones.
1481
1482 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1483
1484         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1485         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1486
1487 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1488
1489         * dbus/dbus-connection.c: 
1490         (_dbus_connection_block_pending_call):
1491         Check to see if our data has already been read off the connection
1492         by another blocking pending call before we block in poll.
1493         (check_for_reply_and_update_dispatch_unlocked):
1494         Code taken from _dbus_connection_block_pending_call - checks for
1495         an already read reply and updates the dispatch if there is one.
1496
1497         * test/name-test/test-pending-call-dispatch.c:
1498         New test for making sure we don't get stuck polling a 
1499         dbus connection which has no data on the socket when
1500         blocking out of order on two or more pending calls.
1501
1502 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1503
1504         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1505         make/automake don't detect that we're talking about the same
1506         .lo file if I specify the full path to the source files.
1507
1508 2006-02-26  Havoc Pennington  <hp@redhat.com>
1509
1510         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1511
1512         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1513         session bus variable is unset, suggest "man dbus-launch" and "man
1514         dbus-daemon" to figure out how to fix the problem
1515
1516 2006-02-25  Havoc Pennington  <hp@redhat.com>
1517
1518         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1519         should make this thing use the new glib options parser
1520
1521 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1522
1523         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1524         .lo files taking moc sources.
1525
1526 2006-02-25  Havoc Pennington  <hp@redhat.com>
1527
1528         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1529         and install it as a public header
1530
1531 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1532
1533         * Released 0.61
1534
1535 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1536         
1537         * proxies.py: Fix the callchain
1538
1539 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1540         
1541         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1542
1543         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1544         dbus/dbus-sysdeps.c
1545
1546         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1547         call _dbus_group_info_free_allocated which causes infinite loop,
1548         correctly call _dbus_group_info_free
1549
1550 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1551
1552         * qt/qdbusinterface_p.h:
1553         * qt/qdbusinterface.cpp: Use the standard
1554         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1555         calls instead of creating one for us.
1556
1557         * qt/qdbusconnection_p.h:
1558         * qt/qdbusintegrator.cpp: Remove debugging code.
1559
1560         * qt/qdbusintegrator.cpp:
1561         * qt/qdbusmessage.cpp:
1562         * qt/qdbusmessage_p.h:
1563         * qt/qdbusmessage.h: Change the behaviour of automatic
1564         reply-sending: now a reply is always sent, unless the caller
1565         didn't request one or if the user slot has already sent one.
1566
1567 2006-02-16  Robert McQueen  <robot101@debian.org>
1568
1569         * configure.in: Patch from Debian packages by Sjoerd Simons
1570         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1571         arguments so it's possible to build both bindings in the
1572         same tree.
1573
1574         * qt/Makefile.am: Fix truncated value so that make dist works.
1575
1576 2006-02-16  Robert McQueen  <robot101@debian.org>
1577
1578         * acinclude.m4, configure.in: Patch from Brad Hards
1579         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1580         improving quoting, re-ordering a few checks, and a few other
1581         aesthetic tidy-ups.
1582
1583 2006-02-16  Robert McQueen  <robot101@debian.org>
1584
1585         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1586         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1587         assertion that the next element to read from the iter is fixed in
1588         size. This is not the case when you are at the end of the iter,
1589         because the next element type is INVALID.
1590
1591         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1592         a bogus assert which means that you may not initialise a 0-length
1593         string unless you provide a non-NULL pointer. This prevented
1594         you from marshalling messages containing zero-length arrays in
1595         some cases.
1596
1597         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1598         from Rob to correct bogus asserts when trying to demarshal an
1599         array and get_fixed_array got you 0 elements. Append nothing to
1600         the GArray in this case.
1601
1602         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1603         an empty array via the glib bindings. Without all of the above
1604         patches, this new test fails.
1605
1606 2006-02-16  Robert McQueen  <robot101@debian.org>
1607
1608         * glib/dbus-gmain.c: Make the previous commit compile.
1609
1610         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1611         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1612         specify sender_keyword="foo", path_keyword="bar" when adding
1613         a signal listener, so that you can bind to signals generically
1614         but still do something useful in your callback.
1615
1616         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1617         chars so that they're not cast to chars and made negative. Thanks
1618         to Jakub Stachowski for reporting this and testing the fix.
1619
1620 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1621
1622         * dbus/dbus-glib.h:
1623         * glib/dbus-gmain.h:
1624         (dbus_g_connection_open): new method for openning
1625         a connection to an arbitrary address in the glib bindings
1626
1627         * ChangeLog: checkin last entry which doesn't seem to be commited
1628
1629 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1630
1631         * tools/dbus-launch.c: Fixed sh syntax output
1632
1633 2006-02-13  Robert McQueen  <robot101@debian.org>
1634
1635         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1636         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1637         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1638         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1639         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1640         missing piece of the glib bindings jigsaw puzzle. This modifies
1641         the existing specialised types to have N type parameters (rather
1642         than the current 1 or 2 for arrays and dictionaries respectively).
1643         You can then use this to get a glib type to represent any arbitrary
1644         D-Bus struct type using dbus_g_type_get_struct. The only
1645         implementation of these types is with GValueArrays as before,
1646         but it's now possible to store these in arrays, emit them in
1647         signals, etc.
1648
1649 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1650
1651         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1652         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1653         <thiago.macieira at trolltech.com>
1654
1655 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1656
1657         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1658         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1659
1660 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1661
1662         * bus/connection.c (bus_connections_expect_reply): Make
1663         pending reply limit not common to all connections (Bug #5416)
1664         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1665
1666 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1667
1668         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1669
1670 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1671
1672         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1673         patch from Doug Goldstein <cardoe at gentoo.org>
1674
1675 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1676
1677         * mono/Arguments.cs: Fix a magic number in the mono bindings
1678         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1679
1680 2006-01-27  Robert McQueen  <robot101@debian.org>
1681
1682         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1683         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1684         when generating the client-side methods, instead of overloading
1685         CSymbol which broke everything horribly. My apologies.
1686
1687 2006-01-27  Robert McQueen  <robot101@debian.org>
1688
1689         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1690         by me and Rob Taylor to add a simple_free function to D-Bus map
1691         and collection types, which allows those types which can be freed
1692         with a GDestroyNotify (such as GHashTables and GArrays, but not
1693         GPtrArrays) to be stored as the values in hashtables.
1694
1695         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1696         Patch by Rob Taylor to add nested dicts to the glib tests to check
1697         the above code works, and appears not to leak when called repeatedly.
1698
1699 2006-01-27  Robert McQueen  <robot101@debian.org>
1700
1701         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1702         to free a D-Bus allocated string with dbus_free () instead of
1703         g_free ().
1704
1705 2006-01-27  Iain Holmes  <iain@openedhand.com>
1706
1707         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1708         method from being called multiple times.
1709
1710 2006-01-19  Robert McQueen  <robot101@debian.org>
1711
1712         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1713         <rob.taylor@collabora.co.uk> to add support for generating bindings
1714         to arrays that are represented as GPtrArrays rather than GArrays (ie
1715         size-variable things, such as strings, objects, structs, etc).
1716
1717 2006-01-05  Robert McQueen  <robot101@debian.org>
1718
1719         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1720         <ricardo.kekki@movial.fi> to make it possible to inherit from
1721         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1722         a private part, and moving the setting of the DBusGProxyManager into a
1723         connection property, allowing proper GObject construction.
1724
1725 2006-01-05  Robert McQueen  <robot101@debian.org>
1726
1727         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1728         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1729         annotations when generating glib client bindings.
1730
1731 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1732
1733         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1734
1735         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1736
1737 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1738
1739         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1740
1741 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1742
1743         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1744
1745 2005-12-19  Ross Burton  <ross@openedhand.com>
1746
1747         * doc/dbus-tutorial.xml:
1748         Document the Glib client-side bindings, and list all possible annotations.
1749
1750 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1751
1752         * dbus/bus.c (dbus_bus_release_name): Add documentation
1753
1754 2005-12-06  Robert McQueen  <robot101@debian.org>
1755
1756         * python/service.py: s/sucessful/successful/ so we're allocating to
1757         and reading from the same variable. Oops.
1758
1759 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1760
1761         * Released 0.60
1762
1763 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1764
1765         * test/qt/Makefile.am: build from srcdir
1766
1767         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1768         Note - this code is wrong and needs to be fixed by the Qt binding
1769         developers.  The flags should be treated as bitfields and not enums.
1770
1771         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1772
1773 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1774
1775         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1776           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1777           in production code
1778
1779 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1780
1781         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1782         method for getting messages off the bus in the absence of a
1783         mainloop.  This method is much like 
1784         dbus_connection_read_write_dispatch except it does not dispatch
1785         the messages to a registered filter function.  Instead it
1786         allows a developer to process messages by directly popping
1787         them off the bus.
1788
1789 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1790
1791         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1792         the parser to continue instead of returning error
1793         (bus_desktop_file_load): Do not free parser data when
1794         parse_section_start or parse_key_value fails because it was 
1795         already freed by parser_free (patch from Carlos Garcia Campos  
1796         <carlosgc at gnome.org>)
1797
1798 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1799
1800         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1801         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1802         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1803         test/test-segfault.c, test/test-utils.c,
1804         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1805         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1806         Various cleanup of dead code and compiler warnings (patch from
1807         Kjartan Maraas <kmaraas at gnome.org>) 
1808
1809 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1810
1811         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1812         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1813
1814 2005-11-27  Robert McQueen  <robot101@debian.org>
1815
1816         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1817         part of the preceding one. Oops. Merge patch by Johan Hedberg
1818         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1819         on big-endian platforms.
1820
1821         * test/python/test-client.py: Add some 16-bit integers to the test
1822         values.
1823
1824 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1825
1826         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1827         method return message for property getters
1828
1829 2005-11-27  Robert McQueen  <robot101@debian.org>
1830
1831         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1832         with type v of an instance of dbus.Variant(foo, type='x') caused
1833         it to be boxed twice before sending over the bus.
1834
1835         * python/dbus_bindings.pyx, python/service.py,
1836         test/python/test-client.py: Update the constants for the new
1837         request_name flags, and update comments/test cases now that queueing
1838         is the default action.
1839
1840 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1841
1842         * configure.in:
1843         - Change version to 0.60 for impending release
1844         - upped the sonames because of ABI and API breakage
1845
1846 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1847
1848         * configure.in: Add test/name-test/Makefile to the generated
1849         Makefile list
1850
1851         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1852         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1853         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1854         not to queue an ower if it can't be the primary owner
1855
1856         * bus/bus.h: Add new internal BusOwner struct
1857
1858         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1859         to bus_registry_ensure and don't set the prohibit_replacement flag
1860         since they are now set per BusOwner and not per name.
1861         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1862         that returns the list of connections in a name's connection queue
1863         
1864         * bus/services.c (struct BusService): remove prohibit_replacement field
1865         (struct BusOwner): new struct for keeping track of queued connections
1866         and their associated flags for the queue
1867         (struct BusRegistry): add a BusOwner memory pool
1868         (bus_registry_new): initialize the BusOwner memory pool
1869         (bus_registry_unref): free the BusOwner memory pool
1870         (_bus_service_find_owner_link): new internal method for
1871         searching the queue for a specific connection
1872         (bus_owner_set_flags): new method for adding setting the flags on a
1873         bus owner
1874         (bus_owner_new): new method that creates a BusOwner object from the
1875         pool and sets its flags
1876         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1877         (bus_registry_ensure): Add the flags parameter
1878         (bus_registry_acquire_service): Switch from using raw connections to
1879         using the BusOwner struct
1880         Add new state machine for dealing with the new set of flags
1881         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1882         cancel_ownership, free_ownership_cancel_data, 
1883         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1884         restore_ownership, free_ownership_restore_data, 
1885         add_restore_ownership_to_transaction): Switch to using BusOwner 
1886         instead of raw connections
1887         (bus_service_add_owner): Add flags parameter
1888         Switch to using BusOwner instead of raw connections
1889         Add state machine for dealing with the new set of flags
1890         (bus_service_swap_owner): Swaps the first and second owners in the
1891         queue.  Used to make sure proper signals are sent when a service looses 
1892         or gains primary ownership.  We never insert an owner at the top of the
1893         queue.  Instead we insert it in the second position and then swap.
1894         (bus_service_remove_owner): Remove the owner from the queue sending
1895         out the NameLost and NameOwnerChanged signals if the we were the 
1896         primary owner
1897         (bus_service_get_primary_owners_connection): New method that extracts
1898         the connection from the primary owner
1899         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1900         connection
1901         (bus_service_get_allow_replacement): Changed from the old 
1902         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1903         primary owner and returns if it can be replaced or not
1904         (bus_service_set_prohibit_replacement): removed
1905         (bus_service_has_owner): returns TRUE if and owner with
1906         the specified connection exists in the queue
1907         
1908         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1909         method that only compiles if tests are enabled.  Allows us to get the 
1910         unique name of a connection so we can check it against the queue when
1911         doing regression tests
1912
1913         * bus/activation.c (bus_activation_send_pending_auto_activate),
1914         bus/dispatch.c (bus_dispatch),  
1915         bus/driver.c (bus_driver_handle_get_service_owner, 
1916         bus_driver_handle_get_connection_unix_user, 
1917         bus_driver_handle_get_connection_unix_process_id,
1918         bus_driver_handle_get_connection_selinux_security_context),
1919         bus/signals.c (connection_is_primary_owner): 
1920         use bus_service_get_primary_owners_connection instead of
1921         bus_service_get_primary_owner
1922
1923         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1924         _dbus_listen_unix_socket): Calculate the length of the socket
1925         path and use that instead of using a fixed length which was
1926         causing socket names to contain many trailing Nul bytes.
1927
1928         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1929         (dbus_g_method_get_sender): New method for extracting the sender 
1930         from a DBusGMethodInvocation
1931         (dbus_g_method_return_get_reply): changed name to 
1932         dbus_g_method_get_reply
1933         (dbus_g_method_return_send_reply): changed name to
1934         dbus_g_method_send reply
1935
1936         * doc/dbus-specification.xml: New docs that describe how the new
1937         queueing system works and talks about the changes to the how
1938         we specify socket names
1939
1940         * glib/examples/example-service.c, 
1941         glib/examples/example-signal-emitter.c,
1942         glib/examples/statemachine/statemachine-server.c:
1943         Changed the RequestName flags to the new system
1944
1945         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1946         regression test suite for testing various states of the new
1947         queueing system
1948         
1949 2005-11-15  Robert McQueen  <robot101@debian.org>
1950
1951         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1952         Taylor to add two methods, dbus_g_method_return_get_reply and
1953         dbus_g_method_return_send_reply, to allow you to get the reply
1954         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1955         and send it. The GLib bindings can't marshal a return value of
1956         something like a(s) if the array is empty - ultimately they should be
1957         made to heed the signature of the out arguments as the Python bindings
1958         now can, but this is a workable interim solution which might have
1959         other applications.
1960
1961 2005-11-15  Robert McQueen  <robot101@debian.org>
1962
1963         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1964         method to org.freedesktop.DBus to release a bus name or give up
1965         waiting in the queue for it.
1966
1967         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1968         dbus_bus_release_name method to send the ReleaseName method calls.
1969         Add constants for the return values to dbus/dbus-shared.h.
1970
1971         * doc/dbus-specification.xml: Document the new ReleaseName method
1972         in the specification.
1973
1974         * python/dbus_bindings.pyx: Add a low-level python binding for the
1975         release name method.
1976
1977         * python/exceptions.py, python/service.py: Make freeing BusName
1978         objects release the name. Add a NameExistsException, and fix a
1979         bug with creating UnknownMethodException.
1980
1981         * test/python/test-client.py: Add tests for freeing BusName
1982         objects causing names to be released.
1983
1984 2005-11-14  Robert McQueen  <robot101@debian.org>
1985
1986         * python/service.py: Include the traceback in the error reply when we
1987         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1988
1989 2005-11-14  David Zeuthen  <davidz@redhat.com>
1990
1991         Patch from Timo Hoenig <thoenig@suse.de>.
1992
1993         * bus/bus.c: I've recently investigated why the automatic reload
1994         of configuration files does not work as expected.
1995
1996         Currently, reloading configuration files does only work when
1997         running dbus-daemon with --nodaemon.  If we are running as daemon
1998         we're hitting a dnotify bug once we fork the process.
1999
2000         We're initializing the dnotify fds before calling fork().  Once
2001         the child process forked it does still have the fds (and they
2002         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2003         getting SIGIO as changes are made to the configuration files.
2004
2005         The attached patch moves the initialization of the dnotify fds to
2006         process_config_postinit().  This is safe for all current code
2007         paths and solves the dnotify disfunction.  If we're running
2008         dbus-daemon as daemon the fds for dnotify are now being
2009         initialized after fork() for the child process.
2010
2011         * configure.in: The current configure.in check for dnotify probes
2012         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2013         match for 'xlinux', too. Additionally I have adapted the configure
2014         option's style to match with the others.
2015
2016 2005-11-14  Robert McQueen  <robot101@debian.org>
2017
2018         * python/decorators.py, python/service.py: Add a new argument to the
2019         dbus.service.method decorator called sender_keyword, which if set,
2020         specifies the name of an argument which will be provided the bus
2021         name of the method caller.
2022
2023         * test/python/test-client.py, test/python/test-service.py: Add a
2024         method and test to check the sender_keyword functionality.
2025
2026 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2027
2028         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2029         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2030         Simons <sjoerd at luon.net>)
2031
2032         * AUTHORS: Add Robert McQueen for his work on the Python
2033         Bindings and other parts of D-Bus
2034
2035 2005-11-07  Robert McQueen  <robot101@debian.org>
2036
2037         * python/decorators.py: Change emit_signal function to use the
2038         signature annotation of the signal when marhsalling the arguments from
2039         the service. Fix a bug where the code checking signature length
2040         against argument length referenced the wrong variable.
2041
2042         * python/introspect_parser.py: Avoid adding the type signature of
2043         signal arguments to any methods which occur after them in the
2044         introspection data (!) by making the parser a little more careful
2045         about its current state.
2046
2047         * python/service.py: Remove debug prints from last commit (again :D).
2048
2049         * test/python/test-client.py, test/python/test-service.py: Add test
2050         signals with signature decorators to test the strict marshalling code
2051         gives errors at the right time. Could do with checking the signals
2052         actually get emitted too, given that the test does nothing with
2053         signals at the moment...
2054
2055 2005-11-07  Robert McQueen  <robot101@debian.org>
2056
2057         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2058         instances to stop madness of creating new instances representing
2059         the same bus connection all the time, rendering any tracking of
2060         match rules and bus names quite meaningless. Caught a bug where
2061         the private argument to SessionBus() and friends was being passed
2062         in as use_default_mainloop by mistake. Still some problems with
2063         multiple dbus_binding.Connection instances representing the same
2064         low-level connection (eg when you use both SessionBus() and
2065         StarterBus() in same process), but it's a lot better now than it
2066         was.
2067
2068         * python/dbus_bindings.pyx: Add constants with the return values
2069         for bus_request_name().
2070
2071         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2072         and retrieve the same instances for the same name, so deletion can be
2073         done with refcounting. Also now throws some kind of error if you
2074         don't actually get the name you requested, unlike previously...
2075
2076         * test/python/test-client.py: Add tests for instance caching of buses
2077         and bus name objects.
2078
2079 2005-11-04  Robert McQueen  <robot101@debian.org>
2080
2081         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2082         marshalling of boolean values. Add some booleans to the values in
2083         the test client.
2084
2085         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2086         argument to the dbus.service.method decorator, which allows you to
2087         name arguments to take two callback functions for replying with
2088         return values or an exception.
2089
2090         * test/python/test-client.py, test/python/test-service.py: Add test
2091         case using asynchronous method reply functions, both return values and
2092         errors, and from within both the function itself and from a mainloop
2093         callback.
2094
2095         * python/decorators.py, python/service.py: Perform checking that the
2096         number of method/signal arguments matches the number of types in the
2097         signature at class loading time, not when you first introspect the
2098         class.
2099
2100         * python/service.py: Remove debug print left by the last commit.
2101
2102 2005-11-03  Robert McQueen  <robot101@debian.org>
2103
2104         * python/service.py: Heavy refactoring of method invocation, with
2105         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2106         in favour of a new _message_cb that uses seperate functions for
2107         looking up the method to call, marshalling the return values, and
2108         sending exceptions as errors, and is easier to follow as a
2109         consequence.  Fixes some corner cases about returning things that
2110         don't match your declared out_signature, allows exceptions to define
2111         _dbus_error_name and have it be sent over the bus as the error name,
2112         and paves the way for cool stuff like heeding the message no reply
2113         flag, asynchronous method implementations, informing the method of the
2114         sender, and including backtraces in the error messages.
2115
2116         * test/python/test-client.py: Catch and print exceptions thrown in the
2117         async callback tests, rather than passing them to the low-level
2118         bindings to be ignored in a noisy and frustrating manner.
2119
2120 2005-11-03  Robert McQueen  <robot101@debian.org>
2121
2122         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2123         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2124         tweak others to be consistent.
2125
2126         * test/python/test-client.py: Tweak output of testInheritance.
2127
2128 2005-10-29  Robert McQueen  <robot101@debian.org>
2129
2130         * python/service.py: Major changes to allow multiple inheritance
2131         from classes that define D-Bus interfaces:
2132         
2133          1. Create a new Interface class which is the parent class of
2134             Object, and make the ObjectType metaclass into InterfaceType.
2135         
2136          2. Patch written with Rob Taylor to replace use of method_vtable
2137             with code that walks the class's __MRO__ (method resolution order)
2138             to behave like Python does when invoking methods and allow
2139             overriding as you'd expect. Code is quite tricky because
2140             we have to find two methods, the one to invoke which has the
2141             right name and isn't decorated with the /wrong/ interface,
2142             and the one to pick up the signatures from which is decorated
2143             with the right interface.
2144         
2145             The same caveats apply as to normal multiple inheritance -
2146             this has undefined behaviour if you try and inherit from two
2147             classes that define a method with the same name but are
2148             decorated with different interfaces. You should decorate
2149             your overriding method with the interface you want.
2150         
2151          3. Replace grungy introspection XML generation code in the metaclass
2152             with dictionaries that cope correctly with multiple inheritance
2153             and the overriding of methods. This also uses the signature
2154             decorations to provide correct introspection data, including
2155             the debut appearance of the types of your return values. :D
2156
2157         * test/python/test-client.py, test/python/test-service.py: Add a test
2158         case to try invoking an method that overrides one inherited from a
2159         D-Bus interface class.
2160
2161 2005-10-29  Robert McQueen  <robot101@debian.org>
2162
2163         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2164         Add checking for the end of struct character when marshalling a
2165         struct in MessageIter.append_strict.
2166
2167         * python/examples/example-service.py,
2168         python/examples/gconf-proxy-service.py,
2169         python/examples/gconf-proxy-service2.py: Update to use gobject
2170         mainloop directly rather than appearing to depend on gtk.
2171
2172         * python/test/test-client.py, python/test/test-server.py: Remove
2173         obsolete and broken test scripts for old bindings. We have up to date
2174         and working tests in test/python/.
2175
2176 2005-10-29  Robert McQueen  <robot101@debian.org>
2177
2178         * python/decorators.py: Add optional arguments to the method and
2179         signal decorators to allow you to specify the signature of arguments
2180         and return values. Preserve the doc strings of signal functions in the
2181         decorated version, for pydoc and friends.
2182
2183         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2184         parse_signature_block function with an iterable dbus.Signature()
2185         type. Fix a bug in MessageIter.append_strict where you could append
2186         anything by claiming it was a string.
2187
2188         * python/service.py: Use the out_signature decoration on methods to
2189         marshal return values, meaning you no longer require dbus.Array()
2190         or dbus.Dictionary() to indicate the type when returning empty
2191         arrays or dictionaries. Fix a bug where exceptions which are defined
2192         in __main__ are not turned into error replies.
2193
2194         * test/python/test-client.py, test/python/test-service.py: Add test
2195         for correct marshalling of return values according to out_signature.
2196         Fix a bug in the async call test where the error_handler is missing a
2197         self argument.
2198
2199 2005-10-29  Robert McQueen  <robot101@debian.org>
2200
2201         * glib/Makefile.am, glib/examples/Makefile.am,
2202         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2203         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2204
2205         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2206
2207         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2208         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2209         the command line.
2210
2211 2005-10-27  Ross Burton  <ross@openedhand.com>
2212
2213         * dbus/dbus-marshal-header.c:
2214         Remove dead code.
2215
2216         * glib/dbus-gobject.c:
2217         Stop compiler warning.
2218
2219 2005-10-25  Ross Burton  <ross@openedhand.com>
2220
2221         * dbus/dbus-auth.c:
2222         * dbus/dbus-server-unix.c:
2223         * dbus/dbus-transport-unix.c:
2224         * glib/dbus-gmain.c:
2225         * glib/dbus-gobject.c:
2226         Add some const keywords.
2227
2228 2005-10-25  Ross Burton  <ross@openedhand.com>
2229
2230         * doc/dbus-specification.xml:
2231         Document the NoReply annotation.
2232
2233         * glib/dbus-binding-tool-glib.h:
2234         * glib/dbus-binding-tool-glib.c:
2235         Respect the NoReply annotation.
2236
2237 2005-10-24  Robert McQueen <robot101@debian.org>
2238
2239         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2240         derive from unicode instead of str, and encode/decode UTF-8 when
2241         marshalling/unmarshalling bus messages
2242
2243         * python/introspect_parser.py: encode introspection data as UTF-8
2244         before passing the buffer into libxml2
2245
2246         * test/python/test-client.py: add unicode test strings
2247
2248         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2249         ignore generated python test files
2250
2251 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2252
2253         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2254         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2255         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2256
2257         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2258         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2259         when constructing struct signatures
2260
2261         * python/_dbus.py (Bus): handle private connections using the
2262         private keyword in the constructor. defaults to private=False
2263         (Bus::close): new method to close a connection to the bus
2264
2265         * python/dbus_bindings.pyx (Connection::close): renamed method
2266         was previously called disconnect
2267         (bus_get): now supports getting a private connection
2268
2269         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2270         keyword is set to True.  if it is, execute the method without waiting
2271         for a reply
2272         (ProxyObject::_introspect_execute_queue): new method for executing
2273         all the pending methods that were waiting for the introspect to
2274         finish.  this is called when introspect either succeeds or fails
2275         (ProxyObject::_introspect_error_handler): call queued methods
2276
2277 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2278
2279         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2280         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2281
2282         * python/service.py (Object::_message_cb): handle exceptions correctly
2283         by sending them over the wire to the calling app.  This makes sure
2284         the client returns immediately instead of waiting the 15 seconds to
2285         timeout.
2286
2287         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2288         Add a test to benchmark how long it takes to introspect a service and 
2289         call a method which returns a large element (pretty fast)
2290
2291         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2292         method which pushes a lot of data
2293
2294 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2295
2296         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2297         reclaim memory outside of the loop and use del istead of just setting
2298         the key to None
2299
2300 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2301
2302         * python/service.py (ObjectType::_reflect_on_signal): Always close
2303         signal tag even when there are no arguments
2304
2305 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2306
2307         * configure.in: Set mono, mono-docs and Qt3 to default
2308         to no instead of auto when building.  These bindings do not
2309         have full time maintainers and will not be supported for the
2310         1.0 release.
2311
2312 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2313
2314         patches from Michael Krivoruchko <misha at sun.com>: 
2315         
2316         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2317         _dbus_connection_message_sent, 
2318         _dbus_connection_send_preallocated_unlocked_no_update, 
2319         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2320         is NULL when calling _dbus_verbose
2321
2322         * configure.in: check for functions getpeerucred and getpeereid
2323
2324         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2325         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2326         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2327         Patch was only tested on Solaris 10 x86 so it might be issues
2328         with other platforms (i.e. BSDs and MacOSX)
2329         
2330
2331 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2332
2333         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2334         instead of marshal basic so we can handle recursive types in a variant
2335
2336         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2337         in variants
2338
2339         * test/glib/test-service-glib.c, test-service-glib.xml
2340         (my_object_echo_variant [EchoVariant], 
2341         my_object_process_variant_of_array_of_ints123
2342         [ProcessVariantOfArrayOfInts123]): 
2343         Add two test methods
2344
2345         * python/introspect_parser.py: New module for parsing introspect
2346         data.
2347
2348         * python/dbus_bindings.pyx:
2349         (various places): when throwing errors fix to use errormsg instead 
2350         of message local variable because Pyrex can get confused with other 
2351         message variables (initial patch by Robert McQueen 
2352         <robert.mcqueen at collabora.co.uk>)
2353         (MessageIter::parse_signature_block): new method for getting the next
2354         block in a signiture.
2355         (MessageIter::append_strict): new method for appending values strictly
2356         using the passed in signature instead of guessing at the type
2357         (MessageItter:: append_dict, append_struct, append_array): use 
2358         signatures to marshal children if the signature is available
2359         
2360         * python/exceptions.py (IntrospectionParserException): new exception
2361
2362         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2363         introspected signatures if available, else we fall back to the
2364         old way of doing things.
2365         (ProxyObject::_introspect_reply_handler ): parse introspection data
2366         
2367         * python/service.py (ObjectType::_reflect_on_method): Properly
2368         terminate <method> if there are no args in the reflection data
2369
2370         * test/python/test-client.py: add tests for talking with the GLib
2371         test server.  This gives us better coverage for introspection since
2372         python to python will always generate arguments as variants.  It also
2373         allows us to test the robustness of the GLib bindings and interlanguage
2374         communications.
2375
2376         
2377 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2378
2379         * bus/driver.c (bus_driver_handle_introspect): Add signals
2380         to the introspect data. (patch from Daniel P. Berrange 
2381         <dan at berrange.com>)
2382
2383         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2384         
2385         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2386         _dbus_connection_run_builtin_filters): Changed these to
2387         be unlock_no_update functions and call 
2388         _dbus_connection_send_unlocked_no_update instead of
2389         dbus_connection_send to avoid locking errors.
2390         
2391         * doc/TODO: Removed the make Ping test TODO
2392         
2393 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2394
2395         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2396         We now copy the message from a DBusError and then free 
2397         the error object befor throwing the error
2398
2399         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2400         DBusBindingOutputMode enum which was causing a warning.
2401         #include <time.h> so using time_t is explicitly defined
2402
2403 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2404
2405         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2406         - dbus/dbus-bus.c
2407         (internal_bus_get): new method that take over the heavy lifting
2408         of dbus_bus_get and adds the ability to get a private connection
2409         to the bus
2410         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2411         interface as in previous versions
2412         (dbus_bus_get_private): new method that is a wrapper to 
2413         internal_bus_get to get a private connection to the bus
2414
2415         - dbus/dbus-bus.h
2416         (dbus_bus_get_private): add as a public libdbus interface
2417
2418         - dbus-1.pc.in: output system_bus_default_address and 
2419         sysconfdir variables so apps can use them when compiling
2420
2421 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2422         * dbus/qt: New Qt bindings
2423
2424 2005-09-12  Waldo Bastian  <bastian@kde.org>
2425
2426         * dbus/dbus-marshal-validate.c,
2427         doc/dbus-specification.xml, test/Makefile.am,
2428         test/test-names.c: allow hyphens in bus names.
2429
2430 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2431
2432         * test/data/auth/fallback.auth-script: we don't
2433         retry the EXTERNAL method when we know its going
2434         to fail anymore.
2435
2436 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2437
2438         * dbus/dbus-connection-internal.h: rename
2439         (add|remove|toggle)_(watch|timeout) to unlocked()
2440         
2441         * dbus/dbus-connection.c: ditto.
2442         
2443         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2444         Update some callers for the renaming.
2445
2446 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2447
2448         * dbus/dbus-auth.c: (record_mechanisms): don't
2449         retry the first auth mechanism because we know
2450         we're just going to get rejected again.
2451         
2452         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2453         Fix thinko ... and what a nasty little bugger to
2454         track down you were ...
2455
2456         * dbus/dbus-connection.c:
2457         (_dbus_connection_add_watch),
2458         (_dbus_connection_remove_watch): add note about
2459         these needing the connection to be locked.
2460         (_dbus_connection_get_dispatch_status_unlocked):
2461         set status to DATA_REMAINS when we queue the
2462         disconnected message.
2463         
2464         * bus/dispatch.c:
2465         (bus_dispatch): fix warning.
2466         (check_existent_service_no_auto_start):
2467         Expect ChildSignaled error too.
2468         (check_existent_hello_from_self): fix another
2469         couple of warnings.
2470         
2471 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2472
2473         Patches from James Willcox <snorp@snorp.net>
2474
2475         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2476
2477         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2478         support array "out" parameters.
2479
2480         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2481         for 16-bit int support.
2482
2483 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2484
2485         * Released 0.50
2486
2487         * Patch from Steve Grubb:
2488         - bus/activation.c (bus_activation_service_reload_test): clean up
2489         some indentation
2490         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2491         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2492         buffer overflows in the test suite.  This is non critical because
2493         it can not be exploited and this code is only run when doing a 
2494         make check.
2495
2496         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2497         - configure.in: Don't check and link against kdecore, only qt headers
2498         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2499         - gcj/org/freedesktop/dbus/Makefile.am:
2500         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2501         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2502         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2503         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2504         - tools/Makefile.am: Add platform extentions to binaries 
2505         (i.e. .exe on windows)
2506
2507         * configure.in: 
2508         - Make it so if no suitable version of python is found we only 
2509         disable building python instead of exiting the configure script
2510         - Require version 2.4 of glib for glib bindings
2511         - Up version to 0.50
2512
2513         * python/__init__.py: Sync version with libdbus to (0,50,0)
2514         
2515 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2516
2517         * dbus/dbus-object-tree.c (find_subtree_recurse):
2518         a couple of optimizations (bug #710):
2519         - do a binary search in the tree
2520         - insert a new child at the right place directly, no need for
2521           qsort anymore
2522         - do the "double alloc" thing when allocating children
2523
2524 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2525
2526         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2527
2528         * python/dbus_bindings.pyx: Memory management foo
2529         (global): remove hacky _user_data_references global list
2530         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2531         tuples. Unref user_data
2532         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2533         (Connection::__del__): Remove and replace with __dealloc__ method
2534         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2535         to keep tuple from being deallocated instead of the global var hack
2536         (Connection::register_object_path): Stuff user_data into a tuple.
2537         Use Py_INCREF to keep tuple from being deallocated instead of the 
2538         global var hack
2539         (Connection::register_fallback): Stuff user_data into a tuple.
2540         Use Py_INCREF to keep tuple from being deallocated instead of the 
2541         global var hack
2542         (GIL_safe_pending_call_notification): Don't unref the message
2543         because it gets unreffed when going out of scope.  Py_XDECREF
2544         the user_data
2545         (PendingCall::__del__): Remove and replace with __dealloc__ method
2546         (PendingCall::set_notify): ref the pending call because we will
2547         need it to stick around for when the notify callback gets called
2548         (Message::__del__): Remove and replace with __dealloc__ method
2549
2550         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2551         gthreads_init to match up with the dbus call
2552
2553         * python/glib.py (init_threads): Changed to threads_init to match
2554         up with gobject.threads_init().  init_threads is kept for backwards
2555         compat but will most likely be deprecated in the future
2556
2557         * test/python/test-client.py: 
2558         - revamp to use Python's unittest functionality
2559         - add async call tests
2560         - setup threads in glib and dbus so we make sure locks are working
2561         
2562 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2563
2564         * python/dbus_bindings.pyx 
2565         (_pending_call_notification, cunregister_function_handler, 
2566         cmessage_function_handler): All callback functions have been rearranged 
2567         to workaround a bug in Pyrex when working with the GIL which is Python's 
2568         global lock when dealing with threads.  They have been split into
2569         a wrapper function (which assumes the name of the old function) and
2570         a _GIL_safe_<function name> function which contains the functionality
2571         of the old function.  This ensures that Pyrex does not write code
2572         the lock is released.
2573         
2574
2575 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2576
2577         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2578         GIL global lock when calling back into Python
2579
2580 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2581
2582         * Release 0.36.2
2583
2584         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2585
2586         * bus/policy.c (bus_policy_allow_user): change default "user is
2587         allowed" to be "user has same uid as the bus itself"; any
2588         allow/deny rules will override.
2589
2590         * bus/session.conf.in: don't allow all users, since now by default
2591         the user that ran the bus can connect.
2592
2593 2005-08-26  Colin Walters  <walters@verbum.org>
2594
2595         * tools/dbus-print-message.c (print_message): Flush stdout
2596         after printing a message, so that redirecting to a file, then
2597         hitting Ctrl-C works.
2598
2599 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2600
2601         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2602         (EmptyMessage): new class that subclasses Message.  This is a workaround
2603         to a Pyrex bug that fails to call __del__ when the Message object goes out
2604         of scope.  For some reason subclassing Message fixes this bug
2605         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2606         - s/Message(_create=0)/EmptyMessage everywhere else
2607         
2608         * test/python/test-{server|client}.py: add the python/.libs directory
2609         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2610         get picked up from the system
2611
2612 2005-08-25  Colin Walters  <walters@verbum.org>
2613
2614         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2615         to Ryan Lortie for the suggestion.
2616
2617 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2618
2619         * test/python: Add python regression test
2620
2621         * configure.in: Add test/python/Makefile
2622
2623         * test/Makefile.am: Add the python directory to SUBDIRS
2624
2625 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2626
2627         * Release 0.36.1
2628
2629         * python/_dbus.py: 
2630         (Interface::connect_to_signal): propigate keywords for match on args
2631         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2632
2633         * python/proxies.py (ProxyObject::connect_to_signal):
2634         propigate keywords for match on args
2635
2636         * Makefile.am: point everything to pyexecdir since python borks
2637         on multilib
2638
2639 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2640
2641         * Release 0.36
2642
2643 2005-08-23  Colin Walters  <walters@verbum.org>
2644
2645         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2646
2647 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2648
2649         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2650         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2651         of defining DBusConnection ourselves.
2652
2653 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2654
2655         * python/dbus.pth: New path file to fix up problems when installing
2656         c libraries to lib64 and python files to lib.
2657
2658         * python/Makefile.am: install dbus.pth in the correct spot
2659
2660 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2661         * ChangeLog: clean up my last entry a bit
2662
2663         * doc/introspect.xsl: New stylesheet for converting introspection data
2664         into browser renderable xhtml. Contributed by Lennart Poettering.
2665
2666         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2667         Poettering.
2668
2669         * doc/dbus-tutorial.xml: 
2670         - Add Colin Walter to the Authors section for authoring the GLib
2671         section
2672         - Add descriptions of the new signature and type functionality
2673         in the Python complex type mapping section
2674         - Add a sidenote on the new args matching functionality in 
2675         the Python bindings
2676         - Fixed up some of the examples to use the gobject.MainLoop
2677         instead of gtk.main
2678         
2679         * python/_dbus.py:
2680         (Bus::_create_args_dict): New. Converts a hash of arg matches
2681         to a more useable format
2682         (Bus::add_signal_receiver): add a **keywords parameter for catching
2683         arg match parameters
2684         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2685         arg match parameters
2686         
2687         * python/matchrules.py:
2688         (MatchTree::exec_matches): Check for arg matches
2689         (SignalMatchRule::add_args_match): New method
2690         (SignalMatchRule::execute): Added args_list parameter as an optimization
2691         so we don't have to marshal the args more than once
2692         (SignalMatchRule::match_args_from_list): New method that checks to see
2693         if the rule's arg matches match an argument list.  Only arguments
2694         set in the rule are checked.
2695         (SignalMatchRule::match_args_from_rule): New method that checks to see
2696         if the rule's arg matches match another rule's.  All args have to match
2697         in order for this method to return true.  If either rule has more args
2698         then it is not a match.
2699         (SignalMatchRule::is_match): Add args match
2700         (SignalMatchRule::repr): Add args to the final output if they exist
2701
2702 2005-08-17  Ross Burton  <ross@burtonini.com>
2703
2704         * glib/dbus-gproxy.c:
2705         (dbus_g_proxy_call_no_reply): unref the message once sent.
2706         (dbus_g_proxy_call): protect against NULL proxy.
2707
2708 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2709
2710         * python/__init__.py: Version updated (0, 43, 0)
2711         
2712         * python/dbus_bindings.pyx: 
2713         - Fixed type objects to have self passed into __init__
2714         - Added the Variant type
2715         - Add the ability to specify types or signatures for Array, Variant 
2716         and Dictionary
2717         (Connection::send_with_reply_handlers): return a PendingCall object
2718         (_pending_call_notification): handle the case when an error is returned 
2719         without an error message in the body
2720         (MessageIter::get_boolean): return True or False instead of an integer
2721         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2722         and add checks for objects with embeded signatures or types (Array, 
2723         Variant and Dictionary)
2724         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2725         (MessageIter::append_dict): handle embeded types or signatures
2726         (MessageIter::append_array): handle embeded types or signatures
2727         (MessageIter::append_variant): new method
2728         
2729         * python/proxies.py:
2730         (DeferedMethod): New. Dummy executable object used when queuing calls 
2731         blocking on introspection data
2732         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2733         or shorter timeouts for method calls
2734         (ProxyObject): Add first pass at an introspection state machine
2735         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2736         introspection. 
2737         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2738         the usual mechanisms for sending messages.  This is to avoid a deadlock
2739         where the Intospect call would be queued waiting for the Introspect 
2740         call to finish ;-)
2741         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2742         when introspection returns with no error
2743         (ProxyObject::_introspect_error_handler): New.  This method is called 
2744         when introspection encounters an error
2745         (ProxyObject::__getattr__): Code to handle different introspection 
2746         states.  Queue async calls or block blocking calls if we are 
2747         introspecting.  Pass through as normal if we are not or are done with 
2748         introspecting.
2749         
2750         * python/service.py: Import signal and method from decorators.py
2751
2752         * python/types.py: Add Variant type
2753
2754 2005-08-16  Colin Walters  <walters@verbum.org>
2755
2756         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2757         DBusError message is NULL.
2758
2759 2005-08-09  Havoc Pennington  <hp@redhat.com>
2760
2761         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2762         malloc'd copy of the name parameter
2763
2764 2005-08-09  Havoc Pennington  <hp@redhat.com>
2765
2766         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2767         warning if the reply serial is set to 0
2768
2769 2005-08-04  Colin Walters  <walters@verbum.org>
2770
2771         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2772         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2773         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2774         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2775         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2776         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2777         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2778         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2779         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2780         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2781         
2782         Prefix name with _ to ensure they're not exported.  All callers
2783         updated.
2784
2785         * glib/dbus-gvalue.c (typecode_to_gtype)
2786         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2787         (signature_iter_to_g_type_dict)
2788         (signature_iter_to_g_type_array)
2789         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2790         (dbus_gtypes_from_arg_signature):
2791         Move to dbus-gsignature.c.
2792
2793         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2794         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2795         (dbus_binding_tool_output_glib_client): Ditto.
2796
2797         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2798         and dbus-gsignature.h
2799
2800         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2801         unused variable.
2802
2803 2005-08-03  Colin Walters  <walters@verbum.org>
2804
2805         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2806         catch any incompatible changes accidentally made.
2807
2808 2005-08-03  Havoc Pennington  <hp@redhat.com>
2809
2810         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2811         typo, from Julien Puydt
2812
2813         * bus/connection.c (bus_connection_disconnected): we were always
2814         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2815
2816 2005-08-01  Colin Walters  <walters@verbum.org>
2817
2818         Patch from Joe Markus Clarke:   
2819         
2820         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2821         use-after-free.
2822
2823 2005-08-01  Colin Walters  <walters@verbum.org>
2824         
2825         Patch from Joe Markus Clarke:   
2826         
2827         * tools/dbus-send.c (main): 
2828         
2829         Don't use C99 style initializers (bug #3933).
2830         
2831 2005-08-01  Colin Walters  <walters@verbum.org>
2832
2833         Patch from Joe Markus Clarke:   
2834
2835         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2836         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2837         * glib/dbus-gobject.c (write_interface):
2838
2839         Don't use C99 style initializers (bug #3933).
2840
2841 2005-07-31  Havoc Pennington  <hp@redhat.com>
2842
2843         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2844         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2845
2846 2005-07-30  Havoc Pennington  <hp@redhat.com>
2847
2848         * fix a bunch of Doxygen warnings and mistakes
2849
2850 2005-07-30  Havoc Pennington  <hp@redhat.com>
2851
2852         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2853         DBUS_BUILD_TESTS since it's now used in production code
2854
2855 2005-07-29  Havoc Pennington  <hp@redhat.com>
2856
2857         * test/glib/test-profile.c (write_junk): initialize the junk
2858         buffer so valgrind doesn't have a breakdown
2859
2860 2005-07-29  Havoc Pennington  <hp@redhat.com>
2861
2862         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2863         (match_rule_matches): remove unused arg
2864         (test_matching): add tests for match_rule_matches()
2865
2866         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2867         do arg0='foo' arg5='bar' in the match rules
2868         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2869
2870         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2871
2872 2005-07-29  Ross Burton  <ross@openedhand.com>
2873
2874         * dbus/dbus-connection.c:
2875         Don't create a DBusCondVar which is never used.
2876
2877 2005-07-27  Ross Burton  <ross@openedhand.com>
2878
2879         * dbus/dbus-message.c:
2880         Reduce the size of the maximum cached message to 10K.
2881
2882 2005-07-25  Ross Burton  <ross@openedhand.com>
2883
2884         * glib/dbus-gproxy.c:
2885         Remove matches when all proxies are unregistered.
2886
2887 2005-07-24  Colin Walters  <walters@verbum.org>
2888
2889         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2890         typedata; recursive arrays won't have it.
2891
2892         * test/glib/test-dbus-glib.c:
2893         * test/glib/test-service-glib.c:
2894         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2895         
2896 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2897
2898         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2899         proxies.py, service.py: Cleanup of code after running it through the
2900         pyflakes code checker mostly dealing with undefined names.  
2901         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2902
2903 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2904
2905         * NEWS: Update to 0.35.2
2906
2907 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2908
2909         * python/_dbus.py: Remove import of the dbus.services
2910         module as it no longer exists (patch from Dimitur Kirov)
2911
2912         * python/service.py (Object::__init__): Fixed typo
2913         s/name/bus_name (patch from Dimitur Kirov)
2914
2915         * python/examples/example-signal-emitter.py: import dbus.glib
2916         to get the main loop and use glib mainloop instead of gtk so
2917         X doesn't have to be running.
2918
2919         * python/examples/example-signal-recipient.py: import dbus.glib
2920         to get the main loop and use glib mainloop instead of gtk so
2921         X doesn't have to be running. Import the decorators module
2922         directly.
2923
2924         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2925         didn't pick up on but are needed to build
2926
2927         * configure.in: upped version to 0.35.2
2928
2929         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2930         added Colin Walters' SELinux API rename patch from head 
2931         s/unix sercurity context/selinux security context/
2932
2933 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2934
2935         * python/Makefile.am: dbus_binding.pxd.in should be included 
2936         in EXTRA_DIST not dbus_binding.pxd
2937         fix up $(srcdir) hopefully for the last time
2938
2939         * NEWS: Update to 0.35.1
2940
2941 2005-07-16  Colin Walters  <walters@verbum.org>
2942
2943         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2944         from bus_driver_handle_get_connection_unix_security_context.  Update for
2945         error usage.
2946         (message_handlers): Update for renames.
2947
2948         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2949         _dbus_string_init failure correctly.
2950         (bus_selinux_append_context): Convert SID to context.  Append it
2951         as a byte array.
2952         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2953         hasn't been called.
2954
2955         * bus/selinux.h: Update prototype.
2956
2957         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2958         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2959
2960 2005-07-15  Colin Walters  <walters@verbum.org>
2961
2962         * doc/TODO: Add note about convenience wrappers.
2963
2964 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2965
2966         * NEWS: Update to 0.35
2967
2968 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2969
2970         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2971         so distcheck doesn't fail
2972
2973         * glib/examples/Makefile.am: Add example-service.xml and 
2974         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2975
2976         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2977         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2978
2979         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2980         compiler looks in the right places during distcheck
2981
2982 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2983
2984         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2985         to fail
2986
2987 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2988
2989         * python/examples/example-service.py,
2990         python/examples/example-signal-emitter.py: Fixed up examples
2991         for API changes
2992
2993 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2994
2995         * python/__init__.py: Upped to version (0,42,0) because of
2996         the API change
2997
2998 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2999
3000         * ChangeLog: fix date in last entry
3001
3002         * configure.in, bus/system.conf.in: add the ability to configure 
3003         the system bus user at compiletime with the --with-dbus-user flag
3004         (patch from Kristof Vansant)
3005
3006 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3007
3008         * bus/dispatch.c, test/test-service.c: Add testcase
3009         for sending messages to oneself (TODO item).
3010
3011         * python/service.py (class Object): Swap ordering of bus_name 
3012         and object_path parameters to better support inheritance.
3013
3014         * doc/dbus-tutorial.xml: change Python docs to reflect change
3015         in parameter ordering and fix the inheritance section.
3016
3017         * doc/TODO: remove sending message to oneself TODO item
3018
3019 2005-07-15  Ross Burton  <ross@openedhand.com>
3020
3021         * glib/dbus-gproxy.c:
3022         Fix a leak when calling methods via the proxy.
3023
3024 2005-07-15  Colin Walters  <walters@verbum.org>
3025
3026         * bus/selinux.c (bus_selinux_append_context): Wrap in
3027         HAVE_SELINUX.
3028
3029 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3030
3031         * python/_dbus.py (Bus::remove_signal_receiver):
3032         don't add a callback to the match if none has been passed in
3033         
3034         * python/matchrules.py (SignalMatchTree::remove): if the rule
3035         being matched does not have a callback treat it as a wildcard
3036         fix matching logic
3037
3038         * doc/dbus-tutorial.xml: Add Python tutorial
3039
3040 2005-07-14  Colin Walters  <walters@verbum.org>
3041
3042         * bus/driver.c
3043         (bus_driver_handle_get_connection_unix_security_context): New function.
3044         (message_handlers): Add.
3045
3046         * bus/selinux.c (bus_selinux_append_context): New function; appends
3047         security context to message.
3048
3049         * bus/selinux.h: Prototype.
3050
3051         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3052
3053 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3054
3055         * bus/activation.c: clean up all tabs to be 8 spaces 
3056         (bus_activation_activate_service): make sure we clean up
3057         if activation fails
3058
3059         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3060         (check_shell_fail_service_auto_start): New function
3061         tests to make sure we get fail properly when trying to auto start a service
3062         with a faulty command line
3063         (check_shell_service_success_auto_start): New function tests to make sure
3064         auto started services get the arguments on the command line
3065
3066         * test/test-shell-service.c: Added service for testing auto-starting with 
3067         command line arguments
3068
3069         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3070         test/data/valid-service-files/debug-shell-echo-success.service.in:
3071         Added service files for testing auto-starting with command line arguments
3072
3073         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3074
3075 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3076
3077         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3078         
3079         * dbus/Makefile.am: added new files to build.
3080
3081         * bus/activation.c (bus_activation_activate_service): support
3082         activation commands with parameters.
3083
3084         * test/shell-test.c: added test program for the shell parsing
3085         code.
3086
3087 2005-07-13  David Zeuthen  <davidz@redhat.com>
3088
3089         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3090         64 bit signed and unsigned parameters
3091
3092 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3093
3094         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3095
3096         * python/service.py (class Name): renamed BusName to make it clearer
3097         what the object is for (a name on the bus)
3098
3099         * python/examples/example-service.py,
3100         python/examples/example-signal-emitter.py: change the Name object to
3101         BusName
3102
3103 2005-07-12  Colin Walters  <walters@verbum.org>
3104
3105         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3106
3107         * tools/dbus-launch.c: Include sys/select.h.
3108
3109 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3110         * python/dbus_bindings.pyx.in: removed
3111
3112         * python/dbus_bindings.pyx: Added.
3113         - Fixed some memleaks (patch from 
3114         Sean Meiners <sean.meiners@linspireinc.com>)
3115         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3116         own pxd file (Pyrex definition)
3117         - Broke out glib dependancies into its own pyx module
3118         
3119         * python/dbus_bindings.pdx: Added.
3120         - Defines C class Connection for exporting to other modules
3121
3122         * python/dbus_glib_bindings.pyx: Added.
3123         - New module to handle lowlevel dbus-glib mainloop integration
3124
3125         * python/glib.py: Added.
3126         - Registers the glib mainloop when you import this module
3127
3128         * python/services.py: Removed (renamed to service.py)
3129         
3130         * python/service.py: Added.
3131         - (class Server): renamed Name
3132
3133         * python/__init__.py: Bump ro version (0,41,0)
3134         -don't import the decorators or service module
3135         by default.  These now reside in the dbus.service namespace
3136
3137         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3138         setup function on creation 
3139
3140         * python/examples/example-service.py,
3141         python/examples/example-signal-emitter.py: update examples
3142
3143         * python/examples/gconf-proxy-service.py,
3144         python/examples/gconf-proxy-service2.py: TODO fix these up
3145
3146         * doc/TODO: Addition
3147         - Added a Python Bindings 1.0 section
3148         - added "Add match on args or match on details to match rules"
3149
3150
3151 2005-07-12  Colin Walters  <walters@verbum.org>
3152
3153         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3154         (statemachine-glue.h): 
3155         * glib/examples/Makefile.am (example-service-glue.h) 
3156         (example-signal-emitter-glue.h): 
3157         * glib/Makefile.am (dbus-glib-error-switch.h): 
3158         Add libtool --mode=execute so we use the built library instead
3159         of any installed one.
3160
3161 2005-07-11  Colin Walters  <walters@verbum.org>
3162
3163         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3164         (dbus_g_value_types_init): Remove assertion.
3165         (dbus_g_value_get_g_type, dbus_g_value_open)
3166         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3167         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3168         functions related to DBusGValue.  Now we marshal/demarshal
3169         structures as GValueArray.
3170         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3171         structures.
3172         (signature_iter_to_g_type_array): Don't call
3173         signature_iter_to_g_type_struct.
3174         (signature_iter_to_g_type_struct): Delete.
3175         (dbus_gvalue_to_signature): Delete.
3176         (dbus_gvalue_to_signature): New function with same name as other
3177         one; we can convert structures to signatures.
3178         (demarshal_valuearray): New function.
3179         (get_type_demarshaller): Use it.
3180         (demarshal_recurse): Delete.
3181         (marshal_proxy): New function.
3182         (marshal_map): Warn if we can't determine signature from type.
3183         (marshal_collection_ptrarray): Ditto.
3184         (marshal_collection_array): Ditto.
3185         (get_type_marshaller): Use marshal_valuearray.
3186         (marshal_recurse): Delete.
3187         (_dbus_gvalue_test): Add some tests.
3188
3189         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3190         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3191         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3192         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3193         (dbus_g_value_free): Remove prototypes.
3194
3195         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3196         G_TYPE_VALUE_ARRAY.
3197
3198         * glib/examples/example-service.c:
3199         * glib/examples/example-client.c: Implement GetTuple.
3200
3201         * test/glib/test-dbus-glib.c:
3202         * test/glib/test-service-glib.c:
3203         * test/glib/test-service-glib.xml: Add structure tests.
3204
3205 2005-07-10  Colin Walters  <walters@verbum.org>
3206
3207         * doc/TODO: Knock off some GLib items with this patch.
3208
3209         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3210         (_dbus_gvalue_signals_error): New functions.
3211
3212         * glib/dbus-gvalue-utils.h: Prototype them.
3213
3214         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3215         and change to not output const/retval flags for input args.  All
3216         callers updated.
3217         (invoke_object_method): Refactor to handle return values.  Add
3218         some more comments in various places.  Remove debug g_print.
3219
3220         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3221
3222         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3223         Handle G_TYPE_NONE.
3224         (compute_gsignature): New function; refactored from code from
3225         compute_marshaller and compute_marshaller_name.  Enhance to
3226         handle return values and async ops more cleanly.  Update for
3227         async ops returning NONE instead of BOOLEAN.
3228         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3229         and output appropriate string.
3230         (generate_glue): Handle return value annotation.  Also don't dump
3231         constness flag for input arguments.
3232
3233         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3234         files shared between installed library and utilities.
3235         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3236         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3237         binding tool can access gtype utility functions.
3238
3239         * test/glib/test-service-glib.c: 
3240         * test/glib/test-service-glib.xml: 
3241         * test/glib/test-dbus-glib.c: Add some tests for return values.
3242
3243 2005-07-09  Colin Walters  <walters@verbum.org>
3244
3245         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3246         argument if available, not method.
3247
3248         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3249         (invoke_object_method): First, remove some redundant
3250         GValues (object_value, error_value) in favor of working on
3251         array directly.  Second, rework constness to be less buggy.
3252         Now we iterate directly over the argument metadata instead
3253         of parallel iterating over output signature and metadata.
3254
3255         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3256
3257         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3258         annotation on input args.
3259         
3260 2005-07-09  Colin Walters  <walters@verbum.org>
3261
3262         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3263         Define.
3264
3265         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3266         annotation.
3267
3268         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3269         (method_dir_signature_from_object_info): Handle arg_iterate change.
3270         (write_interface): Ditto.
3271         (lookup_object_info): Don't barf if format_version is > 0.
3272         (invoke_object_method): Handle arg constness.
3273
3274         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3275         (arg_info_new): Create.
3276         (arg_info_unref): Destroy.
3277         (arg_info_get_annotations, arg_info_get_annotation) 
3278         (arg_info_add_annotation): New functions.
3279
3280         * glib/dbus-gidl.h: Prototype them.
3281
3282         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3283         args, disallow them in properties.
3284         (parse_annotation): Handle arg annotations.
3285
3286         * test/glib/test-service-glib.xml: 
3287         * test/glib/test-service-glib.c: Update to make some methods
3288         const.
3289
3290 2005-07-08  Colin Walters  <walters@verbum.org>
3291
3292         * test/glib/test-service-glib.xml: 
3293         * test/glib/test-service-glib.c:
3294         * test/glib/test-dbus-glib.c: Test a{sv}.
3295
3296         * glib/examples/statemachine/statemachine.c:
3297         * glib/examples/statemachine/statemachine-server.c:
3298         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3299         add progress bar, etc.
3300
3301         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3302         needed anymore due to generic array/map marshalling.
3303         (dbus_g_value_types_init): Don't register basic arrays or the
3304         string/string hash.
3305         (dbus_gtype_from_signature_iter): Don't try to recurse into
3306         variants.
3307         (dbus_gtype_to_signature): Check collection/map before type
3308         metadata.
3309         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3310         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3311         generic map creation/append functions instead of hash table
3312         specifically.
3313         (get_type_demarshaller): Handle maps.
3314         (demarshal_collection): Dispatch on collection type to either
3315         demarshal_collection_ptrarray or demarshal_collection_array.
3316         (get_type_marshaller): Handle maps.
3317         (marshal_collection): Dispatch collection type to either
3318         marshal_collection_ptrarray or marshal_collection_array.
3319         (_dbus_gvalue_test): New test.
3320
3321         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3322         (hash_free_from_gtype): Use it to free GValues.
3323         (hashtable_append): New function.
3324         (ptrarray_append): Fix prototype.
3325         (slist_append): Ditto.
3326         (_dbus_gvalue_utils_test): Extend tests.
3327
3328         * glib/dbus-gtype-specialized.c
3329         (dbus_g_type_specialized_init_append): Renamed from
3330         dbus_g_type_specialized_collection_init_append.  Remove const from
3331         value, since we steal it.
3332         (dbus_g_type_specialized_map_append): New function.
3333
3334         * glib/dbus-gtype-specialized.h: Update prototypes.
3335         Add DBusGTypeSpecializedMapAppendFunc.
3336
3337         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3338         _dbus_gvalue_test.
3339         
3340         * glib/dbus-gtest.h: Prototype it.
3341
3342 2005-07-08  Ross Burton  <ross@openedhand.com>
3343
3344         * dbus/dbus-glib.h:
3345         Add DBysGAsyncData for the async bindings.
3346
3347         * glib/dbus-binding-tool-glib.c:
3348         Re-enable the async bindings.
3349
3350         * test/glib/test-dbus-glib.c:
3351         Add a test for the generated async bindings.
3352
3353 2005-07-08  Colin Walters  <walters@verbum.org>
3354
3355         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3356         connection concept.
3357         
3358 2005-07-08  Colin Walters  <walters@verbum.org>
3359         
3360         * tools/Makefile.am: Kill of print-introspect in favor of using
3361         dbus-send --print-reply=literal.
3362
3363         * test/glib/test-service-glib.xml: 
3364         * test/glib/test-service-glib.c (my_object_get_objs): New test
3365         for "ao".
3366
3367         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3368         (main): Test GetObjs.
3369
3370         * glib/examples/statemachine/Makefile.am:
3371         * glib/examples/statemachine/sm-marshal.list:
3372         * glib/examples/statemachine/statemachine-client.c:
3373         * glib/examples/statemachine/statemachine-server.c:
3374         * glib/examples/statemachine/statemachine-server.xml:
3375         * glib/examples/statemachine/statemachine.c:
3376         * glib/examples/statemachine/statemachine.h:
3377         * glib/examples/statemachine/statemachine.xml:
3378
3379         New example.
3380
3381         * glib/examples/example-service.c (main): Move invocation
3382         of dbus_g_object_type_install_info earlier, to emphasize it
3383         should only be done once.
3384
3385         * glib/examples/example-signal-emitter.c (main): Ditto.
3386
3387         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3388
3389         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3390         (dbus_gvalue_marshal): Update prototypes.
3391
3392         * glib/dbus-gvalue.c: Update all marshalling functions to take
3393         const GValue instead of GValue.
3394         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3395         types.
3396         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3397         change.
3398         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3399         Return a newly-allocated string.
3400         (demarshal_proxy, demarshal_object_path, demarshal_object)
3401         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3402         we get the wrong types from message.
3403         (get_type_demarshaller): New function, extracted from
3404         dbus_gvalue_demarshal.
3405         (demarshal_collection): New function, demarshals generic
3406         collection.
3407         (dbus_gvalue_demarshal): Just invoke result of
3408         get_type_demarshaller.  Throw error if we don't have one.
3409         (marshal_garray_basic): Abort on OOM.
3410         (get_type_marshaller): New function, extracted from
3411         dbus_gvalue_marshal.
3412         (collection_marshal_iterator, marshal_collection): New functions;
3413         implements generic marshalling for an iteratable specialized
3414         collection.
3415         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3416
3417         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3418         G_TYPE_STRING.
3419         (ptrarray_value_from_gvalue): Ditto.
3420         (ptrarray_append, ptrarray_free): New functions.
3421         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3422         (slist_append, slist_end_append, slist_free): New functions.
3423         (dbus_g_type_specialized_builtins_init): Add append fuctions
3424         for GPtrArray and GSList.  Register GSList.
3425         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3426
3427         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3428         New.
3429         (dbus_g_type_specialized_collection_init_append)
3430         (dbus_g_type_specialized_collection_append)
3431         (dbus_g_type_specialized_collection_end_append): Prototype.
3432         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3433         end_append_func.
3434
3435         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3436         (dbus_g_type_specialized_collection_append) 
3437         (dbus_g_type_specialized_collection_end_append): New functions.
3438         (dbus_g_type_map_value_iterate): Take const GValue.
3439         (dbus_g_type_collection_value_iterate): Ditto.
3440
3441         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3442         _dbus_gvalue_utils_test.
3443         
3444         * glib/dbus-gtest.h: Prototype it.
3445
3446         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3447         using uninitialized owner_list.
3448         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3449         public API.
3450         (dbus_g_proxy_end_call_internal): Update to use error set
3451         from dbus_gvalue_demarshal instead of setting it here.
3452         (dbus_g_proxy_begin_call): Move return_if_fail here.
3453
3454         * glib/dbus-gobject.c (write_interface): Update for
3455         dbus_gtype_to_signature returning new string.
3456
3457         * configure.in: Add glib/examples/statemachine.
3458
3459 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3460
3461         * configure.in: Add a configure option, --with-console-auth-dir
3462         
3463         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3464         new setting.  Patch from Kay Sievers.
3465
3466 2005-07-06  Colin Walters  <walters@verbum.org>
3467
3468         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3469         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3470         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3471         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3472         Delete in favor of dbus_g_proxy_begin_call and
3473         dbus_g_proxy_cancel_call.
3474         (DBusGProxyCall, DBusGProxyCallNotify): New.
3475         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3476         data, and destroy function.  This replaces
3477         dbus_g_pending_call_set_notify.
3478         (dbus_g_proxy_cancel_call): Prototype.
3479         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3480
3481         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3482         pending_calls map.
3483         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3484         internal proxy for calls to the bus. Remove
3485         pending_nameowner_calls, now the internal proxy keeps track.
3486         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3487         pending_nameowner_calls.
3488         (got_name_owner_cb): Update prototype, and use
3489         dbus_g_proxy_end_call.
3490         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3491         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3492         favor of using internal proxy.
3493         (dbus_g_proxy_manager_unregister): Update to use
3494         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3495         (dbus_g_proxy_init): Initialize pending calls map.
3496         (dbus_g_proxy_constructor): New.
3497         (dbus_g_proxy_class_init): Add get/set property functions,
3498         constructor, and add NAME, PATH, and INTERFACE properties.
3499         (cancel_pending_call): New function.
3500         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3501         cancel them.
3502         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3503         (GPendingNotifyClosure): New structure.
3504         (d_pending_call_notify, d_pending_call_free): Moved here from
3505         dbus-glib.c.
3506         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3507         ordering.
3508         (manager_begin_bus_call): New internal function for talking to
3509         internal bus proxy.
3510         (dbus_g_proxy_new): Construct object using GObjet properties.
3511         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3512         Create closure of same, and insert call into map of pending calls.
3513         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3514         call.  Look up pending call in current set.  Remove it when we've
3515         completed.
3516         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3517         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3518         and destroy function directly.
3519         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3520         (dbus_g_proxy_call): Invoke with NULL callback.
3521         (dbus_g_proxy_cancel_call): New function, replaces
3522         dbus_g_pending_call_cancel.
3523
3524         * glib/dbus-gparser.c (validate_signature): Fix call to
3525         dbus_set_g_error.
3526
3527         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3528         New quark for attaching metadata to GType.
3529         (info_hash): Delete.
3530         (lookup_object_info): Look up using quark.
3531         (dbus_g_object_type_install_info): Check that a type is classed,
3532         not that it's an object.  Also just install type data using quark
3533         instead of using global hash.
3534
3535         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3536         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3537         (GPendingNotifyClosure): Delete.
3538         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3539         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3540
3541         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3542         client method generation until we can fix it...
3543         
3544         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3545         (load_from_service_thread_func): Ditto.
3546
3547         * tools/dbus-names-model.c (struct NamesModel): Hold
3548         DBusGProxyCall.
3549         (have_names_notify): Update prototype, use
3550         dbus_g_proxy_cancel_call.
3551         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3552
3553         * tools/dbus-monitor.c (filter_func): Update for print_message
3554         API change.
3555
3556         * test/glib/test-dbus-glib.c: Add more tests for async
3557         invocations.  Update many begin_call/end_call pairs to just use
3558         dbus_g_proxy_call.
3559
3560         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3561         allows us to dump print-introspect.c.
3562
3563         * tools/dbus-print-message.h (print_message): Add literal argument
3564         to print_message which is intended to allow printing arguments without
3565         metadata like "string=".
3566
3567         * tools/dbus-print-message.c (print_iter): Add literal argument.
3568         (print_message): Allow printing string messages literally.
3569
3570 2005-07-05  Colin Walters  <walters@verbum.org>
3571
3572         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3573         Remove value refcount leak, original patch from Jorn Baayen
3574         <jorn@openedhand.com>.  Also remove useless extra value in favor
3575         of prepending to value array directly.
3576
3577 2005-07-02  Colin Walters  <walters@verbum.org>
3578
3579         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3580
3581 2005-07-01  Colin Walters  <walters@verbum.org>
3582
3583         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3584         
3585         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3586         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3587         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3588         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3589
3590 2005-06-30  Colin Walters  <walters@verbum.org>
3591
3592         * test/glib/test-dbus-glib.c:
3593         * test/glib/test-service-glib.c:
3594         * test/glib/test-service-glib.xml: Update tests for new error
3595         setting bits, also add async tests (patch from Ross Burton).
3596
3597         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3598         DBUS_GLIB_THREADS_LIBS.
3599
3600         * glib/dbus-gproxy.c (get_name_owner)
3601         (dbus_g_pending_call_end_valist): Ditto.
3602
3603         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3604         domain (GQuark) to DBusGErrorInfo.  
3605         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3606         quark in error_metadata.  Take message interface as default
3607         error message interface.
3608         (gerror_to_dbus_error_message): Pass message interface.
3609         (dbus_set_g_error): Resurrected.
3610         (dbus_g_error_info_free): New function.
3611         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3612         of _peek to actually create the object class if it hasn't been
3613         created yet.
3614         (dbus_g_error_domain_register): New function.
3615
3616         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3617
3618         * glib/dbus-gparser.c (validate_signature): Ditto.
3619
3620         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3621         (dbus_g_error_domain_register): Prototype.
3622
3623         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3624         Update tests.
3625
3626 2005-06-29  Colin Walters  <walters@verbum.org>
3627
3628         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3629         DBUS_TYPE_G_OBJECT_PATH.
3630
3631         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3632         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3633         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3634         (dbus_g_object_path_get_g_type): New function.
3635         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3636         to DBUS_TYPE_G_OBJECT_PATH by default.
3637         (demarshal_proxy): Remove unused name variable.
3638         (demarshal_object_path, marshal_object_path): New functions.
3639         (demarshal_proxy_array, marshal_proxy_array): Delete.
3640         
3641         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3642         DBUS_TYPE_G_OBJECT_PATH to char *.
3643         (dbus_g_type_get_lookup_function): Map builtin
3644         DBUS_TYPE_G_OBJECT_PATH.
3645
3646         * test/glib/test-dbus-glib.c
3647         * test/glib/test-service-glib.c (my_object_objpath): 
3648         Adapt tests to new object path marshalling.
3649
3650 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3651
3652         * configure.in: force check for Python >= 2.4
3653
3654 2005-06-29  Colin Walters  <walters@verbum.org>
3655         
3656         Patch from Ross Burton <ross@openedhand.com>
3657         
3658         * glib/dbus-gobject.c (invoke_object_method): Unset object
3659         value in all cases, not only in async case.
3660
3661 2005-06-29  Colin Walters  <walters@verbum.org>
3662
3663         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3664         name_call for keeping track of any outgoing GetNameOwner call.
3665         Also add for_owner and associated.
3666         (struct _DBusGProxyManager): Add owner_names, which is hash table
3667         that maps a base name to a list of names it owns (that we're
3668         interested in).  Add pending_nameowner_calls which is a list of
3669         all outstanding GetNameOwner; avoids us having to iterate over
3670         every proxy.  Add unassociated_proxies which keeps track of name
3671         proxies with no associated name owner.
3672         (dbus_g_proxy_manager_unref): Destroy owner_names.
3673         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3674         name refcounts.
3675         (find_name_in_info, name_owner_foreach)
3676         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3677         (dbus_g_proxy_manager_monitor_name_owner)
3678         (dbus_g_proxy_manager_unmonitor_name_owner)
3679         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3680         New functions; they manipulate the owner_names mapping.
3681         (got_name_owner_cb): New function.
3682         (get_name_owner): New function, extracted from
3683         dbus_g_proxy_new_for_name_owner.
3684         (dbus_g_proxy_manager_register): For now we need to keep track of
3685         all NameOwnerChanged.  Also if the proxy is for a name, if we
3686         don't already know the name owner, queue a new GetNameOwner
3687         request and add it to our list of unassociated proxies.  Otherwise
3688         inc the refcount.
3689         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3690         cancel any pending GetNameOwner call, etc.
3691         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3692         the owner_names mapping to look up the current names for the
3693         signal source, and dispatch to any proxies for that name.
3694         (dbus_g_proxy_new): Initialize new members.
3695         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3696         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3697         (dbus_g_pending_call_end_valist): New function, extracted from
3698         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3699         but want to use the GLib infrastructure.  Also note how many
3700         arguments in reply were over.
3701         (dbus_g_pending_call_end): New function, just call
3702         dbus_g_pending_call_end_valist.
3703         (dbus_g_proxy_end_call_internal): Just call
3704         dbus_g_pending_call_end_valist.
3705
3706         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3707         of builtin marshaller for STRING_STRING_STRING.
3708
3709         * test/glib/test-dbus-glib.c: 
3710         * test/glib/test-service-glib.c:
3711         * test/glib/test-service-glib.xml:
3712         Extend tests to cover name proxies, destruction of owner proxies,
3713         etc.
3714         
3715         * glib/examples/example-signal-recipient.c
3716         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3717         
3718         * tools/dbus-send.c (main): Print D-BUS error name in addition
3719         to message.
3720
3721 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3722
3723         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3724         cmessage_function_handler): Patch from 
3725         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3726         by using the Py_GILState_Ensure/Release to synchronize with the
3727         python runtime.
3728         
3729 2005-06-28  Ray Strode  <rstrode@redhat.com>
3730
3731         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3732         babysitter helper process on last unref, bug #2813.
3733
3734 2005-06-27  Colin Walters  <walters@verbum.org>
3735
3736         * test/glib/test-dbus-glib.c: 
3737         * test/glib/test-service-glib.c:
3738         * test/glib/test-service-glib.xml:
3739         Test hash table signal emitting.
3740
3741         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3742         types to their fundamental basis types, since this is what
3743         marshallers operate on.  Also add an entry for VOID__BOXED.
3744         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3745
3746 2005-06-26  Havoc Pennington  <hp@redhat.com>
3747
3748         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3749         from Don Park
3750
3751 2005-06-26  Colin Walters  <walters@verbum.org>
3752
3753         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3754         (dbus_g_error_set): New public function from its ashes; used by
3755         both service-side method implementation and GLib bindings
3756         internals.
3757         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3758         (_dbus_glib_test): Add some tests.
3759
3760         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3761
3762         * test/glib/test-service-glib.c (my_object_throw_error): Use
3763         dbus_g_error_set.
3764
3765         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3766         errors thrown by dbus_g_error_set.
3767
3768         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3769
3770         * glib/dbus-gparser.c (validate_signature): Ditto.
3771
3772         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3773         (dbus_g_proxy_end_call_internal): Ditto.
3774
3775         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3776         converts DBUS_ERROR_x to DBUS_GERROR_x.
3777         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3778
3779         * doc/TODO: Remove error TODO.
3780
3781         * doc/dbus-tutorial.xml: Update with documentation about error
3782         handling.
3783
3784         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3785         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3786         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3787
3788 2005-06-22  Colin Walters  <walters@verbum.org>
3789         
3790         Patch from Ross Burton <ross@openedhand.com>
3791
3792         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3793
3794 2005-06-20  Colin Walters  <walters@verbum.org>
3795
3796         * configure.in: Add glib/examples.
3797
3798         * glib/Makefile.am: Add examples/
3799
3800         * glib/examples/.cvsignore
3801         * glib/examples/Makefile.am
3802         * glib/examples/example-client.c
3803         * glib/examples/example-service.c
3804         * glib/examples/example-service.xml
3805         * glib/examples/example-signal-emitter.c
3806         * glib/examples/example-signal-emitter.xml
3807         * glib/examples/example-signal-recipient.c:
3808         New files; GLib binding examples, ported from
3809         python/examples.
3810
3811 2005-06-20  Colin Walters  <walters@verbum.org>
3812
3813         * dbus/dbus-glib.h: 
3814         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3815         dbus_g_proxy_call.
3816
3817         * glib/dbus-binding-tool-glib.c: 
3818         * doc/dbus-tutorial.xml: 
3819         * test/glib/test-dbus-glib.c: Update for rename.
3820         
3821 2005-06-20  Colin Walters  <walters@verbum.org>
3822
3823         Patch suggested by Ross Burton <ross@openedhand.com>
3824
3825         * glib/dbus-gobject.c (export_signals): Free signal name.
3826         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3827         memory leak.  Add a bit of documentation.
3828         (dbus_g_method_return_error): Free context, and note we do
3829         so.
3830
3831 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3832
3833         * dbus/dbus-glib.h:
3834         * glib/dbus-gobject.c:
3835         * glib/dbus-gproxy.c:
3836         * glib/dbus-gvalue.c: Predeclare structs as 
3837         typedef struct _Something Something instead of 
3838         typedef struct Something Something, so we can 
3839         redeclare the prototypes. Other GNOME libraries 
3840         do this already.
3841
3842 2005-06-17  Colin Walters  <walters@verbum.org>
3843
3844         * tools/dbus-names-model.c (have_names_notify): Fix call
3845         to dbus_g_proxy_end_call.
3846         
3847 2005-06-17  Colin Walters  <walters@verbum.org>
3848
3849         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3850         spew warnings if we get malformed remote signals.
3851
3852         * glib/dbus-gobject.c (propsig_iterate): New function.
3853         (lookup_object_info): New function, extracted from
3854         lookup_object_and_method.
3855         (introspect_properties, introspect_signals): Delete; these
3856         are merged into write_interface.
3857         (write_interface): Write out signals and properties here;
3858         dump the org.gtk.object stuff and use the interface given
3859         in the introspection data blob.  Also fix up property XML.
3860         (lookup_values): New function.
3861         (introspect_interfaces): Gather a mapping from interface to a
3862         list of its methods, signals, and properties, then write out
3863         each interface.
3864         (lookup_object_and_method): Use lookup_object_info.
3865         (struct DBusGSignalClosure): Add interface.
3866         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3867         we can just use the constant data.
3868         (dbus_g_signal_closure_finalize): Don't free signal name.
3869         (signal_emitter_marshaller): Use interface from signal closure.
3870         (export_signals): Only export signals mentioned in introspection
3871         blob.
3872         (dbus_g_connection_register_g_object): Warn if we have no
3873         introspection data for an object.
3874         (funcsig_equal): Remove unused variable.
3875         (dbus_g_object_register_marshaller): Take varargs instead of
3876         list.
3877         (dbus_g_object_register_marshaller_array): New function,
3878         extracted from old dbus_g_object_register_marshaller.
3879
3880         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3881         signals and property data.
3882         (write_quoted_string): New function, extracted from generate_glue.
3883         (generate_glue): Write signals and properties to introspection
3884         blob.
3885
3886         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3887         exported_signals and exported_properties.
3888         (dbus_g_object_register_marshaller): Update prototype.
3889         (dbus_g_object_register_marshaller_array): Prototype.
3890         
3891         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3892
3893         * test/glib/test-service-glib.c: Add new test signals and method
3894         to emit them.
3895
3896         * test/glib/test-service-glib.xml: Add some test signals.
3897
3898         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3899         and my-object-marshal.h
3900         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3901         my-object-marshal.c.
3902         (my-object-marshal.c, my-object-marshal.h): Implement.
3903
3904         * test/glib/.cvsignore: Update.
3905
3906         * doc/TODO: Remove two GLib TODO items fixed by this
3907         patch.
3908
3909 2005-06-16  Colin Walters  <walters@verbum.org>
3910
3911         * doc/TODO: Update for GLib bindings.
3912         
3913 2005-06-16  Colin Walters  <walters@verbum.org>
3914
3915         * glib/dbus-binding-tool-glib.c:
3916         * glib/dbus-gobject.c:
3917         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3918         from Ross Burton, for his GLib bindings work.
3919
3920 2005-06-16  Colin Walters  <walters@verbum.org>
3921
3922         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3923         to iterate instead of walking to G_TYPE_INVALID.
3924
3925         Patch based on a patch from Ryan Gammon.
3926
3927 2005-06-16  Colin Walters  <walters@verbum.org>
3928
3929         * bus/bus.c (bus_context_new): Set parser to NULL
3930         after we unref it (Patch from Chris Boscolo, #2174).
3931         
3932 2005-06-16  Colin Walters  <walters@verbum.org>
3933
3934         * python/dbus_bindings.pyx.in: Import size_t,
3935         __int64_t, __uint64_t, and __signed.
3936
3937         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3938         Define cmsg struct, output it.
3939         (_dbus_read_credentials_unix_socket):
3940         Use cmsg struct.
3941         
3942         Patch from Joe Markus Clarke for FreeBSD support.
3943         
3944 2005-06-16  Colin Walters  <walters@verbum.org>
3945
3946         * tools/dbus-send.c (append_array): Use strtok.
3947         (append_dict): New function.
3948         (type_from_name): New function, extracted from main.
3949         (main): Handle sending dicts.
3950
3951         * tools/dbus-print-message.c (print_iter): Print dict
3952         entries.
3953         
3954 2005-06-16  Colin Walters  <walters@verbum.org>
3955
3956         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3957         values as the empty string (#2948).
3958         
3959 2005-06-16  Colin Walters  <walters@verbum.org>
3960
3961         * dbus/Makefile.am:
3962         * mono/doc/Makefile.am:
3963         * test/glib/Makefile.am:
3964
3965         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3966
3967 2005-06-16  Colin Walters  <walters@verbum.org>
3968
3969         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3970         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3971
3972         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3973         Increment pointer after swapping fixed array.  Add assertion
3974         for array length.
3975                 
3976 2005-06-15  Colin Walters  <walters@verbum.org>
3977
3978         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3979         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3980         
3981 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3982
3983         * NEWS: Update to 0.34
3984
3985 2005-06-15  David Zeuthen  <davidz@redhat.com>
3986
3987         * configure.in (LT_CURRENT): Revert back to 1 as the library
3988         hasn't changed and we've certainly not committed to protocol
3989         stability yet.  All this does is to break ABI. See commit note
3990         from hp@redhat.com 2005-05-05 for details.
3991         
3992 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3993
3994         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3995         (_dbus_connection_run_builtin_filters): New method
3996         (dbus_connection_dispatch): Run the builtin filters which in turn
3997         runs the peer filter which handles Ping messages.
3998
3999         * doc/TODO: 
4000          - Ping isn't handled: This patch fixes it
4001          
4002          - Add a test case for the Ping message: added TODO item
4003
4004 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4005
4006         * dbus/dbus-message.c:
4007         (dbus_message_has_path): New method
4008         (dbus_message_has_interface): New method
4009         (dbus_message_has_member): New method
4010
4011         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4012         New method
4013
4014         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4015         the keyring directory is private to the user
4016
4017         * doc/TODO:
4018          - The convenience functions in dbus-bus.h should perhaps have
4019          the signatures that they would have if they were autogenerated
4020          stubs. e.g. the acquire service function. We should also evaluate
4021          which of these functions to include, in light of the fact that
4022          GLib/Qt native stubs will probably also exist.: Punted
4023
4024          - add dbus_message_has_path(), maybe has_member/interface:
4025          fixed in this patch
4026
4027          - in dbus-keyring.c, enforce that the keyring dir is not
4028          world readable/writable: Fixed in this patch
4029
4030 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4031
4032         * dbus/dbus-marshal-validate.h: Added a new validation
4033         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4034         out of memory errors when validating signitures
4035
4036         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4037         in places where we previously used DBUS_VALID and a FALSE return 
4038         value to indicate OOM
4039         
4040         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4041         Use a stack to track the number of elements inside containers.  The 
4042         stack values are then used to validate that dict entries have only two
4043         elements within them.
4044         (validate_body_helper): check the reason for failure when validating
4045         varients
4046         
4047         * dbus/dbus-message.c (load_message): use 
4048         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4049         DBUS_VALID and a FALSE return value to indicate OOM
4050
4051         * doc/TODO: remove "- validate dict entry number of fields" as this
4052         patch fixes it
4053
4054 2005-06-14  David Zeuthen  <davidz@redhat.com>
4055
4056         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4057         watches (if applicable) and add new watches
4058
4059         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4060         (main): Setup SIGIO signal handler if using D_NOTIFY
4061
4062         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4063
4064         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4065         (merge_included): Also merge conf_dirs list
4066         (bus_config_parser_unref): Clear conf_dirs list
4067         (include_dir): Add directory to conf_dirs list
4068         (bus_config_parser_get_conf_dirs): New function
4069
4070         * bus/dir-watch.[ch]: New files
4071
4072         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4073
4074         * configure.in: Add checks for D_NOTIFY on Linux
4075
4076 2005-06-14  Colin Walters  <walters@verbum.org>
4077
4078         * glib/dbus-binding-tool-glib.c:
4079         * glib/dbus-gobject.c:
4080         * glib/dbus-gvalue.c: Fix indentation and brace style.
4081         
4082 2005-06-14  Ross Burton <ross@openedhand.com>.
4083
4084         * glib/dbus-glib.h: Make DBusGMethodInvocation
4085         a private structure.  Rearrange prototypes a bit.
4086         
4087         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4088         documentation for first_arg_type.
4089         
4090         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4091         here, add documentation.  Move dbus_g_method_return
4092         and dbus_g_method_return_error into public API
4093         section.
4094
4095 2005-06-14  Colin Walters  <walters@verbum.org>
4096
4097         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4098         Add missing return statements, noticed by Ross Burton.
4099         
4100 2005-06-13  Ross Burton <ross@openedhand.com>.
4101
4102         * glib/dbus-gobject.c: Handle errors on message
4103         demarshalling by sending error message back.
4104         * glib/dbus-gvalue.c: Initialize return variables.
4105
4106 2005-06-13  Colin Walters  <walters@verbum.org>
4107
4108         * glib/Makefile.am: Fix thinko in last patch.
4109
4110 2005-06-13  Colin Walters  <walters@verbum.org>
4111
4112         * glib/Makefile.am: Move dbus-gtype-specialized.c
4113         and dbus-gtype-specialized.h into a _HEADERS variable,
4114         install them.
4115
4116 2005-06-12  Colin Walters  <walters@verbum.org>
4117
4118         Async signals and various bugfixes and testing by
4119         Ross Burton <ross@openedhand.com>.
4120
4121         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4122         (dbus_gvalue_genmarshal_name_from_type)
4123         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4124         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4125         (dbus_g_value_types_init, dbus_gtype_from_signature)
4126         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4127         (dbus_gtypes_from_arg_signature): New function prototypes.
4128         (dbus_gvalue_demarshal): Take context and error arguments.
4129         (dbus_gvalue_demarshal_variant): New function.
4130         (dbus_gvalue_demarshal_message): New function.
4131         (dbus_gvalue_store): Delete.
4132
4133         * glib/dbus-gvalue.c:
4134
4135         File has been almost entirely rewritten; now we special-case
4136         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4137         hash tables correctly, etc.  Full support for recursive values
4138         is not yet complete.
4139
4140         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4141         argument of signal to G_TYPE_POINTER since we now pass a
4142         structure.
4143         (lookup_g_marshaller): Delete in favor of
4144         _dbus_gobject_lookup_marshaller.
4145         (marshal_dbus_message_to_g_marshaller): Use
4146         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4147         to handle remote signal callbacks.
4148         (dbus_g_proxy_new_from_proxy): New function; creates a new
4149         DBusGProxy by copying an existing one.
4150         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4151         (dbus_g_proxy_get_path): New functions.
4152         (dbus_g_proxy_marshal_args_to_message): New function;
4153         factored out of existing code.
4154         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4155         from a varargs array.
4156         (dbus_g_proxy_begin_call_internal): New function.
4157         (dbus_g_proxy_end_call_internal): New function.
4158         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4159         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4160         after collecting args into value array.
4161         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4162         invoke dbus_g_proxy_end_call_internal.
4163         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4164         end_call_internal.
4165         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4166         types.
4167         (array_free_all): New function.
4168         (dbus_g_proxy_add_signal): Take GTypes.
4169
4170         * glib/dbus-gobject.h:
4171         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4172         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4173         Prototype.
4174
4175         * glib/dbus-gobject.c: Add a global marshal_table hash which
4176         stores mappings from type signatures to marshallers.  Change lots
4177         of invocations of dbus_gtype_to_dbus_type to
4178         dbus_gtype_to_signature.
4179         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4180         (introspect_signals): Fix test for query.return_type.
4181         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4182         (invoke_object_method): Many changes.  Handle asynchronous
4183         invocations.  Convert arguments with
4184         dbus_gvalue_demarshal_message.  Handle errors.  Use
4185         DBusSignatureIter instead of strlen on args. Handle all arguments
4186         generically.  Special-case variants.
4187         (dbus_g_method_return, dbus_g_method_return_error): New function.
4188         (DBusGSignalClosure): New structure, closes over signal
4189         information.
4190         (dbus_g_signal_closure_new): New function.
4191         (dbus_g_signal_closure_finalize): New function.
4192         (signal_emitter_marshaller): New function; is special marshaller
4193         which emits signals on bus.
4194         (export_signals): New function; introspects object signals and
4195         connects to them.
4196         (dbus_g_object_type_install_info): Take GType instead of
4197         GObjectClass.
4198         (dbus_g_connection_register_g_object): Invoke export_signals.
4199         (dbus_g_connection_lookup_g_object): New function.
4200         (DBusGFuncSignature) New structure; used for mapping type
4201         signatures to marshallers.
4202         (funcsig_hash): New function; hashes DBusGFuncSignature.
4203         (funcsig_equal): New function; compares DBusGFuncSignature.
4204         (_dbus_gobject_lookup_marshaller): New function.
4205         (dbus_g_object_register_marshaller): New function; used to
4206         register a marshaller at runtime for a particular signature.
4207
4208         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4209
4210         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4211         which notes a server method implementation should be
4212         asynchronous.
4213
4214         * glib/dbus-binding-tool-glib.c
4215         (dbus_binding_tool_output_glib_server): Call
4216         dbus_g_value_types_init.
4217         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4218         variants specially.
4219         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4220         of a lookup function.
4221         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4222         (write_untyped_out_args): New method; write output arguments.
4223         (write_formal_declarations_for_direction): Function for
4224         writing prototypes.
4225         (write_formal_parameters_for_direction): Function for
4226         writing implementations.
4227         (write_typed_args_for_direction): Function for writing
4228         arguments prefixed with GTypes.
4229         (write_async_method_client): Write out async version
4230         of method.
4231
4232         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4233         (dbus_g_type_get_marshal_name): Move mapping from GType
4234         to marshal name into here.
4235         (dbus_g_type_get_c_name): Move into here.
4236         (compute_marshaller): Convert signature to type with
4237         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4238         (compute_marshaller_name): Ditto.
4239         (compute_marshaller): Handle async signal annotations.
4240         (gather_marshallers): Return if we don't have a known
4241         prefix.
4242         (generate_glue): Collect introspection blob here, and
4243         write all of the blob at the end.  This allows an object
4244         with multiple interfaces to work.
4245         Mark async methods in introspection blob.
4246
4247         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4248         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4249         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4250
4251         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4252         avoids people accidentally using DBUS_TYPE_* which should
4253         not be necessary anymore.
4254         Do include dbus-gtype-specialized.h, which are utilities
4255         for GLib container types.
4256         Add various #defines for types such as
4257         DBUS_TYPE_G_BOOLEAN_ARRAY.
4258         (DBusGValueIterator, DBusGValue): Define, not fully used
4259         yet.
4260         (dbus_g_value_get_g_type): Type for recursive value.
4261         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4262         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4263         (dbus_g_value_free): Prototypes.
4264         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4265         (dbus_g_proxy_set_interface): Prototype.
4266         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4267         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4268         types.
4269         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4270         Accessors.
4271         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4272         doing async invocations.
4273         (dbus_g_method_return, dbus_g_method_return_error):
4274         Prototypes.
4275         * doc/dbus-tutorial.xml: Update GLib section.
4276         
4277         * tools/dbus-viewer.c (load_child_nodes): Update
4278         for new invocation type of dbus_g_proxy_end_call.
4279         (load_from_service_thread_func): Ditto.
4280
4281         * tools/print-introspect.c (main): Ditto.
4282
4283         * tools/dbus-names-model.c (have_names_notify)
4284         (names_model_reload, names_model_set_connection)
4285         Use GTypes.
4286
4287         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4288         needed since Python bindings use GLib bindings.
4289
4290         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4291         Add --prefix argument.
4292
4293         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4294         unneeded --ignore-unsupported arg.
4295         
4296         * test/glib/test-service-glib.c: 
4297         * test/glib/test-service-glib.xml:
4298         * test/glib/test-dbus-glib.c: Add many more tests.
4299
4300 2005-06-06  David Zeuthen  <davidz@redhat.com>
4301
4302         * doc/TODO: Add item about need to remove deprecated functions.
4303
4304         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4305
4306         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4307         to repair the ABI which was broken with the last commit.
4308
4309 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4310
4311         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4312         (dbus_connection_disconnect): renamed to dbus_connection_close 
4313         for API symmetry with dbus_connection_open
4314         (_dbus_connection_open_internal): 
4315         s/dbus_connection_disconnect/dbus_connection_close
4316
4317         * dbus/dbus-bus.c (dbus_bus_get):
4318         s/dbus_connection_disconnect/dbus_connection_close
4319
4320         * bus/connection.c (bus_connections_unref, 
4321         bus_connections_setup_connection, bus_connections_expire_incomplete):
4322         s/dbus_connection_disconnect/dbus_connection_close
4323
4324         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4325         kill_client_connection_unchecked, check_hello_connection):
4326         s/dbus_connection_disconnect/dbus_connection_close
4327
4328         * bus/bus.c (new_connection_callback):
4329         s/dbus_connection_disconnect/dbus_connection_close
4330
4331         * tools/dbus-send.c (main):
4332         s/dbus_connection_disconnect/dbus_connection_close
4333
4334         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4335         s/dbus_connection_disconnect/dbus_connection_close
4336         
4337         * test/test-service.c (path_message_func, filter_func):
4338         s/dbus_connection_disconnect/dbus_connection_close
4339         
4340         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4341         
4342 2005-05-25  Colin Walters  <walters@verbum.org>
4343
4344         * dbus/dbus-protocol.h: Move various bus service #defines such
4345           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4346           dbus/dbus-shared.h.
4347         * dbus/dbus-shared.h: Various defines moved here.
4348         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4349
4350 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4351
4352         * python/__init__.py: Python bindings deserve a minor version
4353         update.  Upped to (0, 40, 2)
4354
4355 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4356
4357         * python/decorators.py: add explicitly_pass_message decorator
4358         for passing in the dbus message as keyword for edge case signal
4359         handling
4360
4361         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4362         to conform with what dbus expects for match rules
4363         (SignalMatchRule.execute): add the dbus message as a keyword
4364         if the signal handler has requested it
4365
4366         * python/examples/example/signal-recipient.py: added some more
4367         examples on how to hook up to signals
4368
4369 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4370
4371         * python/decorators.py: import dbus_bindings
4372
4373         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4374         SignalMatchNode): new classes that implement wildcard signal
4375         callback matching using a tree lookup. Heavily modified from a
4376         patch sent by Celso Pinto (fd.o bug #3241)
4377
4378         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4379         use new match classes to handle signals.
4380
4381 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4382         
4383         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4384
4385 2005-05-18  Havoc Pennington  <hp@redhat.com>
4386
4387         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4388         gettext. Not really worth requiring yet perhaps, but any
4389         production quality 1.0 would require it so we should go ahead and
4390         get things set up. We do have a couple token calls to
4391         bindtextdomain in the code already.
4392
4393 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4394
4395         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4396         when using recursive g_main_loops
4397
4398         * python/_dbus.py (class Bus): add the ProxyObjectClass
4399         alias for ProxyObject to make it easier for the Twisted 
4400         networking framework to integrate dbus.
4401
4402         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4403         alias for ProxyMethod to make it easier for the Twisted 
4404         networking framework to integrate dbus. 
4405
4406 2005-05-11  Ross Burton  <ross@openedhand.com>
4407
4408         * glib/dbus-glib-tool.c: Add --prefix argument.
4409         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4410         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4411         Add prefix argument.
4412         (generate_glue): Pass prefix argument down.
4413         (dbus_binding_tool_output_glib_server): Pass prefix to
4414         glib-genmarshal.
4415         
4416 2005-05-11  Colin Walters  <walters@verbum.org>
4417
4418         * tools/dbus-send.c (append_array): New function.
4419         (append_arg): Broken out from main.
4420         (main): Add cheesy hack to send arrays and variants.
4421         (usage): Update.
4422         * tools/dbus-print-message.c (print_iter): Broken out
4423         from main.
4424
4425 2005-05-11  Colin Walters  <walters@verbum.org>
4426
4427         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4428         New function, returns signature string for signature iter.
4429         * dbus/dbus-signature.h: Prototype it.
4430         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4431         New function, returns signature string for message iter.
4432         (dbus_message_iter_get_array_len): New function, returns
4433         length of array.
4434         (dbus_message_iter_get_fixed_array): Fix assertion; this
4435         function should be used when the iter is pointing to the
4436         contents of an array
4437         * dbus/dbus-message.h: Prototypes.
4438         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4439         New function; returns length of an array.
4440         * dbus/dbus-marshal-recursive.h: Prototype it.
4441         
4442 2005-05-11  Colin Walters  <walters@verbum.org>
4443
4444         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4445         compilation error.
4446         
4447 2005-05-08  Havoc Pennington  <hp@redhat.com>
4448
4449         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4450         daemon's pid, not the parent's pid, to the file descriptor.
4451         Reported by Taj Morton.
4452
4453 2005-05-05  Havoc Pennington  <hp@redhat.com>
4454
4455         * configure.in (LT_*): add notes on how the libtool versioning
4456         works to save thinking. Increment soname to indicate protocol
4457         breakage (though really the library interface hasn't changed I
4458         guess)
4459
4460         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4461         verify the GUID received from server matches what we were
4462         expecting, if we had an expectation
4463
4464         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4465         (_dbus_auth_get_guid_from_server): new function
4466         (send_begin): parse the OK args
4467
4468         * doc/dbus-specification.xml: add GUID to the auth protocol
4469
4470 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4471
4472         * Fix my name in previous changelog ;)
4473
4474         * python/proxies.py (ProxyObject.__getattr__): add further patch
4475         from Anthony Baxter to throw an AttributeError when python 
4476         __special__ functions are called instead of marshling them over 
4477         the bus (Bug#1685 comment 3).
4478
4479 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4480
4481         * python/Makefile.am: changed to use pyexecdir for the binding
4482         shared libraries (Bug#2494)
4483
4484         * python/exceptions.py: bring exceptions over from the bindings
4485         so they can be used in applications (Bug#2036)
4486         Make all exceptions derive from DBusException
4487
4488         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4489         of classes so that print obj doesn't throw an exception (Bug #1685)
4490
4491 2005-05-03  Ross Burton  <ross@openedhand.com>
4492
4493         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4494         Return if we get an error during registration.  Set up a
4495         weak reference on object to unregister if object is destroyed.
4496         (unregister_gobject): New function.
4497         
4498 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4499
4500         * python/dbus_bindings.pyx.in: 
4501         - added new type classes for hinting to the marashaler what type 
4502         to send over the wire
4503         - added int16 and uint16 marshalers
4504         - Fixed a bug in the type constants that caused int32 to go out
4505         as uint16 over the wire
4506         * python/dbus.py: split up into different files and renamed _dbus.py
4507         * python/__init__.py, python/_util.py, python/decorators.py, 
4508         python/exceptions.py, python/proxies.py, python/services.py,
4509         python/types.py: new files split off from dbus.py
4510         * python/Makefile.am: Add new files, remove dbus.py and 
4511         install all python files to <python module dir>/dbus
4512         * python/examples/*: Added #!/usr/bin/env python to the top of
4513         every example.  Patch provided by Tatavarty Kalyan
4514
4515 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4516
4517         * NEWS: Update to 0.33
4518
4519 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4520
4521         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4522         method for doing async calls
4523         (_pending_call_notification): New C function for handling pendning call
4524         callbacks
4525         (set_notify): New method for setting pending call notification
4526         
4527         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4528         Async capabilities added to remote method calls
4529         (Sender): class removed
4530         (RemoteService): class removed
4531         (ObjectTree): class removed for now
4532         (RemoteObject): Renamed to ProxyObject
4533         (RemoteMethod): Renamed to ProxyMethod
4534         (method): Decorator added for decorating python methods as dbus methods
4535         (signal): Decorator added for decorating python methods as signal emitters
4536         (ObjectType): Metaclass added for generating introspection data and the
4537         method callback vtable
4538         (Interface): Wrapper class added to wrap objects in a dbus interface
4539         (Object): Uses ObjectType as its metaclass and exports Introspect
4540         of the org.freedesktop.DBus.Introspectable interface
4541         (ValidationException, UnknownMethodException): new exceptions
4542
4543         * python/examples/*: Modified to fit with the new bindings
4544
4545 2005-04-23  Havoc Pennington  <hp@redhat.com>
4546
4547         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4548         reported by Tony Houghton
4549
4550         * test/test-service.c (main): test
4551         dbus_connection_get_object_path_data()
4552
4553         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4554         the exact_match
4555         (_dbus_object_tree_get_user_data_unlocked): new function used by
4556         dbus_connection_get_object_path_data()
4557         (do_register): add assertion test for get_user_data_unlocked
4558         (object_tree_test_iteration): more tests
4559
4560         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4561         new function from Dan Reed to let you get the user data from 
4562         dbus_connection_register_object_path()
4563
4564 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4565
4566         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4567         in numerous places that did not account for the NULL terminator
4568         (signature_from_seed): changed the manual string copy loop to 
4569         just use strcpy instead
4570         make check should now pass
4571
4572 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4573
4574         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4575         so that it allows messages that are not signals to pass in 
4576         NULL as the interface.
4577
4578 2005-04-18  David Zeuthen  <davidz@redhat.com>
4579
4580         * glib/dbus-gmain.c (io_handler_destroy_source): 
4581         (timeout_handler_destroy_source, connection_setup_free): 
4582         Also unref the source to avoid memory leaks.
4583
4584 2005-04-13  David Zeuthen  <davidz@redhat.com>
4585
4586         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4587         more reasonable, yet still totally arbitrary, value :-). 
4588
4589 2005-04-13  David Zeuthen  <davidz@redhat.com>
4590
4591         * doc/TODO: Added an "important for 1.0" item about selinux
4592         allow/deny messages
4593
4594 2005-04-13  David Zeuthen  <davidz@redhat.com>
4595
4596         * bus/selinux.c: Add c-file-style to top of file
4597         (log_audit_callback): Don't free the data here anymore
4598         (bus_selinux_check): Don't take spid and tpid since appending
4599         that to auxdata may OOM.
4600         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4601         to the caller if we are OOM by taking an error object.
4602         (bus_selinux_allows_send): -do-
4603
4604         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4605         and bus_selinux_allows_send
4606
4607         * bus/bus.c (bus_context_check_security_policy): Pass error and
4608         pass on OOM thrown by bus_selinux_allows_send()
4609
4610         * bus/services.c (bus_registry_acquire_service): Pass error and
4611         pass on OOM thrown by bus_selinux_allows_acquire_service()
4612
4613 2005-04-13  Havoc Pennington  <hp@redhat.com>
4614
4615         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4616         message at a time to avoid monopolizing the main loop, bug 
4617         #2953 from Benjamin Otte
4618
4619 2005-04-09  Havoc Pennington  <hp@redhat.com>
4620
4621         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4622         possible overlap, fix from Daniel Reed
4623         (fixup_alignment): fix signedness warnings
4624         (_dbus_string_append_unichar): ditto
4625
4626 2005-04-09  Havoc Pennington  <hp@redhat.com>
4627
4628         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4629
4630         * glib/dbus-glib-tool.c (main): fix warning
4631
4632         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4633
4634         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4635         add a new function that can be used in simple applications that
4636         don't have a main loop and are willing to block
4637
4638 2005-04-05  David Zeuthen  <davidz@redhat.com>
4639
4640         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4641
4642         * glib/dbus-gmain.c:
4643         (io_handler_destroy_source): Remove from list of IO handlers
4644         of the ConnectionSetup object
4645         (timeout_handler_destroy_source): -do- for timeout handlers
4646         (io_handler_source_finalized): Don't remove from list since
4647         we now do that in io_handler_destroy_source(). Renamed from
4648         io_handler_source_destroyed
4649         (timeout_handler_source_destroyed): -do- for timeout handlers
4650         (connection_setup_free): It is now safe to iterate over all
4651         IO and timeout handlers as the _destroy_source removes them
4652         from the list synchronously
4653
4654 2005-03-30  Havoc Pennington  <hp@redhat.com>
4655
4656         * configure.in: change check to gtk 2.4
4657
4658         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4659         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4660         to 2.4
4661
4662 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4663
4664         * News: Update 0.32
4665
4666         * HACKING: Fixed realease instructions.  configure.in should be updated to
4667           the next release by the person who made the last release.
4668
4669 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4670
4671         * python/lvalue_cast_post_process.py - removed.  Patch has been
4672           submitted to Pyrex maintainers that fixes gcc4.0 errors
4673
4674         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4675
4676 2005-03-24  Daniel Reed  <n@ml.org>
4677
4678         * tools/Makefile.am: Make print-introspect and
4679         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4680
4681 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4682
4683         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4684
4685         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4686           had in Red Hat packages for a while but for some reason never 
4687           got merged upstream
4688           (_dbus_is_a_number): New checks if a string
4689           can be converted to a number and does the conversion if it can
4690           (_dbus_user_database_lookup): Add check to see if the given username
4691           is a udi.  This allows udi's to be used instead of usernames in the
4692           config file.
4693           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4694           is a gdi.  This allows gdi's to be used instead of groupnames in the
4695           config file.
4696
4697 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4698
4699         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4700           code so that it compiles with gcc4.0
4701
4702         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4703           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4704           results back to dbus_binding.c
4705
4706 2005-03-20  Colin Walters  <walters@verbum.org>
4707
4708         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4709
4710         * configure.in: Require GTK+ 2.6.
4711         
4712 2005-03-20  Colin Walters  <walters@verbum.org>
4713
4714         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4715
4716 2005-03-17  Tom Parker  <palfrey@tevp.net>
4717
4718         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4719         print DBUS_UID_UNSET; instead print passed username.  Also
4720         be sure to actually use gid looked up in cache.
4721         
4722         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4723         for DBUS_GID_UNSET and groupname.
4724
4725 2005-03-17  Colin Walters  <walters@verbum.org>
4726
4727         * bus/print-introspect.c: Move to tools/.
4728         * bus/run-with-tmp-session-bus.sh: Ditto.
4729         
4730         * glib/Makefile.am (dbus-glib-bindings.h): Move
4731         generation to tools/Makefile.am.
4732
4733         * test/glib/run-test.sh: Update to handle move
4734         of run-with-tmp-session-bus.sh.
4735
4736         * test/glib/test-service-glib.c: Update to handle
4737         move of dbus-glib-bindings.h.
4738
4739         * tools/print-introspect.c: Moved here
4740         from bus/, and ported to GLib bindings.
4741
4742         * tools/run-with-tmp-session-bus.sh: Moved here
4743         from bus/.
4744
4745         * tools/Makefile.am: Generate dbus-glib-bindings.h
4746         and dbus-bus-introspect.xml here.
4747
4748         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4749         Update.
4750
4751 2005-03-17  Colin Walters  <walters@verbum.org>
4752
4753         * bus/driver.c (write_args_for_direction): Use
4754         _dbus_string_get_const_data to retrieve string;
4755         _dbus_string_get_const_data_len doesn't actually return
4756         a NULL-terminated substring.
4757
4758         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4759         (main): Change to use org_freedesktop_DBus_request_name
4760         instead of using g_proxy_begin_call/end_call.
4761
4762 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4763
4764         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4765         generating the finalizer.  Fixes from Ben Maurer.
4766
4767 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4768
4769         * mono/BusDriver.cs: Update method names: ListServices
4770         becomes ListNames; GetOwner becomes GetNameOwner.
4771
4772         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4773         onto the eval stack when removing the delegate.
4774
4775 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4776
4777         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4778         LT_CURRENT.  Set it to the autoconf variable.
4779                                                                                 
4780         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4781         classes that disconnects the signal handler delegate from the
4782         service object.  Fixes a big leak of proxy objects on the
4783         client side of things.  Patch from Ben Maurer
4784         <bmaurer@ximian.com>
4785
4786 2005-03-12  Colin Walters  <walters@verbum.org>
4787
4788         * bus/driver.c (write_args_for_direction): New function,
4789         parses a type signature into arguments and outputs to
4790         XML.
4791         (bus_driver_handle_introspect): Use it instead of
4792         hardcoding XML for certain signatures.
4793         
4794         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4795         dependency on dbus-daemon.
4796
4797         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4798         argument, pass it to dbus_binding_tool_output_glib_client.
4799
4800         * glib/dbus-binding-tool-glib.c
4801         (generate_client_glue): Protect against multiple inclusion.
4802         (dbus_binding_tool_output_glib_client): Add
4803         G_BEGIN_DECLS/G_END_DECLS.
4804
4805         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4806         Change to just take iface prefix directly.
4807         (write_formal_parameters): Clarify error message.
4808         (check_supported_parameters): New function; checks to see type
4809         signatures of method parameters are supported.
4810         (generate_client_glue): Handle ignore_unsupported flag.
4811         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4812         parameter.
4813
4814         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4815         --ignore-unsupported by default until glib bindings
4816         support arrays.
4817
4818 2005-03-11  Colin Walters  <walters@verbum.org>
4819
4820         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4821         install it.
4822
4823         * bus/print-introspect.c: New file; prints introspection
4824         data for a given name and object path.
4825
4826         * bus/run-with-tmp-session-bus.sh: New file, refactored
4827         from test/glib/run-test.sh.  Creates a temporary session
4828         bus and runs another program.
4829
4830         * test/glib/run-test.sh: Refactor to invoke
4831         run-with-tmp-session-bus.sh.
4832
4833         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4834         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4835         macros instead of hardcoding.
4836
4837         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4838
4839 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4840
4841         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4842         this unref; it doesn't match up evenly in some codepaths.
4843         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4844         this evenly matches with the ref near the top of this function.
4845
4846 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4847
4848         * dbus/dbus-object-tree.c
4849         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4850         and we try to unregister a path that's not registered, still go
4851         through the process of unlocking and don't just return.
4852
4853 2005-03-09  Colin Walters  <walters@verbum.org>
4854
4855         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4856         to this are generated for client-side wrappers.  Invokes a
4857         D-BUS method and returns reply values.  
4858
4859         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4860         function; writes signature string for argument direction.
4861         (write_args_for_direction): Change to pass input values directly
4862         instead of via address, and fix indentation.
4863         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4864         make generated wrappers inlineable.
4865
4866         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4867         note about using dbus_type_is_fixed.
4868
4869         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4870         dbus/dbus-signature.c as dbus_type_is_fixed.
4871
4872         All callers updated.
4873
4874         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4875         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4876
4877         * dbus/dbus-signature.h: Prototype.
4878
4879         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4880         error printf code.
4881
4882         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4883         appropriate instead of just freeing it.
4884         (main): Free returned strings using g_free.
4885
4886         * test/glib/Makefile.am (test-service-glib-glue.h)
4887         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4888
4889         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4890         simply maps a simple D-BUS type to GType.
4891         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4892         GType.
4893         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4894         initialize the value with it.
4895         (dbus_gvalue_binding_type_from_type): Unused, delete.
4896         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4897         various types instead of unmarshalling to value data directly.
4898         Remove can_convert boolean.
4899         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4900         returning directly instead of using can_convert boolean.
4901         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4902         Stores a GValue in a pointer to a value of its corresponding C
4903         type.
4904
4905         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4906         add dbus_gvalue_store.
4907
4908 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4909
4910         Fix a bunch of lifecycle and memory management problems
4911         in the mono bindings.
4912
4913         * mono/Arguments.cs (Arguments): Implement IDisposable
4914
4915         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4916         strictly a static class.
4917
4918         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4919         delegates into this file.
4920         (Connection): Implement IDisposable.
4921         (Dispose): Disconnect the connection and set the raw connection
4922         pointer to IntPtr.Zero.
4923         (~Connection): Call Dispose().
4924         (RegisterObjectPath): Added.  Manages the registration of object
4925         paths so we can cleanly disconnect them at dispose/finalize time.
4926         (UnregisterObjectPath): Ditto.
4927         (set_RawConnection): Unregister all of the object paths when
4928         changing the underlying DBusConnection.  Add them back onto the
4929         new connection, if any.
4930
4931         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4932         more unmanaged resources anymore, so it's not necessary.  Move all
4933         the DBusObjectPathVTable stuff out of here.
4934         (Handler): Save references to our delegates so that they don't get
4935         finalized.  Call Connection.RegisterObjectPath() instead of
4936         dbus_connection_register_object_path() directly.
4937         (Message_Called): Dispose the message after we're finished with
4938         it.
4939
4940         * mono/Message.cs (Message): Implement IDisposable.
4941         (Dispose): Dispose the Arguments, and set the RawMessage to
4942         IntPtr.Zero.
4943         (SendWithReplyAndBlock): We own the ref to the reply that comes
4944         back from dbus_connection_send_with_reply_and_block() so add a
4945         comment about that and unref it after we've constructed a managed
4946         MethodReturn class around it.  Fixes a big, big leak.
4947
4948         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4949         method.
4950         (BuildSignalHandler): After we've sent the Signal message, dispose
4951         of it.
4952         (BuildMethod): Dispose of the method call and reply messages after
4953         we've sent the message and extracted the data we want from the
4954         reply.
4955
4956         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4957         anymore.
4958         (Service_FilterCalled): Dispose of the message after we're
4959         finished with it.
4960
4961 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4962
4963         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4964         After we attach our pending call to the connection, unref
4965         it.  Fixes a leak.
4966  
4967         * mono/Connection.cs (set_RawConnection): Disconnect our
4968         filter and match callbacks from the old connection and
4969         reconnect them to the new connection, if any.
4970
4971         * mono/DBusType/Array.cs: "Code" is a static member, so
4972         don't use "this" to refer to it.  Fix for stricter checking
4973         in Mono 1.1.4.
4974  
4975         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4976         object path that we pass into unmanaged code.
4977  
4978         * mono/DBusType/String.cs (Append): Don't leak the string
4979         that we pass into unmanged code.
4980
4981 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4982         * NEWS: Update for 0.31
4983
4984         * configure.in: Release 0.31
4985         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4986
4987         * qt/Makefile.am: fixed build
4988
4989         * dbus/Makefile.am: soname bump for libdbus
4990
4991         * glib/Makefile.am: soname bump for libdbus-glib
4992
4993 2005-03-05  Havoc Pennington  <hp@redhat.com>
4994
4995         * dbus/dbus-sysdeps.c:
4996         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4997         value
4998         (_dbus_generate_random_bytes_buffer): fix return value
4999
5000         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5001         checks actually work, from Tom Parker <fdo@tevp.net>
5002
5003 2005-03-01  Colin Walters  <walters@verbum.org>
5004
5005         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5006         functions copied from dbus-glib-tool.c.
5007         (main): Convert lots of error code to use them.
5008         Also add some testing for introspection bits.
5009
5010 2005-03-01  Colin Walters  <walters@verbum.org>
5011         
5012         * doc/TODO: Remove introspection signature TODO.
5013
5014 2005-02-27  Colin Walters  <walters@verbum.org>
5015
5016         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5017         Change return value to const char * instead of int so we can do
5018         full signatures.
5019         (struct PropertyInfo, struct ArgInfo): Store char *.
5020         (property_info_new, arg_info_new): Update parameters, strdup.
5021         (property_info_unref, arg_info_unref): Free.
5022
5023         * glib/dbus-gidl.h: Update prototypes.
5024
5025         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5026         (validate_signature): New function, just validates signature and
5027         sets GError.
5028         (parse_property, parse_arg): Invoke validate_signature.  Store
5029         signature instead of just type code.
5030
5031         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5032         function to return a primary type for a signature, dropping
5033         information about types in container types.
5034         (dbus_gvalue_genmarshal_name_from_type)
5035         (dbus_gvalue_binding_type_from_type)
5036         (dbus_gvalue_ctype_from_type): Update to take full signature
5037          instead of type code.
5038         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5039
5040         * glib/dbus-gvalue.h: Update prototypes for above.
5041
5042         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5043         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5044         (introspect_properties, introspect_signals, write_interface):
5045         Update to handle signatures, and remove usage of
5046         _dbus_gutils_type_to_string.
5047         (handle_introspect): Print out type codes instead of e.g. "string"
5048         in hardcoded introspection XML; also use x_AS_STRING constants
5049         instead of hardcoding in string.
5050
5051         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5052         to string.  Remove usage of _dbus_gutils_type_to_string.
5053
5054         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5055
5056         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5057         deletion.
5058         
5059         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5060         (compute_marshaller_name, generate_glue): Handle signature change
5061         to string.
5062         (write_formal_parameters, write_args_for_direction): Ditto, and
5063         remove FIXME.
5064
5065         * tools/dbus-tree-view.c (type_to_string): Delete.
5066         (info_set_func_text): Update to print full signatures.
5067
5068         * test/glib/test-service-glib.xml: Change types to new
5069         introspection format.
5070
5071 2005-02-26  Havoc Pennington  <hp@redhat.com>
5072
5073         * doc/TODO: remove the "guid" item
5074
5075         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5076         (with_bus_thread_func): use open_private
5077
5078         * dbus/dbus-connection.c (dbus_connection_open_private): new
5079         function that works like the old dbus_connection_open()
5080         (dbus_connection_open): now returns an existing connection if
5081         possible
5082
5083         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5084         through the GUID to the transport
5085
5086         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5087         GUID in hex-encoded form.
5088
5089         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5090         pass GUID argument in to the transport
5091
5092         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5093         guid argument
5094
5095         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5096
5097         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5098
5099 2005-02-25  Havoc Pennington  <hp@redhat.com>
5100
5101         * doc/dbus-specification.xml: document the GUID thing
5102
5103         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5104         globally unique ID for the server, and put a "guid=hexencoded"
5105         field in the address
5106
5107         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5108
5109         * dbus/dbus-message.c: ditto
5110
5111         * dbus/dbus-dataslot.c: ditto
5112
5113         * dbus/dbus-list.c: ditto
5114
5115         * dbus/dbus-internals.h: wait, just include
5116         dbus-threads-internal.h here
5117         
5118         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5119         use in main library
5120
5121         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5122
5123 2005-02-24  Colin Walters  <walters@verbum.org>
5124
5125         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5126
5127 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5128
5129         * glib/Makefile.am: added dbus-gobject.h to sources list
5130         so distcheck doesn't fail
5131         
5132 2005-02-24  Havoc Pennington  <hp@redhat.com>
5133
5134         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5135         you must disconnect before unref, since locking and other things
5136         are screwed up otherwise. Fix assorted other locking stuff.
5137
5138         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5139         fix compilation
5140
5141         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5142         into a private header and don't export from the library
5143
5144         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5145
5146 2005-02-24  Colin Walters  <walters@verbum.org>
5147         
5148         * dbus/dbus-signature.c: New file; implements various functions
5149         related to type signatures.  Includes an interator for parsing,
5150         validation functions.
5151         (dbus_type_is_basic): Moved here from
5152         dbus-marshal-basic.c:_dbus_type_is_basic.
5153         (dbus_type_is_container): Moved here from
5154         dbus-marshal-basic.c:_dbus_type_is_container.
5155
5156         All callers of _dbus_type_is_container and _dbus_type_is_basic
5157         updated, and include dbus-signature.h.
5158
5159         * dbus/dbus-signature.h: New file; prototypes for the above.
5160
5161         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5162         dbus-signature.h.
5163
5164         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5165         function factored out of _dbus_first_type_in_signature.
5166         (_dbus_first_type_in_signature_c_str): New function; returns first
5167         type code for a type signature character.
5168
5169         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5170         handle function moves.
5171
5172         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5173
5174         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5175         function; skips to next complete type in type signature.
5176         Implemented using previous skip_one_complete_type.  Now
5177         skip_one_complete_type just delegates to
5178         _dbus_type_signature_next.
5179
5180         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5181         to dbus-signature.c
5182         (_dbus_type_is_container): Ditto.
5183
5184         * doc/dbus-specification.xml: Update introspection sample to
5185         use real type signatures.
5186
5187         * dbus/dbus-test.h: Prototype signature test.
5188
5189         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5190         signature tests.
5191
5192         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5193
5194 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5195
5196         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5197         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5198
5199 2005-02-21  Colin Walters  <walters@verbum.org>
5200
5201         * dbus/dbus-test-main.c (main): Take optional specific test
5202         argument.
5203
5204         * dbus/dbus-test.c (run_test): New function, runs a test function
5205         with no data directory.
5206         (run_data_test): Like above, but takes data directory.
5207         (dbus_internal_do_not_use_run_tests): Take
5208         specific test argument.  Replace lots of cut n' paste code
5209         with run_test and run_data_test.
5210
5211         * dbus/dbus-test.h: Update prototype for
5212         dbus_internal_do_not_use_run_tests.
5213
5214 2005-02-20  Havoc Pennington  <hp@redhat.com>
5215
5216         Fix bugs reported by Daniel P. Berrange
5217         
5218         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5219         (protected_change_watch): new function
5220         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5221         (_dbus_server_add_watch): change to work like the
5222         dbus-connection.c equivalents; like those, probably kind of
5223         busted, but should at least mostly work for now
5224         (dbus_server_disconnect): drop the lock if we were already
5225         disconnected, patch from Daniel P. Berrange
5226
5227         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5228         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5229         same stuff
5230
5231         * doc/TODO: todo about unscrewing this mess
5232
5233 2005-02-19  Colin Walters  <walters@verbum.org>
5234
5235         * glib/dbus-binding-tool-glib.c
5236         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5237
5238         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5239         as errno.h and sys/stat.h.
5240         (lose): New function, prints error with
5241         newline and exits.
5242         (lose_gerror): Similar, but takes GError for message.
5243         (main): Add --output argument to specify output file to write to,
5244         instead of always printing to stdout.  In this mode, determine
5245         timestamps on source files to see whether any are newer than the
5246         target file.  If not, exit.  Also convert a number of error
5247         messages to use lose (since it's shorter), and switch to using
5248         g_io_channel_shutdown.
5249
5250 2005-02-19  Havoc Pennington  <hp@redhat.com>
5251
5252         * glib/dbus-gobject.c
5253         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5254
5255         * glib/dbus-glib.c: fix doxygen warnings
5256
5257         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5258         is found on an <arg>
5259
5260 2005-02-17  Colin Walters  <walters@verbum.org>
5261
5262         * glib/dbus-gobject.h: Don't export
5263         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5264         
5265         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5266         (invoke_object_method): Handle it.
5267
5268         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5269         Handle rename.
5270         
5271 2005-02-17  Colin Walters  <walters@verbum.org>
5272
5273         * bus/.cvsignore, doc/.cvsignore
5274         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5275         Update.
5276
5277 2005-02-17  Colin Walters  <walters@verbum.org>
5278         
5279         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5280         Rename to DBUS_SERVICE_DBUS.
5281         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5282         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5283         Change the value from "org.freedesktop.Local"
5284         to "org.freedesktop.DBus.Local".
5285         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5286         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5287         DBUS_INTERFACE_INTROSPECTABLE.
5288         Change the value from "org.freedesktop.Introspectable"
5289         to "org.freedesktop.DBus.Introspectable".
5290         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5291         DBUS_INTERFACE_PROPERTIES.
5292         Change the value from "org.freedesktop.Properties"
5293         to "org.freedesktop.DBus.Properties".
5294         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5295         DBUS_INTERFACE_PEER.
5296         Change the value from "org.freedesktop.Peer"
5297         to "org.freedesktop.DBus.Peer".
5298         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5299         DBUS_INTERFACE_LOCAL.
5300         Change the value from "org.freedesktop.Local"
5301         to "org.freedesktop.DBus.Local".
5302
5303         All other users of those constants have been changed.
5304
5305         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5306
5307         * glib/dbus-gobject.c (handle_introspect): Use constants.
5308
5309         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5310
5311 2005-02-17  Colin Walters  <walters@verbum.org>
5312
5313         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5314         (parse_node, parse_interface, parse_method, parse_signal)
5315         (parse_property, parse_annotation): Lose if we're currently in an
5316         annotation.
5317         (parse_annotation): New function.
5318         (parser_start_element, parser_end_element): Handle annotation.
5319         (parse_method, parse_interface): Remove support for c_name attribute,
5320         switch to annotations.
5321
5322         * glib/dbus-gidl.h (interface_info_get_binding_names)
5323         (method_info_get_binding_names)
5324         (interface_info_get_binding_name, method_info_get_binding_name)
5325         (interface_info_set_binding_name, method_info_set_binding_name):
5326         Remove.
5327         (interface_info_get_annotations, method_info_get_annotations)
5328         (interface_info_get_annotation, method_info_get_annotation)
5329         (interface_info_add_annotation, method_info_add_annotation):
5330         Prototype.
5331
5332         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5333         for "bindings".
5334         (struct MethodInfo): Ditto.
5335         Straightfoward conversion of binding methods into annotation methods
5336         as prototyped.
5337
5338         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5339
5340         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5341
5342         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5343         Use new annotation API.
5344
5345         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5346         annotation element.
5347         
5348         * doc/dbus-specification.xml: Discuss introspection annotations,
5349         include list of well-known annotations.
5350
5351         * test/glib/test-service-glib.xml: Make validate against new DTD.
5352
5353 2005-02-17  Colin Walters  <walters@verbum.org>
5354
5355         This patch is based on initial work from
5356         Paul Kuliniewicz <kuliniew@purdue.edu>.
5357
5358         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5359         initialization of GValue from dbus type to here.
5360         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5361         for the "glib-genmarshal" program from a DBus type.
5362         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5363         into the C name for it we use in the glib bindings.
5364         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5365         glib C type (not GValue).
5366         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5367
5368         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5369         from dbus-gobject.c.
5370
5371         * glib/dbus-gutils.h: Prototype it.
5372
5373         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5374         (marshal_dbus_message_to_g_marshaller): Use new shared function
5375         dbus_glib_marshal_dbus_message_to_gvalue_array.
5376
5377         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5378         Will be changed once we have annotations.
5379
5380         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5381         GStaticRWLock.  Callers updated.
5382         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5383         (string_table_next): New function for iterating over zero-terminated
5384         string value array.
5385         (string_table_lookup): New function; retrieves specific entry in
5386         array.
5387         (get_method_data): New function; look up method data in object data chunk.
5388         (object_error_domain_prefix_from_object_info)
5389         (object_error_code_from_object_info): New functions, but not implemented yet.
5390         (method_interface_from_object_info): New function; retrieve interface name.
5391         (method_name_from_object_info): New function; retrieve method name.
5392         (method_arg_info_from_object_info): New function; retrieve argument data.
5393         (arg_iterate): New function; iterates over serialized argument data.
5394         (method_dir_signature_from_object_info): New function; returns a
5395         GString holding type signature for arguments for just one
5396         direction (input or output).
5397         (method_input_signature_from_object_info)
5398         (method_output_signature_from_object_info): New functions.
5399         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5400         converts dbus message arguments into a GValue array.  Used for both
5401         signal handling and method invocation.
5402         (struct DBusGlibWriteIterfaceData): New utility structure.
5403         (write_interface): New function; generate introspection XML for
5404         an interface.
5405         (introspect_interfaces): New function; gathers all interface->methods,
5406         generates introspection XML for them.
5407         (handle_introspect): Invoke introspect_interfaces.
5408         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5409         (lookup_object_and_method): New function; examines an incoming message
5410         and attempts to match it up (via interface, method name, and argument
5411         signature) with a known object and method.
5412         (gerror_domaincode_to_dbus_error_name): New function; converts a
5413         GError domain and code into a DBus error name.  Needs GError data
5414         added to object introspection to work well.
5415         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5416         GError.
5417         (invoke_object_method): New function to invoke an object method
5418         looked up via lookup_object_and_method.  Parses the incoming
5419         message, turns it into a GValue array, then invokes the marshaller
5420         specified in the DBusGMethodInfo.  Creates a new message with
5421         either return values or error message as appropriate.
5422         (gobject_message_function): Invoke lookup_object_and_method and
5423         invoke_object_method.
5424
5425         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5426         (enum DBusBindingOutputMode): New enum for binding output modes.
5427         (pretty_print): Print binding names.
5428         (dbus_binding_tool_error_quark): GError bits.
5429         (version): Fix typo.
5430         (main): Create GIOChannel for output.  Parse new --mode argument,
5431         possible values are "pretty-print", "glib-server", "glib-client".
5432         Use mode to invoke appropriate function.
5433         
5434         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5435
5436         * glib/dbus-glib-tool.h: New header, just includes GError bits
5437         for now.
5438
5439         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5440         maps binding style to name.
5441         (struct MethodInfo): Ditto.
5442         (get_hash_keys, get_hash_key): Utility function, returns keys for
5443         a GHashTable.
5444         (interface_info_new, method_info_new): Initialize bindings.
5445         (interface_info_unref, method_info_unref): Destroy bindings.
5446         (method_info_get_binding_names, method_info_get_binding_name)
5447         (interface_info_get_binding_names, interface_info_get_binding_name):
5448         Functions for retrieving binding names.
5449         (method_info_set_binding_name, interface_info_set_binding_name):
5450         Functions for setting binding names.
5451
5452         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5453         for glib binding generation.
5454
5455         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5456         and client-side glib glue generation.
5457
5458         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5459         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5460         dbus-glib-tool.h.
5461
5462         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5463         of using GClosureMarshal directly.
5464         (struct DBusGObjectInfo): Add n_infos member.
5465
5466         * test/glib/test-service-glib.xml: New file; contains introspection data
5467         for MyTestObject used in test-service-glib.c.
5468
5469         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5470         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5471         (my_object_uppercase, my_object_many_args): New test methods.
5472         (main): Use dbus_g_object_class_install_info to include generated object
5473         info.
5474
5475         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5476         as well as client-side bindings.
5477
5478         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5479         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5480         using both the dbus_gproxy stuff directly as well as the generated bindings.
5481
5482 2005-02-15  Havoc Pennington  <hp@redhat.com>
5483
5484         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5485         complete a pending call, don't run filters first.
5486
5487         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5488         dbus_pending_call_steal_reply
5489
5490         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5491         _dbus_connection_block_pending_call
5492         (dbus_pending_call_get_reply): change to steal_reply and return a
5493         ref
5494
5495         * dbus/dbus-connection.c
5496         (dbus_connection_send_with_reply_and_block): port to work in terms
5497         of DBusPendingCall
5498         (_dbus_connection_block_pending_call): replace block_for_reply
5499         with this
5500
5501 2005-02-14  Havoc Pennington  <hp@redhat.com>
5502
5503         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5504         properly handle looking up group information by name; fix 
5505         from j@bootlab.org
5506
5507 2005-02-13  Havoc Pennington  <hp@redhat.com>
5508
5509         * dbus/dbus-connection.c (dbus_connection_return_message) 
5510         (dbus_connection_borrow_message): hold dispatch lock while message
5511         is outstanding
5512         (_dbus_connection_block_for_reply): hold dispatch lock while we
5513         block for the reply, so nobody steals our reply
5514         (dbus_connection_pop_message): hold the dispatch lock while we
5515         pluck the message
5516
5517 2005-02-13  Havoc Pennington  <hp@redhat.com>
5518
5519         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5520         (_dbus_connection_release_dispatch)
5521         (_dbus_connection_acquire_io_path)
5522         (_dbus_connection_release_io_path): make the mutex and condvar
5523         control access to the "acquired" flag. Drop the connection lock
5524         while waiting on the condvar. Hopefully these are baby steps in
5525         roughly the right direction.
5526
5527 2005-02-13  Havoc Pennington  <hp@redhat.com>
5528
5529         * dbus/dbus-connection.c: use separate mutexes for the condition
5530         variables; this is some kind of baseline for sanity, but the
5531         condition variables still aren't used correctly afaict
5532
5533 2005-02-13  Havoc Pennington  <hp@redhat.com>
5534
5535         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5536         fix a double-unlock
5537
5538         * dbus/dbus-connection.c
5539         (_dbus_connection_detach_pending_call_unlocked): add this
5540
5541         Initial semi-correct pass through to fix thread locking; there are
5542         still some issues with the condition variable paths I'm pretty
5543         sure
5544         
5545         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5546         lock/unlock calls
5547
5548         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5549         rename to add _unlocked
5550         (struct DBusConnection): move "dispatch_acquired" and
5551         "io_path_acquired" to use only one bit each.
5552         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5553         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5554         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5555         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5556         (_dbus_connection_remove_timeout) 
5557         (_dbus_connection_toggle_timeout): drop lock when calling out to
5558         user functions; done in a hacky/bad way.
5559         (_dbus_connection_send_and_unlock): add a missing unlock
5560         (_dbus_connection_block_for_reply): add a missing unlock
5561
5562         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5563         drop lock in a hacky probably unsafe way to call out to user
5564         function
5565
5566 2005-02-12  Havoc Pennington  <hp@redhat.com>
5567
5568         * tools/dbus-tree-view.c (info_set_func_text): display more
5569         details on args
5570
5571         * bus/driver.c (bus_driver_handle_list_services): list the bus
5572         driver
5573
5574         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5575
5576         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5577         (method_info_get_n_args): new function
5578
5579 2005-02-12  Havoc Pennington  <hp@redhat.com>
5580
5581         * bus/driver.c (bus_driver_handle_introspect): add introspection
5582         for bus driver
5583
5584 2005-02-12  Havoc Pennington  <hp@redhat.com>
5585
5586         * bus/driver.c: put the signature of each bus driver method in the
5587         table of handlers and check it on incoming calls; this isn't
5588         really useful, but going to add introspect support in a minute.
5589
5590 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5591
5592         * mono/Connection.cs: The unpredictability of finalizers in mono
5593         prevents us from deterministically disconnecting the filters from
5594         the Service class's finalizer, so move tracking of filters and
5595         matches here.  Add API for that.
5596
5597         * mono/Service.cs: Remove the code, add code which calls the
5598         methods now on the Connection class.
5599
5600 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5601
5602         * python/dbus.py (class Sender): added to support dbus signals better
5603         (Bus::add_signal_receiver): added expand_args parameter which defaults
5604         to True.  When expand args is True the signal handler will pass the 
5605         message arguments as parameters to the signal handler.  If False
5606         revert to previous behavior where the signal handler must get the
5607         argument list from the message.  This is to help port applications
5608         like HAL that have a tendancy to send variable length argument lists.
5609         self._match_rule_to_receivers is now a dict of dicts.
5610         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5611         removing it from a list
5612         (Bus::_signal_func): change signal handlers so that interface,
5613         signal_name, service, path and message are packed into a Sender
5614         object and that is passed to the handler.  If expand_args is True
5615         extract the args list from the message and append it to the parameter
5616         list
5617         
5618         * python/dbus_bindings.pyx.in (class Signature): added to support 
5619         signiature types
5620         (MessageIter::__init__): changed iteration limit to match D-BUS
5621         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5622         STRUCT and VARIENT type support
5623         (MessageIter::python_value_to_dbus_sig): made recursive to support
5624         recursive types
5625         (MessageIter::append*): added Signature, dict, tuple 
5626         support
5627
5628         * python/examples/example-client.py: added examples of getting tuples
5629         and dicts
5630
5631         * python/examples/example-service.py: added examples of sending tuples
5632         and dicts
5633
5634         * python/examples/example-signal-recipient.py: Fixed to handle new
5635         signal callback format
5636
5637 2005-02-10  Havoc Pennington  <hp@redhat.com>
5638
5639         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5640         (call dbus_g_proxy_add_signal)
5641
5642         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5643         escape the hostname
5644         (_dbus_server_new_for_domain_socket): escape the path
5645
5646         * dbus/dbus-address.c (dbus_address_escape_value): new
5647         (dbus_address_unescape_value): new
5648         (dbus_parse_address): unescape values
5649
5650         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5651
5652         * doc/dbus-specification.xml: explain how to escape values in
5653         addresses
5654
5655 2005-02-10  Havoc Pennington  <hp@redhat.com>
5656
5657         * dbus/dbus-message-factory.c (generate_special): modify test to
5658         avoid using a non-basic dict key
5659
5660         * dbus/dbus-marshal-validate-util.c: add test for the below
5661
5662         * doc/dbus-specification.xml: require that dict keys are a basic
5663         type
5664
5665         * dbus/dbus-marshal-validate.c
5666         (_dbus_validate_signature_with_reason): require that dict key is a
5667         basic type
5668
5669 2005-02-10  Havoc Pennington  <hp@redhat.com>
5670
5671         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5672         change to be _and_unlock instead of _unlocked
5673
5674         * dbus/dbus-connection.c
5675         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5676         have no_update so we can find this bug quickly in future
5677
5678 2005-02-10  Havoc Pennington  <hp@redhat.com>
5679
5680         * dbus/dbus-message-util.c (verify_test_message): tests for string
5681         array
5682
5683         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5684         support for arrays of string/signature/path
5685
5686 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5687
5688         * dbus/dbus-connection.c
5689         (_dbus_connection_queue_received_message_link,
5690         _dbus_connection_message_sent): Add the path to
5691         the verbose output.
5692         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5693         _dbus_connection_send_preallocated_unlocked(), updated the
5694         dispatch status, and unlocks.  Fixes a bug where certain
5695         situations (like a broken pipe) could cause a Disconnect message
5696         to not be sent, tricking the bus into thinking a service was still
5697         there when the process had quit.
5698         (_dbus_connection_send_preallocated): Call
5699         _dbus_connection_send_preallocated_and_unlock().
5700         (_dbus_connection_send_and_unlock): Added.  Calls
5701         _dbus_connection_send_preallocated_and_unlock().
5702         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5703         (dbus_connection_send_with_reply): Update the dispatch status and
5704         unlock.
5705
5706         * mono/Service.cs (~Service): Added.  Removes the filter so that
5707         we don't get unmanaged code calling back into a GCed delegate.
5708         (RemoveFilter); Added.
5709
5710 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5711
5712         * dbus/dbus-message.c (dbus_message_iter_open_container):
5713         - Removed check for iterator type being an array because
5714         get_arg_type does not work with writer iterators
5715         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5716
5717 2005-02-07  Havoc Pennington  <hp@redhat.com>
5718
5719         * doc/dbus-specification.xml: some more language cleanups; add
5720         stuff about how to deal with invalid protocol and extension
5721         points; add _ to allowed chars in auth commands; add EXTENSION_
5722         auth command prefix
5723
5724 2005-02-06  Havoc Pennington  <hp@redhat.com>
5725
5726         * s/expected/required/ in a couple places for clarity
5727
5728 2005-02-07  Colin Walters  <walters@verbum.org>
5729
5730         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5731         sender or proposed_recipient.
5732
5733 2005-02-06  Havoc Pennington  <hp@redhat.com>
5734
5735         * dbus/dbus-message-factory.c (generate_special): more tests
5736
5737         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5738         array length that exceeds the maximum
5739
5740 2005-02-05  Havoc Pennington  <hp@redhat.com>
5741
5742         * dbus/dbus-message-factory.c (generate_special): more test cases,
5743         increasing coverage
5744
5745         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5746         reason why a signature was invalid
5747
5748         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5749         skip the length of the string before we look at it in validation
5750
5751         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5752         equal_substring
5753
5754         * dbus/dbus-message.c (_dbus_message_loader_new): default
5755         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5756
5757 2005-02-05  Havoc Pennington  <hp@redhat.com>
5758
5759         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5760         if the signature of a variant was empty
5761         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5762         struct with no element type)
5763
5764         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5765         mangled messages to break things
5766
5767 2005-02-04  Havoc Pennington  <hp@redhat.com>
5768
5769         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5770         g_quark_try_string() so it actually can return 0
5771         (dbus_g_proxy_connect_signal): ditto
5772
5773 2005-02-04  Havoc Pennington  <hp@redhat.com>
5774
5775         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5776         bogus warning
5777         (tristring_from_message): assert cleanly on null path/interface
5778         (should not be possible though I decided later)
5779         (dbus_g_proxy_dispose): move proxy manager unregistration here
5780         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5781         g_return_if_fail() checks
5782
5783 2005-02-04  Havoc Pennington  <hp@redhat.com>
5784
5785         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5786
5787         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5788         (with some minor changes)
5789
5790         * doc/dbus-specification.xml: add deprecated attribute to
5791         introspection format
5792
5793 2005-01-31  Havoc Pennington  <hp@redhat.com>
5794
5795         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5796         think it's sort of right
5797
5798 2005-01-30  Havoc Pennington  <hp@redhat.com>
5799
5800         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5801
5802 2005-01-30  Havoc Pennington  <hp@redhat.com>
5803
5804         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5805
5806         * autogen.sh: change to autotools 1.9
5807
5808         * glib/dbus-gproxy.c: completely change how signals work
5809         (dbus_g_proxy_add_signal): new function to specify signature of a
5810         signal
5811         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5812         and g_warning if the incoming message has the wrong signature.
5813
5814 2005-01-30  Havoc Pennington  <hp@redhat.com>
5815
5816         * tools/dbus-names-model.c (have_names_notify): fix this
5817
5818         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5819         up the string array handling a bit 
5820
5821 2005-01-30  Havoc Pennington  <hp@redhat.com>
5822
5823         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5824         (dbus_g_pending_call_cancel): new function
5825
5826         * dbus/dbus-glib.h: move GType decls for connection/message here;
5827         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5828         here, just kind of rationalizing how we handle all that
5829
5830         * tools/dbus-names-model.c: new file for a tree model listing the
5831         services on a bus
5832
5833         * tools/dbus-tree-view.c (model_new): use proper typing on the
5834         model rows
5835
5836 2005-01-30  Havoc Pennington  <hp@redhat.com>
5837
5838         * glib/dbus-gmain.c: add a custom GSource back that just checks
5839         whether the message queue has anything in it; otherwise, there are 
5840         cases where we won't see messages in the queue since there was no 
5841         IO visible to the glib main loop
5842
5843         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5844         increase default message timeout to 25 seconds
5845
5846 2005-01-30  Havoc Pennington  <hp@redhat.com>
5847
5848         * test/glib/test-profile.c (no_bus_stop_server): remove the
5849         warning about the g_warning that I just fixed
5850
5851         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5852         custom source, seems to be a lot easier to understand and work
5853         better.
5854
5855 2005-01-30  Havoc Pennington  <hp@redhat.com>
5856
5857         I think this main loop thing is conceptually broken, but here are 
5858         some band aids. I'll maybe rewrite it in a minute.
5859         
5860         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5861         custom GSource, so don't pass it in; confusing
5862         (gsource_server_finalize, gsource_connection_finalize): add
5863         finalize handlers that remove all the watches.  
5864
5865 2005-01-30  Havoc Pennington  <hp@redhat.com>
5866
5867         * glib/dbus-gobject.c (introspect_properties): fix the XML
5868         generated
5869
5870         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5871         which effectively detects the use of freed messages
5872
5873         * glib/dbus-gobject.c (handle_introspect): modify and return the
5874         reply message instead of the incoming message
5875
5876         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5877         gee, maybe it should SEND THE XML instead of just making a string
5878         and freeing it again ;-)
5879
5880         * tools/dbus-print-message.c (print_message): improve printing of
5881         messages
5882
5883         * configure.in: add debug-glib.service to the output
5884
5885 2005-01-30  Havoc Pennington  <hp@redhat.com>
5886
5887         dbus-viewer introspected and displayed the bus driver
5888         
5889         * dbus/dbus-object-tree.c 
5890         (object_tree_test_iteration): add tests for a handler registered on "/"
5891
5892         * dbus/dbus-object-tree.c
5893         (_dbus_decompose_path): fix to handle path "/" properly
5894         (run_decompose_tests): add tests for path decomposition
5895         
5896         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5897         properly
5898
5899         * glib/dbus-gobject.c (handle_introspect): fix quotes
5900
5901         * test/glib/run-test.sh: support launching the bus, then running
5902         dbus-viewer
5903
5904         * test/glib/test-service-glib.c (main): put in a trivial gobject
5905         subclass and register it on the connection
5906
5907         * bus/driver.c (bus_driver_handle_introspect): implement
5908         introspection of the bus driver service
5909
5910         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5911         identifiers, doctype decl
5912
5913         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5914         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5915         returning the service unchanged.
5916         (bus_driver_handle_message): remove old check for reply_serial in
5917         method calls, now the message type deals with that
5918         (bus_driver_handle_message): handle NULL interface
5919
5920         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5921
5922         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5923         -1 for len
5924
5925         * tools/dbus-viewer.c: add support for introspecting a service on
5926         a bus
5927
5928         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5929         (dbus_g_pending_call_unref): add
5930
5931 2005-01-29  Havoc Pennington  <hp@redhat.com>
5932
5933         * tools/dbus-tree-view.c: add support for displaying properties.
5934         (run dbus-viewer with an introspect xml file as arg, then resize
5935         the window so the tree elements show up, not sure what that is)
5936
5937         * glib/dbus-gobject.c (handle_introspect): return
5938         org.freedesktop.Properties and org.freedesktop.Introspectable
5939         interfaces when we are introspected.
5940
5941         * doc/dbus-specification.xml: allow empty interface name when 
5942         Get/Set a property
5943
5944 2005-01-29  Havoc Pennington  <hp@redhat.com>
5945
5946         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5947         though it uses glib, it could be extended for any binding in
5948         principle
5949
5950         * glib/dbus-gobject.c (gobject_message_function): change to the
5951         new way properties work
5952
5953         * dbus/dbus-protocol.h: add the new interfaces
5954
5955         * doc/dbus-specification.xml: document the introspection format,
5956         Introspectable interface, and add an org.freedesktop.Properties
5957         interface.
5958
5959         * glib/dbus-gparser.c: add support for a <property> element
5960
5961         * glib/dbus-gidl.c: add PropertyInfo
5962
5963         * glib/dbus-gobject.c (handle_introspect): put the outermost
5964         <node> outside the signal and property descriptions.
5965         (introspect_properties): export properties as <property> rather
5966         than as method calls
5967
5968 2005-01-28  Havoc Pennington  <hp@redhat.com>
5969
5970         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5971         related to authentication protocol
5972
5973 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5974
5975         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5976                 - BUS_ACTIVATION -> BUS_STARTER
5977                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5978                 - class MessageIter (__init__): Added recursion checking 
5979                 so we throw a nice error instead of just disconnecting from the
5980                 bus.
5981                 (get): Added arg_type parameter for recursion.
5982                 Removed the nil type
5983                 Added signiture type placeholder (not implemented)
5984                 Added struct type placeholder (not implemented)
5985                 Added varient type placeholder (not implemented)
5986                 Commented out dict type for now     
5987                 (get_element_type): renamed from get_array_type
5988                 (get_*): changed to use the dbus_message_iter_get_basic API
5989                 (get_*_array): removed in favor of recursive get_array method
5990                 (get_array): new recursive method which calls get to marshal
5991                 the elements of the array
5992                 (value_to_dbus_sig): New method returns the corrasponding
5993                 dbus signiture to a python value
5994                 (append): Comment out dict handling for now
5995                 Handle lists with the new recursive API
5996                 Comment out None handling for now
5997                 (append_nil): removed
5998                 (append_*): changed to use dbus_message_iter_append_basic API
5999                 (append_*_array): removed in favor of recursive append_array 
6000                 method
6001                 (__str__): Make it easier to print out recursive iterators
6002                 for debugging
6003                 - class Message (__str__): moved type inspection to the
6004                 MessageIter class' __str__ method
6005                 (get_iter): Added an append parameter wich defaults to False
6006                 If True use the new API's to create an append iterator
6007
6008         * python/dbus.py: Update to use new bindings API
6009                 - TYPE_ACTIVATION -> TYPE_STARTER
6010                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6011                 - class ActivationBus -> class StarterBus
6012                 - class RemoteObject (__call__): get an append iterator
6013                 - (_dispatch_dbus_method_call): get an append iterator
6014                 - class Object (emit_signal): get an append iterator
6015
6016         * python/examples/: Fixed up the examples to work with the new API
6017                 
6018 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6019
6020         * configure.in: Bump version up to 0.30.
6021
6022         * HACKING: Add a release item to bump the version number up after 
6023         a release.
6024
6025 2005-01-28  Havoc Pennington  <hp@redhat.com>
6026
6027         * doc/dbus-specification.xml: update to describe 16-bit types and
6028         dict entries
6029
6030         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6031         assertion
6032
6033         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6034         type
6035
6036         * dbus/dbus-marshal-recursive.c: implement
6037
6038 2005-01-27  Havoc Pennington  <hp@redhat.com>
6039
6040         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6041
6042         * configure.in: find the right type for 16 and 32 bit ints as well
6043         as 64
6044
6045         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6046         the 16-bit types so people don't have to stuff them in 32-bit or
6047         byte arrays.
6048
6049 2005-01-27  Havoc Pennington  <hp@redhat.com>
6050
6051         * dbus/dbus-message.c: byteswap the message if you init an
6052         iterator to read/write from it
6053         
6054         * dbus/dbus-marshal-byteswap.c: new file implementing 
6055         _dbus_marshal_byteswap()
6056
6057         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6058
6059 2005-01-26  Havoc Pennington  <hp@redhat.com>
6060         
6061         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6062         build, apparently - nobody noticed?)
6063         
6064 2005-01-26  Havoc Pennington  <hp@redhat.com>
6065
6066         * dbus/dbus-marshal-recursive.h: remove todo comment
6067
6068 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6069
6070         * Land the mono binding changes to conform to the new APIs.
6071
6072         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6073         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6074
6075         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6076         type code as a string.
6077         (InitAppending): Rename dbus_message_append_iter_init() to
6078         dbus_message_iter_init_append().
6079
6080         * mono/BusDriver.cs: Rename ServiceEventHandler to
6081         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6082         Rename ServiceOwnerChanged to NameOwnerChanged.
6083
6084         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6085         underlying C call.
6086
6087         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6088
6089         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6090         dbus_bus_acquire_service() to dbus_bus_request_name().
6091
6092         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6093         of Type.UnderlyingSystemType to get the correct element type for
6094         the array.
6095         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6096         dbus_message_get_{element|arg}_type() instead of
6097         dbus_message_iter_init_array_iterator().
6098         (Append): Replace dbus_message_iter_append_array() with
6099         dbus_message_iter_open_container() and
6100         dbus_message_iter_close_container().
6101
6102         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6103         types have been removed.
6104         
6105         * mono/DBusType/*.cs: Replace calls of
6106         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6107         but specify the type in the DllImport extern declaration.  Ditto
6108         for dbus_message_iter_append_[type]() ->
6109         dbus_message_iter_append_basic().
6110
6111         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6112         NameOwnerChangedHandler.
6113
6114 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6115
6116         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6117                 - get_base_service -> get_unique_name
6118                 - bus_get_base_service -> bus_get_unique_name
6119                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6120                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6121                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6122                 - bus_activate_service -> bus_start_service_by_name
6123                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6124                 - bus_acquire_service -> bus_request_name
6125                 - dbus_bus_acquire_service -> dbus_bus_request_name
6126                 - bus_service_exists -> bus_name_has_owner
6127                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6128
6129         * python/dbus.py: Rename of methods
6130                 - activate_service -> start_service_by_name
6131                 - bus_acquire_service -> bus_request_name
6132                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6133                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6134
6135         
6136 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6137
6138         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6139         signature for the method that can't be found.
6140
6141         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6142         the message has any arguments, we need to call
6143         _dbus_type_reader_get_current_type(), not
6144         _dbus_type_reader_has_next().
6145
6146 2005-01-24  Havoc Pennington  <hp@redhat.com>
6147
6148         * dbus/dbus-message-factory.c: more testing of message validation
6149
6150         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6151         header
6152
6153 2005-01-23  Havoc Pennington  <hp@redhat.com>
6154
6155         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6156         get this all working, not many tests in the framework yet though
6157
6158 2005-01-22  Havoc Pennington  <hp@redhat.com>
6159
6160         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6161         tutorial, based on work from David Wheeler.
6162
6163 2005-01-21  Havoc Pennington  <hp@redhat.com>
6164
6165         * dbus/dbus-bus.c: add more return_if_fail checks
6166
6167         * dbus/dbus-message.c (load_message): have the "no validation"
6168         mode (have to edit the code to toggle the mode for now though)
6169
6170         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6171         skips all validation; I want to use this at least for benchmark
6172         baseline, I'm not sure if it should be a publicly-available switch.
6173
6174 2005-01-21  Havoc Pennington  <hp@redhat.com>
6175
6176         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6177         toplevel doxygen group as the low-level API stuff
6178
6179         * dbus/dbus.h: note that libdbus is the low-level API
6180
6181 2005-01-20  Havoc Pennington  <hp@redhat.com>
6182
6183         * update-dbus-docs.sh: script to update docs on the web site, only
6184         works for me though. neener.
6185
6186 2005-01-20  Havoc Pennington  <hp@redhat.com>
6187
6188         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6189         code can reveal bugs in it
6190
6191 2005-01-20  Havoc Pennington  <hp@redhat.com>
6192
6193         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6194         select() version, patches from Tor Lillqvist
6195
6196 2005-01-20  Havoc Pennington  <hp@redhat.com>
6197
6198         * doc/dbus-tutorial.xml: replace > with &gt;
6199
6200         * bus/services.c (bus_registry_acquire_service): validate the name
6201         and return a better error if it's no good.
6202
6203         * doc/dbus-specification.xml: note NO_AUTO_START change
6204
6205         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6206         from AUTO_START, we're toggling the default
6207
6208         * bus/dispatch.c: adapt the tests to change of auto-start default
6209
6210 2005-01-18  Havoc Pennington  <hp@redhat.com>
6211
6212         * rename dbus-daemon-1 to dbus-daemon throughout
6213
6214 2005-01-18  Havoc Pennington  <hp@redhat.com>
6215
6216         * Throughout, grand renaming to strip out the use of "service",
6217         just say "name" instead (or "bus name" when ambiguous).  Did not
6218         change the internal code of the message bus itself, only the
6219         programmer-facing API and messages.
6220         
6221         * doc/dbus-specification.xml: further update the message bus section
6222         
6223         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6224         in error case
6225
6226 2005-01-17  Havoc Pennington  <hp@redhat.com>
6227
6228         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6229         ever
6230
6231         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6232         "invalid name character" not only non-ASCII
6233
6234         * doc/dbus-specification.xml: further update spec, message bus 
6235         parts are still out-of-date but the marshaling etc. stuff is now
6236         accurate-ish
6237
6238 2005-01-17  Havoc Pennington  <hp@redhat.com>
6239
6240         * doc/dbus-specification.xml: partially update spec
6241
6242 2005-01-17  Havoc Pennington  <hp@redhat.com>
6243
6244         * Throughout, align variant bodies according to the contained
6245         type, rather than always to 8. Should save a fair bit of space in
6246         message headers.
6247         
6248         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6249         fix handling of case where p == end
6250
6251         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6252
6253 2005-01-17  Havoc Pennington  <hp@redhat.com>
6254
6255         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6256
6257         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6258         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6259         are marshaling/unmarshaling a boolean.
6260
6261 2005-01-16  Havoc Pennington  <hp@redhat.com>
6262
6263         This is about it on what can be disabled/deleted from libdbus
6264         easily, back below 150K anyhow. Deeper cuts are more work than 
6265         just turning the code off as I've done here.
6266         
6267         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6268         signed int convenience funcs
6269
6270         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6271         verbose mode
6272
6273         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6274         things out of libdbus
6275
6276         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6277         
6278         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6279         tests-enabled-only, though it should probably be deleted)
6280
6281         * dbus/dbus-message-util.c: same stuff
6282
6283         * dbus/dbus-auth-util.c: same stuff
6284
6285 2005-01-16  Havoc Pennington  <hp@redhat.com>
6286
6287         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6288
6289         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6290         way for stripping down dbus-userdb.c stuff included in libdbus.
6291         Rename _dbus_parse_uid for consistency.
6292
6293 2005-01-16  Havoc Pennington  <hp@redhat.com>
6294
6295         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6296         name the assertion failed in
6297
6298         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6299         (_dbus_return_val_if_fail): assert that the name of the function
6300         containing the check doesn't start with '_', since we only want to 
6301         use checks on public functions
6302         
6303         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6304         checks to assertions
6305
6306         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6307         change checks to asserts for private function
6308
6309         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6310         to asserts for private function
6311
6312         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6313         broken assertion that was breaking make check
6314         (_dbus_type_reader_array_is_empty): remove this rather than fix
6315         it, was only used in assertions
6316
6317 2005-01-16  Havoc Pennington  <hp@redhat.com>
6318
6319         * test/unused-code-gc.py: hacky script to find code that's used
6320         only by the bus (not libdbus) or used only by tests or not used at
6321         all. It has some false alarms, but looks like we can clean up a
6322         lot of size from libdbus.
6323
6324         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6325         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6326         
6327 2005-01-16  Havoc Pennington  <hp@redhat.com>
6328
6329         * Add and fix docs according to Doxygen warnings throughout
6330         source.
6331         
6332         * dbus/dbus-marshal-recursive.c
6333         (_dbus_type_reader_array_is_empty): change this to just call
6334         array_reader_get_array_len() and make it static
6335
6336         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6337         from get_array_type
6338         (dbus_message_iter_init_append): rename from append_iter_init
6339
6340         * dbus/dbus-marshal-recursive.c
6341         (_dbus_type_reader_get_element_type): rename from
6342         _dbus_type_reader_get_array_type
6343
6344 2005-01-15  Havoc Pennington  <hp@redhat.com>
6345
6346         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6347
6348         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6349         when DBUS_DISABLE_ASSERT
6350         (_dbus_marshal_set_basic): be sure we align for the string length
6351
6352         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6353         this look faster
6354
6355         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6356         inline macro version
6357         (_dbus_string_set_byte): provide inline macro version
6358
6359 2005-01-15  Havoc Pennington  <hp@redhat.com>
6360
6361         * Land the new message args API and type system.
6362
6363         This patch is huge, but the public API change is not 
6364         really large. The set of D-BUS types has changed somewhat, 
6365         and the arg "getters" are more geared toward language bindings;
6366         they don't make a copy, etc.
6367
6368         There are also some known issues. See these emails for details
6369         on this huge patch:
6370         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6371         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6372         
6373         * dbus/dbus-marshal-*: all the new stuff
6374
6375         * dbus/dbus-message.c: basically rewritten
6376
6377         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6378         freed blocks to be all non-nul bytes so using freed memory is less
6379         likely to work right
6380
6381         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6382         DBUS_FAIL_MALLOC=N environment variable, so you can do
6383         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6384         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6385         thorough.
6386
6387         * qt/message.cpp: port to the new message args API
6388         (operator<<): use str.utf8() rather than str.unicode()
6389         (pretty sure this is right from the Qt docs?)
6390
6391         * glib/dbus-gvalue.c: port to the new message args API
6392
6393         * bus/dispatch.c, bus/driver.c: port to the new message args API
6394
6395         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6396         "locked" flag to TRUE and align_offset to 0; I guess we never
6397         looked at these anyhow, but seems cleaner.
6398
6399         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6400         move allocation padding macro to this header; use it to implement
6401         (_DBUS_STRING_STATIC): ability to declare a static string.
6402
6403         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6404         change to return TRUE if the interface is not set.
6405
6406         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6407         to dbus-marshal-validate.[hc]
6408
6409         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6410         dbus-internals.c
6411
6412         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6413         to dbus-marshal-*.[hc]
6414
6415         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6416         function here from dbus-marshal.c
6417
6418 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6419
6420         * NEWS: Update for 0.23.
6421
6422         * configure.in: Release 0.23.
6423
6424 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6425
6426         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6427         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6428         behind.
6429
6430         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6431         uninstall"
6432
6433         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6434         is an enum, get the enum's underlying type.  Another mono
6435         1.1.3 fix.
6436
6437 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6438
6439         Patch from Sjoerd Simons <sjoerd@luon.net>
6440
6441         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6442         DESTDIR.  It breaks stuff.
6443
6444 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6445
6446         Patch from Tambet Ingo <tambet@ximian.com>
6447
6448         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6449         calling type.GetElementType().  The code previously depended on
6450         broken Mono behavior, which was fixed in Mono 1.1.3.
6451
6452         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6453         Activator.CreateInstance() so that the class's constructor is
6454         called with the right parameters.
6455
6456 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6457
6458         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6459
6460         * dbus/dbus-connection.c
6461         (_dbus_connection_queue_received_message_link): Call
6462         _dbus_connection_remove_timeout() instead of the _locked()
6463         variant, since it's always called from
6464         _dbus_connection_handle_watch(), which handles the locking.
6465         Removed the _locked() variant since it's no longer used.
6466
6467 2005-01-03  Havoc Pennington  <hp@redhat.com>
6468
6469         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6470         return
6471         
6472 2004-12-26  Havoc Pennington  <hp@redhat.com>
6473
6474         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6475
6476 2005-01-03  Havoc Pennington  <hp@redhat.com>
6477
6478         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6479         floating point
6480
6481         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6482
6483 2005-01-02  Havoc Pennington  <hp@redhat.com>
6484
6485         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6486
6487 2005-01-01  Havoc Pennington  <hp@redhat.com>
6488
6489         * configure.in: add -Wfloat-equal
6490
6491 2005-01-01  Havoc Pennington  <hp@redhat.com>
6492
6493         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6494         for a variety of reasons '==' doesn't do this.
6495
6496 2004-12-31  Havoc Pennington  <hp@redhat.com>
6497
6498         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6499         I keep wishing I had
6500
6501 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6502
6503         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6504
6505 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6506
6507         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6508         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6509         dbus-protocol.h.  Because they are defines and not enums they are not
6510         autogenerated.
6511
6512 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6513
6514         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6515         dbus_bus_activate_service
6516
6517         * python/dbus.py (Bus.activate_service): activate a service on the
6518         bus.
6519
6520 2004-12-24  Havoc Pennington  <hp@redhat.com>
6521
6522         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6523         file format has also changed and I haven't adapted to that yet
6524         
6525         * Makefile.am: load .gcno files from latest gcc
6526
6527 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6528         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6529
6530         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6531         lowlevel binding
6532
6533         * python/dbus.py (get_unix_user): Added binding to 
6534         call dbus_bindings.bus_get_unix_user
6535
6536         * python/extract.py: Modified the proto_pat regex to
6537         handle unsigned long
6538
6539 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6540
6541         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6542         better POSIX compliance.
6543
6544 2004-12-19  Havoc Pennington  <hp@redhat.com>
6545
6546         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6547         (_dbus_string_insert_8_aligned): new functions
6548
6549         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6550
6551 2004-12-18  Havoc Pennington  <hp@redhat.com>
6552
6553         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6554         macro
6555
6556         * dbus/dbus-message.c: fix a comment, and add a still-unused
6557         not-implemented function
6558
6559         * dbus/dbus-marshal.h: fix comment
6560
6561         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6562
6563 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6564
6565         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6566         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6567         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6568         Type.UnderlyingSystemType to get the actual system type
6569         underneath.  This code previously depended on the broken Mono
6570         behavior, which was fixed in 1.1.3.
6571
6572 2004-11-27  Havoc Pennington  <hp@redhat.com>
6573
6574         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6575         are disabled
6576         (_dbus_string_get_const_data): inline when asserts are disabled
6577
6578         * dbus/dbus-message.c: record the _dbus_current_generation of
6579         creation so we can complain if dbus_shutdown() is used improperly.
6580         Do this only if checks are enabled.
6581
6582         * dbus/dbus-connection.c: ditto
6583         
6584 2004-11-26  Havoc Pennington  <hp@redhat.com>
6585
6586         * test/glib/test-profile.c: add with_bus mode to profile echoes
6587         that go through the bus.
6588
6589         * test/glib/run-test.sh: add ability to run test-profile
6590
6591         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6592         config file reload.
6593
6594 2004-11-26  Havoc Pennington  <hp@redhat.com>
6595
6596         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6597         thing was implemented
6598
6599 2004-11-26  Havoc Pennington  <hp@redhat.com>
6600
6601         * test/glib/test-profile.c: tweak a bit, add support for some
6602         made-up minimal malloc overhead with plain sockets, since in 
6603         real life some sort of buffers are unavoidable thus we could 
6604         count them in the theoretical best case
6605
6606 2004-11-26  Havoc Pennington  <hp@redhat.com>
6607
6608         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6609         where I was trying to cache one too many messages
6610
6611 2004-11-26  Havoc Pennington  <hp@redhat.com>
6612
6613         * dbus/dbus-message.c: reimplement message cache as an array which 
6614         makes the cache about twice as fast and saves maybe 1.5% overall
6615
6616 2004-11-26  Havoc Pennington  <hp@redhat.com>
6617
6618         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6619         message cache lock here
6620
6621 2004-11-26  Havoc Pennington  <hp@redhat.com>
6622
6623         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6624         the "char byte_order" next to each other to save 4 bytes
6625         (dbus_message_new_empty_header): reduce preallocation, since the
6626         message cache should achieve a similar effect
6627         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6628         message cache that keeps a few DBusMessage around in a pool,
6629         another 8% speedup or so.
6630
6631         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6632
6633 2004-11-25  Havoc Pennington  <hp@redhat.com>
6634
6635         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6636         to write, without reading or blocking, try it before the poll()
6637         and skip the poll() if nothing remains to write. This is about a
6638         3% speedup in the echo client/server
6639
6640 2004-11-25  Havoc Pennington  <hp@redhat.com>
6641
6642         The primary change here is to always write() once before adding
6643         the write watch, which gives us about a 10% performance increase.
6644         
6645         * dbus/dbus-transport-unix.c: a number of modifications to cope
6646         with removing messages_pending
6647         (check_write_watch): properly handle
6648         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6649         messages_pending stuff
6650         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6651         AUTHENTICATED cases
6652         (unix_handle_watch): after writing, see if the write watch can be
6653         removed
6654         (unix_do_iteration): assert that write_watch/read_watch are
6655         non-NULL rather than testing that they aren't, since they 
6656         aren't allowed to be NULL. check_write_watch() at the end so 
6657         we add the watch if we did not finish writing (e.g. got EAGAIN)
6658
6659         * dbus/dbus-transport-protected.h: remove messages_pending call,
6660         since it resulted in too much inefficient watch adding/removing; 
6661         instead we now require that the transport user does an iteration 
6662         after queueing outgoing messages, and after trying the first
6663         write() we add a write watch if we got EAGAIN or exceeded our 
6664         max bytes to write per iteration setting
6665
6666         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6667         function
6668
6669         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6670         freed and then accessed, valgrind flagged this bug, fix it
6671
6672         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6673         as the last valid field plus 1, where really it is equal to the
6674         last valid field. Corrects some message corruption issues.
6675
6676         * dbus/dbus-mainloop.c: verbosity changes
6677
6678         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6679         instead of aborting in one of the test codepaths
6680
6681         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6682         caused not printing the pid ever again if a verbose was missing
6683         the newline at the end
6684         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6685
6686         * dbus/dbus-connection.c: verbosity changes; 
6687         (dbus_connection_has_messages_to_send): new function
6688         (_dbus_connection_message_sent): no longer call transport->messages_pending
6689         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6690         try to write() immediately, so we can avoid the write watch. This
6691         is the core purpose of this patchset
6692         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6693         dump the outgoing message queue, so nobody will get confused
6694         trying to send them or thinking stuff is pending to be sent
6695
6696         * bus/test.c: verbosity changes
6697
6698         * bus/driver.c: verbosity/assertion changes
6699
6700         * bus/dispatch.c: a bunch of little tweaks to get it working again
6701         because this patchset changes when/where you need to block.
6702
6703 2004-11-23  Havoc Pennington  <hp@redhat.com>
6704
6705         * test/glib/test-profile.c: modify to accept a plain_sockets
6706         argument in which case it will bench plain sockets instead of
6707         libdbus, for comparison purposes.
6708
6709 2004-11-22  Havoc Pennington  <hp@redhat.com>
6710
6711         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6712         threads for more time, so sysprof can get a grip on it.
6713
6714         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6715         pointless variable
6716
6717 2004-11-13  Havoc Pennington  <hp@redhat.com>
6718
6719         * test/glib/test-profile.c: fix this thing up a bit
6720
6721         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6722         preallocation sizes by a fair bit; not sure if this will be an
6723         overall performance win or not, but it does reduce reallocs.
6724
6725         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6726         the test hack that forced constant realloc if asserts are
6727         disabled, so we can profile sanely. Sprinkle in some
6728         _DBUS_UNLIKELY() which are probably pointless, but before I
6729         noticed the real performance problem I put them in.
6730         (_dbus_string_validate_utf8): micro-optimize this thing a little
6731         bit, though callgrind says it didn't help; then special-case
6732         ascii, which did help a lot; then be sure we detect nul bytes as
6733         invalid, which is a bugfix.
6734         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6735         superstition; use memset to nul the padding instead of a manual
6736         loop.
6737         (_dbus_string_get_length): inline this as a
6738         macro; it showed up in the profile because it's used for loop
6739         tests and so forth
6740
6741 2004-11-10  Colin Walters  <walters@verbum.org>
6742
6743         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6744         for extra paranoia.
6745
6746 2004-11-09  Colin Walters  <walters@verbum.org>
6747
6748         * dbus/dbus-string.c (_dbus_string_get_length): New
6749         function, writes DBusString to C buffer.
6750
6751         * dbus/dbus-string.h: Prototype it.
6752
6753         * dbus/dbus-message.c (dbus_message_type_to_string): New
6754         function, converts message type into C string.
6755
6756         * dbus/dbus-message.h: Prototype it.
6757
6758         * bus/selinux.c (bus_selinux_check): Take source pid,
6759         target pid, and audit data.  Pass audit data to
6760         avc_has_perm.
6761         (log_audit_callback): New function, appends extra
6762         audit information.
6763         (bus_selinux_allows_acquire_service): Also take
6764         service name, add it to audit data.
6765         (bus_selinux_allows_send): Also take message
6766         type, interface, method member, error name,
6767         and destination, and add them to audit data.
6768         (log_cb): Initialize func_audit.
6769         
6770         * bus/selinux.h (bus_selinux_allows_acquire_service)
6771         (bus_selinux_allows_send): Update prototypes 
6772
6773         * bus/services.c (bus_registry_acquire_service): Pass
6774         service name to bus_selinux_allows_acquire_service.
6775
6776         * bus/bus.c (bus_context_check_security_policy): Pass
6777         additional audit data.  Move assignment of dest
6778         to its own line.
6779
6780 2004-11-07  Colin Walters  <walters@verbum.org>
6781
6782         * dbus/dbus-transport-unix.c (do_authentication): Always
6783         initialize auth_completed.
6784         
6785 2004-11-07  Colin Walters  <walters@verbum.org>
6786
6787         * bus/bus.c (load_config): Break into three
6788         separate functions: process_config_first_time_only,
6789         process_config_every_time, and process_config_postinit.
6790         (process_config_every_time): Move call of
6791         bus_registry_set_service_context_table into
6792         process_config_postinit.
6793         (process_config_postinit): New function, does
6794         any processing that needs to happen late
6795         in initialization (and also on reload).
6796         (bus_context_new): Instead of calling load_config,
6797         open config parser here and call process_config_first_time_only
6798         and process_config_every_time directly.  Later, after
6799         we have forked but before changing UID,
6800         invoke bus_selinux_full_init, and then call
6801         process_config_postinit.
6802         (bus_context_reload_config): As in bus_context_new,
6803         load parse file inside here, and call process_config_every_time
6804         and process_config_postinit.
6805
6806         * bus/services.h, bus/services.c
6807         (bus_registry_set_service_context_table): Rename
6808         from bus_registry_set_sid_table.  Take string hash from config
6809         parser, and convert them here into SIDs.
6810
6811         * bus/config-parser.c (struct BusConfigParser): Have
6812         config parser only store a mapping of service->context
6813         string.
6814         (merge_service_context_hash): New function.
6815         (merge_included): Merge context string hashes instead
6816         of using bus_selinux_id_table_union.
6817         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6818         simply create a new string hash.
6819         (bus_config_parser_unref): Unref it.
6820         (start_selinux_child): Simply insert strings into hash,
6821         don't call bus_selinux_id_table_copy_over.
6822
6823         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6824         (bus_selinux_id_table_copy_over): Delete.
6825
6826 2004-11-03  Colin Walters  <walters@verbum.org>
6827
6828         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6829         variables.
6830         
6831 2004-11-03  Colin Walters  <walters@verbum.org>
6832
6833         * bus/test-main.c (test_pre_hook): Fix test logic,
6834         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6835
6836 2004-11-02  Colin Walters  <walters@redhat.com>
6837
6838         * bus/selinux.c (bus_selinux_init): Split into two functions,
6839         bus_selinux_pre_init and bus_selinux_post_init.
6840         (bus_selinux_pre_init): Just determine whether SELinux is
6841         enabled.
6842         (bus_selinux_post_init): Do everything else.
6843
6844         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6845         config file, and bus_selinux_post_init after.  This ensures that
6846         we don't lose the policyreload notification thread that
6847         bus_selinux_init created before forking previously.
6848         
6849         * bus/test-main.c (test_pre_hook): Update for split.
6850
6851 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6852
6853         Patch from Johan Fischer <linux@fischaz.com>
6854         
6855         * mono/doc/Makefile.am (install-data-local): Added directory
6856         install for DESTDIR
6857
6858 2004-10-29  Colin Walters  <walters@redhat.com>
6859
6860         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6861         parameter for fd to write pid to.       
6862
6863         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6864         
6865         * bus/bus.c (bus_context_new): Pass print_pid_fd
6866         to _dbus_become_daemon (bug #1720)
6867
6868 2004-10-29  Colin Walters  <walters@redhat.com>
6869
6870         Patch from Ed Catmur <ed@catmur.co.uk>
6871
6872         * mono/doc/Makefile.am (install-data-local): Handle
6873         DESTDIR.
6874
6875 2004-10-29  Colin Walters  <walters@redhat.com>
6876
6877         * bus/.cvsignore, qt/.cvsignore: Update.
6878
6879 2004-10-29  Colin Walters  <walters@redhat.com>
6880
6881         Patch from Kristof Vansant <de_lupus@pandora.be>
6882
6883         * configure.in: Detect Slackware.
6884         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6885         * bus/rc.messagebus.in: New file.
6886
6887 2004-10-29  Colin Walters  <walters@redhat.com>
6888
6889         * tools/dbus-monitor.c (filter_func): Return
6890         DBUS_HANDLER_RESULT_HANDLED in filter function
6891         for now.  See:
6892         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6893
6894 2004-10-29  Colin Walters  <walters@redhat.com>
6895
6896         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6897
6898         * bus/services.c (bus_registry_acquire_service): 
6899         Correctly retrieve service name from DBusString
6900         for printing.
6901
6902 2004-10-29  Colin Walters  <walters@redhat.com>
6903
6904         * dbus/dbus-glib.h: Update documentation to not
6905         refer to internal APIs.
6906
6907 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6908
6909         * mono/Arguments.cs (GetDBusTypeConstructor):
6910         type.UnderlyingSystemType will return "System.Byte" if you do it
6911         on "byte[]", which is not what we want.  So check the type.IsArray
6912         property and use System.Array instead.
6913
6914 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6915
6916         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6917         the DBusUserInfo structure since this is passed into the function.
6918         This would cause a double free when the function that allocated
6919         the structure would try to free it when an error occured.
6920
6921         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6922         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6923         for service activation to avoid 32bit/64bit parallel install issues
6924
6925 2004-10-21  Colin Walters  <walters@verbum.org>
6926
6927         * AUTHORS: Fix my email address, the @gnu.org one
6928         has been bouncing for some time.  Also add J5.
6929         
6930 2004-10-21  Colin Walters  <walters@verbum.org>
6931
6932         * dbus/dbus-transport-unix.c (do_authentication): Return
6933         authentication status to callers.
6934         (unix_handle_watch): If we completed authentication this round,
6935         don't do another read.  Instead wait until the next iteration,
6936         after we've read any pending data in the auth buffer.
6937         (unix_do_iteration): Ditto.
6938         (unix_handle_watch): Updated for new do_authentication prototype.
6939
6940 2004-10-18  Colin Walters  <walters@verbum.org>
6941
6942         * bus/selinux.c (bus_selinux_enabled): Handle
6943         --disable-selinux case.
6944         
6945 2004-10-18  Colin Walters  <walters@verbum.org>
6946
6947         * bus/selinux.h: Add bus_selinux_enabled.
6948         
6949         * bus/selinux.c (bus_selinux_enabled): Implement it.
6950         
6951         * bus/config-parser.c (struct include): Add
6952         if_selinux_enabled member.
6953         (start_busconfig_child): Parse if_selinux_enabled
6954         attribute for include.
6955         (bus_config_parser_content): Handle it.
6956
6957         * bus/session.conf.in, bus/system.conf.in: Add
6958         inclusion of context mapping to default config files;
6959         conditional on SELinux being enabled.
6960         
6961         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6962         
6963         * test/data/invalid-config-files/badselinux-1.conf, 
6964         test/data/invalid-config-files/badselinux-2.conf:
6965         Test files for bad syntax.
6966         
6967 2004-10-17  Colin Walters  <walters@verbum.org>
6968
6969         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6970         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6971         format specifier mismatches.
6972
6973 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6974
6975         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6976         format string.
6977
6978         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6979         pointer (bug #1540, Leonardo Boiko).
6980
6981 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6982
6983         * mono/BusDriver.cs: Changed BusDriver struct to remove
6984         the ServiceCreated and ServiceDeleted events and replace them
6985         with the new ServiceOwnerChanged event.
6986
6987         * mono/example/BusListener.cs: Added a new example program,
6988         which listens for and reports any ServiceOwnerChanged events
6989         on the bus driver.
6990
6991         * mono/example/Makefile.am (DESTDIR): Build changes for the
6992         new BusListener.cs example.
6993
6994 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6995
6996         * bus/signals.c (bus_match_rule_parse): validate the components of
6997         match rules (bug #1439).
6998
6999         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7000
7001 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7002
7003         * doc/dbus-specification.xml: document ServiceOwnerChanged
7004         signal.
7005         
7006         * bus/driver.c, bus/driver.h, bus/services.c: Use
7007         ServiceOwnerChanged signal instead of ServiceCreated and
7008         ServiceDeleted.
7009         
7010         * bus/dispatch.c: update testcase for the new signal.
7011
7012 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7013
7014         Patch from Nat Friedman <nat@novell.com>
7015
7016         * mono/Makefile.am: A number of small build fixes to allow "make
7017         distcheck" to succeed.
7018
7019         * mono/example/Makefile.am: "make distcheck" fixes.
7020
7021         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7022         key in @srcdir@.
7023
7024         * test/Makefile.am: "make distcheck" fixes.
7025
7026 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7027
7028         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7029
7030         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7031
7032         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7033         messages after the first one (bug #1389).
7034         
7035         * bus/dispatch.c (check_double_hello_message): add a test case for
7036         the double hello message bug.
7037         (check_existent_service_activation): fix check of spawning error.
7038         
7039 2004-09-16  David Zeuthen  <david@fubar.dk>
7040
7041         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7042
7043 2004-09-12  David Zeuthen  <david@fubar.dk>
7044
7045         Patch from Kay Sievers <kay.sievers@vrfy.org>
7046
7047         * bus/bus.c (bus_context_new):
7048         * bus/bus.h:
7049         * bus/main.c (usage)
7050         (main):
7051         Add commandline option --nofork to override configuration file
7052         setting.
7053
7054 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7055
7056         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7057         compilers don't like it (bug #974).
7058
7059 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7060
7061         * qt/connection.*: Applied patch by Jérôme Lodewyck
7062         <lodewyck@clipper.ens.fr> to integrate an existing
7063         connection into the Qt eventloop
7064
7065 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7066
7067         * mono/BusDriver.cs: Added.  This is a class for interacting with
7068         the org.freedesktop.DBus service.
7069
7070         * mono/Message.cs: Added a mechanism to expose the message that is
7071         currently being dispatched via the static Message.Current
7072         property.  Added Message.Sender and Message.Destination
7073         properties.
7074
7075         * mono/Handler.cs: Expose the dispatched message via
7076         Message.Current when handling method calls.
7077
7078         * mono/Service.cs: Expose the dispatched message via
7079         Message.Current when handling signal emissions.
7080         
7081         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7082         Connection.BaseService property.
7083
7084 2004-08-28  Havoc Pennington  <hp@redhat.com>
7085
7086         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7087
7088         More fixes from Steve Grubb
7089         
7090         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7091         (_dbus_listen_tcp_socket): fix fd leak
7092
7093         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7094         EINTR to a bit lower in the code
7095
7096 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7097
7098         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7099         TRUE if we are inquiring about the existence of the built-in
7100         org.freedesktop.DBus service.
7101
7102 2004-08-25  John Palmieri  <johnp@redhat.com>
7103         * bus/config-parser.c:
7104         (struct PolicyType): Add POLICY_CONSOLE
7105         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7106         (start_busconfig_child): Sets up console element when
7107         <policy at_console=""> is encountered in a policy file
7108         (append_rule_from_element): Convert console elements to console
7109         rules.
7110
7111         * bus/policy.c: 
7112         (bus_policy_create_client_policy): Add console rules to the client
7113         policy based on if the client is at the console
7114         (bus_policy_append_console_rule): New function for adding a
7115         console rule to a policy
7116         (bus_policy_merge): Handle console rule merging
7117
7118         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7119         where we check for console user files
7120         
7121         * dbus/dbus-sysdeps.c:
7122         (_dbus_file_exists): New function which checks if the given
7123         file exists
7124         (_dbus_user_at_console): New function which does the system
7125         specific process of checking if the user is at the console
7126
7127         * dbus/dbus-userdb.c:
7128         (_dbus_is_console_user): New function converts a UID to user name
7129         and then calls the system specific _dbus_user_at_console to 
7130         see if the user is at the console and therefor a console user
7131
7132 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7133
7134         * bus/config-parser.c (set_limit):
7135         * bus/dbus-daemon-1.1.in:
7136         * test/data/valid-config-files/many-rules.conf: set the
7137         max_match_rules_per_connection limt from the config file. 
7138
7139         * doc/busconfig.dtd: update the DTD.
7140
7141         * bus/driver.c: remove some unused variables.
7142
7143 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7144
7145         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7146         it's been replaced by dbus_g_bus_get
7147
7148 2004-08-23  Colin Walters  <walters@redhat.com>
7149
7150         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7151
7152         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7153
7154         * bus/selinux.c: Create a thread for policy reload notification.
7155         (bus_selinux_get_policy_root): Implement.
7156
7157         * bus/config-parser.c (start_busconfig_child)
7158         (bus_config_parser_content): Support SELinux-root relative
7159         inclusion.
7160
7161         * configure.in <HAVE_SELINUX>: Add -lpthread.
7162         
7163         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7164         (test_post_hook): Move memory checking into here.
7165         (test_pre_hook, test_post_hook): Move SELinux checks in
7166         here, but conditional on a DBUS_TEST_SELINUX environment
7167         variable.  Unfortunately we can't run the SELinux checks
7168         as a normal user, since they won't have any permissions
7169         for /selinux.  So this will have to be tested manually
7170         for now, until we have virtualization for most of
7171         libselinux.
7172         
7173 2004-08-23  Havoc Pennington  <hp@redhat.com>
7174
7175         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7176         drop supplementary groups, suggested by Steve Grubb
7177
7178 2004-08-20  Colin Walters  <walters@redhat.com>
7179
7180         * bus/config-parser.c (start_busconfig_child): Remove some unused
7181         variables.
7182         
7183         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7184         warning.
7185
7186 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7187
7188         * configure.in: If --enable-mono is passed in, if we can't find
7189         mono error out.
7190
7191         * mono/Makefile.am: Use /gacutil to install assemblies into the
7192         GAC and not /root.
7193
7194 2004-08-12  Havoc Pennington  <hp@redhat.com>
7195
7196         * NEWS: update for 0.22
7197
7198         * configure.in: release 0.22
7199
7200 2004-08-11  Colin Walters  <walters@redhat.com>
7201
7202         * tools/dbus-send.c (main, usage): Add --reply-timeout
7203         argument.
7204
7205 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7206
7207         * bus/bus.c (process_config_first_time_only): get rid of an unused
7208         DBusError that was causing a memoy leak (bug #989).
7209
7210         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7211         fix compilation on Solaris/Forte C (bug #974)
7212
7213         * bus/main.c (main): plug two minuscule memleaks.
7214
7215 2004-08-10  Havoc Pennington  <hp@redhat.com>
7216
7217         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7218
7219 2004-08-09  Havoc Pennington  <hp@redhat.com>
7220
7221         * COPYING: switch to Academic Free License version 2.1 instead of
7222         2.0, to resolve complaints about patent termination clause.
7223
7224 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7225
7226         * README: added documentation for the --enable-python 
7227         configure switch.
7228
7229 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7230
7231         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7232         _unref in the SELinux support.
7233
7234         * doc/busconfig.dtd: update DTD for SELinux support.
7235
7236         * bus/config-loader-libxml.c: fix error handler and parser
7237         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7238
7239         * configure.in: remove the warning about libxml2.
7240
7241         * dbus/dbus-bus.c: silence doxygen warning.
7242
7243 2004-07-31  Colin Walters  <walters@redhat.com>
7244
7245         * configure.in: Move #error in SELinux check to its own line.
7246
7247 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7248
7249         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7250         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7251         dbus_error_set.
7252
7253         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7254         broken by the change in the _SET_OOM macros.
7255
7256 2004-07-31  Colin Walters  <walters@redhat.com>
7257
7258         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7259         BUS_SET_OOM.
7260
7261 2004-07-31  Colin Walters  <walters@redhat.com>
7262
7263         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7264         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7265         AC_MSG_CHECKING.
7266
7267 2004-07-24  Havoc Pennington  <hp@redhat.com>
7268
7269         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7270
7271         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7272         functionality
7273
7274         * configure.in: add --enable-selinux
7275         
7276         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7277
7278         * bus/main.c (main): initialize and shut down selinux
7279
7280         * bus/connection.c: store SELinux ID on each connection, to avoid 
7281         repeated getting of the string context and converting it into 
7282         an ID
7283
7284         * bus/bus.c (bus_context_get_policy): new accessor, though it
7285         isn't used
7286         (bus_context_check_security_policy): check whether the security
7287         context of sender connection can send to the security context of
7288         recipient connection
7289
7290         * bus/config-parser.c: add parsing for <selinux> and <associate>
7291         
7292         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7293         implement dbus_connection_get_unix_fd()
7294
7295         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7296         function, used by the selinux stuff
7297         
7298 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7299
7300         * bus/config-loader-libxml.c: complete the implementation of
7301         libxml backend for config file loader. Doesn't work with full OOM
7302         test yet. 
7303         
7304         * configure.in: change error when selecting libxml into a warning.
7305         
7306         * test/data/invalid-config-files: add two non-well-formed XML
7307         files. 
7308         
7309         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7310         
7311         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7312         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7313         be necessary to read all the buffer. (bug #894)
7314
7315         * bus/activation.c (bus_activation_activate_service): fix a
7316         potential assertion failure (bug #896). Small optimization in the
7317         case of auto-activation messages.
7318
7319         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7320         add test case for byte-through-vararg bug (#901). patch by Kimmo
7321         Hämäläinen. 
7322
7323 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7324
7325         * python/dbus.py:
7326         * python/dbus_bindings.pyx.in:
7327         Add dbus.init_gthreads (), allow emit_signal to pass
7328         arguments to the signal.
7329         
7330 2004-07-24  Havoc Pennington  <hp@redhat.com>
7331
7332         * AUTHORS: add some people, not really comprehensively, let me
7333         know if I missed you
7334
7335 2004-07-24  Havoc Pennington  <hp@redhat.com>
7336
7337         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7338         Owen
7339
7340         * test/Makefile.am (DIST_SUBDIRS): here also
7341
7342 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7343
7344         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7345         breaking build on Solaris, reported by Farhad Saberi on the ML.
7346
7347         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7348         va_arg invocation to account for integer promotion in the case of
7349         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7350
7351         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7352         _dbus_list_get_first_link, not _dbus_list_get_first.
7353
7354         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7355
7356         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7357         handler functions so that the asserts in _dbus_object_subtree_unref
7358         do not fail.
7359
7360         * dbus/dbus-transport-unix.c (do_reading):
7361         _dbus_transport_queue_messages return value is of type
7362         dbus_bool_t, not DBusDispatchStatus.
7363         
7364 2004-07-19  David Zeuthen  <david@fubar.dk>
7365
7366         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7367
7368         * bus/dispatch.c:
7369         (check_get_connection_unix_user): Debug says GetProperty; but the
7370         method is called GetConnectionUnixUser
7371         (check_get_connection_unix_process_id): New function
7372         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7373         also call check_get_connection_unix_process_id()
7374         
7375         * bus/driver.c:
7376         (bus_driver_handle_get_connection_unix_process_id): New function,
7377         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7378         interface
7379         
7380         * dbus/dbus-auth.c:
7381         (handle_server_data_external_mech): Set pid from the credentials
7382         obtained from the socket
7383         
7384         * dbus/dbus-connection.c:
7385         (dbus_connection_get_unix_process_id): New function
7386         
7387         * dbus/dbus-connection.h: 
7388         Add prototype for dbus_connection_get_unix_process_id
7389         
7390         * dbus/dbus-transport.c:
7391         (_dbus_transport_get_unix_process_id): New function
7392         
7393         * dbus/dbus-transport.h:
7394         Add prototype for _dbus_transport_get_unix_process_id
7395         
7396 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7397
7398         * dbus/dbus-message.c: Message counter fix, patch by Christian
7399         Hammond <chipx86@gnupdate.org>
7400
7401 2004-07-18  Seth Nickell  <seth@gnome.org>
7402
7403         * python/dbus.py:
7404         * python/dbus_bindings.pyx.in:
7405         * python/tests/test-client.py:
7406
7407         Add dbus.ByteArray and dbus_bindings.ByteArray
7408         types so that byte streams can be passed back.
7409
7410         Give jdahlin the heaps of credit that are so
7411         rightfully his.
7412         
7413 2004-07-12  Seth Nickell  <seth@gnome.org>
7414
7415         * python/dbus.py:
7416
7417         Add message argument to the default object_method_handler
7418         function.
7419         
7420         * python/dbus_bindings.pyx.in:
7421
7422         Automatically return NIL when passed an empty list
7423         (we can't pass back a list since lists are typed
7424         and we don't have any idea what type the the client
7425         intended the list to be... :-( )
7426         
7427 2004-07-10  Seth Nickell  <seth@gnome.org>
7428
7429         * python/examples/Makefile.am:
7430
7431         Fix distcheck breakage caused by new examples.
7432
7433 2004-07-10  Seth Nickell  <seth@gnome.org>
7434
7435         * python/dbus.py:
7436
7437         Add "message" argument to service-side dbus.Object
7438         methods. This will break existing services written
7439         using the python bindings, but will allow extraction
7440         of all the message information (e.g. who its from).
7441
7442         Add improved "object oriented" signal handling/emission.
7443         
7444         * python/examples/example-service.py:
7445
7446         Nix this example.
7447         
7448         * python/examples/example-signal-emitter.py:
7449         * python/examples/example-signal-recipient.py:
7450
7451         Two new examples that show how to emit and receive
7452         signals using the new APIs.
7453         
7454         * python/examples/example-signals.py:
7455         * python/examples/gconf-proxy-service.py:
7456         * python/examples/gconf-proxy-service2.py:
7457
7458         Add "message" argument to service methods.
7459
7460 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7461
7462         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7463         * dbus/bus.c (dbus_bus_get_unix_user)
7464         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7465         method of org.freedesktop.DBus interface.
7466
7467         * bus/dispatch.c: test case
7468
7469 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7470
7471         * python/Makefile.am: switched include directory from glib/ to dbus/
7472         since dbus-glib.h moved
7473  
7474 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7475
7476         * configure.in: prevent building the gcj stuff and libxml loader
7477         since they are broken.
7478
7479 2004-06-20  Havoc Pennington  <hp@redhat.com>
7480
7481         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7482         codes from the dbus error names
7483         
7484         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7485         as dbus/dbus-glib.h and that breakage is now visible due to 
7486         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7487         
7488         * glib/dbus-glib.h: s/gproxy/g_proxy/
7489
7490         * dbus/dbus-shared.h: new header to hold stuff shared with
7491         binding APIs
7492         
7493         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7494         than dbus-errors.h
7495
7496         * glib/dbus-glib.h (dbus_set_g_error): move to
7497         dbus-glib-lowlevel.h
7498
7499         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7500         of stuff to enable this
7501
7502         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7503
7504         * a bunch of other changes with the same basic "separate glib 
7505         bindings from dbus.h" theme
7506         
7507 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7508
7509         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7510
7511         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7512
7513 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7514
7515         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7516         the reply value of the ServiceExists message.
7517
7518 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7519
7520         * python/dbus_bindings.pyx.in: No longer need to parse path
7521         elements and pass them as arrays of strings.  The C API now
7522         accepts plain path strings.
7523         (_build_parsed_path): removed 
7524
7525 2004-06-07  Havoc Pennington  <hp@redhat.com>
7526
7527         * doc/TODO: remove auto-activation item since it's done; sort
7528         items by importance/milestone
7529
7530 2004-06-07  Havoc Pennington  <hp@redhat.com>
7531
7532         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7533         random signature when using REQUIRED_FIELDS (this hack won't work
7534         in the long term)
7535
7536         * dbus/dbus-message.c: change the signature to be a header field,
7537         instead of message->signature special-case string. Incremental
7538         step forward. Then we can fix up code to send the signature in the
7539         message, then fix up code to validate said signature, then fix up
7540         code to not put the typecodes inline, etc.
7541         (load_one_message): don't make up the signature after the fact
7542         (decode_header_data): require signature field for the known
7543         message types
7544
7545         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7546
7547         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7548
7549 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7550
7551         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7552
7553         * mono/Handler.cs: Updated to follow new path argument for
7554         (un-)registering objects.
7555
7556         * mono/example/Makefile.am:
7557         * mono/Makefile.am:
7558         * configure.in: Bumped required version for mono and use new -pkg
7559         syntax for deps
7560
7561 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7562
7563         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7564         registration functions take the path argument as char* instead of
7565         char**.
7566
7567         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7568         split off the path decompostion part of
7569         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7570         warnings. 
7571
7572         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7573         
7574 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7575  
7576         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7577         machine approach.  A state is implemented as a function that
7578         handles incoming events as specified for that state.
7579         
7580         * doc/dbus-specification.xml: Update auth protocol state machine
7581         specification to match implementation.  Remove some leftover
7582         base64 examples.
7583
7584 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7585
7586         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7587         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7588         quiet doxygen.
7589
7590         * Doxyfile.in: remove deprecated options.
7591
7592         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7593         glib/test-thread.h, glib/test-thread-client.c,
7594         glib/test-thread-server.c, glib/test-profile.c,
7595         glib/test-dbus-glib.c: remove these unused files.
7596
7597 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7598
7599         * dbus/dbus-object-tree.c
7600         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7601         non-fallback handlers (bug #684).
7602         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7603         (find_subtree_recurse): report wether the returned subtree is an
7604         exact match or a "fallback" match higher up in the tree.
7605         (object_tree_test_iteration): update test case.
7606
7607 2004-06-01  Seth Nickell  <seth@gnome.org>
7608
7609         * python/dbus_bindings.pyx.in:
7610         * python/tests/test-client.py:
7611
7612         Round off basic type support. Add dicts (yay!), and 
7613         remaining array types.
7614
7615         Make MessageIter more general so it works for dicts too.
7616
7617         Mark all loop variables as C integers.
7618         
7619 2004-05-31  Havoc Pennington  <hp@redhat.com>
7620
7621         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7622         "in" before "out"
7623
7624         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7625
7626         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7627         option that runs the tests, and start filling in some code
7628         including for starters just dumping the interfaces to stdout
7629
7630         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7631
7632         * test/data/valid-introspection-files/lots-of-types.xml: test of
7633         an example introspection file
7634
7635         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7636         "node" (I think...)
7637
7638 2004-05-31  Seth Nickell  <seth@gnome.org>
7639
7640         * python/dbus_bindings.pyx.in:
7641         * python/tests/test-client.py:
7642
7643         Test Suite: 1
7644         Python Bindings: 0
7645
7646         Fix string array memory trashing bug... oops...
7647
7648 2004-05-30  Seth Nickell  <seth@gnome.org>
7649
7650         * python/dbus.py:
7651
7652         Add a nicer-but-less-flexible alternate API for handling 
7653         calls to virtual objects in dbus.ObjectTree.
7654
7655         Screw up the argument order to the dbus.Object constructor
7656         for consistency with dbus.ObjectTree (and to make dbus_methods
7657         optional for future extension)
7658         
7659         * python/examples/Makefile.am:
7660         * python/examples/gconf-proxy-service.py:
7661         * python/examples/gconf-proxy-service2.py:
7662
7663         Alternate implementation of gconf-proxy-service using the
7664         nicer dbus.ObjectTree API.
7665         
7666         * python/examples/example-service.py:
7667         * python/tests/test-server.py
7668
7669         Reverse the argument order to deal with dbus.Object constructor
7670         changes.
7671         
7672 2004-05-30  Seth Nickell  <seth@gnome.org>
7673
7674         * python/examples/example-client.py:
7675         * python/examples/example-service.py:
7676
7677         Take it back. Lists seem to work but they're broken
7678         in the test suite. Make the base examples use
7679         lists (works fine).
7680
7681 2004-05-30  Seth Nickell  <seth@gnome.org>
7682
7683         * python/dbus_bindings.pyx.in:
7684         * python/tests/test-client.py:
7685
7686         Add some more tests and fix errors that crop up.
7687         Unfortunately, currently it seems like marshalling
7688         and unmarshalling of lists is completely broken :-(
7689
7690 2004-05-30  Seth Nickell  <seth@gnome.org>
7691
7692         * python/dbus_bindings.pyx.in:
7693
7694         Add support for ObjectPath type.
7695
7696         * python/dbus.py:
7697
7698         Refactor message handling code to a common function.
7699         
7700         * python/tests/test-client.py:
7701         * python/tests/test-server.py:
7702
7703         Add tests that check to make sure values of all types
7704         can be echoed from a service w/o mangling.
7705         
7706 2004-05-29  Seth Nickell  <seth@gnome.org>
7707
7708         * python/dbus.py:
7709
7710         Add ObjectTree class which allows implementation
7711         of trees of "virtual" objects. Basically the python
7712         wrapper for "register_fallback".
7713         
7714         * python/examples/Makefile.am
7715         * python/examples/gconf-proxy-client.py:
7716         * python/examples/gconf-proxy-service.py:
7717
7718         Implement a simple GConf proxy service that supports
7719         get/set on string and int GConf keys using the ObjectTree.
7720         
7721 2004-05-29  Seth Nickell  <seth@gnome.org>
7722
7723         * python/dbus.py:
7724         * python/examples/example-client.py:
7725         * python/examples/example-service.py:
7726         * python/examples/list-system-services.py:
7727
7728         Add SessionBus, SystemBus and ActivationBus classes
7729         so you don't need to know the special little BUS_TYPE
7730         flag.
7731         
7732 2004-05-29  Havoc Pennington  <hp@redhat.com>
7733
7734         * bus/config-parser.c (process_test_valid_subdir): temporarily
7735         stop testing config parser OOM handling, since expat has issues
7736         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7737
7738         * bus/dbus-daemon-1.1.in: change requested_reply to
7739         send_requested_reply/receive_requested_reply so we can send the
7740         replies, not just receive them.
7741
7742         * bus/config-parser.c: parse the new
7743         send_requested_reply/receive_requested_reply
7744
7745         * bus/policy.c (bus_client_policy_check_can_send): add
7746         requested_reply argument and use it
7747
7748         * bus/bus.c (bus_context_check_security_policy): pass through
7749         requested_reply status to message send check
7750
7751         * bus/system.conf.in: adapt to requested_reply change
7752         
7753 2004-05-28  Havoc Pennington  <hp@redhat.com>
7754
7755         * test/glib/test-service-glib.c (main): remove unused variable
7756
7757         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7758
7759         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7760         from the enum, no longer in use.
7761
7762         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7763         works right.
7764
7765         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7766         whether error_name passed in is a valid error name.
7767
7768 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7769
7770         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7771         OBJECT_PATH and OBJECT_PATH_ARRAY
7772
7773 2004-05-28  Seth Nickell  <seth@gnome.org>
7774
7775         * python/examples/Makefile.am:
7776
7777         Forget to add Makefile.am. Do not pass go.
7778
7779 2004-05-28  Michael Meeks  <michael@ximian.com>
7780
7781         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7782         fix no int64 case.
7783
7784         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7785
7786         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7787         (_dbus_message_iter_get_basic_type_array): impl.
7788         drastically simplify ~all relevant _get methods to use these.
7789         (_dbus_message_iter_append_basic_array),
7790         (dbus_message_iter_append_basic): impl
7791         drastically simplify ~all relevant _append methods to use these.
7792
7793         * dbus/dbus-message-builder.c (parse_basic_type) 
7794         (parse_basic_array, lookup_basic_type): impl.
7795         (_dbus_message_data_load): prune scads of duplicate /
7796         cut & paste coding.
7797
7798         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7799         (_dbus_demarshal_basic_type): implement,
7800         (demarshal_and_validate_len/arg): beef up debug.
7801         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7802
7803 2004-05-27  Seth Nickell  <seth@gnome.org>
7804
7805         * configure.in:
7806         * python/Makefile.am:
7807
7808         Include the example python apps in the tarball.
7809         
7810         * python/examples/list-system-services.py
7811
7812         Add a python new example that fetches the list of services
7813         from the system bus.
7814         
7815 2004-05-27  Seth Nickell  <seth@gnome.org>
7816
7817         * python/dbus.py:
7818         * python/dbus_bindings.pyx.in:
7819
7820         Fix failure to notify that a signal was not handled,
7821         resulted in hung functions.
7822         
7823 2004-05-25  Colin Walters  <walters@redhat.com>
7824
7825         * tools/dbus-monitor.c (main): Monitor all types of messages.
7826
7827 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7828
7829         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7830         which unregisters the object path and disposes the handler.
7831
7832 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7833  
7834         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7835          
7836         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7837         operands to && so we call dbus_message_iter_next () for the last
7838         argument also.
7839
7840 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7841
7842         * dbus/dbus-object-tree.c
7843         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7844         children even if the requested path isn't registered.
7845         (object_tree_test_iteration): test object_tree_list_registered.
7846
7847         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7848         it to 0.
7849         
7850 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7851
7852         * doc/TODO: Remove resolved items.
7853
7854         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7855         field.
7856         
7857         * bus/connection.c (bus_connections_expect_reply): Enforce the
7858         per-connection limit on pending replies.
7859         
7860         Patch from Jon Trowbridge <trow@ximian.com>:
7861  
7862         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7863         up a watch that triggers a config reload when one end of the pipe
7864         becomes readable.
7865         (signal_handler): Instead of doing the config reload in our SIGHUP
7866         handler, just write to the reload pipe and let the associated
7867         watch handle the reload when control returns to the main loop.
7868  
7869         * bus/driver.c (bus_driver_handle_reload_config): Added.
7870         Implements a ReloadConfig method for requesting a configuration
7871         file reload via the bus driver.
7872  
7873 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7874
7875         * HACKING: Updated release instructions concerning the wiki page.
7876
7877 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7878
7879         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7880         filter against auth->allowed_mechs; we only add allowed mechs in
7881         record_mechanisms().
7882  
7883         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7884         ALLOWED_MECHS to auth-script format so we can set the list of
7885         allowed mechanisms.
7886  
7887         * data/auth/client-out-of-mechanisms.auth-script: New test to
7888         check client disconnects when it is out of mechanisms to try.
7889  
7890         * dbus/dbus-auth.c (process_command): Remove check for lines
7891         longer that 1 MB; we only buffer up maximum 16 kB.
7892  
7893         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7894         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7895         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7896         assume there might be unused bytes.
7897  
7898         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7899         client-out-of-mechs, it is handled in process_reject(). Move check
7900         for max failures to send_rejected(), as it's a server-only thing.
7901
7902         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7903         send_auth(), send_data(), send_rejected(), send_error(),
7904         send_ok(), send_begin() and send_cancel().
7905
7906 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7907
7908         Remove base64 encoding, replace with hex encoding. Original patch
7909         from trow@ximian.com, added error handling.
7910
7911         * dbus/dbus-string.c (_dbus_string_base64_encode)
7912         (_dbus_string_base64_decode): Remove.
7913         (_dbus_string_hex_decode): Add end_return argument so we can
7914         distinguish between OOM and invalid hex encoding.
7915         (_dbus_string_test): Remove base64 tests and add test case for
7916         invalid hex.
7917
7918         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7919         Replace base64 with hex.
7920
7921         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7922         for invalid hex encoded data in auth protocol.
7923
7924 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7925
7926         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7927         leak.
7928
7929 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7930
7931         * mono/dbus-sharp.dll.config.in: Added for GAC
7932         * mono/dbus-sharp.snk: Added for GAC
7933         * mono/Assembly.cs.in: Added for GAC
7934         * mono/Makefile.am: Changes for GAC installation        
7935         * configure.in: Added refs for dbus-sharp.dll.config.in and
7936         Assembly.cs.in. More fixes for mono testing
7937         * mono/example/Makefile.am: Changed var to CSC
7938         * Makefile.am: Changed flag name to DBUS_USE_CSC
7939
7940 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7941
7942         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7943         * mono/doc/*: Added documentation framework
7944         * configure.in: Added monodoc check
7945         * README: Added description of mono configure flags
7946
7947 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7948
7949         * doc/dbus-specification.xml: Added a "Required" column to the 
7950         header fields table and changed the "zero or more" verbage in
7951         the above paragraph to read "The header must contain the required 
7952         named header fields and zero or more of the optional named header 
7953         fields".
7954         * test/data/invalid-messages/*.message: Added the required PATH 
7955         named header field to the tests so that they don't fail on 
7956         'Missing path field'
7957
7958 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7959
7960         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7961         the stack by implicitly defining variable and parameter types and
7962         removing the hack of defining C pointers as python objects and later
7963         casting them.
7964
7965 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7966
7967         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7968
7969 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7970
7971         * mono/DBusType/Dict.cs: Handle empty dicts
7972         * mono/DBusType/Array.cs: Handle empty arrays
7973         * mono/Arguments.cs: Handle empty arguments
7974
7975 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7976
7977         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7978         field
7979
7980 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7981
7982         * test/data/valid-messages/standard-*.message: Update message
7983         test scripts to new header field names.
7984
7985 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7986
7987         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7988         overflow to times_we_did_each_thing array which would chop off the
7989         first character of the failure_dir string. Increased the size of
7990         the array to 7 to reflect the number of random mutation functions
7991         we have.
7992
7993 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7994
7995         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7996         unix_server->watch here, it is unreffed in disconnect.
7997         (_dbus_server_new_for_tcp_socket): convert NULL host to
7998         "localhost" here so we don't append NULL to address.
7999         
8000         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8001         various addresses, including tcp with no explicit host.
8002
8003 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8004
8005         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8006         fix incorrect setting of .name_offset in the HeaderField (it was
8007         off by two bytes, positioned right after the name and typecode)
8008
8009         * bus/bus.c (bus_context_new, bus_context_unref): test before
8010         calling dbus_server_free_data_slot and _dbus_user_database_unref
8011         in case of an error.
8012
8013         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8014         by libdbus-gtool.
8015
8016 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8017
8018         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8019         _dbus_poll() instead of select().
8020
8021 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8022
8023         * bus/main.c (signal_handler): Reload the configuration files
8024         on SIGHUP.
8025         (main): Set up our SIGHUP handler.
8026
8027         * bus/bus.c (struct BusContext): Store the config file, user and
8028         fork flag in the BusContext.
8029         (process_config_first_time_only): Added.  Contains the code
8030         (previously in bus_context_new) for setting up the BusContext from
8031         the BusConfigParser that should only be run the first time the
8032         config files are read.
8033         (process_config_every_time): Added.  Contains the code (previously
8034         in bus_context_new) for setting up the BusContext from the
8035         BusConfigParser that should be run every time the config files are
8036         read.
8037         (load_config): Added.  Builds a BusConfigParser from the config
8038         files and passes the resulting structure off to
8039         process_config_first_time_only (assuming this is the first time)
8040         and process_config_every_time.
8041         (bus_context_new): All of the config-related code has been moved
8042         to process_config_first_time_only and process_config_every_time.
8043         Now this function just does the non-config-related initializations
8044         and calls load_config.
8045         (bus_context_reload_config): Added.
8046
8047 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8048
8049         * bus/driver.c (bus_driver_handle_get_service_owner):
8050         implement a GetServiceOwner method.
8051         * doc/dbus-specification.xml: document it.
8052         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8053         
8054         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8055         implement, using the bus GetServiceOwner method.
8056
8057         * test/glib/test-dbus-glib.c:
8058         use dbus_gproxy_new_for_service_owner so that we can receive the
8059         signal. 
8060
8061 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8062
8063         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8064         dbus/dbus-message.c, dbus/dbus-protocol.h
8065         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8066
8067         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8068         dbus/dbus-message.c, dbus/dbus-protocol.h
8069         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8070
8071         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8072         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8073         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8074
8075         * doc/dbus-specification.xml (Header Fields Table):
8076         s/SERVICE/DESTINATION
8077         s/SENDER_SERVICE/SENDER
8078
8079
8080 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8081
8082         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8083         a few seconds.
8084
8085 2004-04-13  Michael Meeks  <michael@ximian.com>
8086
8087         * glib/dbus-gobject.c (handle_introspect): split out
8088         (introspect_properties): this.
8089         (handle_introspect): implement this.
8090
8091         * test/glib/Makefile.am: use the absolute path so the bus
8092         daemon's chdir ("/") doesn't kill us dead.
8093
8094         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8095
8096 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8097
8098         * bus/config-parser.c (struct BusConfigParser): Added
8099         included_files field.
8100         (seen_include): Added.  Checks whether or not a file has already
8101         been included by any parent BusConfigParser.
8102         (bus_config_parser_new): Copy the parent's included_files.
8103         (include_file): Track which files have been included, and fail on
8104         circular inclusions.
8105         (process_test_valid_subdir): Changed printf to report if we are
8106         testing valid or invalid conf files.
8107         (all_are_equiv): Changed printf to be a bit clearer about
8108         what we are actually doing.
8109         (bus_config_parser_test): Test invalid configuration files.
8110
8111 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8112
8113         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8114         argument.  If non-null, the newly-constructed BusConfigParser will
8115         be initialized with the parent's BusLimits instead of the default
8116         values.
8117         (include_file): When including a config file, pass in
8118         the current parser as the parent and then copy the BusLimits
8119         from the included BusConfigParser pack to the current parser.
8120         (process_test_valid_subdir): Renamed from process_test_subdir.
8121         (process_test_equiv_subdir): Added.  Walks through a directory,
8122         descending into each subdirectory and loading the config files
8123         it finds there.  If any subdirectory contains two config files
8124         that don't produce identical BusConfigParser structs, fail.
8125         For now, the BusConfigParser's BusPolicies are not compared.
8126         (bus_config_parser_test): Call both process_test_valid_subdir and
8127         process_test_equiv_subdir.
8128
8129         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8130         argument and pass it along to the call to bus_config_parser_new.
8131         Also made a few small changes to allow this code to compile.
8132
8133         * bus/config-loader-expat.c (bus_config_load): Take a parent
8134         argument and pass it along to the call to bus_config_parser_new.
8135
8136         * bus/bus.c (bus_context_new): Load the config file
8137         with a NULL parent argument.
8138
8139 2004-03-29  Michael Meeks  <michael@ximian.com>
8140
8141         * glib/dbus-gobject.c (introspect_properties): split
8142         out, fix mangled 'while' flow control.
8143         (introspect_signals): implement.
8144         (handle_introspect): update.
8145
8146 2004-03-29  Michael Meeks  <michael@ximian.com>
8147
8148         * glib/dbus-gobject.c (set_object_property): split out / 
8149         re-work, use the property type, and not the message type(!)
8150         (get_object_property): ditto.
8151
8152         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8153         (dbus_gvalue_marshal): make this code re-usable, needed
8154         for signals too, also on both proxy and server side.
8155         Re-write for more efficiency / readability.
8156
8157 2004-03-29  Michael Meeks  <michael@ximian.com>
8158
8159         * dbus/dbus-message.c
8160         (dbus_message_new_error_printf): impl.
8161
8162         * dbus/dbus-connection.c
8163         (dbus_connection_unregister_object_path): fix warning.
8164
8165         * configure.in: fix no-mono-installed situation.
8166
8167 2004-03-27  Havoc Pennington  <hp@redhat.com>
8168
8169         Patch from Timo Teräs:
8170         
8171         * tools/dbus-send.c (main): if --print-reply, assume type is
8172         method call; support boolean type args
8173         
8174         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8175         bunch of memleak and logic bugs
8176         
8177 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8178
8179         * mono/Arguments.cs:
8180         * mono/Introspector.cs:
8181         * mono/Handler.cs:
8182         * mono/InterfaceProxy.cs:
8183         * mono/Message.cs
8184         * mono/ProxyBuilder.cs:
8185         * mono/Service.cs:
8186         Added InterfaceProxy class to avoid building proxies for every
8187         object.
8188
8189         * dbus-message.h:
8190         * dbus-message.c (dbus_message_append_args_valist)
8191         (dbus_message_iter_get_object_path)
8192         (dbus_message_iter_get_object_path_array)
8193         (dbus_message_iter_append_object_path)
8194         (dbus_message_iter_append_object_path_array):
8195         Added object_path iter functions to handle OBJECT_PATH arguments
8196         
8197 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8198
8199         First checkin of mono bindings.
8200         * configure.in:
8201         * Makefile.am:
8202         Build stuff for the bindings
8203         * dbus-sharp.pc.in: Added for pkgconfig
8204         
8205 2004-03-21  Havoc Pennington  <hp@redhat.com>
8206
8207         * test/test-service.c (main): remove debug spew
8208
8209 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8210
8211         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8212         arrays
8213
8214         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8215         (dbus_message_iter_init_array_iterator)
8216         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8217         indicate whether the iterator is empty
8218
8219         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8220         warnings
8221
8222 2004-03-19  Havoc Pennington  <hp@redhat.com>
8223
8224         * NEWS: 0.21 updates
8225
8226         * configure.in: 0.21
8227
8228         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8229         
8230         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8231         you don't need pyrex to make dist
8232
8233         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8234         sources; run moc
8235         
8236 2004-03-18  Richard Hult  <richard@imendio.com>
8237
8238         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8239         (dbus_message_set_auto_activation): Add doxygen docs.
8240
8241 2004-03-16  Richard Hult  <richard@imendio.com>
8242
8243         * bus/activation.c: (bus_activation_service_created),
8244         (bus_activation_send_pending_auto_activation_messages),
8245         (bus_activation_activate_service):
8246         * bus/activation.h:
8247         * bus/dispatch.c: (bus_dispatch),
8248         (check_nonexistent_service_auto_activation),
8249         (check_service_auto_activated),
8250         (check_segfault_service_auto_activation),
8251         (check_existent_service_auto_activation), (bus_dispatch_test):
8252         * bus/driver.c: (bus_driver_handle_activate_service):
8253         * bus/services.c: (bus_registry_acquire_service):
8254         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8255         (dbus_message_get_auto_activation):
8256         * dbus/dbus-message.h:
8257         * dbus/dbus-protocol.h: Implement auto-activation.
8258         
8259         * doc/dbus-specification.xml: Add auto-activation to the spec.
8260
8261 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8262
8263         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8264         fix a bug with CUSTOM types.
8265
8266         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8267         a unit test for this bug (used to fail).
8268
8269 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8270
8271         * bus/activation.c:
8272         (babysitter_watch_callback): notify all pending activations waiting for
8273           the same exec that the activation failed.
8274         (bus_activation_activate_service): shortcut the activation if we 
8275           already waiting for the same executable to start up.
8276
8277 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8278
8279         * bus/activation.c: 
8280         - Added service file reloading. 
8281           Each service files directory is kept in an hash table in 
8282           BusActivation and each BusActivationEntry knows what .service-file it
8283           was read from. So when you try to activate a service the bus will 
8284           check if it's been updated, removed or if new .service-files has 
8285           been installed.
8286         - Test code at the bottom for the service file reloading.
8287         * bus/test-main.c: (main):
8288         * bus/test.h:
8289         - added service reloading test.
8290         * dbus/dbus-sysdeps.c: 
8291         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8292
8293 2004-03-08  Michael Meeks  <michael@ximian.com>
8294
8295         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8296         bail immediately if disconnected, to avoid busy loop.
8297
8298         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8299         cleanup cut/paste/inefficiency.
8300
8301 2004-03-01  David Zeuthen  <david@fubar.dk>
8302
8303         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8304         bug where args were used twice. This bug resulted in a segfault
8305         on a Debian/PPC system when starting the messagebus daemon. Include
8306         dbus-sysdeps.h for DBUS_VA_COPY
8307
8308         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8309
8310         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8311         appropriate va_copy implementation. From GLib
8312         
8313 2004-02-24  Joe Shaw  <joe@ximian.com>
8314
8315         * bus/services.c (bus_registry_acquire_service): We need to pass
8316         in the service name to dbus_set_error() to prevent a crash.
8317
8318 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8319
8320         * AUTHORS: Reveal my True identity.
8321
8322 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8323
8324         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8325         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8326
8327 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8328
8329         * doc/TODO: Added not about better error check of configuration files.
8330
8331 2003-12-02  Richard Hult  <richard@imendio.com>
8332
8333         * Update AFL version to 2.0 throughout the source files to reflect
8334         the update that was done a while ago.
8335
8336 2003-12-02  Richard Hult  <richard@imendio.com>
8337
8338         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8339         wrote_dict_key to FALSE on the iter that the dict is appended to,
8340         just like when appending other types. Fixes a bug where a dict
8341         couldn't be put inside a dict.
8342         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8343         (message_iter_test, _dbus_message_test): Add test case for dict
8344         inside dict.
8345
8346 2003-12-01  David Zeuthen  <david@fubar.dk>
8347
8348         * python/dbus.py: Add the actual message when calling the reciever
8349         of a signal such that parameters can be inspected. Add the method
8350         remove_signal_receiver
8351         
8352 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8353
8354         * bus/*.[ch]:
8355         * dbus/*.[ch]:
8356         * glib/*.[ch]: Made ref functions return the pointer
8357
8358 2003-11-25  Zack Rusin  <zack@kde.org>
8359
8360         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8361
8362         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8363         wrappers,
8364
8365         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8366         the Integrator and to better fit with the server,
8367
8368 2003-11-24  Zack Rusin  <zack@kde.org>
8369
8370         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8371         the integrator handles it now
8372
8373         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8374         since QTimer wasn't really meant to be used the way DBusTimeout is
8375
8376 2003-11-24  Zack Rusin  <zack@kde.org>
8377
8378         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8379         Integrator class which integrates D-BUS with the Qt event loop,
8380
8381         * qt/connection.h, qt/connection.cpp: Move all the code which
8382         was dealing with D-BUS integration to the Integrator class,
8383         and start using Integrator,
8384
8385 2003-11-23  Zack Rusin  <zack@kde.org>
8386
8387         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8388         wrapper
8389
8390         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8391         switching namespaces to DBusQt, reworking the class,
8392
8393         * Makefile.cvs: switching dependencies so that it matches KDE 
8394         schematics,
8395         
8396         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8397         the library
8398
8399 2003-11-19  Havoc Pennington  <hp@redhat.com>
8400
8401         * NEWS: update
8402
8403         * configure.in: bump version to 0.20
8404
8405         * configure.in (have_qt): add yet another place to look for qt
8406         (someone hand trolltech a .pc file...)
8407
8408 2003-11-01  Havoc Pennington  <hp@redhat.com>
8409
8410         * doc/dbus-specification.xml: add state machine docs on the auth
8411         protocol; just a first draft, I'm sure it's wrong.      
8412
8413 2003-10-28  David Zeuthen  <david@fubar.dk>
8414
8415         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8416         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8417         
8418 2003-10-28  Havoc Pennington  <hp@redhat.com>
8419
8420         * dbus/dbus-message.c (get_next_field): delete unused function
8421
8422 2003-10-28  Havoc Pennington  <hp@redhat.com>
8423
8424         * bus/expirelist.c (do_expiration_with_current_time): detect
8425         failure of the expire_func due to OOM
8426
8427         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8428
8429         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8430         NoReply error that's now created by the bus when the service exits
8431
8432 2003-10-28  Havoc Pennington  <hp@redhat.com>
8433
8434         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8435         tests for set_path, set_interface, set_member, etc.
8436
8437         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8438
8439         * dbus/dbus-message.c (set_string_field): always just delete and
8440         re-append the field; accept NULL for deletion
8441         (re_align_fields_recurse): reimplement
8442         
8443 2003-10-26  Havoc Pennington  <hp@redhat.com>
8444
8445         * dbus/dbus-connection.c: fix docs to properly describe the
8446         disconnected message
8447         (_dbus_connection_notify_disconnected): remove this function; 
8448         we can't synchronously add the disconnected message, we have to 
8449         do it after we've queued any remaining real messages
8450         (_dbus_connection_get_dispatch_status_unlocked): queue the
8451         disconnect message only if the transport has finished queueing all
8452         its real messages and is disconnected.
8453         (dbus_connection_disconnect): update the dispatch status here
8454
8455 2003-10-22  Havoc Pennington  <hp@redhat.com>
8456
8457         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8458
8459         * bus/connection.c (bus_transaction_send_from_driver): set the
8460         destination to the connection's base service
8461
8462 2003-10-20  Havoc Pennington  <hp@redhat.com>
8463
8464         hmm, make check is currently not passing.
8465         
8466         * doc/dbus-specification.xml: add requirement that custom type
8467         names follow the same rules as interface names.
8468
8469         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8470         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8471         'map'
8472
8473         * doc/dbus-specification.xml: update type codes to match
8474         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8475         CUSTOM. Add type OBJECT_PATH to the spec.
8476
8477 2003-10-17  Havoc Pennington  <hp@redhat.com>
8478
8479         * bus/driver.c (create_unique_client_name): use "." as separator
8480         in base service names instead of '-'
8481
8482         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8483         byte at the end of the string
8484
8485         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8486         optimization macros since string validation seems to be a slow
8487         point.
8488         
8489         * doc/dbus-specification.xml: restrict valid
8490         service/interface/member/error names. Add test suite code for the
8491         name validation.
8492
8493         * dbus/dbus-string.c: limit service/interface/member/error names 
8494         to [0-9][A-Z][a-z]_
8495
8496         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8497         format arg to verbose spew
8498
8499         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8500         memory, return instead of g_error
8501
8502         * test/test-service.c (path_message_func): support emitting a
8503         signal on request
8504
8505         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8506         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8507         assuming the activation bus was the session bus so that services
8508         started manually will still register.
8509         (init_connections_unlocked): fix so that in OOM situation we get
8510         the same semantics when retrying the function
8511         
8512         * test/test-service.c (main): change to use path registration, to
8513         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8514         than DBUS_BUS_SESSION
8515
8516 2003-10-16  Havoc Pennington  <hp@redhat.com>
8517
8518         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8519
8520         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8521         coverage of the tests
8522         (coverage-report.txt): don't move the .da and .bbg files around
8523
8524 2003-10-16  Havoc Pennington  <hp@redhat.com>
8525
8526         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8527         to put there
8528
8529 2003-10-16  Havoc Pennington  <hp@redhat.com>
8530
8531         * bus/connection.c (bus_pending_reply_expired): either cancel or
8532         execute, not both
8533         (bus_connections_check_reply): use unlink, not remove_link, as we
8534         don't want to free the link; fixes double free mess
8535
8536         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8537         where no reply was received
8538
8539         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8540         fix a refcount leak
8541
8542         * bus/signals.c (match_rule_matches): add special cases for the
8543         bus driver, so you can match on sender/destination for it.
8544
8545         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8546         DBUS_PRINT_BACKTRACE is set
8547
8548         * dbus/dbus-internals.c: add pid to assertion failure messages
8549
8550         * dbus/dbus-connection.c: add message type code to the debug spew
8551
8552         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8553         sender=foo not service=foo
8554
8555         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8556         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8557         DBUS_ACTIVATION_ADDRESS instead
8558
8559         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8560         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8561
8562         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8563         context struct
8564
8565         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8566         (dbus_message_iter_get_object_path_array): new function (half
8567         finished, disabled for the moment)
8568         
8569         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8570         DBUS_MESSAGE_TYPE_ERROR
8571
8572         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8573         avoid redirecting stderr to /dev/null
8574         (babysit): close stdin if not doing the "exit_with_session" thing
8575
8576         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8577         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8578         stdout/stdin, so things don't get confused
8579         
8580         * bus/system.conf.in: fix to allow replies, I modified .conf
8581         instead of .conf.in again.
8582
8583 2003-10-14  David Zeuthen  <david@fubar.dk>
8584
8585         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8586         argtype to arg_type when raising unknown arg type exception.
8587         Changed type list to reflect the changes in dbus-protocol.h so 
8588         the bindings actually work.
8589
8590 2003-10-14  Havoc Pennington  <hp@redhat.com>
8591
8592         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8593         to have a bug keeping it from outputting the .da files sometimes
8594         (string_get_string): don't append garbage nul bytes to the string.
8595
8596 2003-10-15  Seth Nickell  <seth@gnome.org>
8597
8598         * python/Makefile.am:
8599
8600         Include dbus_h_wrapper.h in the dist tarball.
8601
8602 2003-10-14  Havoc Pennington  <hp@redhat.com>
8603
8604         * bus/bus.c (bus_context_check_security_policy): revamp this to
8605         work more sanely with new policy-based requested reply setup
8606
8607         * bus/connection.c (bus_transaction_send_from_driver): set bus
8608         driver messages as no reply
8609
8610         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8611         requested_reply attribute on allow/deny rules
8612
8613         * bus/system.conf: add <allow requested_reply="true"/>
8614
8615         * bus/driver.c (bus_driver_handle_message): fix check for replies
8616         sent to the bus driver, which was backward. How did this ever work
8617         at all though? I think I'm missing something.
8618
8619         * dbus/dbus-message.c (decode_header_data): require error and
8620         method return messages to have a reply serial field to be valid
8621         (_dbus_message_loader_queue_messages): break up this function;
8622         validate that reply serial and plain serial are nonzero; 
8623         clean up the OOM/error handling.
8624         (get_uint_field): don't return -1 from this
8625         (dbus_message_create_header): fix signed/unsigned bug
8626
8627         * bus/connection.c (bus_connections_expect_reply): save serial of
8628         the incoming message, not reply serial
8629
8630 2003-10-14  Havoc Pennington  <hp@redhat.com>
8631
8632         * bus/connection.c: implement pending reply tracking using
8633         BusExpireList
8634
8635         * bus/bus.c (bus_context_check_security_policy): verify that a
8636         reply is pending in order to allow a reply to be sent. Deny 
8637         messages of unknown type.
8638
8639         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8640
8641         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8642         (bus_context_get_reply_timeout): new
8643
8644 2003-10-13  Seth Nickell  <seth@gnome.org>
8645
8646         * python/Makefile.am:
8647
8648         Pass "make distcheck": remove a couple files from DIST_FILES
8649         that weren't included in the final version.
8650
8651 2003-10-12  Havoc Pennington  <hp@pobox.com>
8652
8653         Added test code that 1) starts an actual bus daemon and 2) uses
8654         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8655         more testing possible, but this is the basic framework.
8656         
8657         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8658         empty proxy lists from the proxy list hash
8659
8660         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8661         couple of return_if_fail checks
8662
8663         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8664         to allocate, so everything is cleared to NULL as it should be.
8665
8666         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8667         source as data to dbus_connection_set_timeout_functions() as the 
8668         timeout functions expected
8669
8670         * test/glib/run-test.sh: add a little script to start up a message
8671         bus and run tests using it
8672
8673         * tools/dbus-launch.1: updates
8674
8675         * tools/dbus-launch.c (main): add --config-file option
8676
8677         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8678         that could never be reached.
8679
8680         * dbus/dbus-message.c (dbus_message_new_method_return) 
8681         (dbus_message_new_error, dbus_message_new_signal): set the
8682         no-reply-expected flag on all these. Redundant, but may
8683         as well be consistent.
8684
8685 2003-10-11  Havoc Pennington  <hp@pobox.com>
8686
8687         * test/decode-gcov.c (function_solve_graph): make broken block
8688         graph a nonfatal error since it seems to be broken. Need to debug
8689         this.
8690
8691         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8692         can't just check type > INVALID < LAST anymore
8693
8694         * dbus/dbus-message.c (dbus_message_get_signature): new function
8695         (dbus_message_has_signature): new function
8696         (struct DBusMessage): add signature field (right now it isn't sent
8697         over the wire, just generated on the fly)
8698         (dbus_message_copy): copy the signature, and init strings to
8699         proper length to avoid some reallocs
8700         (dbus_message_iter_init_array_iterator): return void, since it
8701         can't fail
8702         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8703         (_dbus_message_loader_queue_messages): add silly temporary hack to
8704         fill in message->signature on load
8705
8706         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8707         characters, so they are relatively human-readable.
8708
8709 2003-10-11  Havoc Pennington  <hp@pobox.com>
8710
8711         * dbus/dbus-message.c (_dbus_message_test): add more test
8712         coverage, but #if 0 for now since they uncover a bug 
8713         not fixed yet; I think in re_align_field_recurse()
8714         (re_align_field_recurse): add FIXME about broken assertion
8715
8716         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8717
8718         * bus/connection.c: share a couple code bits with expirelist.c
8719
8720         * bus/expirelist.h, bus/expirelist.c: implement a generic
8721         expire-items-after-N-seconds facility, was going to share between
8722         expiring connections and replies, decided not to use for expiring
8723         connections for now.
8724
8725         * COPYING: include AFL 2.0 (still need to change all the file headers)
8726
8727 2003-10-09  Havoc Pennington  <hp@redhat.com>
8728
8729         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8730         gcc 3.3. Not that we do anything about it yet.
8731
8732         * bus/signals.c (bus_match_rule_parse): impose max length on the
8733         match rule text
8734
8735         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8736
8737 2003-10-09  Havoc Pennington  <hp@redhat.com>
8738
8739         Make matching rules theoretically work (add parser).
8740         
8741         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8742         the case where destination is explicitly specified as bus driver
8743         and someone else is eavesdropping.
8744         
8745         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8746         definition of eavesdropping and assertion
8747
8748         * tools/dbus-send.c (main): use dbus_message_type_from_string
8749
8750         * bus/signals.c (bus_match_rule_parse): implement
8751
8752         * dbus/dbus-message.c (dbus_message_type_from_string): new
8753
8754         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8755
8756 2003-10-02  Havoc Pennington  <hp@pobox.com>
8757
8758         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8759         dbus_gproxy_oneway_call
8760
8761         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8762         (dbus_server_setup_with_g_main): fix to allow calling them more
8763         than once on the same args
8764         (dbus_bus_get_with_g_main): new function
8765
8766 2003-10-02  Havoc Pennington  <hp@redhat.com>
8767
8768         * doc/dbus-tutorial.xml: write some stuff
8769
8770 2003-09-29  Havoc Pennington  <hp@pobox.com>
8771
8772         * configure.in: split checks for Doxygen from XML docs, check for
8773         xmlto
8774
8775         * doc/Makefile.am: XML-ify all the docs, and add a blank
8776         dbus-tutorial.xml
8777
8778 2003-09-29  Havoc Pennington  <hp@pobox.com>
8779
8780         * Merge dbus-object-names branch. To see the entire patch 
8781         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8782         it's huuuuge though.
8783         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8784         
8785 2003-09-28  Havoc Pennington  <hp@pobox.com>
8786
8787         * HACKING: update to reflect new server
8788
8789 2003-09-26  Seth Nickell  <seth@gnome.org>
8790
8791         * python/dbus.py:
8792         * python/examples/example-signals.py:
8793
8794         Start implementing some notions of signals. The API
8795         is really terrible, but they sort of work (with the
8796         exception of being able to filter by service, and to
8797         transmit signals *as* a particular service). Need to
8798         figure out how to make messages come from the service
8799         we registered :-(
8800         
8801         * python/dbus_bindings.pyx.in:
8802
8803         Removed duplicate message_handler callbacks.
8804         
8805 2003-09-25  Havoc Pennington  <hp@redhat.com>
8806
8807         * bus/session.conf.in: fix my mess
8808
8809 2003-09-25  Havoc Pennington  <hp@pobox.com>
8810
8811         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8812
8813 2003-09-25  Seth Nickell  <seth@gnome.org>
8814
8815         * python/examples/example-service.py:
8816
8817         Johan notices complete wrong code in example-service, but
8818         completely wrong in a way that works exactly the same (!).
8819         Johan is confused, how could this possibly work? Example
8820         code fails to serve purpose of making things clear.
8821         Seth fixes.
8822
8823 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8824
8825         * doc/dbus-specification.sgml: don't require header fields
8826         to be 4-byte aligned and specify that fields should be
8827         distinguished from padding by the fact that zero is not
8828         a valid field name.
8829         
8830         * doc/TODO: remove re-alignment item and add item to doc
8831         the OBJECT_PATH type.
8832         
8833         * dbus/dbus-message.c:
8834         (HeaderField): rename the original member to value_offset
8835         and introduce a name_offset member to keep track of where
8836         the field actually begins.
8837         (adjust_field_offsets): remove.
8838         (append_int_field), (append_uint_field),
8839         (append_string_field): don't align the start of the header
8840         field to a 4-byte boundary.
8841         (get_next_field): impl finding the next marhsalled field
8842         after a given field.
8843         (re_align_field_recurse): impl re-aligning a number of
8844         already marshalled fields.
8845         (delete_field): impl deleting a field of any type and
8846         re-aligning any following fields.
8847         (delete_int_or_uint_field), (delete_string_field): remove.
8848         (set_int_field), (set_uint_field): no need to re-check
8849         that we have the correct type for the field.
8850         (set_string_field): ditto and impl re-aligning any
8851         following fields.
8852         (decode_header_data): update to take into account that
8853         the fields aren't 4-byte aligned any more and the new
8854         way to distinguish padding from header fields. Also,
8855         don't exit when there is too much header padding.
8856         (process_test_subdir): print the directory.
8857         (_dbus_message_test): add test to make sure a following
8858         field is re-aligned correctly after field deletion.
8859         
8860         * dbus/dbus-string.[ch]:
8861         (_dbus_string_insert_bytes): rename from insert_byte and
8862         allow the insert of multiple bytes.
8863         (_dbus_string_test): test inserting multiple bytes.
8864
8865         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8866         warning note to docs about having to re-align any
8867         marshalled values following the string.
8868         
8869         * dbus/dbus-message-builder.c:
8870         (append_string_field), (_dbus_message_data_load):
8871         don't align the header field.
8872         
8873         * dbus/dbus-auth.c: (process_test_subdir): print the
8874         directory.
8875         
8876         * test/break-loader.c: (randomly_add_one_byte): upd. for
8877         insert_byte change.
8878         
8879         * test/data/invalid-messages/bad-header-field-alignment.message:
8880         new test case.
8881         
8882         * test/data/valid-messages/unknown-header-field.message: shove
8883         a dict in the unknown field.
8884
8885 2003-09-25  Seth Nickell  <seth@gnome.org>
8886
8887         * python/dbus.py:
8888         * python/dbus_bindings.pyx.in:
8889
8890         Handle return values.
8891         
8892         * python/examples/example-client.py:
8893         * python/examples/example-service.py:
8894
8895         Pass back return values from the service to the client.
8896         
8897 2003-09-24  Seth Nickell  <seth@gnome.org>
8898
8899         * python/dbus.py:
8900
8901         Connect Object methods (when you are sharing an object) up... pass
8902         in a list of methods to be shared. Sharing all the methods just
8903         worked out too weird. You can now create nice Services over the
8904         DBus in Python. :-)
8905         
8906         * python/dbus_bindings.pyx.in:
8907
8908         Keep references to user_data tuples passed into C functions so 
8909         Python doesn't garbage collect on us.
8910
8911         Implement MethodReturn and Error subclasses of Message for creating
8912         DBusMessage's of those types.
8913         
8914         * python/examples/example-client.py:
8915         * python/examples/example-service.py:
8916
8917         Simple example code showing both how create DBus services and objects,
8918         and how to use them.
8919
8920 2003-09-23  Havoc Pennington  <hp@pobox.com>
8921
8922         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8923
8924 2003-09-23  Havoc Pennington  <hp@redhat.com>
8925
8926         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8927         (dbus_gproxy_disconnect_signal): implement
8928         (dbus_gproxy_manager_remove_signal_match): implement
8929         (dbus_gproxy_manager_add_signal_match): implement
8930         (dbus_gproxy_oneway_call): implement
8931
8932 2003-09-23  Havoc Pennington  <hp@pobox.com>
8933
8934         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8935         subclass. This means dropping the transparent thread safety of the
8936         proxy; you now need a separate proxy per-thread, or your own
8937         locking on the proxy. Probably right anyway.
8938         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8939
8940 2003-09-22  Havoc Pennington  <hp@redhat.com>
8941
8942         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8943
8944 2003-09-21  Seth Nickell  <seth@gnome.org>
8945
8946         First checkin of the Python bindings.
8947         
8948         * python/.cvsignore:
8949         * python/Makefile.am:
8950         * python/dbus_bindings.pyx.in:
8951         * python/dbus_h_wrapper.h:
8952
8953         Pieces for Pyrex to operate on, building a dbus_bindings.so
8954         python module for low-level access to the DBus APIs.
8955         
8956         * python/dbus.py:
8957
8958         High-level Python module for accessing DBus objects.
8959
8960         * configure.in:
8961         * Makefile.am:
8962
8963         Build stuff for the python bindings.
8964
8965         * acinclude.m4:
8966
8967         Extra macro needed for finding the Python C header files.
8968
8969 2003-09-21  Havoc Pennington  <hp@pobox.com>
8970
8971         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8972         implementing the proxy manager, didn't get very far.
8973
8974         * dbus/dbus-bus.c (dbus_bus_add_match): new
8975         (dbus_bus_remove_match): new
8976
8977         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8978         path_name argument; adjust the other not-yet-implemented 
8979         gproxy constructors to be what I think they should be.
8980
8981 2003-09-21  Havoc Pennington  <hp@pobox.com>
8982
8983         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8984         by default for message bus connections.
8985
8986         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8987         exit_on_disconnect flag is set and we process the disconnected
8988         signal.
8989         (dbus_connection_set_exit_on_disconnect): new function
8990
8991 2003-09-21  Havoc Pennington  <hp@pobox.com>
8992
8993         Get matching rules mostly working in the bus; only actually
8994         parsing the rule text remains. However, the client side of
8995         "signal connections" hasn't been started, this patch is only the
8996         bus side.
8997         
8998         * dbus/dispatch.c: fix for the matching rules changes
8999         
9000         * bus/driver.c (bus_driver_handle_remove_match)
9001         (bus_driver_handle_add_match): send an ack reply from these
9002         method calls
9003
9004         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9005         arguments, reported by Seth Nickell
9006
9007         * bus/config-parser.c (append_rule_from_element): support
9008         eavesdrop=true|false attribute on policies so match rules 
9009         can be prevented from snooping on the system bus.
9010
9011         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9012         and "destination" in attribute names; fix some docs bugs; 
9013         add eavesdrop=true|false attribute
9014
9015         * bus/driver.c (bus_driver_handle_add_match)
9016         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9017         messages
9018
9019         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9020         rid of broadcast service concept, signals are just always broadcast
9021
9022         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9023         mostly implement matching rules stuff (currently only exposed as signal
9024         connections)
9025
9026 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9027
9028         * doc/dbus-specification.sgml: Change the header field name
9029         to be an enum and update the rest of the spec to reference
9030         the fields using the conventinal name.
9031
9032         * dbus/dbus-protocol.h: update to reflect the spec.
9033
9034         * doc/TODO: add item to remove the 4 byte alignment requirement.
9035         
9036         * dbus/dbus-message.c: Remove the code to generalise the
9037         header/body length and serial number header fields as named
9038         header fields so we can reference field names using the 
9039         protocol values.
9040         (append_int_field), (append_uint_field), (append_string_field):
9041         Append the field name as a byte rather than four chars.
9042         (delete_int_or_uint_field), (delete_string_field): reflect the
9043         fact that the field name and typecode now occupy 4 bytes instead
9044         of 8.
9045         (decode_string_field), (decode_header_data): update to reflect
9046         protocol changes and move the field specific encoding from
9047         decode_string_field() back into decode_header_data().
9048         
9049         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9050         Add utility to aid debugging.
9051         
9052         * dbus/dbus-message-builder.c:
9053         (append_string_field), (_dbus_message_data_load): Update to
9054         reflect protocol changes; Change the FIELD_NAME directive
9055         to HEADER_FIELD and allow it to take the field's conventional
9056         name rather than the actual value.
9057         
9058         * test/data/*/*.message: Update to use HEADER_FIELD instead
9059         of FIELD_NAME; Always align the header on an 8 byte boundary
9060         *before* updating the header length.
9061
9062 2003-09-15  Havoc Pennington  <hp@pobox.com>
9063
9064         * dbus/dbus-pending-call.c: add the get/set object data
9065         boilerplate as for DBusConnection, etc. Use generic object data
9066         for the notify callback.
9067
9068         * glib/dbus-gparser.c (parse_node): parse child nodes
9069
9070         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9071         
9072         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9073         contain functions shared between the convenience lib and the
9074         installed lib
9075
9076         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9077         -export-symbols-regex to the GLib library
9078
9079         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9080         fix the locking in here, and add a default handler for
9081         Introspect() that just returns sub-nodes.
9082
9083 2003-09-14  Havoc Pennington  <hp@pobox.com>
9084
9085         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9086         rather than gfoo consistent
9087
9088         * glib/dbus-gproxy.h: delete for now, move contents to
9089         dbus-glib.h, because the include files don't work right since we
9090         aren't in the dbus/ subdir.
9091         
9092         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9093         (dbus_gproxy_end_call): finish
9094         (dbus_gproxy_begin_call): finish
9095
9096         * glib/dbus-gmain.c (dbus_set_g_error): new
9097
9098         * glib/dbus-gobject.c (handle_introspect): include information
9099         about child nodes in the introspection
9100
9101         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9102         function to help in implementation of introspection
9103
9104         * dbus/dbus-object-tree.c
9105         (_dbus_object_tree_list_registered_and_unlock): new function
9106
9107 2003-09-12  Havoc Pennington  <hp@pobox.com>
9108
9109         * glib/dbus-gidl.h: add common base class for all the foo_info
9110         types
9111
9112         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9113         similar to kdcop
9114
9115         * test/Makefile.am: try test srcdir -ef . in addition to test
9116         srcdir = ., one of them should work (yeah lame)
9117         
9118         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9119         library
9120         
9121         * glib/dbus-gparser.h: make description_load routines return
9122         NodeInfo* not Parser*
9123
9124         * Makefile.am (SUBDIRS): build test dir after all library dirs
9125
9126         * configure.in: add GTK+ detection
9127
9128 2003-09-07  Havoc Pennington  <hp@pobox.com>
9129
9130         * Make Doxygen contented.
9131
9132 2003-09-07  Havoc Pennington  <hp@pobox.com>
9133
9134         * doc/dbus-specification.sgml: more updates
9135
9136 2003-09-06  Havoc Pennington  <hp@pobox.com>
9137
9138         * doc/dbus-specification.sgml: partial updates
9139
9140         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9141         zillionth time; hopefully I edited the right file this time.
9142
9143         * bus/config-parser.c (append_rule_from_element): support
9144         send_type, send_path, receive_type, receive_path
9145
9146         * bus/policy.c: add message type and path to the list of things
9147         that can be "firewalled"
9148
9149 2003-09-06  Havoc Pennington  <hp@pobox.com>
9150
9151         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9152         (dbus_connection_register_object_path): make this not handle
9153         messages to paths below the given path
9154
9155 2003-09-03  Havoc Pennington  <hp@pobox.com>
9156
9157         * test/glib/Makefile.am: add this with random glib-linked test
9158         programs
9159
9160         * glib/Makefile.am: remove the random test programs from here,
9161         leave only the unit tests
9162
9163         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9164         uscore/javacaps conversion, and fix     
9165         (get_object_property, set_object_property): change to .NET
9166         convention for mapping props to methods, set_FooBar/get_FooBar, 
9167         since one language has such a convention we may as well copy it. 
9168         Plus real methods in either getFooBar or get_foo_bar style won't 
9169         collide with this convention.
9170
9171 2003-09-01  Havoc Pennington  <hp@pobox.com>
9172
9173         * glib/dbus-gparser.c: implement
9174
9175         * glib/dbus-gobject.c: start implementing skeletons support
9176
9177         * configure.in: when disabling checks/assert, also define
9178         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9179
9180 2003-09-01  Havoc Pennington  <hp@pobox.com>
9181
9182         * glib/Makefile.am: rearrange a bunch of files and get "make
9183         check" framework set up
9184
9185 2003-08-31  Havoc Pennington  <hp@pobox.com>
9186
9187         * fix build with --disable-tests
9188
9189 2003-08-30  Havoc Pennington  <hp@pobox.com>
9190
9191         * dbus/dbus-connection.c: purge DBusMessageHandler
9192
9193         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9194         use callbacks everywhere
9195
9196 2003-08-30  Havoc Pennington  <hp@pobox.com>
9197
9198         * test/data/valid-config-files/system.d/test.conf: change to 
9199         root for the user so warnings don't get printed
9200
9201         * dbus/dbus-message.c: add dbus_message_get_path,
9202         dbus_message_set_path
9203         
9204         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9205         dispatching to a path
9206
9207         * dbus/dbus-string.c (_dbus_string_validate_path): add
9208
9209         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9210         (_dbus_marshal_object_path): implement
9211
9212         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9213         to contain the path to the target object
9214         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9215         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9216
9217 2003-08-30  Havoc Pennington  <hp@pobox.com>
9218
9219         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9220
9221 2003-08-29  Havoc Pennington  <hp@pobox.com>
9222
9223         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9224         registered
9225         (struct DBusObjectSubtree): shrink this
9226         a lot, since we may have a lot of them
9227         (_dbus_object_tree_free_all_unlocked): implement
9228         (_dbus_object_tree_dispatch_and_unlock): implement
9229
9230 2003-08-29  Havoc Pennington  <hp@pobox.com>
9231
9232         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9233
9234 2003-08-28  Havoc Pennington  <hp@pobox.com>
9235
9236         purge DBusObjectID
9237         
9238         * dbus/dbus-connection.c: port to no ObjectID, create a
9239         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9240
9241         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9242         everything except UnregisterFunction and MessageFunction
9243         
9244         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9245         add DBUS_TYPE_OBJECT_PATH
9246         
9247         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9248         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9249         path-based object IDs
9250
9251 2003-08-25  Havoc Pennington  <hp@pobox.com>
9252
9253         Just noticed that dbus_message_test is hosed, I wonder when I
9254         broke that. I thought make check was passing earlier...
9255         
9256         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9257         container tree, will replace most of dbus-object-registry
9258
9259         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9260         screwup
9261
9262 2003-08-19  Havoc Pennington  <hp@pobox.com>
9263
9264         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9265         (dbus_message_is_error): fix this function
9266
9267         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9268         match
9269
9270         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9271         reflect clarified man page
9272         (bus_client_policy_check_can_send): ditto
9273         
9274         * bus/session.conf.in: fixup
9275
9276         * bus/system.conf.in: fixup
9277
9278 2003-08-18  Havoc Pennington  <hp@redhat.com>
9279
9280         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9281
9282         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9283         dumb bug created earlier (wrong order of args to
9284         decode_header_data())
9285         
9286         * tools/dbus-send.c: port
9287
9288         * tools/dbus-print-message.c (print_message): port
9289
9290         * test/data/*messages: port all messages over
9291         
9292         * dbus/dbus-message-builder.c: support including 
9293         message type
9294         
9295         * bus/driver.c: port over
9296         
9297         * bus/dispatch.c: port over to new stuff
9298
9299         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9300         rename disconnect signal to "Disconnected"
9301
9302 2003-08-17  Havoc Pennington  <hp@pobox.com>
9303
9304         This doesn't compile yet, but syncing up so I can hack on it from
9305         work. What are branches for if not broken code? ;-)
9306         
9307         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9308         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9309         DBUS_HEADER_FIELD_ERROR_NAME
9310         
9311         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9312         for the interface+member pairs
9313         (string_hash): change to use g_str_hash algorithm
9314         (find_direct_function, find_string_function): refactor these to
9315         share most code.
9316         
9317         * dbus/dbus-message.c: port all of this over to support 
9318         interface/member fields instead of name field
9319
9320         * dbus/dbus-object-registry.c: port over
9321         
9322         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9323         from _dbus_string_validate_name
9324
9325         * bus/dbus-daemon-1.1: change file format for the 
9326         <deny>/<allow> stuff to match new message naming scheme
9327
9328         * bus/policy.c: port over
9329
9330         * bus/config-parser.c: parse new format
9331         
9332 2003-08-16  Havoc Pennington  <hp@pobox.com>
9333
9334         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9335         broken assertion
9336
9337         * glib/dbus-gproxy.c: some hacking
9338
9339 2003-08-15  Havoc Pennington  <hp@redhat.com>
9340
9341         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9342
9343         * dbus/dbus-connection.c
9344         (dbus_connection_send_with_reply_and_block): factor out internals;
9345         change to convert any error replies to DBusError instead of 
9346         returning them as a message
9347
9348 2003-08-15  Havoc Pennington  <hp@pobox.com>
9349
9350         * dbus/dbus-connection.c, 
9351         dbus/dbus-pending-call.c: Finish the pending call stuff
9352
9353 2003-08-14  Havoc Pennington  <hp@redhat.com>
9354
9355         * dbus/dbus-pending-call.c: start on new object that will replace
9356         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9357         replies
9358
9359         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9360         with remote interfaces
9361
9362         * dbus/dbus-gidl.c: do the boring boilerplate in here
9363         
9364 2003-08-12  Havoc Pennington  <hp@pobox.com>
9365
9366         * bus/dispatch.c (bus_dispatch): make this return proper 
9367         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9368
9369         * dbus/dbus-errors.c (dbus_set_error): use
9370         _dbus_string_append_printf_valist
9371
9372         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9373         (_dbus_string_append_printf): new
9374
9375         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9376         UNKNOWN_METHOD
9377
9378         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9379         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9380         message is unhandled.
9381
9382 2003-08-11  Havoc Pennington  <hp@pobox.com>
9383
9384         * bus/test.c (client_disconnect_handler): change to return
9385         HANDLED (would have been REMOVE_MESSAGE)
9386
9387         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9388         HANDLED/NOT_YET_HANDLED instead of
9389         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9390         should be used.
9391
9392 2003-08-10  Havoc Pennington  <hp@pobox.com>
9393
9394         * tools/dbus-send.c (main): add --type argument, for now
9395         supporting only method_call and signal types.
9396
9397         * tools/dbus-print-message.c: print message type
9398
9399         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9400         init connection->objects
9401
9402         * doc/dbus-specification.sgml: fix sgml
9403
9404         * bus/*.c: port over to object-instance API changes
9405
9406         * test/test-service.c: ditto
9407         
9408         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9409         name, we will have to fix up the rest of the code to also handle
9410         this
9411         (dbus_message_new): generic message-creation call
9412         (set_string_field): allow appending name field
9413
9414 2003-08-06  Havoc Pennington  <hp@pobox.com>
9415
9416         * dbus/dbus-object-registry.c: implement signal connection 
9417         and dispatch
9418
9419         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9420
9421         * dbus/dbus-internals.c (_dbus_memdup): new function
9422
9423 2003-08-02  Havoc Pennington  <hp@pobox.com>
9424
9425         * dbus/dbus-message.c (dbus_message_get_no_reply)
9426         (dbus_message_set_no_reply): add these and remove
9427         set_is_error/get_is_error
9428
9429         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9430         remove the ERROR flag, since there's now an ERROR type
9431
9432 2003-08-01  Havoc Pennington  <hp@pobox.com>
9433
9434         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9435         implement
9436
9437         * dbus/dbus-message.c (dbus_message_get_type): new function
9438
9439         * doc/dbus-specification.sgml: add "type" byte to messages
9440
9441 2003-08-01  Havoc Pennington  <hp@pobox.com>
9442
9443         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9444         a message type enum to distinguish kinds of message
9445         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9446         that need not be replied to
9447
9448 2003-08-01  Havoc Pennington  <hp@pobox.com>
9449
9450         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9451         (unpack_8_octets): fix no-64-bit-int bug
9452
9453         * dbus/dbus-object-registry.c (validate_id): validate the 
9454         connection ID bits, not just the instance ID.
9455
9456         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9457         the connection-global 33 bits of the object ID
9458
9459         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9460         object ID in the new way
9461
9462         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9463         define server/client/instance bits.
9464
9465 2003-07-30  Havoc Pennington  <hp@pobox.com>
9466
9467         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9468         build
9469
9470 2003-07-13  Havoc Pennington  <hp@pobox.com>
9471
9472         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9473         fields to DBusObjectVTable and DBusObjectInfo
9474
9475 2003-07-12  Havoc Pennington  <hp@pobox.com>
9476
9477         * dbus/dbus-object-registry.c: implement unit test,
9478         fix bugs discovered in process
9479
9480         * dbus/dbus-connection.c: remove handler_table and
9481         register_handler(), add DBusObjectRegistry usage
9482
9483         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9484         (dbus_object_id_set_null): new functions
9485
9486 2003-07-08  Havoc Pennington  <hp@pobox.com>
9487
9488         * dbus/dbus-object.c: implement some of this
9489
9490         * dbus/dbus-object-registry.c
9491         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9492         param
9493         (_dbus_object_registry_new): handle OOM
9494
9495 2003-07-08  Havoc Pennington  <hp@pobox.com>
9496
9497         * dbus/dbus-object.h: sketch out an API for registering objects
9498         with a connection, that allows us to use as little as 24 bytes
9499         per object and lets application code represent an object in 
9500         any conceivable way.
9501
9502         * dbus/dbus-object-registry.c: implement the hard bits of the
9503         DBusConnection aspect of object API. Not yet wired up.
9504         
9505 2003-07-06  Havoc Pennington  <hp@pobox.com>
9506
9507         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9508         (_dbus_marshal_object_id): new
9509         (_dbus_demarshal_object_id): new
9510         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9511         consolidate identical switch cases. Don't conditionalize handling
9512         of DBUS_TYPE_UINT64, need to handle the type always.
9513         (_dbus_marshal_validate_arg): consolidate identical cases, and
9514         handle DBUS_TYPE_OBJECT_ID
9515
9516         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9517
9518         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9519
9520 2003-09-28  Havoc Pennington  <hp@pobox.com>
9521
9522         * real 0.13 release
9523
9524 2003-09-28  Havoc Pennington  <hp@pobox.com>
9525
9526         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9527         to work with Debian db2html
9528
9529 2003-09-28  Havoc Pennington  <hp@pobox.com>
9530
9531         * configure.in: 0.13
9532
9533         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9534         stylesheet-images for benefit of Debian
9535         
9536         Change back to using filesystem-linked sockets for the system
9537         bus, so only root can create the default system bus address.
9538         
9539         * bus/system.conf.in: change to use
9540         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9541
9542         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9543         from here.
9544
9545         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9546         here, and AC_DEFINE DBUS_SYSTEM_PATH
9547
9548 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9549
9550         * doc/TODO:
9551         * doc/busconfig.dtd:
9552         Add busconfig DTD.
9553         
9554 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9555
9556         * doc/dbus-specification.sgml:
9557         Add activation reply values.
9558         
9559 2003-08-05  Havoc Pennington  <hp@redhat.com>
9560
9561         * configure.in: 0.12
9562
9563 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9564
9565         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9566         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9567         (add_watch), (remove_watch), (create_source):
9568         Refcount fds, fixes some reentrancy issues.
9569         
9570 2003-07-30  Havoc Pennington  <hp@redhat.com>
9571
9572         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9573         bus address to be abstract if we have abstract sockets
9574
9575         * NEWS: update
9576
9577 2003-07-28  Havoc Pennington  <hp@redhat.com>
9578
9579         * bus/messagebus.in: fix to avoid processname/servicename 
9580         confusion, from Michael Kearey
9581         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9582         
9583 2003-07-23  Havoc Pennington  <hp@pobox.com>
9584
9585         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9586         fix from Andy Hanton to remove broken "+1"
9587
9588 2003-07-16  Havoc Pennington  <hp@pobox.com>
9589
9590         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9591         babysitter process, as suggested by Thomas Leonard, so 
9592         an "eval `dbus-launch --exit-with-session`" will actually 
9593         return
9594
9595 2003-07-16  Havoc Pennington  <hp@pobox.com>
9596
9597         * configure.in: print out EXPANDED_* variables in the summary at
9598         the end; clean up the code that computes EXPANDED_ variables and
9599         get the ones using exec_prefix right. Should make things work
9600         when you build without --prefix
9601
9602 2003-06-29  Havoc Pennington  <hp@pobox.com>
9603
9604         * mono/Test.cs (class Test): fire up a main loop and run it
9605
9606         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9607         done once, the app has to do it
9608
9609 2003-06-26  Havoc Pennington  <hp@pobox.com>
9610
9611         * mono/Connection.cs: set up connection with the glib main loop
9612
9613 2003-07-01  Havoc Pennington  <hp@redhat.com>
9614
9615         * doc/dbus-specification.sgml: clarify the format of a type code,
9616         change suggested by Jim Blandy
9617
9618 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9619
9620         * doc/Makefile.am:
9621         * tools/Makefile.am: Don't assume srcdir == builddir.
9622
9623         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9624         the allocated block.
9625         (_dbus_memory_test): New function.
9626         * dbus/dbus-test.h: Add _dbus_memory_test ().
9627         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9628
9629         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9630         of %c%c%c%c.
9631         (dbus_message_new): Remove obsolete @todo.
9632
9633         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9634         (_dbus_marshal_set_uint64): Fix comment.
9635
9636         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9637         hardcode FIELD_REPLY_SERIAL.
9638
9639         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9640         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9641
9642         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9643         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9644
9645 2003-06-24  Havoc Pennington  <hp@pobox.com>
9646
9647         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9648
9649 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9650
9651         * configure.in:
9652         * gcj/.cvsignore:
9653         * gcj/Hello.java:
9654         * gcj/Makefile.am:
9655         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9656         * gcj/org/.cvsignore:
9657         * gcj/org/Makefile.am:
9658         * gcj/org/freedesktop/.cvsignore:
9659         * gcj/org/freedesktop/Makefile.am:
9660         * gcj/org/freedesktop/dbus/.cvsignore:
9661         * gcj/org/freedesktop/dbus/Makefile.am:
9662         * gcj/org/freedesktop/dbus/Message.java: (Message),
9663         (Message.Message):
9664         * gcj/org/freedesktop/dbus/natMessage.cc:
9665         Fix the build system.
9666
9667 2003-06-22  Havoc Pennington  <hp@pobox.com>
9668
9669         * mono/Connection.cs: add more bindings
9670
9671         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9672         more than once.
9673
9674 2003-06-22  Havoc Pennington  <hp@pobox.com>
9675
9676         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9677         Start wrapping more stuff.
9678
9679 2003-06-22  Havoc Pennington  <hp@pobox.com>
9680
9681         * mono/Message.cs: implement Message.Wrap() that ensures we only
9682         have a single C# wrapper per DBusMessage, assuming it works which
9683         it probably doesn't.
9684
9685         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9686         (dbus_message_free_data_slot): new
9687         (dbus_message_set_data): new
9688         (dbus_message_get_data): new
9689
9690 2003-06-22  Havoc Pennington  <hp@pobox.com>
9691
9692         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9693         (_dbus_data_slot_allocator_alloc): rework these to keep a
9694         reference count on each slot and automatically manage a global
9695         slot ID variable passed in by address
9696
9697         * bus/bus.c: convert to new dataslot API
9698
9699         * dbus/dbus-bus.c: convert to new dataslot API
9700
9701         * dbus/dbus-connection.c: convert to new dataslot API
9702
9703         * dbus/dbus-server.c: convert to new dataslot API
9704
9705         * glib/dbus-gmain.c: ditto
9706
9707         * bus/test.c: ditto
9708
9709         * bus/connection.c: ditto
9710
9711 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9712
9713         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9714         after the gcj checks so that the correct configuration tags
9715         will be added to libtool.
9716
9717         * dbus-glib-1.pc.in: No need to specify any includes since
9718         dbus-1.pc.in has those.
9719
9720 2003-06-22  Havoc Pennington  <hp@pobox.com>
9721
9722         * mono/*, gcj/*, configure.in, Makefile.am:
9723         Check in makefiles and subdirs for mono and gcj bindings.
9724         Neither binding actually exists, just trying to get through
9725         all the build and other boring bits.
9726
9727 2003-06-21  Philip Blundell  <philb@gnu.org>
9728
9729         * tools/dbus-monitor.1: Updated.
9730
9731         * tools/dbus-send.1: Likewise.
9732
9733 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9734
9735         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9736         for hangup and error after checking read so we won't discard
9737         pending data if both hangup and read are set.
9738
9739 2003-06-19  Philip Blundell  <philb@gnu.org>
9740
9741         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9742
9743         * tools/dbus-send.c: Accept both --system and --session.
9744
9745         * tools/dbus-monitor.c: Same here.
9746
9747 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9748
9749         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9750         from C++ (Patch by Miloslav Trmac).
9751
9752 2003-06-15  Joe Shaw  <joe@assbarn.com>
9753
9754         * configure.in: Check for socklen_t.
9755
9756         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9757
9758         * test/test-segfault.c: Add #include <sys/time.h>
9759
9760         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9761         dbus-launch needs it.
9762
9763 2003-06-09  Havoc Pennington  <hp@redhat.com>
9764
9765         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9766         SUN_LEN, it breaks abstract socket usage
9767
9768         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9769         starts of lines.
9770
9771 2003-06-04  Havoc Pennington  <hp@pobox.com>
9772
9773         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9774         using unix:abstract=/foo, and when listening in a tmpdir
9775         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9776
9777         * dbus/dbus-transport.c (_dbus_transport_open): support
9778         unix:abstract=/foo
9779
9780         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9781         support abstract sockets
9782
9783         * dbus/dbus-transport-unix.c
9784         (_dbus_transport_new_for_domain_socket): support abstract sockets
9785
9786         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9787         toggle as an argument, implement abstract namespace support
9788         (_dbus_listen_unix_socket): ditto
9789
9790         * configure.in: add --enable-abstract-sockets and implement
9791         a configure check for autodetection of the right value.
9792
9793 2003-06-01  Havoc Pennington  <hp@pobox.com>
9794
9795         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9796         in /tmp (though on Linux this will end up being useless,
9797         when we add abstract namespace support)
9798
9799         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9800         subst'ing it
9801
9802 2003-05-28  Colin Walters  <walters@verbum.org>
9803
9804         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9805
9806 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9807
9808         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9809
9810 2003-05-17  Colin Walters  <walters@gnu.org>
9811
9812         * tools/dbus-send.c: Don't exit with an error code if --help was
9813         passed.  Default to using the session bus instead of the system
9814         one.
9815
9816         * tools/dbus-launch.c: Ditto.
9817
9818         * tools/dbus-monitor.c: Ditto.
9819
9820         * tools/dbus-send.1: Update with new arguments.
9821
9822         * tools/dbus-launch.c: Emit code to export variables.  New
9823         arguments -s and -c to specify shell syntax, and a bit of code to
9824         autodetect syntax.  Also, allow specifying a program to run.
9825
9826         * tools/dbus-launch.1: Update with new arguments.
9827
9828         * tools/dbus-send.1: Ditto.
9829
9830         * tools/dbus-monitor.1: Ditto.
9831
9832 2003-05-17  Havoc Pennington  <hp@pobox.com>
9833
9834         * bus/config-parser.c (merge_included): merge in policies from
9835         child configuration file.
9836
9837         * bus/policy.c (bus_policy_merge): function to merge two policies
9838         together
9839
9840 2003-05-16  Havoc Pennington  <hp@redhat.com>
9841
9842         * dbus/dbus-connection.c: disable verbose lock spew
9843
9844         * tools/dbus-send.c: add --print-reply command line option
9845
9846         * tools/dbus-print-message.h (print_message): new util function
9847         shared by dbus-send and dbus-monitor
9848
9849         * tools/dbus-monitor.c (handler_func): exit on disconnect
9850
9851         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9852         disconnected, don't try to use the read_watch
9853
9854         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9855         so we can find this bug more easily
9856
9857 2003-05-16  Havoc Pennington  <hp@redhat.com>
9858
9859         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9860         NULL as DBusHashTable is annoyingly likely to do.
9861
9862 2003-05-16  Colin Walters  <walters@verbum.org>
9863
9864         * tools/dbus-monitor.c: Add --session argument and usage()
9865         function.
9866
9867         * tools/dbus-monitor.1: Update with new --session arg.
9868
9869         * bus/Makefile.am (install-data-hook): Create
9870         $(libdir)/dbus-1.0/services so that the session bus is happy.
9871
9872 2003-05-15  Havoc Pennington  <hp@redhat.com>
9873
9874         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9875         on non-x86. ifdef's are evil.
9876
9877 2003-05-15  Havoc Pennington  <hp@redhat.com>
9878
9879         * configure.in: 0.11
9880
9881         * NEWS: update
9882
9883         * bus/Makefile.am (initddir): apparently we are supposed to put
9884         init scripts in /etc/rc.d/init.d not /etc/init.d
9885
9886         * bus/Makefile.am: remove the "you must --enable-tests to make
9887         check" as it broke distcheck
9888
9889         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9890
9891 2003-05-13  James Willcox  <jwillcox@gnome.org>
9892
9893         * configure.in:
9894         * bus/activation.c: (bus_activation_service_created),
9895         (bus_activation_activate_service):
9896         * bus/driver.c: (bus_driver_send_service_deleted),
9897         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9898         (bus_driver_send_service_acquired),
9899         (bus_driver_send_welcome_message),
9900         (bus_driver_handle_list_services):
9901         * bus/session.conf.in:
9902         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9903         (dbus_bus_service_exists), (dbus_bus_activate_service):
9904         * dbus/dbus-bus.h:
9905
9906         Add some convenience API which lets you activate a service, and did a
9907         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9908         and dbus_message_get_args()
9909
9910 2003-05-11  Havoc Pennington  <hp@pobox.com>
9911
9912         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9913         calling _dbus_marshal_validate_arg() for every byte in a byte
9914         array, etc.
9915
9916         * dbus/dbus-message-handler.c: use atomic reference counting to
9917         reduce number of locks slightly; the global lock in here sucks
9918
9919         * dbus/dbus-connection.c
9920         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9921         update_dispatch_status that can be called with lock held; then use
9922         in a couple places to reduce locking/unlocking
9923         (dbus_connection_send): hold the lock over the whole function
9924         instead of acquiring it twice.
9925
9926         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9927
9928         * bus/connection.c (bus_connections_setup_connection): fix access
9929         to already-freed memory.
9930
9931         * dbus/dbus-connection.c: keep a little cache of linked list
9932         nodes, to avoid using the global linked list alloc lock in the
9933         normal send-message case. Instead we just use the connection lock
9934         that we already have to take.
9935
9936         * dbus/dbus-list.c (_dbus_list_find_last): new function
9937
9938         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9939         change to use a struct for the atomic type; fix docs,
9940         they return value before increment, not after increment.
9941
9942         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9943         (_dbus_string_append_8_aligned): new functions to try to
9944         microoptimize this operation.
9945         (reallocate_for_length): break this out of set_length(), to
9946         improve profile info, and also so we can consider inlining the
9947         set_length() part.
9948
9949         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9950         strings with some preallocation, cuts down on our calls to realloc
9951         a fair bit. Though if we can get the "move entire string to empty
9952         string" optimization below to kick in here, it would be better.
9953
9954         * dbus/dbus-string.c (_dbus_string_move): just call
9955         _dbus_string_move_len
9956         (_dbus_string_move_len): add a special case for moving
9957         an entire string into an empty string; we can just
9958         swap the string data instead of doing any reallocs.
9959         (_dbus_string_init_preallocated): new function
9960
9961 2003-05-11  Havoc Pennington  <hp@pobox.com>
9962
9963         Write a "test-profile" that does echo client-server with threads;
9964         profile reveals lock contention, memcpy/realloc of buffers, and
9965         UTF-8 validation as hot spots. 20% of lock contention eliminated
9966         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9967         contention is global mempool locks for GList and DBusList.
9968
9969         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9970         x86 implementation
9971
9972         * dbus/dbus-connection.c (struct DBusConnection): use
9973         dbus_atomic_t for the reference count
9974
9975         * dbus/dbus-message.c (struct DBusMessage): declare
9976         dbus_atomic_t values as volatile
9977
9978         * configure.in: code to detect ability to use atomic integer
9979         operations in assembly, from GLib patch
9980
9981         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9982         time, tired of it being wrong in threads and forked processes
9983
9984         * glib/test-profile.c: a little program to bounce messages back
9985         and forth between threads and eat CPU
9986
9987         * dbus/dbus-connection.c: add debug spew macros for debugging
9988         thread locks; include config.h at top; fix deadlock in
9989         dbus_connection_flush()
9990
9991 2003-05-08  Havoc Pennington  <hp@pobox.com>
9992
9993         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9994         data from getting written, and there wasn't a good reason to
9995         use _exit really.
9996
9997         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9998         dbus_verbose lines in test coverage
9999         (main): add list of functions sorted by # of untested blocks
10000         to the coverage report
10001
10002         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10003
10004         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10005
10006         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10007         extend test coverage
10008
10009         * test/data/auth/cancel.auth-script: test canceling an
10010         authentication
10011
10012         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10013         aren't used. in CVS history if we end up needing them.
10014
10015 2003-05-04  Havoc Pennington  <hp@pobox.com>
10016
10017         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10018         unit test
10019
10020         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10021         function, which assumed length was in # of strings, not bytes
10022
10023         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10024         missing coverage
10025
10026         * dbus/dbus-connection.c
10027         (_dbus_connection_queue_received_message): disable function for
10028         now, we are only using it in test mode
10029
10030         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10031         remove a mistaken FIXME
10032
10033 2003-05-04  Havoc Pennington  <hp@pobox.com>
10034
10035         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10036         unlock mutex on successful return, patch from Anders Gustafsson
10037
10038 2003-05-04  Havoc Pennington  <hp@pobox.com>
10039
10040         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10041         Anders Gustafsson
10042
10043 2003-05-04  Havoc Pennington  <hp@pobox.com>
10044
10045         * tools/dbus-launch.c: implement
10046
10047         * bus/main.c (main), bus/bus.c (bus_context_new):
10048         implement --print-pid and --fork
10049
10050 2003-05-03  Havoc Pennington  <hp@redhat.com>
10051
10052         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10053         the address had no value, and add to test suite. Fix and
10054         regression test from Miloslav Trmac
10055
10056 2003-05-03  Havoc Pennington  <hp@pobox.com>
10057
10058         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10059         watch is invalid when handled
10060
10061         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10062         dbus-launch utility to launch the bus from a shell script.  Didn't
10063         actually implement dbus-launch yet, it's just a placeholder still.
10064
10065 2003-05-03  Havoc Pennington  <hp@pobox.com>
10066
10067         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10068         daemon; also documents daemon config file, so replaces
10069         doc/config-file.txt. Corrected some stuff from config-file.txt in
10070         the process of moving it.
10071
10072 2003-05-03  Havoc Pennington  <hp@pobox.com>
10073
10074         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10075         add some man pages
10076
10077 2003-05-03  Colin Walters  <walters@verbum.org>
10078
10079         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10080         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10081
10082         * Makefile.am: Update to use new .pc versioning scheme.
10083
10084 2003-05-02  Havoc Pennington  <hp@redhat.com>
10085
10086         * bus/system.conf.in: allow send/receive to/from message bus
10087         service
10088
10089 2003-04-30  Havoc Pennington  <hp@redhat.com>
10090
10091         * configure.in: print a note when building with unit tests and
10092         without assertions
10093
10094 2003-04-30  Havoc Pennington  <hp@redhat.com>
10095
10096         * Makefile.am: add a check-local that complains if you didn't
10097         configure with --enable-tests
10098
10099 2003-04-29  Havoc Pennington  <hp@redhat.com>
10100
10101         * glib/dbus-gmain.c: docs cleanups
10102
10103         * dbus/dbus-types.h: add docs on int64 types
10104
10105         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10106         public API docs section
10107
10108 2003-04-29  Havoc Pennington  <hp@redhat.com>
10109
10110         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10111         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10112         parallel install API version, not with the D-BUS package version.
10113
10114         * HACKING: move some of README over here
10115
10116         * README: updates, and document API/ABI policy
10117
10118         * configure.in: reindentation
10119
10120 2003-04-29  Havoc Pennington  <hp@redhat.com>
10121
10122         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10123         to use this library" to be sure people have the right
10124         expectations.
10125
10126 2003-04-28  Havoc Pennington  <hp@redhat.com>
10127
10128         * configure.in: add --enable-docs which by default is auto yes if
10129         doxygen and db2html found, no otherwise; but can be forced on/off
10130
10131         * doc/Makefile.am: conditionalize whether to build docs on
10132         --enable-docs
10133
10134 2003-04-28  Havoc Pennington  <hp@redhat.com>
10135
10136         * configure.in: 0.10
10137
10138         * NEWS: update
10139
10140         * bus/system.conf.in: add <includedir>system.d</includedir>
10141
10142         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10143         username was provided but not uid
10144
10145         * bus/config-parser.c (struct BusConfigParser): keep track of
10146         whether the parser is toplevel or was included; change some
10147         of the error handling if it's included.
10148
10149 2003-04-27  Havoc Pennington  <hp@pobox.com>
10150
10151         Unbreak my code...
10152
10153         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10154         report correct status if we finish processing authentication
10155         inside this function.
10156
10157         * bus/activation.c (try_send_activation_failure): use
10158         bus_transaction_send_error_reply
10159
10160         * bus/connection.c (bus_connection_get_groups): return an error
10161         explaining the problem
10162
10163         * bus/bus.c (bus_context_check_security_policy): implement
10164         restriction here that inactive connections can only send the
10165         hello message. Also, allow bus driver to send anything to
10166         any recipient.
10167
10168         * bus/connection.c (bus_connection_complete): create the
10169         BusClientPolicy here instead of on-demand.
10170         (bus_connection_get_policy): don't return an error
10171
10172         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10173         sender field in message being replied to
10174
10175         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10176         causing it to return FALSE always
10177
10178         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10179         we checked sender rather than destination
10180
10181 2003-04-25  Havoc Pennington  <hp@redhat.com>
10182
10183         test suite is slightly hosed at the moment, will fix soon
10184
10185         * bus/connection.c (bus_connections_expire_incomplete): fix to
10186         properly disable the timeout when required
10187         (bus_connection_set_name): check whether we can remove incomplete
10188         connections timeout after we complete each connection.
10189
10190         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10191         probably still broken.
10192
10193         * bus/services.c (bus_registry_acquire_service): implement max
10194         number of services owned, and honor allow/deny rules on which
10195         services a connection can own.
10196
10197         * bus/connection.c (bus_connection_get_policy): report errors here
10198
10199         * bus/activation.c: implement limit on number of pending
10200         activations
10201
10202 2003-04-25  Havoc Pennington  <hp@redhat.com>
10203
10204         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10205         where we used >= 0 instead of != DBUS_UID_UNSET.
10206
10207 2003-04-25  Havoc Pennington  <hp@redhat.com>
10208
10209         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10210         were toggled without add/remove, fix from Anders Gustafsson
10211
10212 2003-04-24  Havoc Pennington  <hp@redhat.com>
10213
10214         * test/data/valid-config-files/basic.conf: add <limit> tags to
10215         this test
10216
10217         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10218         <limit> tag in configuration file.
10219
10220 2003-04-24  Havoc Pennington  <hp@redhat.com>
10221
10222         * bus/dispatch.c: somehow missed some name_is
10223
10224         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10225         (_dbus_timeout_set_interval): new
10226
10227         * bus/connection.c (bus_connections_setup_connection): record time
10228         when each connection is first set up, and expire them after the
10229         auth timeout passes.
10230
10231 2003-04-24  Havoc Pennington  <hp@redhat.com>
10232
10233         * dbus/dbus-message.c (dbus_message_name_is): rename
10234         (dbus_message_service_is): rename
10235         (dbus_message_sender_is): rename
10236         (dbus_message_get_service): rename
10237
10238 2003-04-24  Havoc Pennington  <hp@redhat.com>
10239
10240         * configure.in: add --enable-checks
10241
10242         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10243
10244         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10245         to use thread locks.
10246         (_dbus_connection_handler_destroyed_locked): move some private
10247         functions into proper docs group
10248
10249         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10250         _dbus_return_val_if_fail
10251
10252         Throughout: use dbus_return_if_fail
10253
10254 2003-04-23  James Willcox  <jwillcox@gnome.org>
10255
10256         * glib/dbus-glib.h:
10257         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10258         (dbus_connection_setup_with_g_main),
10259         (dbus_server_setup_with_g_main):
10260         * glib/test-dbus-glib.c: (main):
10261         * glib/test-thread-client.c: (main):
10262         * glib/test-thread-server.c: (new_connection_callback), (main):
10263         * tools/dbus-monitor.c: (main):
10264
10265         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10266         and dbus_server_setup_with_g_main().
10267
10268 2003-04-20  Havoc Pennington  <hp@pobox.com>
10269
10270         * doc/dbus-specification.sgml: document the restrictions on
10271         message and service names
10272
10273 2003-04-22  Havoc Pennington  <hp@redhat.com>
10274
10275         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10276         support, and do some code cleanups to share more code and
10277         speed up array marshal/demarshal.
10278
10279         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10280
10281         * configure.in: generate dbus-arch-deps.h
10282
10283         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10284         64-bit typecodes
10285
10286 2003-04-22  Havoc Pennington  <hp@redhat.com>
10287
10288         * test/data/valid-messages/opposite-endian.message: fix test
10289         to use proper type for rply field
10290
10291         * test/data/invalid-messages: add tests for below validation
10292
10293         * dbus/dbus-message.c (decode_header_data): validate field types,
10294         and validate that named fields are valid names
10295         (decode_name_field): consider messages in the
10296         org.freedesktop.Local. namespace to be invalid.
10297
10298         * dbus/dbus-string.c (_dbus_string_validate_name): new
10299
10300 2003-04-19  Havoc Pennington  <hp@pobox.com>
10301
10302         * bus/driver.c (bus_driver_handle_hello): check limits and
10303         return an error if they are exceeded.
10304
10305         * bus/connection.c: maintain separate lists of active and inactive
10306         connections, and a count of each. Maintain count of completed
10307         connections per user. Implement code to check connection limits.
10308
10309         * dbus/dbus-list.c (_dbus_list_unlink): export
10310
10311         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10312         number of bytes in the message queue for a connection
10313
10314 2003-04-18  Havoc Pennington  <hp@pobox.com>
10315
10316         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10317
10318         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10319         memleaks
10320
10321         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10322         on realloc be sure to update the pointer in the keyring
10323
10324         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10325         offset to avoid writing to unallocated memory
10326
10327         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10328         try the next mechanism, so we properly handle OOM
10329
10330         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10331         on OOM.
10332         (_dbus_keyring_new): fix OOM bug
10333         (_dbus_keyring_new_homedir): always set error; impose a maximum
10334         number of keys we'll load from the file, mostly to speed up the
10335         test suite and make its OOM checks more useful, but also for
10336         general sanity.
10337
10338         * dbus/dbus-auth.c (process_error_server): reject authentication
10339         if we get an error from the client
10340         (process_cancel): on cancel, send REJECTED, per the spec
10341         (process_error_client): send CANCEL if we get an error from the
10342         server.
10343
10344 2003-04-18  Havoc Pennington  <hp@pobox.com>
10345
10346         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10347         debug spew
10348
10349         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10350         handling problem
10351
10352         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10353         about DBUS_TEST_HOMEDIR once
10354
10355         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10356         the environment
10357
10358         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10359         config file so we test the right thing
10360
10361         Throughout: assorted docs improvements
10362
10363 2003-04-18  Havoc Pennington  <hp@pobox.com>
10364
10365         * glib/dbus-gmain.c: adapt to watch changes
10366
10367         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10368
10369         * dbus/dbus-server.h: remove dbus_server_handle_watch
10370
10371         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10372
10373         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10374         like DBusTimeout, so we don't need dbus_connection_handle_watch
10375         etc.
10376
10377 2003-04-17  Havoc Pennington  <hp@redhat.com>
10378
10379         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10380         database usage so it all goes via the DBusUserDatabase cache.
10381
10382 2003-04-17  Havoc Pennington  <hp@redhat.com>
10383
10384         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10385         there was an OOM watch we skipped, we always return TRUE so we
10386         iterate again to have a look at it again. Fixes test suite hang.
10387         Code rearrangement also lets us lose some memset and only iterate
10388         over callbacks once.
10389
10390         * bus/driver.c (bus_driver_handle_message): sense of test for
10391         reply was backward
10392
10393 2003-04-16  Havoc Pennington  <hp@pobox.com>
10394
10395         * doc/dbus-specification.sgml: make spec say serials are unsigned
10396
10397         * dbus/dbus-message.h: change message serials to unsigned
10398
10399         * dbus/dbus-connection.c: adapt to message serials being unsigned
10400
10401 2003-04-15  Havoc Pennington  <hp@pobox.com>
10402
10403         * bus/bus.c: create and keep around a shared DBusUserDatabase
10404         object.
10405
10406         * bus/connection.c (bus_connection_get_groups): don't cache
10407         groups for user in the connection object, since user database
10408         object now does that.
10409
10410 2003-04-16  Havoc Pennington  <hp@redhat.com>
10411
10412         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10413         list of size counters
10414         (_dbus_message_loader_putback_message_link): put back a popped link
10415
10416         * dbus/dbus-connection.c
10417         (dbus_connection_set_max_live_messages_size): rename
10418         max_received_size
10419         (dbus_connection_get_outgoing_size): get size of outgoing
10420         queue
10421         (_dbus_connection_set_connection_counter): remove this cruft
10422
10423 2003-04-14  Havoc Pennington  <hp@redhat.com>
10424
10425         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10426         caching, but at some point we might want to be able to use a
10427         different database.
10428
10429         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10430         SHA1 conf file to test the sha1 auth mechanism, since the regular
10431         test always uses EXTERNAL when available.
10432
10433         * configure.in,
10434         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10435         add conf file that requires use of sha1 auth
10436
10437 2003-04-13  Havoc Pennington  <hp@pobox.com>
10438
10439         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10440         from Philip Blundell to send messages and monitor them.
10441
10442 2003-04-13  Havoc Pennington  <hp@pobox.com>
10443
10444         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10445         callbacks
10446
10447         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10448         users
10449
10450         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10451         fix to only recover unused bytes if we're already authenticated
10452         (_dbus_transport_get_is_authenticated): fix to still mark us
10453         authenticated if there are unused bytes.
10454
10455         * bus/dispatch.c: implement security policy checking
10456
10457         * bus/connection.c (bus_transaction_send_from_driver): new
10458
10459         * bus/bus.c (bus_context_check_security_policy): new
10460
10461         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10462         now we just set the DBusError and it gets converted to an error
10463         reply.
10464
10465         * bus/connection.c (allow_user_function): enable code using actual
10466         data from the config file
10467
10468         * bus/policy.c (list_allows_user): handle wildcard rules for
10469         user/group connection perms
10470
10471 2003-04-13  Havoc Pennington  <hp@pobox.com>
10472
10473         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10474
10475         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10476
10477         * bus/policy.c (bus_policy_append_mandatory_rule)
10478         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10479         (bus_policy_append_group_rule): new functions
10480
10481 2003-04-12  Havoc Pennington  <hp@pobox.com>
10482
10483         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10484
10485         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10486         the pid/gid/uid, just for paranoia.
10487
10488         * test/break-loader.c (randomly_do_n_things): find a byte
10489         containing a type code, and randomly change it to a different
10490         type code.
10491
10492 2003-04-12  Havoc Pennington  <hp@pobox.com>
10493
10494         * bus/policy.h: change BusPolicy to be the thing from the config
10495         file, and rename old BusPolicy to BusClientPolicy
10496
10497         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10498         match change in how policy works
10499
10500         * dbus/dbus-internals.h: mark assert_not_reached as
10501         __attribute((noreturn))__
10502
10503 2003-04-11  Havoc Pennington  <hp@redhat.com>
10504
10505         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10506         the broadcast service. Use boolean return for ServiceExists.
10507
10508 2003-04-11  Havoc Pennington  <hp@redhat.com>
10509
10510         * configure.in: add another directory to look for qt in.
10511
10512 2003-04-11  Havoc Pennington  <hp@redhat.com>
10513
10514         * AUTHORS: add Colin Walters
10515
10516 2003-04-11  Havoc Pennington  <hp@redhat.com>
10517
10518         * NEWS: update
10519
10520         * configure.in: 0.9
10521
10522 2003-04-11  Havoc Pennington  <hp@redhat.com>
10523
10524         * bus/messagebus.in: remove pid file when stopping the
10525         message bus, since the bus won't have privileges to remove it
10526         itself.
10527
10528 2003-04-11  Havoc Pennington  <hp@redhat.com>
10529
10530         * bus/bus.c (bus_context_new): move credentials change after
10531         creating pidfile
10532
10533 2003-04-11  Havoc Pennington  <hp@pobox.com>
10534
10535         * test/decode-gcov.c: add "below average functions" to the
10536         coverage report, and change how some of the code works.
10537
10538         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10539         not in the coverage stats.
10540
10541         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10542         couple places so running the test suite doesn't result in megaspam.
10543
10544 2003-04-11  Havoc Pennington  <hp@pobox.com>
10545
10546         * bus/dispatch.c (check_existent_service_activation): accept a no
10547         memory error in a place we didn't before
10548
10549         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10550         in case the first one failed," since the test suite is less
10551         broken now.
10552
10553 2003-04-10  Havoc Pennington  <hp@pobox.com>
10554
10555         * bus/dispatch.c (check_segfault_service_activation): add test
10556         for launching an executable that just crashes.
10557
10558         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10559         don't leave a million cores. We'll see how portable this is.
10560
10561 2003-04-10  Havoc Pennington  <hp@pobox.com>
10562
10563         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10564         the possible parent failures before we fork, so that we don't
10565         fail to create a babysitter after creating the child.
10566
10567         * bus/activation.c (bus_activation_activate_service): kill child
10568         if we don't successfully complete the activation.
10569
10570 2003-04-10  Havoc Pennington  <hp@redhat.com>
10571
10572         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10573         the connection if it's disconnected
10574
10575         * bus/activation.c (bus_activation_service_created): use new
10576         transaction features to roll back removal of pending activation if
10577         we don't successfully create the service after all. Don't remove
10578         pending activation if the function fails.
10579
10580         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10581         (_dbus_list_insert_after_link): new code to facilitate
10582         services.c fixes
10583
10584         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10585         new functionality, so we can preallocate the ability to insert
10586         into a hash table.
10587
10588         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10589         allowing us to put custom hooks in a transaction to be used for
10590         cancelling said transaction
10591
10592         * doc/dbus-specification.sgml: add some discussion of secondary
10593         service owners, and disallow zero-length service names
10594
10595         * bus/services.c (bus_registry_acquire_service): new function,
10596         splits out part of bus_driver_handle_acquire_service() and fixes
10597         a bug where we didn't remove the service doing the acquiring
10598         from the secondary queue if we failed to remove the current owner
10599         from the front of the queue.
10600
10601 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10602
10603         * doc/dbus-specification.sgml:
10604         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10605
10606 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10607
10608         * bus/.cvsignore:
10609         * glib/.cvsignore:
10610         * test/.cvsignore:
10611         Added files to cvsignore
10612
10613         * dbus/dbus-message.h:
10614         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10615         Make get_named() take two out argument and return a boolean.
10616         (dbus_message_iter_get_args_valist):
10617         Update usage of get_named().
10618         (dbus_message_iter_append_byte):
10619         Fix typo
10620         (dbus_message_iter_append_named)
10621         Fix typo
10622         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10623         More tests.
10624
10625 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10626
10627         * dbus/dbus-marshal.[ch]:
10628         Add array_type_pos argument to _dbus_marshal_validate_arg.
10629         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10630
10631         * dbus/dbus-message.[ch]:
10632         Multi-dimensional arrays have full type specification in the
10633         outermost array. Iter code re-arranged to handle this.
10634         Added some more iter tests.
10635
10636         * doc/dbus-specification.sgml:
10637         Add me to authors.
10638         Remove old FIXME.
10639         Update new array encoding description.
10640         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10641
10642         * test/data/invalid-messages/array-with-mixed-types.message:
10643         * test/data/valid-messages/array-of-array-of-uint32.message:
10644         Change to the new array format.
10645
10646         * test/data/invalid-messages/too-short-dict.message:
10647         Fix bug in test.
10648
10649         * test/data/valid-messages/recursive-types.message:
10650         Fix up and extend test.
10651
10652 2003-04-10  Havoc Pennington  <hp@pobox.com>
10653
10654         * bus/dispatch.c: lots of fixes
10655
10656         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10657         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10658         that was crack, broke the test service.
10659
10660         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10661         handling to avoid piling up errors if we get a failure on the
10662         first address.
10663
10664         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10665         pid in assertion failures.
10666
10667         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10668         to some fixed size of file descriptor array. Don't return TRUE
10669         anytime a timeout exists, that led to lots of busy loop silliness
10670         in the tests.
10671
10672 2003-04-09  Havoc Pennington  <hp@redhat.com>
10673
10674         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10675         I'd checked this in earlier but hadn't.
10676
10677 2003-04-09  Havoc Pennington  <hp@redhat.com>
10678
10679         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10680         the activation test (man this is getting old!)
10681
10682 2003-04-09  Havoc Pennington  <hp@redhat.com>
10683
10684         * test/test-utils.c: use dispatch status function to fix this up
10685
10686         * bus/connection.c (connection_watch_callback): don't dispatch
10687         from here
10688         (connection_timeout_callback): don't dispatch from here
10689         (bus_connections_setup_connection): set the dispatch status function
10690         (bus_connection_disconnected): unset it
10691
10692         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10693         used to add a connection to be dispatched
10694         (_dbus_loop_iterate): do the dispatching at the end of each
10695         iteration
10696
10697         * dbus/dbus-connection.c
10698         (dbus_connection_set_dispatch_status_function): new function
10699         allowing us to fix up main loop usage
10700         (_dbus_connection_last_unref): free all the various function
10701         user data
10702         (dbus_connection_dispatch): call the DispatchStatusFunction
10703         whenever this function returns
10704         (dbus_connection_handle_watch): call DispatchStatusFunction
10705         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10706         (reply_handler_timeout): call DispatchStatusFunction
10707         (dbus_connection_flush): call DispatchStatusFunction
10708
10709 2003-04-09  Havoc Pennington  <hp@redhat.com>
10710
10711         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10712         a memory leak
10713
10714         * bus/dispatch.c (check_service_activated): fix bug in test
10715
10716         * dbus/dbus-mainloop.c (check_timeout): fix this up
10717
10718         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10719         verbose output so we can sort out output from different processes,
10720         e.g. in the activation case.
10721
10722 2003-04-08  Colin Walters  <walters@gnu.org>
10723
10724         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10725         the pid file.
10726         (bus_context_new): Set it.
10727         (bus_context_unref): Use it to delete the pid file.
10728
10729 2003-04-08  Havoc Pennington  <hp@redhat.com>
10730
10731         * test/data/invalid-messages/array-with-mixed-types.message:
10732         regression test that fails for the moment
10733
10734         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10735         tests for convenience
10736
10737         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10738         array of nil, it broke things.
10739
10740         * test/data/invalid-messages/array-of-nil.message: regression test
10741
10742         * test/data/valid-messages/array-of-array-of-uint32.message:
10743         happened to write this so added it to suite
10744
10745 2003-04-08  Havoc Pennington  <hp@redhat.com>
10746
10747         * bus/driver.c (bus_driver_handle_acquire_service): init
10748         retval/reply before checking name
10749
10750         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10751         recursion depth argument
10752
10753         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10754         in the public struct for future extension
10755
10756         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10757         typo
10758
10759         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10760         message
10761
10762         * doc/dbus-specification.sgml: fix typo
10763
10764 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10765
10766         Implemented recursive types, named types and new-style iters
10767
10768         * bus/driver.c:
10769         * glib/test-thread-client.c: (thread_func):
10770         * glib/test-thread-server.c: (handle_test_message):
10771         * test/test-service.c: (handle_echo):
10772         Update to new api
10773
10774         * dbus/Makefile.am:
10775         * dbus/dbus-dict.c:
10776         * dbus/dbus-dict.h:
10777         * dbus/dbus.h
10778         Remove DBusDict
10779
10780         * dbus/dbus-internals.c: (_dbus_type_to_string):
10781         Update for new types.
10782
10783         * dbus/dbus-marshal.[ch]:
10784         Implement recursive types and the new marshalling format.
10785         Remove hardcoded dict marshalling.
10786         Marshal named types.
10787
10788         * dbus/dbus-message-builder.c:
10789         Add BYTE_ARRAY.
10790         Remove references to old types
10791
10792         * dbus/dbus-message.[ch]:
10793         New non-refcounted iter API that supports recursive iters.
10794         Use iters for appending, including support for recursive
10795         iters.
10796         Add byte and named type support.
10797         Update everything to new marshalling formats.
10798         Add tests for new API.
10799
10800         * dbus/dbus-protocol.h:
10801         Remove old array types.
10802         Add types: BYTE, ARRAY, DICT, NAMED
10803
10804         * dbus/dbus-string.c:
10805         * dbus/dbus-sysdeps.c:
10806         Make parse_double locale safe.
10807
10808         * dbus/dbus-test-main.c:
10809         Call setlocale.
10810
10811         * dbus/dbus-test.c:
10812         Kill dict test
10813
10814         * doc/dbus-specification.sgml:
10815         Update spec
10816
10817         * test/data/incomplete-messages/missing-body.message:
10818         * test/data/invalid-messages/bad-boolean.message:
10819         * test/data/invalid-messages/bad-boolean-array.message:
10820         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10821         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10822         * test/data/invalid-messages/too-short-dict.message:
10823         * test/data/valid-messages/dict-simple.message:
10824         * test/data/valid-messages/dict.message:
10825         * test/data/valid-messages/emptiness.message:
10826         * test/data/valid-messages/lots-of-arguments.message:
10827         * test/data/valid-messages/no-padding.message:
10828         * test/data/valid-messages/recursive-types.message:
10829         Add missing NAME fields
10830         Fix up dicts & arrays
10831
10832         * test/data/invalid-messages/dict-with-nil-value.message:
10833         Removed, this is not invalid anymore.
10834
10835         * test/data/valid-messages/recursive-types.message:
10836         Add new test for deeply recursive types.
10837
10838 2003-04-07  Havoc Pennington  <hp@pobox.com>
10839
10840         * bus/driver.c (bus_driver_handle_acquire_service): return an
10841         error if you try to acquire a service that starts with ':'
10842
10843 2003-04-07  Havoc Pennington  <hp@redhat.com>
10844
10845         * doc/dbus-specification.sgml: require that base service names
10846         start with ':' and that the base service is created/deleted
10847         as first and last things a connection does on the bus
10848
10849         * bus/dispatch.c (check_existent_service_activation): lots more
10850         work on the activation test; it doesn't fully pass yet...
10851
10852         * test/test-service.c (main): fix so we don't memleak the
10853         connection to the message bus
10854         (filter_func): accept a message asking us to exit
10855
10856 2003-04-06  Havoc Pennington  <hp@pobox.com>
10857
10858         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10859         from Colin Walters
10860
10861         * configure.in: fixes to Qt detection from Colin Walters
10862
10863         * doc/Makefile.am: Only remove generated docbook dirs if they
10864         exist, from Colin Walters
10865
10866         * dbus/dbus-bus.c: change how we set well-known connections to
10867         NULL, so that it works if a single connection is stored in
10868         two well-known array slots.
10869
10870         * test/Makefile.am: remove a lot of stuff that isn't immediately
10871         useful, it's in CVS history if we want it.
10872
10873         * test/test-service.c: use dbus-mainloop instead of that
10874         watch.[hc] crack
10875
10876 2003-04-06  Havoc Pennington  <hp@pobox.com>
10877
10878         * dbus/Makefile.am: split lists of sources into stuff that goes in
10879         the library, util functions that go in the lib and are also used
10880         elsewhere, and util functions that are used in tests/daemon but
10881         don't go in the lib.
10882
10883         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10884         here so it can be used in test binaries also
10885
10886 2003-04-06  Havoc Pennington  <hp@pobox.com>
10887
10888         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10889         here in the parent process, so we can return an error if it
10890         fails. Also, move some of the code into the child so the parent
10891         is less hosed if we fail midway through.
10892
10893         * bus/bus.c (bus_context_new): move pidfile detection further up
10894         in the function, before we start overwriting sockets and such.
10895
10896         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10897
10898         * configure.in: add --with-system-pid-file and --with-system-socket
10899
10900 2003-04-06  Colin Walters  <walters@verbum.org>
10901
10902         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10903
10904         * bus/system.conf.in: Declare a pidfile.
10905
10906         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10907         create one (if appropriate).
10908
10909         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10910         (struct BusConfigParser) [pidfile]: New.
10911         (element_type_to_name, merge_included, start_busconfig_child)
10912         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10913         (bus_config_parser_unref): Free it.
10914         (bus_config_parser_get_pidfile): New function.
10915
10916         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10917
10918         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10919
10920         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10921
10922         * dbus/dbus-sysdeps.h: Prototype it.
10923
10924 2003-04-06  Havoc Pennington  <hp@pobox.com>
10925
10926         * bus/bus.c (bus_context_new): print the address in here, rather
10927         than in main(), because we need to do it before forking the daemon
10928
10929         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10930         on the service nonexistent error
10931
10932         * bus/driver.c (bus_driver_handle_acquire_service): set the
10933         sender on the AcquireService reply
10934
10935         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10936         server also listen on a UNIX socket so services can connect to it.
10937
10938 2003-04-06  Havoc Pennington  <hp@pobox.com>
10939
10940         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10941         so it detects deadlocks and also we actually init threads when
10942         debugging.
10943
10944 2003-04-06  Havoc Pennington  <hp@pobox.com>
10945
10946         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10947         save the domain socket name, and unlink it when we disconnect the
10948         server. Means that at least when we exit normally, we won't leave
10949         a bunch of junk in /tmp
10950
10951         * dbus/dbus-transport-unix.c
10952         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10953         memory management). (I was making a real change here but then
10954         didn't)
10955
10956 2003-04-06  Havoc Pennington  <hp@pobox.com>
10957
10958         * bus/bus.c (bus_context_new): fix wrong handling of
10959         server_data_slot_unref() in the error case.
10960
10961         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10962         "(condition) != 0" to _dbus_real_assert so that
10963         "_dbus_assert (pointer)" doesn't cause a warning
10964
10965         * bus/main.c (main): accept --print-address option to print out
10966         the message bus address
10967
10968         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10969
10970         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10971         "tmpdir" option to unix: address on client side
10972
10973         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10974         to unix: address
10975
10976         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10977         we can use to create sockets in the test suite.
10978
10979         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10980         cleanly. To be used for testing.
10981
10982         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10983
10984         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10985
10986         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10987         handle trying to call this when there's no servers active
10988
10989 2003-04-05  Havoc Pennington  <hp@pobox.com>
10990
10991         * NEWS: update
10992
10993         * configure.in: 0.8
10994
10995 2003-04-05  Havoc Pennington  <hp@pobox.com>
10996
10997         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10998         crash on startup. Need to get "try starting the daemon"
10999         in the test suite I guess. ;-)
11000
11001         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11002         tracked the number of open connections; it's better done in
11003         application-specific code as you want it to span all servers etc.
11004
11005 2003-04-05  Havoc Pennington  <hp@pobox.com>
11006
11007         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11008         patch from Colin Walters
11009
11010 2003-04-05  Havoc Pennington  <hp@pobox.com>
11011
11012         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11013         reality; in fact multiple mechanisms are allowed.
11014
11015         * dbus/dbus-internals.c (_dbus_real_assert)
11016         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11017         _dbus_assert_not_reached() into functions, so that they don't show
11018         up in basic block counts for test coverage, and don't use up as
11019         much disk space. Does mean slower execution speed though, so
11020         assumes --disable-asserts is the normal production case.
11021
11022 2003-04-05  Havoc Pennington  <hp@pobox.com>
11023
11024         * test/Makefile.am (dist-hook): also dist *.in files
11025
11026         * NEWS: update
11027
11028         * configure.in: 0.7
11029
11030 2003-04-05  Havoc Pennington  <hp@pobox.com>
11031
11032         * dbus/dbus-string.c: docs warning
11033
11034         * dbus/dbus-spawn.c: missing docs
11035
11036         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11037
11038 2003-04-05  Havoc Pennington  <hp@pobox.com>
11039
11040         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11041         magic from GLib
11042
11043         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11044         to -1 once we've reaped the babysitter
11045         (_dbus_babysitter_handle_watch): do as much work as we can, not
11046         just one go of it
11047
11048         * bus/activation.c: add code using DBusBabysitter so that we
11049         handle it when a service fails to start up properly.
11050         (bus_activation_service_created): don't remove the activation
11051         entries as we go, just let them get removed when we free the pending
11052         activation. Unref reply messages after sending them.
11053
11054 2003-04-05  Havoc Pennington  <hp@pobox.com>
11055
11056         * test/decode-gcov.c (main): print per-directory stats in the report
11057
11058         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11059
11060 2003-04-05  Havoc Pennington  <hp@pobox.com>
11061
11062         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11063
11064         * test/decode-gcov.c: hack up a little program to suck data
11065         out of gcov files. Yes this is sort of silly.
11066
11067         * configure.in: define something in config.h and do an
11068         AM_CONDITIONAL when gcov is enabled
11069
11070 2003-04-04  Havoc Pennington  <hp@redhat.com>
11071
11072         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11073         return a "babysitter" object that is used to monitor the status of
11074         the spawned process and reap it when required.
11075
11076         * test/test-segfault.c, test/test-exit.c,
11077         test/test-sleep-forever.c: binaries that do various lame things,
11078         used in the test suite.
11079
11080         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11081
11082 2003-04-03  Havoc Pennington  <hp@pobox.com>
11083
11084         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11085         in preparation for modifying it, dbus-sysdeps is getting
11086         a bit unmanageable.
11087
11088 2003-04-03  Havoc Pennington  <hp@redhat.com>
11089
11090         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11091         have multiple ones
11092
11093         * bus/*.[hc]: adapt to mainloop change
11094
11095 2003-04-03  Havoc Pennington  <hp@redhat.com>
11096
11097         * bus/activation.c (load_directory): fix up memleaks
11098         (bus_activation_entry_free): free the entry
11099
11100         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11101         we get one from the message bus; fix memleaks.
11102
11103         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11104
11105 2003-04-03  Havoc Pennington  <hp@pobox.com>
11106
11107         * bus/config-parser.c (bus_config_parser_unref): free
11108         list of mechanisms, bug discovered by test suite enhancements
11109         (putting system.conf and session.conf into suite)
11110
11111         * test/Makefile.am, test/test-service.c: add placeholder for a
11112         test service that we'll activate as part of test suite. Doesn't
11113         do anything yet.
11114
11115         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11116         setting NULL value, and use system malloc not dbus_malloc()
11117         when we have unavoidable memleakage.
11118
11119         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11120         didn't work, and support DBUS_BUS_ACTIVATION.
11121
11122         * bus/activation.c (child_setup): pass our well-known bus type to
11123         the child
11124
11125         * bus/config-parser.c: support <type> to specify well-known type
11126
11127         * doc/dbus-specification.sgml: document the env variables to
11128         locate well-known buses and find service activator
11129
11130 2003-04-02  Havoc Pennington  <hp@redhat.com>
11131
11132         * test/Makefile.am (all-local): add a rule to copy tests to
11133         builddir, so we can have generated tests. Use this to remove the
11134         silly hack for testing system.conf and session.conf. Will use this
11135         shortly to generate .service files pointing to test binaries.
11136
11137 2003-04-02  Havoc Pennington  <hp@redhat.com>
11138
11139         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11140         current alloc and needed new length, not max of the doubled
11141         allocation and needed new length. Also, when building tests,
11142         don't do the double-allocation stuff, just realloc every time.
11143
11144 2003-04-02  Havoc Pennington  <hp@redhat.com>
11145
11146         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11147         in error messages
11148         (_dbus_string_get_dirname): new
11149         (_dbus_sysdeps_test): new
11150         (_dbus_directory_open): include dirnames in error messages
11151
11152         * bus/config-parser.c: interpret <include> and <includedir> and
11153         <servicedir> relative to config file location if the given
11154         filename is not absolute.
11155
11156         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11157
11158 2003-04-02  Havoc Pennington  <hp@redhat.com>
11159
11160         * bus/connection.c (bus_transaction_send_error_reply): set sender
11161         service for the error, and unref the reply on success
11162
11163         * bus/activation.c: convert to use BusTransaction so OOM can be
11164         handled correctly
11165         (bus_activation_service_created): set sender of the message
11166
11167 2003-04-01  Havoc Pennington  <hp@redhat.com>
11168
11169         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11170         <includedir> (at least mostly)
11171
11172         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11173         first, then the user ID
11174
11175 2003-04-01  Havoc Pennington  <hp@pobox.com>
11176
11177         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11178         function
11179
11180         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11181
11182         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11183
11184         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11185         socket 0777, and unlink any existing socket.
11186
11187         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11188         the configuration file so specifies; set up auth mechanism
11189         restrictions
11190
11191         * bus/config-parser.c (bus_config_parser_content): add support
11192         for <fork> option and fill in code for <auth>
11193
11194         * bus/system.conf.in: add <fork/> to default configuration,
11195         and limit auth mechanisms to EXTERNAL
11196
11197         * doc/config-file.txt (Elements): add <fork>
11198
11199         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11200         (_dbus_change_identity): new function
11201
11202 2003-03-31  Havoc Pennington  <hp@redhat.com>
11203
11204         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11205         (_dbus_listen_unix_socket): fix off-by-one error in null
11206         termination spotted by Nalin
11207
11208 2003-03-31  Havoc Pennington  <hp@redhat.com>
11209
11210         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11211         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11212         having a real home directory available.
11213
11214 2003-03-31  Havoc Pennington  <hp@redhat.com>
11215
11216         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11217
11218         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11219
11220         * configure.in: add support for specifying a style of init script
11221         to install
11222
11223 2003-03-31  Havoc Pennington  <hp@redhat.com>
11224
11225         Fix some annoying DBusString API and fix all affected code.
11226
11227         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11228         max_length argument
11229         (_dbus_string_get_data): change to return string instead of using
11230         an out param
11231         (_dbus_string_get_const_data): ditto
11232         (_dbus_string_get_data_len): ditto
11233         (_dbus_string_get_const_data_len): ditto
11234
11235 2003-03-31  Havoc Pennington  <hp@redhat.com>
11236
11237         * bus/main.c (main): fix up the command line arguments to be nicer
11238
11239 2003-03-31  Havoc Pennington  <hp@redhat.com>
11240
11241         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11242         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11243         final location that lands in the config file
11244
11245         * bus/config-loader-expat.c (bus_config_load): fix type of
11246         XML_Parser variable
11247
11248         * doc/TODO: remove TODO item for dbus_bus_get()
11249
11250         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11251
11252 2003-03-31  Havoc Pennington  <hp@pobox.com>
11253
11254         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11255         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11256         argument since they are always client side
11257
11258         * dbus/dbus-server.c (dbus_server_get_address): new function
11259
11260         * bus/main.c (main): take the configuration file as an argument.
11261
11262         * test/data/valid-config-files/debug-allow-all.conf: new file to
11263         use with dispatch.c tests for example
11264
11265         * bus/test-main.c (main): require test data dir
11266
11267         * bus/bus.c (bus_context_new): change this to take a
11268         configuration file name as argument
11269
11270         * doc/config-file.txt (Elements): add <servicedir>
11271
11272         * bus/system.conf, bus/session.conf: new files
11273
11274         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11275         well-known socket if none set
11276
11277         * configure.in: create system.conf and session.conf
11278
11279 2003-03-30  Havoc Pennington  <hp@pobox.com>
11280
11281         * bus/config-parser.c: hacking
11282
11283         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11284         to shut down, since it could cause weirdness with the DBusList
11285         lock
11286
11287         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11288         link-oriented stack routines
11289         (alloc_link): free the mempool if the first alloc from it fails
11290
11291         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11292
11293         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11294         from GLib
11295         (_dbus_string_skip_white): new
11296
11297         * doc/config-file.txt (Elements): add <includedir>
11298
11299 2003-03-28  Havoc Pennington  <hp@pobox.com>
11300
11301         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11302         (_dbus_string_copy_data): new functions
11303
11304 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11305
11306         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11307         * dbus/dbus-bus.h:
11308         Add dbus_bus_get.
11309
11310         * dbus/dbus-memory.c:
11311         Fix a doc comment.
11312
11313 2003-03-28  Havoc Pennington  <hp@pobox.com>
11314
11315         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11316         I think it may have just been superstition. Not sure.
11317
11318         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11319         failures that were not being handled.
11320
11321         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11322
11323         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11324         row that will fail on out-of-memory.
11325
11326         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11327         function for testing out-of-memory handling.
11328
11329         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11330         allocation functions, they do map exactly to the expat ones.
11331
11332 2003-03-27  Havoc Pennington  <hp@redhat.com>
11333
11334         * bus/config-loader-libxml.c (bus_config_load): add another error
11335         check
11336
11337 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11338
11339         * doc/TODO:
11340         Add note about automatic service activation.
11341
11342         * doc/dbus-specification.sgml:
11343         Rename the specification and clarify a few things.
11344
11345 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11346
11347         * Doxyfile.in:
11348         * dbus/dbus-address.c:
11349         * dbus/dbus-dict.c:
11350         * dbus/dbus-marshal.c:
11351         * dbus/dbus-server-debug-pipe.c:
11352         * dbus/dbus-transport-unix.c:
11353         Fix documentation warnings.
11354
11355 2003-03-26  Havoc Pennington  <hp@pobox.com>
11356
11357         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11358         after every test so it's quick and easy to see which leaked, and
11359         so we test multiple dbus_shutdown() calls
11360
11361         * configure.in: change configure.in XML stuff to also support
11362         expat
11363
11364         * config-loader-libxml.c: some hacking
11365
11366         * config-loader-expat.c: some hacking
11367
11368         * config-parser.c: some hacking, plus tests
11369
11370 2003-03-25  Havoc Pennington  <hp@redhat.com>
11371
11372         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11373
11374         * configure.in: add --with-xml option to specify XML library,
11375         right now only libxml is supported.
11376
11377         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11378         nonworking code between home and work, still just stubs
11379
11380 2003-03-24  Havoc Pennington  <hp@redhat.com>
11381
11382         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11383         file
11384
11385         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11386         NULL argument for "message" if the error is a well-known one,
11387         fill in a generic message in this case.
11388
11389         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11390         favor of DBusError
11391
11392         * bus/test.c (bus_test_flush_bus): add
11393
11394         * bus/policy.c (bus_policy_test): test code stub
11395
11396 2003-03-24  Havoc Pennington  <hp@pobox.com>
11397
11398         * bus/connection.c (bus_connections_setup_connection): set up
11399         the "can this user connect" function, but it always returns
11400         TRUE until we have a config file parser so we can have a config
11401         file that allows connections.
11402
11403 2003-03-23  Havoc Pennington  <hp@pobox.com>
11404
11405         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11406         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11407         the mutex, so we can check for proper memory management
11408         and OOM handling.
11409
11410         * dbus/dbus-dataslot.c: remove the mutex from
11411         DBusDataSlotAllocator and lock it manually when using it,
11412         to simplify fitting it into the global slots framework.
11413
11414         * dbus/dbus-threads.c (init_static_locks): rework how we're
11415         handling global locks so they are easily shut down.
11416
11417         * bus/policy.c (bus_policy_append_rule): fix
11418
11419         * bus/test-main.c (main): check for memleaks
11420
11421         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11422         test suite check for memleaks
11423
11424         * dbus/dbus-memory.c: add support in test mode for tracking
11425         number of outstanding blocks
11426
11427 2003-03-23  Havoc Pennington  <hp@pobox.com>
11428
11429         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11430         policies code
11431
11432         * dbus/dbus-hash.h: add ULONG hash keys
11433
11434         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11435         (_dbus_get_group_id): new function
11436
11437 2003-03-20  Havoc Pennington  <hp@redhat.com>
11438
11439         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11440         new function
11441         (dbus_connection_get_unix_user): new function
11442
11443 2003-03-20  Havoc Pennington  <hp@pobox.com>
11444
11445         * bus/connection.c (bus_connection_send_oom_error): assert that
11446         message has a sender
11447         (connection_execute_transaction): ditto
11448         (bus_connection_preallocate_oom_error): fix to set the sender, and
11449         set recipient to the destination service, not the bus driver
11450
11451         * bus/policy.c: hacking
11452
11453         * dbus/dbus-message.c (dbus_message_service_is): new function
11454         (dbus_message_sender_is): new
11455
11456 2003-03-19  Havoc Pennington  <hp@redhat.com>
11457
11458         * bus/policy.c: start sketching code for policy restrictions on
11459         what connections can do.
11460
11461 2003-03-18  Havoc Pennington  <hp@redhat.com>
11462
11463         * doc/TODO: some notes on high-level todo items. Little nitpick
11464         stuff is all in @todo, so no need to add it here.
11465
11466         * doc/config-file.txt: some notes on how config file might look
11467
11468 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11469
11470         * configure.in: 0.6
11471
11472         * NEWS: Update.
11473
11474 2003-03-17  Havoc Pennington  <hp@redhat.com>
11475
11476         * dbus/dbus-internals.h: add gcc attributes so that
11477         our printf-style functions warn on bad arguments to
11478         format
11479
11480         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11481         format bug
11482
11483         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11484         printf format bug
11485
11486 2003-03-17  Havoc Pennington  <hp@redhat.com>
11487
11488         * bus/test-main.c (main): make it print something as it runs
11489         so make check doesn't look stuck
11490
11491         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11492         from CVS, now obsolete
11493
11494 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11495
11496         * bus/dispatch.c: (bus_dispatch):
11497         Refetch the service name since it may have been reallocated
11498         when dbus_message_set_sender was called.
11499
11500         * dbus/dbus-sysdeps.c: (_dbus_accept):
11501         Add address and address length variables and use them to stop
11502         valgrind from complaining.
11503
11504 2003-03-17  Havoc Pennington  <hp@pobox.com>
11505
11506         All tests pass, no memleaks, no valgrind complaints.
11507
11508         * bus/test.c: refcount handler_slot
11509
11510         * bus/connection.c (bus_connections_new): refcount
11511         connection_data_slot
11512
11513         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11514         bytes so that auth scripts pass.
11515
11516         * bus/dispatch.c: init message_handler_slot so it gets allocated
11517         properly
11518
11519         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11520
11521         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11522         dealloc server_pipe_hash when no longer used for benefit of
11523         leak checking
11524
11525         * dbus/dbus-auth.c (process_command): memleak fix
11526
11527         * bus/dispatch.c (check_hello_message): memleak fix
11528
11529 2003-03-16  Havoc Pennington  <hp@pobox.com>
11530
11531         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11532
11533 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11534
11535         * bus/activation.c (bus_activation_activate_service): Append
11536         the pending activation entry to the list of pending activations.
11537
11538 2003-03-16  Havoc Pennington  <hp@pobox.com>
11539
11540         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11541         connections
11542
11543         * dbus/dbus-address.c (create_entry): fix OOM handling when
11544         failing to alloc entry->method
11545
11546 2003-03-16  Havoc Pennington  <hp@pobox.com>
11547
11548         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11549         the watch
11550
11551         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11552         add some missing dbus_set_result
11553
11554         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11555         alloc the DBusMessageHandler
11556
11557         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11558         the transport here, since we call this from the finalizer; it
11559         resulted in a double-finalize.
11560
11561         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11562         where we tried to use transport->connection that was NULL,
11563         happened when transport was disconnected early on due to OOM
11564
11565         * bus/*.c: adapt to handle OOM for watches/timeouts
11566
11567         * dbus/dbus-transport-unix.c: port to handle OOM during
11568         watch handling
11569
11570         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11571         reference to unused bytes instead of a copy
11572
11573         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11574         out of memory
11575
11576         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11577         FALSE on OOM
11578
11579         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11580         of memory
11581
11582 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11583
11584         * doc/dbus-specification.sgml:
11585         Document reply message for ActivateService.
11586
11587 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11588
11589         * bus/activation.c: (bus_pending_activation_entry_free),
11590         (bus_pending_activation_free), (bus_activation_new),
11591         (bus_activation_unref), (bus_activation_service_created),
11592         (bus_activation_activate_service):
11593         * bus/activation.h:
11594         * bus/bus.c: (bus_context_new):
11595         * bus/desktop-file.c: (new_section):
11596         * bus/driver.c: (bus_driver_send_service_deleted),
11597         (bus_driver_handle_activate_service):
11598         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11599         * bus/services.h:
11600         * dbus/dbus-connection.c:
11601         (dbus_connection_send_with_reply_and_block):
11602         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11603         * dbus/dbus-protocol.h:
11604         Make activation work better. Now pending activations will be queued
11605         and the daemon won't try to activate services that are already registered.
11606
11607 2003-03-16  Havoc Pennington  <hp@pobox.com>
11608
11609         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11610         connection data
11611
11612         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11613         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11614
11615 2003-03-16  Havoc Pennington  <hp@pobox.com>
11616
11617         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11618         this. always run the test suite before commit...
11619
11620         * bus/*: adapt to DBusConnection API changes
11621
11622         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11623         requires renaming stuff to avoid dbus_connection_dispatch name
11624         conflict.
11625
11626         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11627         function
11628
11629         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11630         separate from _dbus_message_loader_return_buffer()
11631
11632         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11633         this, because it's now always broken to use; the number of
11634         messages in queue vs. the number still buffered by the message
11635         loader is undefined/meaningless. Should use
11636         dbus_connection_get_dispatch_state().
11637         (dbus_connection_dispatch): rename from
11638         dbus_connection_dispatch_message
11639
11640 2003-03-16  Havoc Pennington  <hp@pobox.com>
11641
11642         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11643         implementation
11644
11645 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11646
11647         * dbus/dbus-connection.c:
11648         (dbus_connection_send_with_reply_and_block):
11649         Decrease connection->n_incoming when removing an entry
11650         from the list.
11651         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11652         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11653         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11654         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11655         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11656         (dbus_dict_get_byte_array):
11657         Handle NULL arrays and strings. Also add support for byte arrays.
11658
11659         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11660         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11661         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11662         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11663         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11664         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11665         * dbus/dbus-marshal.h:
11666         Add support for marshalling and demarshalling empty arrays and strings.
11667
11668         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11669         (dbus_message_append_string_array),
11670         (dbus_message_iter_get_boolean),
11671         (dbus_message_iter_get_boolean_array),
11672         (dbus_message_iter_get_int32_array),
11673         (dbus_message_iter_get_uint32_array),
11674         (dbus_message_iter_get_double_array),
11675         (dbus_message_iter_get_byte_array),
11676         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11677         (check_message_handling):
11678         Add support for getting empty arrays and dicts.
11679
11680         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11681         Don't do any validation at all for now, that's better than just checking
11682         for ASCII.
11683
11684         * test/data/valid-messages/emptiness.message:
11685         New test message with lots of empty arrays.
11686
11687 2003-03-16  Havoc Pennington  <hp@pobox.com>
11688
11689         * dbus/dbus-connection.c
11690         (_dbus_connection_queue_received_message_link): new function that
11691         can't fail due to OOM
11692
11693         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11694         new function pops a message together with a list link
11695         containing it.
11696
11697         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11698         message queuing functions to avoid needing to alloc memory
11699
11700 2003-03-16  Havoc Pennington  <hp@pobox.com>
11701
11702         Oops - test code was only testing failure of around 30 of the
11703         mallocs in the test path, but it turns out there are 500+
11704         mallocs. I believe this was due to misguided linking setup such
11705         that there was one copy of dbus_malloc etc. in the daemon and one
11706         in the shared lib, and only daemon mallocs were tested. In any
11707         case, the test case now tests all 500+ mallocs, and doesn't pass
11708         yet, though there are lots of fixes in this patch.
11709
11710         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11711         this so that it doesn't need to allocate memory, since it
11712         has no way of indicating failure due to OOM (and would be
11713         annoying if it did).
11714
11715         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11716
11717         * bus/Makefile.am: rearrange to create two self-contained
11718         libraries, to avoid having libraries with overlapping symbols.
11719         that was resulting in weirdness, e.g. I'm pretty sure there
11720         were two copies of global static variables.
11721
11722         * dbus/dbus-internals.c: move the malloc debug stuff to
11723         dbus-memory.c
11724
11725         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11726         empty.
11727
11728         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11729
11730         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11731         on failure.
11732
11733         * bus/dispatch.c (bus_dispatch_add_connection): free
11734         message_handler_slot when no longer using it, so
11735         memory leak checkers are happy for the test suite.
11736
11737         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11738
11739         * bus/bus.c (new_connection_callback): disconnect in here if
11740         bus_connections_setup_connection fails.
11741
11742         * bus/connection.c (bus_connections_unref): fix to free the
11743         connections
11744         (bus_connections_setup_connection): if this fails, don't
11745         disconnect the connection, just be sure there are no side
11746         effects.
11747
11748         * dbus/dbus-string.c (undo_alignment): unbreak this
11749
11750         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11751         leaking
11752         (_dbus_auth_new): fix the order in which we free strings
11753         on OOM failure
11754
11755         * bus/connection.c (bus_connection_disconnected): fix to
11756         not send ServiceDeleted multiple times in case of memory
11757         allocation failure
11758
11759         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11760         get the base service name
11761         (dbus_bus_register_client): don't return base service name,
11762         instead store it on the DBusConnection and have an accessor
11763         function for it.
11764         (dbus_bus_register_client): rename dbus_bus_register()
11765
11766         * bus/dispatch.c (check_hello_message): verify that other
11767         connections on the bus also got the correct results, not
11768         just the one sending hello
11769
11770 2003-03-15  Havoc Pennington  <hp@pobox.com>
11771
11772         Make it pass the Hello handling test including all OOM codepaths.
11773         Now to do other messages...
11774
11775         * bus/services.c (bus_service_remove_owner): fix crash when
11776         removing owner from an empty list of owners
11777         (bus_registry_ensure): don't leave service in the list of
11778         a connection's owned services if we fail to put the service
11779         in the hash table.
11780
11781         * bus/connection.c (bus_connection_preallocate_oom_error): set
11782         error flag on the OOM error.
11783
11784         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11785         handle _dbus_transport_set_connection failure
11786
11787         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11788         to create watches up front and simply enable/disable them as
11789         needed.
11790         (unix_connection_set): this can now fail on OOM
11791
11792         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11793         of enabling/disabling a watch or timeout.
11794
11795         * bus/loop.c (bus_loop_iterate): don't touch disabled
11796         watches/timeouts
11797
11798         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11799
11800 2003-03-15  Havoc Pennington  <hp@pobox.com>
11801
11802         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11803         write useful test code, after all that futzing around ;-)
11804
11805         Test does not yet pass because we can't handle OOM in
11806         _dbus_transport_messages_pending (basically,
11807         dbus_connection_preallocate_send() does not prealloc the write
11808         watch). To fix this, I think we need to add new stuff to
11809         set_watch_functions, namely a SetEnabled function so we can alloc
11810         the watch earlier, then enable it later.
11811
11812         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11813         dbus-memory.c to the convenience lib
11814
11815         * bus/test.c: rename some static functions to keep them clearly
11816         distinct from stuff in connection.c. Handle client disconnection.
11817
11818 2003-03-14  Havoc Pennington  <hp@pobox.com>
11819
11820         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11821         transport, tests more of the real codepath. Set up clients
11822         with bus_setup_debug_client.
11823
11824         * bus/test.c (bus_setup_debug_client): function to set up debug
11825         "clients" on the main loop
11826
11827         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11828         support
11829
11830         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11831         server type
11832
11833         * dbus/dbus-server-debug.c: support a debug server based on pipes
11834
11835         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11836         (_dbus_close): new function
11837
11838         * configure.in: check for socketpair
11839
11840 2003-03-14  Havoc Pennington  <hp@redhat.com>
11841
11842         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11843         cheesy hack
11844
11845         * dbus/dbus-transport-debug.c: rework this a good bit to be
11846         less complicated. hopefully still works.
11847
11848         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11849         manually
11850
11851         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11852         after running it
11853
11854         * dbus/dbus-message.c (dbus_message_copy): rename from
11855         dbus_message_new_from_message, fix it up to copy
11856         all the message fields, add test case
11857
11858         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11859         not quite passing yet
11860
11861 2003-03-14  Havoc Pennington  <hp@pobox.com>
11862
11863         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11864         until no work remains" in test code. (the large diff here
11865         is just code movement, no actual changes)
11866
11867         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11868         1, no point waiting around for test code.
11869         (_dbus_server_debug_accept_transport): unref the timeout
11870         after adding it (right?)
11871
11872         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11873
11874 2003-03-13  Havoc Pennington  <hp@redhat.com>
11875
11876         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11877         out of memory
11878
11879         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11880         of memory
11881
11882         * dbus/dbus-connection.h: Make AddWatchFunction and
11883         AddTimeoutFunction return a bool so they can fail on out-of-memory
11884
11885         * bus/bus.c (bus_context_new): set up timeout handlers
11886
11887         * bus/connection.c (bus_connections_setup_connection): set up
11888         timeout handlers
11889
11890         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11891         can fail
11892
11893         * bus/bus.c (bus_context_new): adapt to changes
11894
11895         * bus/connection.c: adapt to changes
11896
11897         * test/watch.c: adapt to DBusWatch changes
11898
11899         * bus/dispatch.c (bus_dispatch_test): started adding this but
11900         didn't finish
11901
11902 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11903
11904         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11905
11906 2003-03-13  Havoc Pennington  <hp@pobox.com>
11907
11908         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11909         set up a test framework as for the library
11910
11911 2003-03-12  Havoc Pennington  <hp@pobox.com>
11912
11913         Throughout: purge global variables, introduce BusActivation,
11914         BusConnections, BusRegistry, etc. objects instead.
11915
11916         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11917         message bus object
11918
11919         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11920         going to redo this a bit differently I think
11921
11922 2003-03-12  Havoc Pennington  <hp@redhat.com>
11923
11924         Mega-patch that gets the message bus daemon initially handling
11925         out-of-memory. Work still needed. Also lots of random
11926         moving stuff to DBusError instead of ResultCode.
11927
11928         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11929
11930         * dbus/dbus-connection.c
11931         (dbus_connection_send_with_reply_and_block): use DBusError
11932
11933         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11934         DBusResultCode
11935
11936         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11937         code here, as the only failure possible is OOM.
11938
11939         * bus/connection.c (bus_connection_disconnect):
11940         rename bus_connection_disconnected as it's a notification only
11941
11942         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11943         "name" on get_args failure, should be done by get_args;
11944         don't disconnect client for bad args, just return an error.
11945         (bus_driver_handle_service_exists): ditto
11946
11947         * bus/services.c (bus_services_list): NULL-terminate returned array
11948
11949         * bus/driver.c (bus_driver_send_service_lost)
11950         (bus_driver_send_service_acquired): send messages from driver to a
11951         specific client to the client's unique name, not to the broadcast
11952         service.
11953
11954         * dbus/dbus-message.c (decode_header_data): reject messages that
11955         contain no name field
11956         (_dbus_message_get_client_serial): rename to
11957         dbus_message_get_serial and make public
11958         (_dbus_message_set_serial): rename from set_client_serial
11959         (_dbus_message_set_reply_serial): make public
11960         (_dbus_message_get_reply_serial): make public
11961
11962         * bus/connection.c (bus_connection_foreach): allow stopping
11963         iteration by returning FALSE from foreach function.
11964
11965         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11966         (dbus_connection_free_preallocated_send)
11967         (dbus_connection_preallocate_send): new API for sending a message
11968         without possibility of malloc failure.
11969         (dbus_connection_send_message): rename to just
11970         dbus_connection_send (and same for whole function family)
11971
11972         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11973
11974         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11975
11976         * bus/activation.c: handle/return errors
11977
11978         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11979
11980         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11981         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11982         (_dbus_result_from_errno): move to this file
11983
11984 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11985
11986         * dbus/dbus-marshal.c:
11987         (_dbus_marshal_set_string):
11988         Take a length argument so we can marshal the correct string
11989         length.
11990
11991         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11992         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11993         (_dbus_marshal_test):
11994         * dbus/dbus-marshal.h:
11995         Add support for marshalling and demarshalling dicts.
11996
11997         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11998         Add support for TYPE DICT.
11999
12000         * dbus/dbus-message.c: (set_string_field):
12001         Adjust header padding.
12002
12003         (dbus_message_append_args_valist), (dbus_message_append_dict),
12004         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12005         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12006         (check_message_handling), (check_have_valid_message):
12007         * dbus/dbus-message.h:
12008         Add functions for setting and getting dicts.
12009
12010         * dbus/dbus-protocol.h:
12011         Add DBUS_TYPE_DICT.
12012
12013         * dbus/dbus.h:
12014         Add dbus-dict.h
12015
12016         * doc/dbus-specification.sgml:
12017         Add information about how dicts are marshalled.
12018
12019         * test/data/invalid-messages/dict-with-nil-value.message:
12020         * test/data/invalid-messages/too-short-dict.message:
12021         * test/data/valid-messages/dict-simple.message:
12022         * test/data/valid-messages/dict.message:
12023         Add sample messages containing dicts.
12024
12025 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12026
12027         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12028
12029 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12030
12031         * dbus/Makefile.am:
12032         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12033         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12034         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12035         (dbus_dict_set_double), (dbus_dict_set_string),
12036         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12037         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12038         (dbus_dict_set_string_array), (_dbus_dict_test):
12039         * dbus/dbus-dict.h:
12040         Fix according to comments from Havoc.
12041
12042 2003-03-06  Michael Meeks  <michael@server.home>
12043
12044         * configure.in: if we don't have kde-config, disable have_qt.
12045
12046 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12047
12048         * dbus/Makefile.am:
12049         Add dbus-dict.[ch]
12050
12051         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12052         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12053         (dbus_dict_remove), (dbus_dict_get_value_type),
12054         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12055         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12056         (dbus_dict_put_double), (dbus_dict_put_string),
12057         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12058         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12059         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12060         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12061         (dbus_dict_get_double), (dbus_dict_get_string),
12062         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12063         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12064         (dbus_dict_get_string_array), (_dbus_dict_test):
12065         * dbus/dbus-dict.h:
12066         Add DBusDict implementation
12067
12068         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12069         * dbus/dbus-test.h:
12070         Add _dbus_dict_test
12071
12072 2003-03-04  Havoc Pennington  <hp@pobox.com>
12073
12074         * test/data/auth/*: adapt to changes
12075
12076         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12077         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12078         userid
12079
12080         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12081         more stuff from being in a context name, to make the protocol
12082         simpler to deal with
12083
12084         * dbus/dbus-errors.c (dbus_error_has_name): new function
12085         (dbus_error_is_set): new function
12086
12087         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12088         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12089
12090         * dbus/dbus-connection.c (dbus_connection_flush): also read
12091         messages during a flush operation
12092
12093         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12094
12095 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12096
12097         * configure.in: Check for gethostbyname on Solaris.
12098
12099         * dbus/dbus-transport.c: (_dbus_transport_open):
12100         Remove duplicate "tcp" entry.
12101
12102         * doc/dbus-specification.sgml:
12103         Clarify some things.
12104
12105 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12106
12107         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12108         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12109         (_dbus_keyring_test):
12110         * dbus/dbus-md5.c: (_dbus_md5_compute):
12111         * dbus/dbus-sha.c: (_dbus_sha_compute):
12112         Plug memory leaks.
12113
12114 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12115
12116         * README: Add some things.
12117
12118 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12119
12120         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12121         after case DBUS_TYPE_BOOELAN.
12122
12123 2003-03-02  Havoc Pennington  <hp@pobox.com>
12124
12125         * test/break-loader.c (randomly_set_extreme_ints): add test that
12126         sets really huge and small integers
12127
12128         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12129         that length of boolean array fits in the string, and that
12130         string has room for boolean value in single-bool case.
12131
12132         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12133         optional value to "ALIGN" command which is what to fill the
12134         alignment with.
12135
12136         * test/data/valid-messages/no-padding.message: add regression
12137         test for the message padding problem
12138
12139 2003-03-02  Havoc Pennington  <hp@pobox.com>
12140
12141         * dbus/dbus-message.c (decode_header_data): fix to always init
12142         message_padding, from Benjamin Dauvergne
12143
12144 2003-03-02  Havoc Pennington  <hp@pobox.com>
12145
12146         * configure.in: 0.5
12147
12148         * NEWS: Update.
12149
12150 2003-03-01  Joe Shaw  <joe@assbarn.com>
12151
12152         * configure.in: Check for "struct cmsgcred" and try to access its
12153         members for BSD-like unices.
12154
12155         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12156         _dbus_read_credentials_unix_socket().
12157         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12158         read() for reading the credential byte off the unix socket.  Use
12159         struct cmsgcred on systems that support it.
12160
12161 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12162
12163         * glib/Makefile.am:
12164         * configure.in:
12165         Make gthreads-2.0 dependency optional. Don't build thread test if
12166         its not found.
12167
12168 2003-02-27  Havoc Pennington  <hp@pobox.com>
12169
12170         * dbus/dbus-connection.c
12171         (dbus_connection_send_message_with_reply_and_block): fix doh!
12172         doh! doh! bug that resulted in never removing a reply from the
12173         queue, no wonder we called get_reply_serial so much ;-)
12174
12175         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12176         and client serial instead of demarshaling them every time
12177
12178 2003-02-27  Havoc Pennington  <hp@pobox.com>
12179
12180         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12181         more inlined, using dbus-string-private.h, speeds things up
12182         substantially
12183
12184         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12185         when freeing the string
12186         (_dbus_string_steal_data): fix for align offset
12187         (undo_alignment): new function
12188
12189 2003-02-26  Havoc Pennington  <hp@redhat.com>
12190
12191         All kinds of audit fixes from Owen, plus initial attempt to
12192         handle unaligned memory returned from malloc.
12193
12194         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12195         leave room for align_offset and nul byte
12196         (fixup_alignment): function to track an align_offset and
12197         ensure real->str is aligned
12198         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12199         to allow a nul byte plus align offset
12200         (_dbus_string_lock): fix overflow issue
12201         (_dbus_string_init_const_len): add assertions on sanity of len,
12202         assign allocated to be ALLOCATION_PADDING larger than len
12203         (set_length): fixup the overflow handling
12204         (_dbus_string_get_data_len): fix overflow in assertion
12205         (open_gap): detect overflow in size of gap to be opened
12206         (_dbus_string_lengthen): add overflow check
12207         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12208         (_dbus_string_append): add overflow check
12209         (_dbus_string_append_unichar): overflow
12210         (_dbus_string_delete): fix overflow in assertion
12211         (_dbus_string_copy_len): overflow in assertion
12212         (_dbus_string_replace_len): overflows in assertions
12213         (_dbus_string_find): change to implement in terms of
12214         _dbus_string_find_to
12215         (_dbus_string_find_to): assorted fixage
12216         (_dbus_string_equal_c_str): assert c_str != NULL,
12217         fix logic so the function works
12218         (_dbus_string_ends_with_c_str): fix overflow thingy
12219         (_dbus_string_base64_encode): overflow fix
12220         (_dbus_string_validate_ascii): overflow
12221         (_dbus_string_validate_nul): overflow
12222
12223 2003-02-26  Havoc Pennington  <hp@redhat.com>
12224
12225         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12226
12227 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12228
12229         * configure.in:
12230         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12231
12232         * dbus/dbus-connection.c:
12233         * dbus/dbus-connection.h:
12234         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12235         Add dbus_connection_set_wakeup_main_function and use it when queueing
12236         incoming and outgoing messages.
12237
12238
12239         * dbus/dbus-dataslot.c:
12240         Threadsafe usage of DBusDataSlotAllocator
12241
12242         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12243         dbus_new can fail.
12244
12245         * dbus/dbus-server-unix.c:
12246         Add todo comment
12247
12248         * glib/dbus-gmain.c:
12249         Implement the new wakeup functions for glib.
12250
12251         * glib/Makefile.am:
12252         * glib/test-thread-client.c:
12253         * glib/test-thread-server.c:
12254         * glib/test-thread.h:
12255         Initial cut at some thread test code. Not really done yet.
12256
12257 2003-02-26  Havoc Pennington  <hp@pobox.com>
12258
12259         * dbus/dbus-connection.c
12260         (dbus_connection_send_message_with_reply_and_block): fix crash
12261         where we ref'd the outgoing message instead of the returned reply
12262
12263         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12264         at the end of this function, so if we didn't need to read for
12265         authentication, we reinstall it for receiving messages
12266
12267         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12268         a NULL sender for peer-to-peer case
12269
12270         * dbus/dbus-transport-unix.c (check_read_watch): handle
12271         !authenticated case correctly
12272
12273         * glib/dbus-gmain.c: add support for DBusServer
12274
12275         * dbus/dbus-server.c: add data slot support
12276
12277         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12278         return values and handle errors
12279
12280         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12281         DBusConnection
12282
12283         * Doxyfile.in (INPUT): add glib subdir
12284
12285         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12286         setup_with_g_main instead of hookup_with_g_main; write docs
12287
12288 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12289
12290         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12291         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12292         * dbus/dbus-message.c: (dbus_message_append_boolean),
12293         (dbus_message_append_boolean_array),
12294         (dbus_message_get_args_valist), (_dbus_message_test):
12295         * dbus/dbus-message.h:
12296         * doc/dbus-specification.sgml:
12297         Various fixes as pointed out by Havoc.
12298
12299         * test/data/invalid-messages/bad-boolean-array.message:
12300         * test/data/invalid-messages/bad-boolean.message:
12301         Add invalid boolean value test cases.
12302
12303 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12304
12305         * dbus/dbus-internals.c: (_dbus_type_to_string):
12306         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12307         (_dbus_marshal_validate_arg):
12308         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12309         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12310         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12311         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12312         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12313         (dbus_message_iter_get_double),
12314         (dbus_message_iter_get_boolean_array), (message_iter_test):
12315         * dbus/dbus-message.h:
12316         * dbus/dbus-protocol.h:
12317         * doc/dbus-specification.sgml:
12318         * test/data/valid-messages/lots-of-arguments.message:
12319         Add support for boolean and boolean array types.
12320
12321 2003-02-23  Havoc Pennington  <hp@pobox.com>
12322
12323         * dbus/dbus-keyring.c: finish most of this implementation and
12324         simple unit test
12325
12326         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12327         these barf if the error isn't cleared to NULL
12328
12329         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12330         (_dbus_create_directory): new function
12331
12332         * dbus/dbus-errors.c (dbus_set_error): fix warning
12333
12334         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12335         (_dbus_string_hex_decode): new function
12336         (test_hex_roundtrip): test code
12337
12338         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12339
12340         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12341
12342         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12343         the save-to-temp/rename trick to atomically write the new file
12344         (_dbus_string_parse_uint): new function
12345
12346 2003-02-22  Havoc Pennington  <hp@pobox.com>
12347
12348         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12349
12350 2003-02-22  Havoc Pennington  <hp@pobox.com>
12351
12352         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12353         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12354
12355         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12356
12357         * dbus/test/data/sha-1: add US government test suite for SHA-1
12358
12359 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12360
12361         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12362         Make string arrays NULL-terminated.
12363
12364         * dbus/dbus-memory.c: (dbus_free_string_array):
12365         * dbus/dbus-memory.h:
12366         New function for freeing NULL-terminated string arrays.
12367
12368         * dbus/dbus-message-builder.c: (append_quoted_string),
12369         (_dbus_message_data_load):
12370         Add support for array types.
12371
12372         * dbus/dbus-message.c: (check_message_handling):
12373         Add more types as test cases.
12374
12375         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12376         (_dbus_string_parse_double):
12377         Add the start offset to the end offset.
12378
12379         * test/data/valid-messages/lots-of-arguments.message:
12380         New test message with lots of arguments.
12381
12382 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12383
12384         * dbus/dbus-message.c: (dbus_message_append_nil),
12385         (dbus_message_append_int32), (dbus_message_append_uint32),
12386         (dbus_message_append_double), (dbus_message_append_string),
12387         (dbus_message_append_int32_array),
12388         (dbus_message_append_uint32_array),
12389         (dbus_message_append_double_array),
12390         (dbus_message_append_byte_array),
12391         (dbus_message_append_string_array):
12392         Fix all out-of-memory handling in these functions.
12393
12394 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12395
12396         * dbus/dbus-message.c: (dbus_message_append_nil):
12397         Fix a silly.
12398
12399 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12400
12401         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12402         (dbus_message_append_nil), (dbus_message_append_int32_array),
12403         (dbus_message_append_uint32_array),
12404         (dbus_message_append_double_array),
12405         (dbus_message_append_byte_array),
12406         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12407         (dbus_message_iter_get_int32_array),
12408         (dbus_message_iter_get_uint32_array),
12409         (dbus_message_iter_get_double_array),
12410         (dbus_message_iter_get_byte_array),
12411         (dbus_message_iter_get_string_array):
12412
12413         * dbus/dbus-message.h:
12414         Add functions for appending and getting arrays.
12415
12416 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12417
12418         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12419         element size at least 8 bytes, fixes mempool tests on
12420         64-bit machines.
12421
12422 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12423
12424         * dbus/dbus-transport-unix.c (unix_do_iteration):
12425         Unlock the connection mutex during a blocking select call.
12426         Add todo about how we need a way to wake up the select.
12427
12428         * dbus/dbus-connection-internal.h:
12429         * dbus/dbus-connection.c:
12430         Add _dbus_connection_lock and _dbus_connection_unlock.
12431
12432 2003-02-19  Havoc Pennington  <hp@pobox.com>
12433
12434         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12435         Doxyfile.in, not Doxyfile
12436
12437         * dbus/dbus-keyring.c: do some hacking on this
12438
12439         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12440
12441         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12442         dbus_error_init
12443         (dbus_set_error): remove dbus_error_init, check for message ==
12444         NULL *before* we sprintf into it, and add @todo about including
12445         system headers in this file
12446
12447         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12448
12449         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12450
12451         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12452         get various bits of user information based on either username
12453         or user ID
12454         (_dbus_homedir_from_username): new function
12455
12456 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12457
12458         * configure.in:
12459         Add check for nonposix getpwnam_r
12460
12461         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12462         Align the pool element size to a sizeof (void *) boundary.
12463
12464         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12465         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12466         General Solaris fixes.
12467
12468         * test/data/valid-messages/simplest-manual.message:
12469         Explicitly state that we want little-endian packing.
12470
12471 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12472
12473         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12474
12475         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12476         Added to create a transport connecting using a tcp/ip socket.
12477
12478         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12479         to a tcp socket at given host and port.
12480         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12481         hostname and port.
12482
12483         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12484
12485         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12486         Added to create a server listening on a TCP/IP socket.
12487
12488 2003-02-19  Havoc Pennington  <hp@pobox.com>
12489
12490         Throughout: mop up all the Doxygen warnings and undocumented
12491         stuff.
12492
12493         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12494         to search any paths.
12495
12496         * dbus/dbus-threads.c: move global mutex initializers to
12497         dbus-internals.h, multiple prototypes was confusing doxygen
12498         besides being kind of ugly
12499
12500         * Doxyfile (PREDEFINED): have Doxygen define
12501         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12502         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12503         (do not abuse the feature! it's for stuff like the autogenerated
12504         macros in dbus-md5.c, not just for things you don't feel like
12505         documenting...)
12506
12507 2003-02-18  Havoc Pennington  <hp@pobox.com>
12508
12509         * dbus/dbus-string.c (_dbus_string_zero): new function
12510
12511         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12512         wrap it in some dbus-friendly API
12513
12514         * dbus/dbus-types.h: add 16-bit types
12515
12516 2003-02-18  Joe Shaw  <joe@assbarn.com>
12517
12518         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12519         credentials from our currently running process.
12520         (get_word): Fix a buglet where we were copying the entire length
12521         instead of relative to our position.
12522
12523         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12524         keys on the stack... it's 640k of data.
12525
12526         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12527         read the credentials byte off the socket, even if we don't have
12528         SO_PEERCRED.
12529         (_dbus_poll): Implement poll() using select() for systems which
12530         don't have it.
12531
12532         * glib/test-dbus-glib.c (main): Print out an error if no
12533         parameters are given.
12534
12535         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12536         can fallback to a secondary auth mechanism if the first fails.
12537
12538 2003-02-18  Havoc Pennington  <hp@pobox.com>
12539
12540         * AUTHORS: add Alex
12541
12542 2003-02-17  Havoc Pennington  <hp@pobox.com>
12543
12544         * doc/dbus-specification.sgml: lots of cosmetic
12545         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12546         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12547         s/server/bus/ (except in authentication section). Add a section
12548         "Message Bus Message Routing"
12549
12550 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12551
12552         Release 0.4
12553
12554         * NEWS: Update
12555
12556 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12557
12558         * doc/dbus-specification.sgml:
12559         Specification updates.
12560
12561 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12562
12563         * bus/activation.c: (bus_activation_init), (child_setup),
12564         (bus_activation_activate_service):
12565         * bus/activation.h:
12566         * bus/main.c: (main):
12567         Set DBUS_ADDRESS environment variable.
12568
12569         * dbus/dbus-errors.c: (dbus_set_error):
12570         Don't use va_copy since that's a C99 feature.
12571
12572         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12573         (_dbus_spawn_async):
12574         * dbus/dbus-sysdeps.h:
12575         Add child_setup_func to _dbus_spawn_async.
12576
12577         * doc/dbus-specification.sgml:
12578         Update specification.
12579
12580         * test/spawn-test.c: (setup_func), (main):
12581         Fix test.
12582
12583 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12584
12585         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12586         Added todo.
12587
12588 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12589
12590         * doc/.cvsignore:
12591         * doc/Makefile.am:
12592         * doc/dbus-test-plan.sgml:
12593         Add test plan document.
12594
12595         * test/Makefile.am:
12596         Fix distcheck.
12597
12598 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12599
12600         * dbus/dbus-message.c: (decode_header_data),
12601         (_dbus_message_loader_return_buffer):
12602         Set the header padding amount when loading a message.
12603
12604 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12605
12606         * bus/dispatch.c: (send_one_message):
12607         Only send broadcast messages to registered connections.
12608
12609         * dbus/dbus-message.c: (dbus_message_name_is):
12610         * dbus/dbus-message.h:
12611         New convenience function.
12612
12613         * dbus/dbus-transport-debug.c: (do_reading):
12614         Only dispatch one message per run.
12615
12616         * test/Makefile.am:
12617         * test/bus-test.c: (new_connection_callback), (die),
12618         (test_hello_client1_handler), (test_hello_client2_handler),
12619         (test_hello_replies), (main):
12620
12621         * test/bus-test-loop.[ch]:
12622         Add these.
12623
12624 2003-02-16  Havoc Pennington  <hp@pobox.com>
12625
12626         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12627         backward conditional
12628
12629 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12630
12631         * dbus/dbus-connection.c:
12632         Implement sent_message_with_reply. (with_reply_and block is still
12633         busted).
12634         Made dispatch_message not lose message if OOM.
12635
12636         * dbus/dbus-errors.h:
12637         Add NoReply error (for reply timeouts).
12638
12639 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12640
12641         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12642         Actually free keys and values when destroying hashtable.
12643
12644 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12645
12646         * dbus/dbus-auth.c: (client_try_next_mechanism):
12647         Plug a leak.
12648
12649         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12650         Return TRUE if there's no thread implementation around.
12651
12652         * glib/dbus-gmain.c: (free_source),
12653         (dbus_connection_hookup_with_g_main):
12654         Make sure to remove the GSource when the connection is finalized.
12655
12656 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12657
12658         * bus/dispatch.c: (bus_dispatch_message_handler):
12659         * dbus/dbus-errors.h:
12660         Return an error if someone tries to send a message to a service
12661         that doesn't exist.
12662
12663 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12664
12665         * bus/activation.c: (load_directory), (bus_activation_init),
12666         (bus_activation_activate_service):
12667         * bus/activation.h:
12668         * bus/driver.c:
12669         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12670         More work on the activation handling.
12671
12672         * dbus/dbus-errors.h:
12673         Add some error messages
12674
12675         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12676         * dbus/dbus-message.h:
12677         New function that creates an error message.
12678
12679         * dbus/dbus-protocol.h:
12680         Add ACTIVATE_SERVER message.
12681
12682         * dbus/dbus-server-unix.c: (unix_handle_watch),
12683         (_dbus_server_new_for_domain_socket):
12684         Call _dbus_fd_set_close_on_exec.
12685
12686         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12687         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12688         (_dbus_fd_set_close_on_exec):
12689         * dbus/dbus-sysdeps.h:
12690         Add _dbus_fd_set_close_on exec function. Also add function that checks
12691         that all open fds are set to close-on-exec and warns otherwise.
12692
12693         * dbus/dbus-transport-unix.c:
12694         (_dbus_transport_new_for_domain_socket):
12695         Call _dbus_fd_set_close_on_exec.
12696
12697 2003-02-16  Havoc Pennington  <hp@pobox.com>
12698
12699         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12700         allow people to avoid setting SIGPIPE to SIG_IGN
12701         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12702         we've been asked not to
12703
12704 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12705
12706         * dbus/dbus-list.c: (_dbus_list_append_link),
12707         (_dbus_list_prepend_link):
12708         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12709         (dbus_realloc):
12710         Warning fixes.
12711
12712 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12713
12714         * bus/Makefile.am:
12715         * bus/activation.c: (bus_activation_entry_free),
12716         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12717         * bus/activation.h:
12718         * bus/main.c: (main):
12719         Add simple activation support, doesn't work yet though.
12720
12721 2003-02-15   Zack Rusin  <zack@kde.org>
12722
12723         * qt/dbus-qthread.cpp:  small casting fix
12724
12725 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12726
12727         * dbus/dbus-errors.c: (dbus_set_error):
12728         * dbus/dbus-errors.h:
12729         Add a few errors and make dbus_set_error void.
12730
12731         * dbus/dbus-sysdeps.c:
12732         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12733         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12734         * dbus/dbus-sysdeps.h:
12735         Add _dbus_spawn_async.
12736
12737         * test/spawn-test.c: (main):
12738         Test for _dbus_spawn_async.
12739
12740 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12741
12742         * dbus/dbus-internals.h:
12743         Fix build without tests.
12744
12745         * dbus/dbus-list.c: (alloc_link):
12746         Fix a segfault when a malloc fails.
12747
12748         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12749         (dbus_malloc0), (dbus_realloc):
12750         Add support for malloc debugging.
12751
12752 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12753
12754         * dbus/dbus-threads.c:
12755         * dbus/dbus-threads.h:
12756         Add condvars. Remove static mutext from API.
12757         Implement static mutexes by initializing them from threads_init.
12758
12759         * glib/dbus-gthread.c:
12760         * qt/dbus-qthread.cpp:
12761         Update with the thread api changes.
12762
12763
12764         * dbus/dbus-list.c:
12765         * dbus/dbus-list.h:
12766         Turn StaticMutex into normal mutex + init function.
12767         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12768         _dbus_list_append_link, _dbus_list_prepend_link
12769
12770
12771         * dbus/dbus-sysdeps.c:
12772         * dbus/dbus-sysdeps.h:
12773         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12774         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12775
12776         * dbus/dbus-protocol.h:
12777         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12778
12779         * dbus/dbus-message.c:
12780         Make ref/unref atomic.
12781         Fix some docs.
12782
12783         * dbus/dbus-connection-internal.h:
12784         * dbus/dbus-connection.c:
12785         * dbus/dbus-connection.h:
12786         Make threadsafe.
12787         Change _peek to _borrow,_return & _steal_borrowed.
12788         Change disconnect callback to event.
12789         Make dbus_connection_dispatch_messages reentrant.
12790
12791         * dbus/dbus-transport.c:
12792         Don't ref the connection on calls to the transport
12793         implementation.
12794
12795         * dbus/dbus-message-handler.c:
12796         Make threadsafe.
12797
12798         * glib/dbus-gmain.c:
12799         Don't use peek_message anymore
12800
12801         * test/Makefile.am:
12802         * test/debug-thread.c:
12803         * test/debug-thread.h:
12804         Simple thread implementation that asserts() on deadlocks in
12805         single-threaded code.
12806
12807         * test/bus-test.c:
12808         (main) Call debug_threads_init.
12809
12810         * test/watch.c:
12811         Use disconnect message instead of disconnect callback.
12812
12813         * bus/connection.c:
12814         * bus/connection.h:
12815         Don't call dbus_connection_set_disconnect_function. Instead export
12816         bus_connection_disconnect.
12817
12818         * bus/dispatch.c:
12819         Call bus_connection_disconnect when we get a disconnected message.
12820
12821 2003-02-15  Havoc Pennington  <hp@pobox.com>
12822
12823         * dbus/dbus-message.c (dbus_message_new): fool around with the
12824         docs
12825
12826 2003-02-14  Havoc Pennington  <hp@pobox.com>
12827
12828         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12829
12830         * dbus/dbus-memory.c: fail if the debug functions indicate we
12831         should
12832
12833         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12834         (_dbus_decrement_fail_alloc_counter): debug functions to
12835         simulate memory allocation failures
12836
12837 2003-02-14  Havoc Pennington  <hp@pobox.com>
12838
12839         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12840         to DBusError
12841
12842 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12843
12844         * bus/driver.c: (bus_driver_handle_hello):
12845         * bus/driver.h:
12846         * bus/services.c: (bus_service_lookup):
12847         Reorder message sending so we get a more sane order.
12848
12849         * test/bus-test.c: (message_handler):
12850         Fix tyop.
12851
12852 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12853
12854         * bus/driver.c: (bus_driver_send_service_deleted),
12855         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12856         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12857         (bus_driver_send_welcome_message),
12858         (bus_driver_handle_list_services),
12859         (bus_driver_handle_acquire_service),
12860         (bus_driver_handle_service_exists):
12861         * dbus/dbus-bus.c: (dbus_bus_register_client),
12862         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12863         * dbus/dbus-errors.c: (dbus_result_to_string):
12864         * dbus/dbus-errors.h:
12865         * dbus/dbus-message.c: (dbus_message_append_args),
12866         (dbus_message_append_args_valist), (dbus_message_get_args),
12867         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12868         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12869         (dbus_message_iter_get_byte_array),
12870         (dbus_message_iter_get_string_array), (message_iter_test),
12871         (check_message_handling), (_dbus_message_test):
12872         * dbus/dbus-message.h:
12873         * test/bus-test.c: (main):
12874         Change fields to arguments in messages, so that they won't be
12875         confused with header fields.
12876
12877         * glib/test-dbus-glib.c: (main):
12878         Remove append_fields from hello message.
12879
12880 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12881
12882         * dbus/dbus-errors.c:
12883         * dbus/dbus-message.c:
12884         * dbus/dbus-string.c:
12885         Documentation fixes.
12886
12887 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12888
12889         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12890         (remove_timeout):
12891         Implement support for timeouts in dbus-glib.
12892
12893 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12894
12895         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12896         * dbus/dbus-message.c: (process_test_subdir):
12897         * test/break-loader.c: (find_breaks_based_on):
12898         Plug some memory leaks.
12899
12900 2003-02-13  Richard Hult  <rhult@codefactory.se>
12901
12902         * bus/main.c: Fix build.
12903
12904         * dbus/dbus-errors.h:
12905         * dbus/dbus-errors.c: Fix copyright for Anders.
12906
12907 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12908
12909         * bus/Makefile.am:
12910         Add utils.[ch]
12911
12912         * bus/connection.c: (bus_connection_foreach):
12913         Fix a warning.
12914
12915         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12916         (unescape_string), (new_section), (parse_section_start),
12917         (parse_key_value), (report_error), (bus_desktop_file_load),
12918         (bus_desktop_file_get_string):
12919         * bus/desktop-file.h:
12920         Use DBusError for error reporting.
12921
12922         * bus/dispatch.c: (send_one_message),
12923         (bus_dispatch_message_handler):
12924         * bus/driver.c: (bus_driver_send_service_deleted),
12925         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12926         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12927         (bus_driver_send_welcome_message),
12928         (bus_driver_handle_list_services),
12929         (bus_driver_handle_acquire_service),
12930         (bus_driver_handle_service_exists):
12931         * bus/loop.c: (bus_loop_run):
12932         * bus/main.c:
12933         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12934
12935         * bus/utils.c: (bus_wait_for_memory):
12936         * bus/utils.h:
12937         New files with general utility functions.
12938
12939         * dbus/dbus-internals.h:
12940         Remove _DBUS_HANDLE_OOM.
12941
12942 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12943
12944         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12945         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12946         * dbus/dbus-errors.h:
12947         Add DBusError structure.
12948
12949 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12950
12951         * test/data/valid-messages/standard-acquire-service.message:
12952         * test/data/valid-messages/standard-hello.message:
12953         * test/data/valid-messages/standard-list-services.message:
12954         * test/data/valid-messages/standard-service-exists.message:
12955         Add some standard messages.
12956
12957 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12958
12959         * bus/driver.c: (bus_driver_send_welcome_message),
12960         (bus_driver_handle_list_services),
12961         (bus_driver_handle_acquire_service),
12962         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12963         Update for API changes in libdbus.
12964
12965         * dbus/dbus-message.c: (dbus_message_new_reply):
12966         * dbus/dbus-message.h:
12967         Remove the name argument. The spec states that replies shouldn't
12968         have a name.
12969
12970 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12971
12972         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12973         (report_error), (bus_desktop_file_load), (lookup_section),
12974         (lookup_line), (bus_desktop_file_get_raw),
12975         (bus_desktop_file_get_string):
12976         * bus/desktop-file.h:
12977         Some fixes, and new functions for getting a key value from a section.
12978
12979 2003-02-13  Havoc Pennington  <hp@pobox.com>
12980
12981         * test/data/auth/fail-after-n-attempts.auth-script: new test
12982
12983         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12984         reject the client.
12985
12986 2003-02-13  Havoc Pennington  <hp@pobox.com>
12987
12988         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12989         dbus_credentials_match were backward
12990
12991         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12992         NO_CREDENTIALS and ROOT_CREDENTIALS
12993
12994         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12995         into here. Never process more commands after we've reached an
12996         end state; store further data as unused bytes.
12997
12998         * test/data/auth/*: add more auth tests
12999
13000         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13001         command to match exact string and EXPECT_UNUSED to match unused
13002         bytes
13003
13004         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13005
13006 2003-02-12  Havoc Pennington  <hp@pobox.com>
13007
13008         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13009         \r off of popped lines
13010
13011         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13012         scripts
13013
13014         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13015         SEND, append \r\n
13016
13017 2003-02-12  Havoc Pennington  <hp@pobox.com>
13018
13019         * dbus/Makefile.am: remove break-loader from the build, since it
13020         moved.
13021
13022         * configure.in: add --enable-gcov to turn on coverage profiling
13023         flags and disable optimization
13024
13025 2003-02-10  Havoc Pennington  <hp@pobox.com>
13026
13027         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13028         initial cut at test framework for DBusAuth from laptop.
13029         Doesn't quite work yet but it compiles and I need to get
13030         it off the 266mhz laptop. ;-)
13031
13032         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13033         fix a memleak in error case
13034
13035 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13036
13037         * bus/Makefile.am:
13038         * bus/desktop-file.c:
13039         * bus/desktop-file.h:
13040         Add a desktop file parser.
13041
13042 2003-02-11  Zack Rusin  <zack@kde.org>
13043
13044         * qt/message.[h|cpp]: sample implementation
13045         of the KDE wrapper for DBusMessage
13046
13047 2003-02-09  Zack Rusin  <zack@kde.org>
13048
13049         * test/bus-test.c: make_it_compile
13050         * doc/dbus-specification.sgml: minimal semantic fix
13051
13052 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13053
13054         Release 0.3
13055
13056         * NEWS: Update
13057
13058 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13059
13060         * dbus/Makefile.am:
13061         * dbus/dbus-break-loader.c:
13062         * test/Makefile.am:
13063         * test/break-loader.c:
13064         Move dbus-break-loader to test/ and rename it to break-loader.
13065
13066 2003-02-02  Havoc Pennington  <hp@pobox.com>
13067
13068         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13069         for code to manage cookies in your home directory
13070
13071         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13072
13073         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13074         to authenticate, then disconnect the client.
13075
13076 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13077
13078         * dbus/dbus-message.c (dbus_message_append_fields):
13079         Correct docs.
13080
13081 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13082
13083         * doc/dbus-specification.sgml:
13084         Update address format section.
13085
13086 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13087
13088         * test/Makefile.am:
13089         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13090         (message_handler), (new_connection_callback), (loop_quit),
13091         (loop_run), (main):
13092         Add bus test.
13093
13094 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13095
13096         * bus/driver.c: (bus_driver_handle_service_exists):
13097         Simplify the code a bit.
13098
13099         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13100         Fix a silly.
13101
13102 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13103
13104         * bus/Makefile.am:
13105         Add libdbus-daemon.la and link to it.
13106
13107 2003-02-01  James Willcox  <jwillcox@gnome.org>
13108
13109         * bus/driver.c: (bus_driver_handle_own_service):
13110         Actually include the service reply code in the message.
13111
13112 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13113
13114         * bus/driver.c: (bus_driver_handle_service_exists):
13115         Don't unref the incoming message.
13116
13117 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13118
13119         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13120
13121 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13122
13123         * dbus/dbus-server.c: (dbus_server_listen):
13124         * dbus/dbus-transport.c: (_dbus_transport_open):
13125         ifdef out the calls to the debug transport and server.
13126
13127 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13128
13129         * dbus/dbus-watch.c (dbus_watch_get_flags):
13130         Add note in the docs that ERROR or HANGUP won't be returned
13131         and are assumed always on.
13132
13133         * glib/dbus-gmain.c (add_watch):
13134         Always add IO_ERR | IO_HUP
13135
13136         * dbus/dbus-message.h:
13137         Add semicolon after dbus_message_iter_get_string_array().
13138         Makes qt code build again
13139
13140 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13141
13142         * bus/driver.c: (create_unique_client_name),
13143         (bus_driver_handle_hello):
13144         Don't take a name, just use a numeric id to identify
13145         each client.
13146
13147         * dbus/Makefile.am:
13148         * dbus/dbus-bus.c: (dbus_bus_register_client),
13149         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13150         * dbus/dbus-bus.h:
13151         Add new convenience functions for communicating with the bus.
13152
13153         * dbus/dbus-message.h:
13154
13155         * dbus/dbus-protocol.h:
13156         Fix a typo.
13157
13158 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13159
13160         * dbus/dbus-message.c (dbus_message_append_fields):
13161         Add some more doc comments.
13162
13163 2003-02-01  Havoc Pennington  <hp@pobox.com>
13164
13165         * dbus/dbus-break-loader.c (randomly_modify_length): change
13166         a 4-byte value in the message as if it were a length
13167
13168         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13169         execute bit on saved files
13170
13171 2003-02-01  Havoc Pennington  <hp@pobox.com>
13172
13173         * dbus/dbus-break-loader.c (main): new program to find messages
13174         that break the loader.
13175
13176         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13177         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13178
13179         * dbus/dbus-string.c (_dbus_string_set_byte): new
13180
13181 2003-01-31  Havoc Pennington  <hp@pobox.com>
13182
13183         * dbus/dbus-message.c: refactor the test code to be more general,
13184         in preparation for writing a "randomly permute test cases to
13185         try to break the loader" program.
13186
13187 2003-01-31  Havoc Pennington  <hp@pobox.com>
13188
13189         * doc/dbus-specification.sgml: work on the specification
13190
13191         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13192         the protocol version of the message.
13193
13194         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13195         no longer specifies that.
13196         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13197         1/2/3/4)
13198
13199         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13200         "break" for DBUS_TYPE_NIL, remove @todo
13201
13202 2003-01-31  Havoc Pennington  <hp@pobox.com>
13203
13204         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13205         just set_is_error/get_is_error as this is a commonly-used
13206         function, and write docs.
13207
13208 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13209
13210         * dbus/dbus-address.c: (dbus_address_entry_free):
13211         Free key and value lists.
13212
13213         * dbus/dbus-internals.c: (_dbus_type_to_string):
13214         Add the types we didn't have.
13215
13216         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13217         (_dbus_marshal_validate_arg):
13218         Add NIL types.
13219
13220         * dbus/dbus-message.c: (dbus_message_set_sender):
13221         Remove todo about being able to set sender to NULL.
13222
13223         (dbus_message_set_is_error_reply),
13224         (dbus_message_get_is_error_reply):
13225         * dbus/dbus-message.h:
13226         New functions.
13227
13228         * dbus/dbus-protocol.h:
13229         Add error reply flag.
13230
13231         * test/data/valid-messages/opposite-endian.message:
13232         Add NIL type to test.
13233
13234 2003-01-31  Havoc Pennington  <hp@pobox.com>
13235
13236         * doc/dbus-specification.sgml: fully specify the header.  Add
13237         flags and major protocol version, and change header/body len to
13238         unsigned.
13239
13240         * dbus/dbus-message-builder.c (append_saved_length): append length
13241         as uint32
13242
13243         * dbus/dbus-message.c (dbus_message_create_header): change header
13244         length and body length to unsigned. Add the new fields from the
13245         spec
13246         (_dbus_message_loader_return_buffer): unsigned header/body len
13247
13248 2003-01-30  Havoc Pennington  <hp@pobox.com>
13249
13250         * dbus/dbus-auth.c: rework to use only REJECTED, no
13251         MECHANISMS
13252
13253         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13254         use REJECTED, suggested by Mark McLoughlin
13255
13256 2003-01-30  Havoc Pennington  <hp@pobox.com>
13257
13258         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13259         a better way to report errors here. e.g.  "unix address lacks
13260         path" or something. also "no such file" when the path doesn't
13261         exist, etc.
13262
13263         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13264         leaking list nodes
13265         (dbus_parse_address): add @todo about documenting address format,
13266         and allowing , and ; to be escaped
13267
13268 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13269
13270         * dbus/Makefile.am:
13271         Add dbus-address.[ch]
13272
13273         * dbus/dbus-address.c: (dbus_address_entry_free),
13274         (dbus_address_entries_free), (create_entry),
13275         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13276         (dbus_parse_address), (_dbus_address_test):
13277         * dbus/dbus-address.h:
13278         New files for dealing with address parsing.
13279
13280         * dbus/dbus-connection.c:
13281         Document timeout functions.
13282
13283         * dbus/dbus-message.c:
13284         Document dbus_message_new_from_message.
13285
13286         * dbus/dbus-server-debug.c:
13287         Document.
13288
13289         * dbus/dbus-server.c: (dbus_server_listen):
13290         Parse address and use correct server implementation.
13291
13292         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13293         * dbus/dbus-string.h:
13294         New function with test.
13295
13296         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13297         * dbus/dbus-test.h:
13298         Add address tests.
13299
13300         * dbus/dbus-transport-debug.c:
13301         Document.
13302
13303         * dbus/dbus-transport.c: (_dbus_transport_open):
13304         Parse address and use correct transport implementation.
13305
13306 2003-01-30  Havoc Pennington  <hp@pobox.com>
13307
13308         * dbus/dbus-message.c: use message->byte_order instead of
13309         DBUS_COMPILER_BYTE_ORDER throughout.
13310         (dbus_message_create_header): pad header to align the
13311         start of the body of the message to 8-byte boundary
13312
13313         * dbus/dbus-marshal.h: make all the demarshalers take const
13314         DBusString arguments.
13315
13316         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13317         validate message args here, so we don't have to do slow validation
13318         later, and so we catch bad messages as they are incoming. Also add
13319         better checks on header_len and body_len. Also fill in
13320         message->byte_order
13321
13322         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13323         implemented properly)
13324         (_dbus_string_validate_nul): new function to check all-nul
13325
13326         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13327         get_arg_end_pos and remove all validation
13328         (_dbus_marshal_validate_arg): actually do validation here.
13329
13330 2003-01-29  Havoc Pennington  <hp@pobox.com>
13331
13332         * dbus/dbus-message.c (check_message_handling): fix assertion
13333         failure on set_client_serial
13334
13335 2003-01-28  Havoc Pennington  <hp@pobox.com>
13336
13337         * dbus/dbus-server-debug.c: Add doc section comments
13338
13339         * dbus/dbus-transport-debug.c: add doc section comments
13340
13341 2003-01-28  Havoc Pennington  <hp@redhat.com>
13342
13343         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13344         the reverse order from how I had it
13345         (_dbus_string_base64_encode): reverse encoding order. I was
13346         basically byteswapping everything during encoding.
13347
13348 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13349
13350         * dbus/dbus-connection-internal.h:
13351         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13352         (_dbus_connection_remove_timeout):
13353         Add functions for adding and removing timeouts.
13354
13355         * dbus/dbus-message.c: (dbus_message_new_from_message):
13356         Add new function that takes a message and creates an exact
13357         copy of it, but with the refcount set to 1.
13358         (check_message_handling):
13359         Fix build error.
13360
13361         * dbus/dbus-server-protected.h:
13362         * dbus/dbus-server.c: (_dbus_server_init_base),
13363         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13364         (dbus_server_set_timeout_functions):
13365         (_dbus_server_remove_timeout):
13366         New functions so that a server can add and remove timeouts.
13367
13368         (dbus_server_listen):
13369         Add commented out call to dbus_server_debug_new.
13370
13371         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13372         Actually set the handler, doh.
13373
13374         * dbus/dbus-transport.c: (_dbus_transport_open):
13375         Add commented out call to dbus_transport_debug_client_new.
13376
13377         * dbus/Makefile.am:
13378         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13379
13380 2003-01-28  Havoc Pennington  <hp@pobox.com>
13381
13382         * dbus/dbus-message.c (check_message_handling): function to check
13383         on the loaded message, iterates over it etc.
13384
13385 2003-01-28  Havoc Pennington  <hp@pobox.com>
13386
13387         * test/Makefile.am (dist-hook): fix make distdir
13388
13389         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13390
13391 2003-01-27  Havoc Pennington  <hp@pobox.com>
13392
13393         * dbus/dbus-mempool.c (time_for_size): replace printf with
13394         _dbus_verbose
13395
13396         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13397         empty lines; fix the SAVE_LENGTH stuff to be
13398         START_LENGTH/END_LENGTH so it actually works; couple other
13399         bugfixes
13400
13401         * test/Makefile.am (dist-hook): add dist-hook for .message files
13402
13403         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13404         can be constant or locked.
13405         (_dbus_string_free): allow freeing a const string as
13406         documented/intended
13407
13408         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13409
13410         * dbus/dbus-test-main.c (main): take an argument which is the
13411         directory containing test data
13412
13413         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13414         argument to this and load all the messages in test/data/
13415         checking that they can be loaded or not loaded as appropriate.
13416
13417 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13418
13419         * bus/dispatch.c: (bus_dispatch_message_handler):
13420         Dispatch messages sent to services.
13421
13422         * bus/driver.c: (bus_driver_send_service_deleted),
13423         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13424         (bus_driver_send_service_acquired):
13425         Add helper functions for sending service related messages.
13426
13427         (bus_driver_send_welcome_message):
13428         Send HELLO_REPLY instead of WELCOME.
13429
13430         (bus_driver_handle_list_services):
13431         Send LIST_SERVICES_REPLY instead of SERVICES.
13432
13433         (bus_driver_handle_own_service),
13434         (bus_driver_handle_service_exists):
13435         New message handlers.
13436
13437         (bus_driver_handle_message):
13438         Invoke new message handlers.
13439
13440         (bus_driver_remove_connection):
13441         Don't remove any services here since that's done automatically
13442         by bus_service_remove_owner now.
13443
13444         * bus/driver.h:
13445         New function signatures.
13446
13447         * bus/services.c: (bus_service_add_owner):
13448         Send ServiceAcquired message if we're the only primary owner.
13449
13450         (bus_service_remove_owner):
13451         Send ServiceAcquired/ServiceLost messages.
13452
13453         (bus_service_set_prohibit_replacement),
13454         (bus_service_get_prohibit_replacement):
13455         Functions for setting prohibit replacement.
13456
13457         (bus_service_has_owner):
13458         New function that checks if a connection is in the owner queue of
13459         a certain service.
13460
13461         * bus/services.h:
13462         Add new function signatures.
13463
13464         * dbus/dbus-list.c: (_dbus_list_test):
13465         Add tests for _dbus_list_remove_last and traversing the list backwards.
13466
13467         * dbus/dbus-list.h:
13468         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13469         go any further, so return NULL then.
13470
13471         * dbus/dbus-protocol.h:
13472         Add new messages, service flags and service replies.
13473
13474 2003-01-26  Havoc Pennington  <hp@pobox.com>
13475
13476         * dbus/dbus-message-builder.c: implement, completely untested.
13477
13478         * test/data/*: add data to be used in testing.
13479         ".message" files are our simple loadable text format.
13480         ".message-raw" will be binary dumps of messages.
13481
13482         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13483
13484 2003-01-26  Havoc Pennington  <hp@pobox.com>
13485
13486         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13487
13488         * dbus/dbus-errors.c (dbus_result_to_string): add
13489         file errors
13490
13491         * dbus/dbus-message-builder.c: new file, will contain code to load
13492         up messages from files. Not implemented yet.
13493
13494 2003-01-26  Havoc Pennington  <hp@pobox.com>
13495
13496         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13497         the sender by setting to NULL
13498
13499 2003-01-26  Havoc Pennington  <hp@pobox.com>
13500
13501         The unit tests pass, but otherwise untested.  If it breaks, the
13502         tests should have been better. ;-)
13503
13504         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13505         the connection.
13506
13507         * dbus/dbus-message.c: redo everything so we maintain
13508         message->header as the only copy of the various fields.
13509         This avoids the possibility of out-of-memory in some cases,
13510         for example dbus_message_lock() can't run out of memory anymore,
13511         and avoids extra copying. Figured I may as well go ahead and do
13512         this since it was busted for dbus_message_lock to not return
13513         failure on OOM, and dbus_message_write_header was totally
13514         unchecked for OOM. Also fixed some random other bugs.
13515
13516         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13517         that strings are nul-terminated. Also, end_pos can be equal
13518         to string length just not greater than, I think.
13519         (_dbus_marshal_set_int32): new function
13520         (_dbus_marshal_set_uint32): new function
13521         (_dbus_marshal_set_string): new function
13522
13523         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13524         a warning, init timeout_list to NULL
13525         (dbus_connection_send_message): don't use uninitialized variable
13526         "serial"
13527
13528         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13529
13530 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13531
13532         * bus/driver.c: (bus_driver_handle_hello),
13533         (bus_driver_send_welcome_message):
13534         Plug leaks
13535
13536 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13537
13538         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13539         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13540         (dbus_connection_unref):
13541         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13542         * dbus/dbus-message.c: (dbus_message_unref),
13543         Plug memory leaks.
13544
13545         (dbus_message_get_fields):
13546         Remove debugging printout.
13547
13548         (_dbus_message_loader_return_buffer):
13549         Don't store the header string.
13550
13551         (_dbus_message_test):
13552         Plug leaks.
13553
13554 2003-01-26  Richard Hult  <rhult@codefactory.se>
13555
13556         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13557         the file descriptor list, since it can change under us.
13558
13559 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13560
13561         * glib/dbus-gmain.c: (dbus_connection_prepare),
13562         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13563         (remove_watch), (dbus_connection_hookup_with_g_main):
13564         Rewrite the glib handling to use its own GSource instead of a
13565         GIOChannel so we can catch messages put in the queue while waiting
13566         for a reply.
13567
13568 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13569
13570         * bus/Makefile.am:
13571         * bus/connection.c: (connection_disconnect_handler),
13572         (connection_watch_callback), (bus_connection_setup):
13573         * bus/dispatch.c: (send_one_message),
13574         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13575         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13576         * bus/dispatch.h:
13577         * bus/driver.c: (bus_driver_send_service_deleted),
13578         (bus_driver_send_service_created), (bus_driver_handle_hello),
13579         (bus_driver_send_welcome_message),
13580         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13581         (bus_driver_handle_message):
13582         * bus/driver.h:
13583         Refactor code, put the message dispatching in its own file. Use
13584         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13585         is disconnected.
13586
13587 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13588
13589         * dbus/dbus-internals.h:
13590         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13591
13592         * dbus/dbus-message.c: (dbus_message_get_sender):
13593         * dbus/dbus-message.h:
13594         Implement dbus_message_get_sender.
13595
13596         * dbus/dbus-protocol.h:
13597         Add message and service defines.
13598
13599 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13600
13601         * dbus/dbus-connection.c: (dbus_connection_send_message):
13602         * dbus/dbus-message-internal.h:
13603         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13604         (dbus_message_write_header):
13605         Remove _dbus_messag_unlock and don't set the client serial on a
13606         message if one already exists.
13607
13608 2003-01-24  Havoc Pennington  <hp@pobox.com>
13609
13610         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13611         list_pool
13612
13613         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13614         on OOM
13615
13616 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13617
13618         * dbus/dbus-list.c: (alloc_link), (free_link):
13619         Use a memory pool for the links.
13620
13621 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13622
13623         * bus/connection.c: (bus_connection_foreach):
13624         * bus/connection.h:
13625         Add new bus_connection_foreach function.
13626
13627         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13628         Add function that broadcasts a message to all clients.
13629
13630         (bus_driver_send_service_created), (bus_driver_handle_hello),
13631         (bus_driver_send_welcome_message),
13632         (bus_driver_handle_list_services), (bus_driver_message_handler):
13633         Implement functions that take care of listing services, and notifying
13634         clients when new services are created.
13635
13636         * bus/services.c: (bus_services_list):
13637         * bus/services.h:
13638         Add new function that returns an array of strings with the currently
13639         registered services.
13640
13641         * glib/dbus-glib.h:
13642         * glib/dbus-gmain.c:
13643         Update copyright year.
13644
13645 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13646
13647         * dbus/dbus-connection.c: (dbus_connection_send_message):
13648         Unlock the message in case it was sent earlier.
13649
13650         (dbus_connection_send_message_with_reply_and_block):
13651         Remove the reply message from the list.
13652
13653         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13654         Set array_len and new_pos correctly.
13655
13656         (_dbus_marshal_test):
13657         Remove debug output.
13658
13659         * dbus/dbus-message-internal.h:
13660         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13661         New function that returns the reply serial.
13662
13663         (_dbus_message_unlock):
13664         New function that unlocks a message and resets its header.
13665
13666         (dbus_message_append_string_array),
13667         (dbus_message_get_fields_valist),
13668         (dbus_message_iter_get_field_type),
13669         (dbus_message_iter_get_string_array),
13670         (dbus_message_get_fields),
13671         (dbus_message_append_fields_valist):
13672         Handle string arrays.
13673
13674         (dbus_message_set_sender):
13675         Make this function public since the bus daemon needs it.
13676
13677         (decode_header_data):
13678         Set the reply serial to -1 initially.
13679
13680         * dbus/dbus-message.h:
13681         Add dbus_message_set_sender.
13682
13683 2003-01-24  Havoc Pennington  <hp@pobox.com>
13684
13685         * doc/dbus-specification.sgml: add some stuff
13686
13687 2003-01-22  Havoc Pennington  <hp@pobox.com>
13688
13689         * doc/dbus-specification.sgml: Start to document the protocol.
13690
13691 2003-01-22  Havoc Pennington  <hp@pobox.com>
13692
13693         * dbus/dbus-connection.c
13694         (dbus_connection_send_message_with_reply_and_block): add some @todo
13695
13696         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13697
13698 2003-01-21  Havoc Pennington  <hp@pobox.com>
13699
13700         (patch untested because can't compile)
13701
13702         * bus/driver.c (create_unique_client_name): make this function
13703         never recycle client names. Also, caller should initialize
13704         the DBusString.
13705
13706         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13707
13708 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13709
13710         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13711         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13712         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13713         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13714         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13715         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13716         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13717         * dbus/dbus-marshal.h:
13718         * dbus/dbus-protocol.h:
13719         Add support for marshalling and demarshalling integer, double
13720         and string arrays.
13721
13722 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13723
13724         * bus/Makefile.am:
13725         Add driver.[ch]
13726
13727         * bus/connection.c: (connection_disconnect_handler):
13728         Remove the connection from the bus driver's list.
13729
13730         (connection_watch_callback): Dispatch messages.
13731
13732         (free_connection_data): Free connection name.
13733
13734         (bus_connection_setup): Add connection to the bus driver's list.
13735         (bus_connection_remove_owned_service):
13736         (bus_connection_set_name), (bus_connection_get_name):
13737         Add functions for setting and getting the connection's name.
13738
13739         * bus/connection.h:
13740         Add function headers.
13741
13742         * bus/driver.c: (create_unique_client_name),
13743         (bus_driver_handle_hello_message),
13744         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13745         (bus_driver_add_connection), (bus_driver_remove_connection):
13746         * bus/driver.h:
13747         * bus/main.c:
13748         * bus/services.c: (bus_service_free):
13749         * bus/services.h:
13750         New file that handles communication and registreation with the bus
13751         itself.
13752
13753 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13754
13755         * dbus/dbus-connection.c: (dbus_connection_send_message):
13756         Add a new client_serial parameter.
13757
13758         (dbus_connection_send_message_with_reply):
13759         Remove a @todo since we've implemented the blocking function.
13760
13761         (dbus_connection_send_message_with_reply_and_block):
13762         New function that sends a message and waits for a reply and
13763         then returns the reply.
13764
13765         * dbus/dbus-connection.h:
13766         Add new functions.
13767
13768         * dbus/dbus-errors.c: (dbus_result_to_string):
13769         * dbus/dbus-errors.h:
13770         Add new DBUS_RESULT.
13771
13772         * dbus/dbus-message-internal.h:
13773         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13774         (_dbus_message_set_sender), (dbus_message_write_header),
13775         (dbus_message_new_reply), (decode_header_data),
13776         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13777         * dbus/dbus-message.h:
13778         Add new functions that set the reply serial and sender.
13779         Also marshal and demarshal them correctly and add test.
13780
13781         * dbus/dbus-protocol.h:
13782         Add new DBUS_MESSAGE_TYPE_SENDER.
13783
13784         * glib/dbus-glib.h:
13785         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13786         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13787         (dbus_connection_hookup_with_g_main):
13788         * glib/test-dbus-glib.c: (main):
13789         Rewrite to use GIOChannel and remove the GSource crack.
13790
13791         * test/echo-client.c: (main):
13792         * test/watch.c: (check_messages):
13793         Update for changed APIs
13794
13795 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13796
13797         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13798
13799         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13800         Create a DBusTimeoutList.
13801         (dbus_connection_set_timeout_functions): Add new function to
13802         set timeout callbacks
13803
13804         * dbus/dbus-connection.h: Add public DBusTimeout API.
13805
13806         * dbus/dbus-message.c: (dbus_message_get_service):
13807         * dbus/dbus-message.h:  New function.
13808
13809         * dbus/dbus-server.c: Fix small doc typo.
13810
13811         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13812
13813 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13814
13815         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13816         of the string, just as long as specified.
13817
13818 2003-01-19  Havoc Pennington  <hp@pobox.com>
13819
13820         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13821         new function
13822
13823         * dbus/dbus-server.c (dbus_server_set_max_connections)
13824         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13825         keep track of current number of connections, and add API for
13826         setting a max (but haven't implemented enforcing the max yet)
13827
13828 2003-01-18  Havoc Pennington  <hp@pobox.com>
13829
13830         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13831         reading/writing if read_watch != NULL or write_watch != NULL.
13832
13833         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13834         the message loader code to actually load message->header and
13835         message->body into the newly-created message.
13836
13837         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13838         in OOM case
13839
13840         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13841         (dbus_connection_get_max_message_size)
13842         (dbus_connection_set_max_live_messages_size)
13843         (dbus_connection_get_max_live_messages_size): implement some
13844         resource limitation functions
13845
13846         * dbus/dbus-resources.c: new file implementing some of the
13847         resource limits stuff
13848
13849         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13850         missing docs, add @todo to handle OOM etc.
13851
13852         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13853         docs
13854
13855 2003-01-18  Havoc Pennington  <hp@pobox.com>
13856
13857         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13858         connection if it hasn't been already.
13859
13860         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13861         replace with DisconnectFunction.
13862
13863 2003-01-18  Havoc Pennington  <hp@pobox.com>
13864
13865         Building --disable-verbose-mode --disable-asserts --disable-tests
13866         cuts the library from 112K to 45K or so
13867
13868         * configure.in: check for varargs macro support,
13869         add --enable-verbose-mode, --enable-asserts.
13870
13871         * dbus/dbus-internals.h (_dbus_assert): support
13872         DBUS_DISABLE_ASSERT
13873         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13874
13875 2003-01-18  Havoc Pennington  <hp@pobox.com>
13876
13877         * dbus/dbus-test.c: include config.h so that tests actually run
13878
13879         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13880         so the failure mode when that assumption fails will be plenty
13881         obvious.
13882
13883 2003-01-18  Havoc Pennington  <hp@pobox.com>
13884
13885         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13886
13887         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13888         the distribution
13889
13890         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13891         since we don't want to use those in make check
13892
13893 2003-01-15  Havoc Pennington  <hp@redhat.com>
13894
13895         Release 0.2
13896
13897         * NEWS: update
13898
13899 2003-01-15  Havoc Pennington  <hp@redhat.com>
13900
13901         * test/Makefile.am: fix so that test source code ends up in the
13902         distribution on make distcheck
13903
13904 2003-01-15  Havoc Pennington  <hp@redhat.com>
13905
13906         Release 0.1.
13907
13908         * NEWS: update
13909
13910 2003-01-15  Havoc Pennington  <hp@redhat.com>
13911
13912         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13913         fix build when --disable-tests
13914
13915         * Makefile.am (EXTRA_DIST): put HACKING in here
13916
13917         * HACKING: document procedure for making a tarball release.
13918
13919 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13920
13921         * bus/connection.c: (connection_error_handler),
13922         (bus_connection_setup):
13923         * bus/main.c: (main):
13924         Make sure that the DBusConnectionData struct is NULLed
13925         out to prevent a segfault.
13926
13927         * dbus/dbus-errors.c: (dbus_result_to_string):
13928         * dbus/dbus-errors.h:
13929         * dbus/dbus-message.c: (dbus_message_get_fields),
13930         (dbus_message_get_fields_valist), (_dbus_message_test):
13931         * dbus/dbus-message.h:
13932         Make dbus_message_get_fields return a result code so we can
13933         track invalid fields as well as oom.
13934
13935 2003-01-11  Havoc Pennington  <hp@pobox.com>
13936
13937         * configure.in: change --enable-test/--enable-ansi action-if-given
13938         to enable_foo=$enableval instead of enable_foo=yes
13939
13940 2003-01-08  Havoc Pennington  <hp@pobox.com>
13941
13942         * dbus/dbus-string.c (_dbus_string_align_length): new function
13943
13944         * dbus/dbus-test-main.c: move main() for test app here
13945         * dbus/dbus-test.c
13946         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13947         symbol to run tests, because dbus-test isn't in the main
13948         library
13949
13950         Code review nitpicks.
13951
13952         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13953         for people with narrow emacs ;-). Assert client_serial was filled
13954         in. Assert message->name != NULL.
13955         (dbus_message_append_fields): have "first_field_type" arg separate
13956         from va list, needed for C++ binding that also uses varargs IIRC
13957         and helps with type safety
13958         (dbus_message_new): add @todo about using DBusString to store
13959         service/name internally
13960         (dbus_message_new): don't leak ->service and ->name on OOM later
13961         in the function
13962         (dbus_message_unref): free the service name
13963         (dbus_message_get_fields): same change to varargs
13964         i.e. first_field_type
13965         (_dbus_message_loader_return_buffer): assert that the message data
13966         is aligned (if not it's a bug in our code). Put in verbose griping
13967         about why we set corrupted = TRUE.
13968         (decode_header_data): add FIXME that char* is evil.  Was going to
13969         add FIXME about evil locale-specific string.h strncmp, but just
13970         switched to wacky string-as-uint32 optimization. Move check for
13971         "no room for field name" above get_const_data_len() to avoid
13972         assertion failure in get_const_data_len if we have trailing 2
13973         bytes or the like. Check for service and name fields being
13974         provided twice. Don't leak service/name on error. Require field
13975         names to be aligned to 4 bytes.
13976
13977         * dbus/dbus-marshal.c: move byte swap stuff to header
13978         (_dbus_pack_int32): uscore-prefix
13979         (_dbus_unpack_int32): uscore-prefix
13980         (_dbus_unpack_uint32): export
13981         (_dbus_demarshal_string): add @todo complaining about use of
13982         memcpy()
13983         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13984         handling allowing corrupt data to go unchecked
13985
13986 2003-01-08  Havoc Pennington  <hp@redhat.com>
13987
13988         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13989         to the select() as needed for authentication. (should be using
13990         _dbus_poll() not select, but for another day)
13991
13992         * dbus/dbus.h: include dbus/dbus-protocol.h
13993
13994 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13995
13996         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13997         dbus-connection.h
13998
13999 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14000
14001         * dbus/dbus-internals.c: (_dbus_type_to_string):
14002         New function that returns a string describing a type.
14003
14004         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14005         * dbus/dbus-marshal.h:
14006         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14007         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14008         (dbus_message_iter_get_byte_array):
14009         * dbus/dbus-message.h:
14010         Add new convenience functions for appending and getting message fields.
14011         Also add demarshalling routines for byte arrays.
14012
14013 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14014
14015         * dbus/dbus-connection-internal.h:
14016         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14017         (_dbus_connection_get_next_client_serial),
14018         (dbus_connection_send_message):
14019         * dbus/dbus-internals.h:
14020         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14021         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14022         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14023         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14024         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14025         (_dbus_verbose_bytes), (_dbus_marshal_test):
14026         * dbus/dbus-marshal.h:
14027         * dbus/dbus-message-internal.h:
14028         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14029         (dbus_message_write_header), (_dbus_message_lock),
14030         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14031         (dbus_message_get_name), (dbus_message_append_int32),
14032         (dbus_message_append_uint32), (dbus_message_append_double),
14033         (dbus_message_append_string), (dbus_message_append_byte_array),
14034         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14035         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14036         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14037         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14038         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14039         (decode_header_data), (_dbus_message_loader_return_buffer),
14040         (message_iter_test), (_dbus_message_test):
14041         * dbus/dbus-message.h:
14042         * dbus/dbus-protocol.h:
14043         * dbus/dbus-test.c: (main):
14044         * dbus/dbus-test.h:
14045         * glib/test-dbus-glib.c: (message_handler), (main):
14046         * test/echo-client.c: (main):
14047         * test/watch.c: (check_messages):
14048         Make messages sendable and receivable for real.
14049
14050 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14051
14052         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14053         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14054         * dbus/dbus-message.c: (dbus_message_append_int32),
14055         (dbus_message_append_uint32), (dbus_message_append_double),
14056         (dbus_message_append_string), (dbus_message_append_byte_array):
14057         Handle OOM restoration.
14058
14059 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14060
14061         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14062         (_dbus_demarshal_string), (_dbus_marshal_test):
14063         * dbus/dbus-marshal.h:
14064         * dbus/dbus-message.c: (dbus_message_get_name),
14065         Document these functions.
14066
14067         (dbus_message_append_int32), (dbus_message_append_uint32),
14068         (dbus_message_append_double), (dbus_message_append_string),
14069         (dbus_message_append_byte_array):
14070         * dbus/dbus-message.h:
14071         Add functions for adding message fields of different types.
14072
14073         * dbus/dbus-protocol.h:
14074         Add the different types.
14075
14076 2003-01-05  Havoc Pennington  <hp@pobox.com>
14077
14078         * bus/connection.c: implement routines for handling connections,
14079         first thing is keeping a list of owned services on each connection
14080         and setting up watches etc.
14081
14082         * bus/services.c: implement a mapping from service names to lists
14083         of connections
14084
14085         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14086
14087         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14088         to use static mutexes for global data
14089
14090         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14091         collection of functions to set/get application-specific data
14092         on the DBusConnection.
14093
14094 2003-01-04  Havoc Pennington  <hp@pobox.com>
14095
14096         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14097         (_dbus_poll): new function
14098
14099         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14100         copied from GLib
14101
14102         * bus/loop.c: initial code for the daemon main loop
14103
14104 2003-01-04  Havoc Pennington  <hp@pobox.com>
14105
14106         * test/watch.c (error_handler): make it safe if the error handler
14107         is called multiple times (if we s/error handler/disconnect
14108         handler/ we should just guarantee it's called only once)
14109
14110         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14111         error handler on disconnect (it's quite possible we should
14112         just change the error handler to a "disconnect handler," I'm
14113         not sure we have any other meaningful errors)
14114
14115         * configure.in: check for getpwnam_r
14116
14117         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14118         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14119         mechanism as in SASL spec, using socket credentials
14120
14121         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14122         (_dbus_send_credentials_unix_socket): new function
14123
14124         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14125         dbus_accept()
14126         (_dbus_write): only check errno if <0 returned
14127         (_dbus_write_two): ditto
14128
14129 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14130
14131         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14132         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14133         (_dbus_marshal_test):
14134         * dbus/dbus-marshal.h:
14135         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14136         to _dbus_marshal_utf8_string. Also fix some tests.
14137
14138 2002-12-28  Harri Porten  <porten@kde.org>
14139
14140         * configure.in: added check for C++ compiler and a very cheesy
14141         check for the Qt integration
14142
14143         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14144
14145         * qt/Makefile.am: added
14146
14147         * qt/.cvsignore: added
14148
14149         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14150         latter, added #ifdef QT_THREAD_SUPPORT guard.
14151
14152         * dbus/Makefile.am: added missing headers for make dist
14153
14154 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14155
14156         * dbus/Makefile.am: fixup export-symbols-regex.
14157
14158 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14159
14160         * acinclude.m4: Add this file and put the
14161         PKG_CHECK_MODULE macro in it.
14162
14163 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14164
14165         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14166         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14167         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14168         (_dbus_marshal_test):
14169         Make the demarshalling routines align the pos argument.
14170         Add string marshalling tests and fix the obvious bugs
14171         discovered.
14172
14173 2002-12-26  Havoc Pennington  <hp@pobox.com>
14174
14175         * dbus/dbus-auth.c: fixes fixes fixes
14176
14177         * dbus/dbus-transport-unix.c: wire up support for
14178         encoding/decoding data on the wire
14179
14180         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14181         (_dbus_auth_decode_data): append to target string
14182         instead of nuking it.
14183
14184 2002-12-26  Havoc Pennington  <hp@pobox.com>
14185
14186         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14187         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14188         doh
14189
14190         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14191         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14192         now). Main point is because I wanted unpack_uint32 to implement
14193         _dbus_verbose_bytes
14194         (_dbus_verbose_bytes): new function
14195
14196         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14197
14198         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14199         mechanism to handle a corrupt message stream
14200         (_dbus_message_loader_new): fix preallocation to only prealloc,
14201         not prelengthen
14202
14203         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14204         (_dbus_string_test): enhance tests for copy/move and fix the
14205         functions
14206
14207         * dbus/dbus-transport-unix.c: Hold references in more places to
14208         avoid reentrancy problems
14209
14210         * dbus/dbus-transport.c: ditto
14211
14212         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14213         leak reference count in no-message case
14214
14215         * test/watch.c (do_mainloop): handle adding/removing watches
14216         during iteration over the watches. Also, ref the connection/server
14217         stored on a watch, so we don't try to mangle a destroyed one.
14218
14219         * dbus/dbus-transport-unix.c (do_authentication): perform
14220         authentication
14221
14222         * dbus/dbus-auth.c (get_state): add a state
14223         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14224         (_dbus_auth_get_unused_bytes): append the unused bytes
14225         to the passed in string, rather than prepend
14226
14227         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14228         the auth conversation DBusAuth
14229
14230         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14231         (_dbus_transport_new_for_domain_socket): when creating a
14232         transport, pass in whether it's a client-side or server-side
14233         transport so we know which DBusAuth to create
14234
14235 2002-12-03  Havoc Pennington  <hp@pobox.com>
14236
14237         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14238         _after_ finalizing the derived members
14239         (unix_connection_set): unref watch if we fail to add it
14240
14241         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14242         transport first, so that the connection owned by the
14243         transport will be valid as the transport finalizes.
14244
14245         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14246         if necessary, and remove watches from the connection.
14247
14248         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14249
14250 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14251
14252         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14253         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14254         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14255         (_dbus_marshal_test):
14256         * dbus/dbus-marshal.h:
14257         Add string marshal functions and have the demarshal functions
14258         return the new position.
14259
14260 2002-12-25  Havoc Pennington  <hp@pobox.com>
14261
14262         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14263         it is a simple protocol that just maps directly to SASL.
14264
14265         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14266         initial implementation, not actually used yet.
14267
14268         * dbus/dbus-string.c (_dbus_string_find): new function
14269         (_dbus_string_equal): new function
14270         (_dbus_string_base64_encode): new function
14271         (_dbus_string_base64_decode): new function
14272
14273 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14274
14275         * dbus/Makefile.am:
14276         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14277         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14278         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14279         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14280         * dbus/dbus-marshal.h:
14281         * dbus/dbus-protocol.h:
14282         * dbus/dbus-test.c: (main):
14283         * dbus/dbus-test.h:
14284         Add un-optimized marshalling/demarshalling routines.
14285
14286 2002-12-25  Harri Porten  <porten@kde.org>
14287
14288         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14289
14290 2002-12-24  Zack Rusin  <zack@kde.org>
14291
14292         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14293         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14294         main loop stuff
14295
14296 2002-12-24  Havoc Pennington  <hp@pobox.com>
14297
14298         * glib/dbus-gthread.c: fix include
14299
14300         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14301         I think glib API needs to change, though, as you don't
14302         want to use DBusMessageFunction, you want to use the
14303         DBusMessageHandler object. Probably
14304         dbus_connection_open_with_g_main_loop()
14305         and dbus_connection_setup_g_main_loop() or something like that
14306         (but think of better names...) that just create a connection
14307         that has watch/timeout functions etc. already set up.
14308
14309         * dbus/dbus-connection.c
14310         (dbus_connection_send_message_with_reply): new function just to
14311         show how the message handler helps us deal with replies.
14312
14313         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14314
14315         * dbus/dbus-string.c (_dbus_string_test): free a string that
14316         wasn't
14317
14318         * dbus/dbus-hash.c: use memory pools for the hash entries
14319         (rebuild_table): be more paranoid about overflow, and
14320         shrink table when we can
14321         (_dbus_hash_test): reduce number of sprintfs and write
14322         valid C89. Add tests for case where we grow and then
14323         shrink the hash table.
14324
14325         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14326
14327         * dbus/dbus-connection.c (dbus_connection_register_handler)
14328         (dbus_connection_unregister_handler): new functions
14329
14330         * dbus/dbus-message.c (dbus_message_get_name): new
14331
14332         * dbus/dbus-list.c: fix docs typo
14333
14334         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14335         an object representing a handler for messages.
14336
14337 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14338
14339         * glib/dbus-glib.h:
14340         * glib/dbus-gthread.c: (dbus_gthread_init):
14341         Don't use the gdbus prefix for public functions.
14342
14343 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14344
14345         * Makefile.am:
14346         * configure.in:
14347         Add GLib checks and fixup .pc files
14348
14349         * glib/Makefile.am:
14350         * glib/dbus-glib.h:
14351         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14352         (gdbus_connection_check), (gdbus_connection_dispatch),
14353         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14354         (dbus_connection_gsource_new):
14355         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14356         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14357         * glib/test-dbus-glib.c: (message_handler), (main):
14358         Add GLib support.
14359
14360 2002-12-15  Harri Porten  <porten@kde.org>
14361
14362         * autogen.sh: check for libtoolize before attempting to use it
14363
14364         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14365         struct.
14366
14367         * .cvsignore: ignore more stamp files
14368
14369         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14370
14371         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14372         without make install.
14373
14374 2002-12-15  Havoc Pennington  <hp@pobox.com>
14375
14376         * dbus/dbus-threads.c: add thread stubs that a higher library
14377         layer can fill in. e.g. the GLib wrapper might fill them in with
14378         GThread stuff. We still need to use this thread API to
14379         thread-safe-ize the library.
14380
14381 2002-12-12  Havoc Pennington  <hp@pobox.com>
14382
14383         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14384         below new interfaces and include fewer system headers.
14385
14386         * dbus/dbus-sysdeps.c (_dbus_read): new function
14387         (_dbus_write): new function
14388         (_dbus_write_two): new function
14389         (_dbus_connect_unix_socket): new function
14390         (_dbus_listen_unix_socket): new function
14391
14392         * dbus/dbus-message-internal.h: change interfaces to use
14393         DBusString
14394
14395 2002-12-11  Havoc Pennington  <hp@pobox.com>
14396
14397         * dbus/dbus-types.h: add dbus_unichar
14398
14399         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14400
14401         * dbus/dbus-connection.c (dbus_connection_send_message): return
14402         TRUE on success
14403
14404         * dbus/dbus-transport.c: include dbus-watch.h
14405
14406         * dbus/dbus-connection.c: include dbus-message-internal.h
14407
14408         * HACKING: add file with coding guidelines stuff.
14409
14410         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14411         handling here, for security purposes (as in vsftpd). Not actually
14412         using this class yet.
14413
14414         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14415         system/libc usage here, as in vsftpd, for ease of auditing (and
14416         should also simplify portability). Haven't actually moved all the
14417         system/libc usage into here yet.
14418
14419 2002-11-25  Havoc Pennington  <hp@pobox.com>
14420
14421         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14422         always print the first verbose message.
14423
14424 2002-11-24  Havoc Pennington  <hp@pobox.com>
14425
14426         * test/echo-client.c, test/echo-server.c: cheesy test
14427         clients.
14428
14429         * configure.in (AC_CHECK_FUNCS): check for writev
14430
14431         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14432         function
14433
14434         * dbus/dbus-list.c (_dbus_list_foreach): new function
14435
14436         * dbus/dbus-internals.c (_dbus_verbose): new function
14437
14438         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14439         representing a server that listens for connections.
14440
14441         * dbus/.cvsignore: create
14442
14443         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14444         public API for reporting errors
14445
14446         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14447         public object representing a connection that
14448         sends/receives messages. (Same object used for
14449         both client and server.)
14450
14451         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14452         Basic abstraction for different kinds of stream
14453         that we might read/write messages from.
14454
14455 2002-11-23  Havoc Pennington  <hp@pobox.com>
14456
14457         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14458         _DBUS_INT_MAX
14459
14460         * dbus/dbus-test.c (main): add list test, and include
14461         dbus-test.h as intended
14462
14463         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14464         (_dbus_hash_table_remove_int): return value indicates
14465         whether the entry existed to remove
14466
14467         * dbus/dbus-list.c: add linked list utility class,
14468         with docs and tests
14469
14470         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14471         array sometimes.
14472
14473 2002-11-23  Havoc Pennington  <hp@pobox.com>
14474
14475         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14476         DBUS_END_DECLS to nothing, that should fix this once and for all
14477
14478         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14479
14480         * dbus/dbus-message.c, dbus/dbus-hash.c:
14481         add some missing @brief
14482
14483 2002-11-23  Havoc Pennington  <hp@pobox.com>
14484
14485         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14486         to avoid confusing Doxygen
14487
14488         * dbus/dbus-hash.c: @} not }@
14489
14490         * dbus/dbus-message.c (struct DBusMessage): split out
14491         internals docs
14492
14493 2002-11-23  Havoc Pennington  <hp@pobox.com>
14494
14495         * configure.in: pile on more warning flags if using gcc
14496
14497         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14498         to document static functions
14499
14500         * configure.in: add summary to end of configure so it
14501         looks nice and attractive
14502
14503         * dbus/dbus-hash.c: finish implementation and write unit
14504         tests and docs
14505
14506         * configure.in: add --enable-tests to enable unit tests
14507
14508         * dbus/dbus-test.c: test program to run unit tests
14509         for all files in dbus/*, initially runs a test for
14510         dbus-hash.c
14511
14512         * dbus/dbus-internals.h: file to hold some internal utility stuff
14513
14514 2002-11-22  Havoc Pennington  <hp@redhat.com>
14515
14516         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14517         "ported" away from Tcl
14518
14519         * dbus/dbus-types.h: header for types such as dbus_bool_t
14520
14521 2002-11-22  Havoc Pennington  <hp@redhat.com>
14522
14523         * dbus/dbus.h: fixups for doc warnings
14524
14525         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14526         macros
14527         (QUIET): make it quiet so we can see warnings
14528
14529         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14530
14531 2002-11-22  Havoc Pennington  <hp@redhat.com>
14532
14533         * Makefile.am: include "Doxyfile" target in all-local
14534
14535         * configure.in: generate the Doxyfile
14536
14537         * Doxyfile.in: move Doxyfile here, so we can use
14538         configure to generate a Doxyfile with the right
14539         version number etc.
14540
14541 2002-11-22  Havoc Pennington  <hp@redhat.com>
14542
14543         * dbus/dbus-message.c: move inline docs into .c file
14544
14545         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14546         so all docs are under doc/
14547         (MAN_EXTENSION): generate man pages. Use extension
14548         ".3dbus" which matches ".3qt" on my system,
14549         I guess this is OK, I don't know really.
14550         (FILE_PATTERNS): look for .c files not .h, makes sense
14551         for plain C I think
14552
14553 2002-11-22  Havoc Pennington  <hp@pobox.com>
14554
14555         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14556         because any app can be a server, and any app can be a client,
14557         the bus is a special kind of server.
14558
14559 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14560
14561         * Doxyfile : adding. Still needs Makefile rules to be generated
14562         automatically (just run "doxygen" in the toplevel dir for now to
14563         generate docs)
14564
14565         * dbus/dbus-message.h : Adding sample docs (javadoc since
14566         resembles gtk-doc a little more)
14567
14568         * dbus/dbus.h : Adding sample docs
14569
14570 2002-11-21  Havoc Pennington  <hp@redhat.com>
14571
14572         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14573         so we can allow ourselves to include files directly,
14574         instead of having to use dbus.h
14575
14576         * dbus/dbus.h: fill in
14577
14578         * dbus/dbus-message.h: sketch out a sample header file.
14579         Include griping if you include it directly instead of
14580         via dbus.h
14581
14582         * dbus/dbus-macros.h: new file with macros for extern "C",
14583         TRUE/FALSE, NULL, etc.
14584
14585         * doc/file-boilerplate.c: put include guards in here
14586
14587 2002-11-21  Havoc Pennington  <hp@redhat.com>
14588
14589         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14590
14591         * COPYING: include the GPL as well, and license code
14592         under both AFL and GPL.
14593
14594 2002-11-21  Havoc Pennington  <hp@redhat.com>
14595
14596         * acconfig.h: get rid of this
14597
14598         * autogen.sh (run_configure): add --no-configure option
14599
14600         * configure.in: remove AC_ARG_PROGRAM to make
14601         autoconf complain less. add AC_PREREQ.
14602         add AC_DEFINE third arg.
14603
14604 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14605
14606         * doc/Makefile.am:
14607         Fix references so we can distcheck.
14608
14609 2002-11-21  Havoc Pennington  <hp@redhat.com>
14610
14611         * Initial module creation
14612