fbba11a76a20fcd8967b6df7739d7b775e8bc507
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-30  Havoc Pennington  <hp@redhat.com>
2
3         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
4         (internal_bus_get): fix screwy code formatting. whoever committed
5         that was not paying attention!
6
7 2006-09-30  Havoc Pennington  <hp@redhat.com>
8
9         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
10         reflect addition of interfaces.
11
12         * doc/dbus-specification.xml: describe a new
13         org.freedesktop.DBus.Peer.GetMachineId method
14
15         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
16         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
17         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
18         at end of skip_white
19         (_dbus_string_chop_white): new function
20
21         * bus/connection.c (bus_connections_setup_connection): call
22         dbus_connection_set_route_peer_messages.
23
24         * dbus/dbus-connection.c
25         (_dbus_connection_peer_filter_unlocked_no_update): modify to
26         support a GetMachineId method.
27
28         Also, support a new flag to let the bus pass peer methods through
29         to apps on the bus, which can be set with
30         dbus_connection_set_route_peer_messages.
31
32         Finally, handle and return an error for anything unknown on the
33         Peer interface, which will allow us to extend the Peer interface
34         in the future without fear that we're now intercepting something
35         apps were wanting to see.
36         
37         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
38         dbus/dbus-uuidgen.c
39
40         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
41         binary here, since most of the code is already in libdbus
42
43         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
44         uuid from the system config file
45
46         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
47         (_dbus_read_uuid_file_without_creating) 
48         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
49         uuid-related functions, partly factored out from dbus-server.c
50
51         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
52         DBUS_ERROR_FILE_EXISTS instead of EEXIST
53
54         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
55
56         * tools/dbus-cleanup-sockets.1: explain what the point of this
57         thing is a bit more
58
59         * autogen.sh (run_configure): add --config-cache to default
60         configure args
61
62         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
63         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
64
65         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
66         don't try to save address, fixes crash in make check
67         
68 2006-09-30  Thiago Macieira  <thiago@kde.org>
69
70         * configure.in: add DBUS_BINDIR as a #define to C source code.
71
72         * tools/dbus-launch.c
73         * tools/dbus-launch.h
74         * tools/dbus-launch-x11.c:
75         * tools/dbus-launch.1: Add the --autolaunch option to
76         dbus-launch, which makes it scan for an existing session
77         started with --autolaunch. With that option, it also creates
78         an X11 window and saves the bus address and PID to it.
79
80         * dbus/dbus-sysdeps.h:
81         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
82         a function that runs "dbus-launch --autolaunch" to retrieve
83         the running D-Bus session address (or start one if none was running)
84
85         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
86         address protocol, which tries to get the running session from
87         dbus-launch.
88
89         * dbus/dbus-bus.c:
90         * dbus/dbus-internals.h: Make "autolaunch:" be the default
91         D-Bus session bus address.
92
93         * dbus/dbus-connection.c: Fix horrible typo in error message.
94
95 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
96
97         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
98
99 2006-09-17  Havoc Pennington  <hp@redhat.com>
100
101         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
102         fix so that if unix_user_function is set on windows, we still
103         do the default check that the auth identity matches the bus identity
104
105 2006-09-16  Havoc Pennington  <hp@redhat.com>
106
107         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
108         to _dbus_transport_open_platform_specific,
109         _dbus_transport_open_socket,
110         and _dbus_transport_open_debug_pipe
111
112         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
113
114 2006-09-16  Havoc Pennington  <hp@redhat.com>
115
116         Attempt auditing public API to remove all cases where a Unix
117         function returns weird emulated goo to Windows. This probably 
118         breaks the bus daemon on Windows, to fix it again we may 
119         need to stop processing unix-specific config options on Windows,
120         and may need to add Windows-specific public API or config options.
121         
122         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
123         to reflect added interfaces; should not break soname.
124         
125         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
126         not invoke unix user function on Windows. Kind of a hacky fix, but 
127         we don't want a "unix uid" leaking out on Windows.
128
129         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
130         to get the socket fd on Windows or UNIX
131         (dbus_connection_get_unix_fd): make this always fail on Windows
132
133 2006-09-16  Havoc Pennington  <hp@redhat.com>
134
135         * dbus/dbus-server.c (dbus_server_listen): change how this works
136         to be able to delegate to a set of handlers that can succeed,
137         fail, or choose not to handle. Allows us to have 
138         dbus_server_listen_platform_specific.
139
140         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
141         factor out the tcp socket stuff to be used on windows, leaving
142         unix domain socket only in dbus-socket-unix.c
143
144         * dbus/dbus-transport-socket.c
145         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
146         stuff to be used on windows, leaving unix domain socket only 
147         in dbus-transport-unix.c
148
149         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
150         temporary hack to be sure this fails on windows
151         (dbus_connection_get_unix_process_id): ditto
152
153 2006-09-16  Havoc Pennington  <hp@redhat.com>
154
155         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
156         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
157         _dbus_open_socket so the domain/type/protocol from system headers
158         are not required. This is kind of pointless though unless we move
159         part of _dbus_connect_tcp_socket into sysdeps.c instead of
160         sysdeps-unix.c, which would mean adding a wrapper around
161         bind/listen/etc.
162         Also, add DBusError to the socket-opening functions so they 
163         don't require use of errno.
164
165 2006-09-16  Havoc Pennington  <hp@redhat.com>
166
167         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
168         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
169
170         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
171         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
172         functions specifically for sockets only, and move generic 
173         read/write/open/close into unix-specific code.
174
175 2006-09-14  Havoc Pennington  <hp@redhat.com>
176
177         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
178         complaint about accessing revents when poll returns 0, from Julian Seward.
179
180 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
181
182         * Released 1.0 RC 1 (0.93) 
183
184 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
185
186         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
187         use _dbus_close instead of close
188
189 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
190
191         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
192         credentials.  Fixes "external" authentication under e.g. NetBSD
193         which does not support any other socket credentials mechanism.
194         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
195
196 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
197
198         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
199         dbus_threads_init and be used by the dbus mutex functions to
200         avoid deadlocks.
201
202         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
203
204 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
205
206         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
207         use threadsafe readdir_r instead of readdir
208
209 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
210
211         * dbus-threads.c (dbus_threads_init_default): New method for
212         initializing the internal thread implementation (Patch from
213         Alexander Larsson <alexl at redhat dot com>)
214
215 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
216
217         * remove a bunch of todo items from the 1.0 list
218
219 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
220
221         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
222         key not found
223
224 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
225
226         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
227         complex debugging code
228
229         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
230         between the test suite ifdefs
231         (_dbus_verbose_bytes): return if verbosity is not enabled 
232
233 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
234
235         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
236         remove DBusMark
237
238 2006-09-10  Havoc Pennington  <hp@redhat.com>
239
240        patch mostly by Peter Kümmel, bug #8211
241         
242         * dbus/dbus-sysdeps-unix.c: new file, which splits out
243         unix-specific stuff in dbus-sysdeps.c
244
245         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
246         and move unix-specific stuff to dbus-sysdeps-unix.c
247
248         * configure.in: check HAVE_ERRNO_H
249         
250 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
251
252         * bus/test-main.c (main): Initialize threading during tests
253
254         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
255         Unlock connection on error
256         (generate_local_error_message): static method for generating
257         an error message when we don't have a message to reply to
258         (_dbus_connection_block_pending_call): Send a disconnect error
259         instead of just a timeout (NULL) when the bus gets disconnected
260         while blocking for a reply.
261         
262 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
263
264         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
265         filters (Patch from Kimmo Hämäläinen 
266         <kimmo dot hamalainen at nokia dot com>)
267
268 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
269
270         * dbus/dbus-connection-internal.h: Add prototype for 
271         _dbus_connection_test_get_locks to remove warning
272
273 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
274
275         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
276         close child_err_report_pipe[WRITE_END] on exec (Patch from 
277         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
278
279 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
280
281         * Clean up close calls to use _dbus_close (Patch from 
282         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
283
284 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
285
286         * doc/TODO:
287         - Remove pending call locking todo item
288         - dbus_connection_open now holds hard ref.  Remove todo item
289         - do proper locking on _dbus_bus_check_connection_and_unref
290           and handle DBUS_BUS_STARTER. Remove todo item
291         - Warn on closing of a shared connection.  Remove todo item
292
293         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
294         dbus/dbus-connection.c: Use the dbus_connection_close_internal
295         so we don't get the warning when closing shared connections
296
297         * test/test-service.c, test/test-shell-service.c: Applications
298         don't close shared connections themselves so we unref instead of
299         close
300
301         * test/test-utils.c (test_connection_shutdown): Close the connection
302
303         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
304         _dbus_bus_check_connection_and_unref_unlocked since we only call this
305         method on a locked connection.  
306         Make sure we call _dbus_connection_unref_unlocked instead of 
307         dbus_connection_unref also.
308         Handle DBUS_BUS_STARTER correctly
309
310         * dbus/dbus-connection.c (connection_record_shared_unlocked):
311         Mark as shared and hard ref the connection
312         (connection_forget_shared_unlocked): Remove the hard ref from the 
313         connection
314         (_dbus_connection_close_internal_and_unlock):  New internal function
315         which takes a locked connection and unlocks it after closing it
316         (_dbus_connection_close_internal): New internal function which acts
317         like the origonal dbus_connection_close method by grabbing a connection
318         lock and calling _dbus_connection_close_internal_and_unlock
319         (dbus_connection_close): Public close method, warns when the app
320         trys to close a shared connection
321
322 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
323
324         * bus/driver.c:
325         (bus_driver_generate_introspect_string): New method for populating
326         a DBusString with the introspect data
327         (bus_driver_handle_introspect): Move introspect generation code to 
328         bus_driver_generate_introspect_string
329
330         * bus/main.c:
331         (introspect): New function which prints out the intropect data and
332         exits
333         (main): Add a --introspect switch
334
335 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
336
337         * doc/TODO: Removed dtd publishing item.  
338         It seems the dtd has already been added at
339         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
340
341 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
342
343         * doc/TODO, various source files: Audited todo's and FIXME's and
344         prepended the ones we should be looking at with 1.0.  Those
345         prepended with 1.0? need clerification or might not be needed
346         for 1.0
347
348 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
349
350         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
351         NULL in the public API (Patch from Kimmo Hämäläinen 
352         <kimmo dot hamalainen at nokia dot com>)
353
354 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
355
356         * configure.in: Fix for OS-X compile time endian issues (patch from
357         Benjamin Reed <ranger at befunk dot com>)
358
359 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
360
361         * configure.in: Check for no-common compiler flag (OS-X fix from
362         Benjamin Reed <ranger at befunk dot com>)
363
364 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
365
366         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
367         <fcrozat at mandriva dot com>)
368
369 2006-08-29  Havoc Pennington  <hp@redhat.com>
370
371         * test/test-service.c (path_message_func): fix lack of return value
372
373         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
374         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
375         any more sense than on anything else in this file.
376         (_dbus_get_tmpdir): add const to return value, and keep the
377         results of the various getenv around in a static variable.
378
379 2006-08-29  Havoc Pennington  <hp@redhat.com>
380
381         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
382         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
383
384 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
385
386         * test/Makefile.am: change find to use syntax that works with non
387         gnu versions of find
388
389 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
390
391         * dbus/dbus-transport.c: fix invalid deref when checking if
392         a vtable method exists (Patch from Christian Ehrlicher 
393         <ch dot ehrlicher at gmx dot de>)
394
395 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
396
397         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
398         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
399         to build with builddir != srcdir (Taken from a patch by Bernard Leak
400         <bernard at brenda-arkle dot demon dot co dot uk>)
401
402 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
403
404         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
405         default case
406
407 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
408
409         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
410         it works on any system providing this interface, not only FreeBSD.
411         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
412
413 2006-08-20  Havoc Pennington  <hp@redhat.com>
414
415         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
416         the docs
417
418 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
419
420         * Released 0.92 
421
422 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
423
424         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
425         to reflect the init late change
426
427         * bus/bus.c (bus_context_new): Check user before we fork so we can
428         print out an error message a user will be able to see
429
430 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
431
432         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
433
434         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
435         Add two more global locks for use on windows platforms.  These are
436         unused on non-windows platforms but are not ifdefed out to avoid
437         potential bugs (i.e. the few bytes lost does not warrent the extra
438         maintanence and complexity that having seperate sets of locks would
439         cause)
440
441 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
442
443         * bus/services.c (bus_registry_acquire_service): Return an error
444         when an application tries to register the org.freedesktop.DBus Bus Name
445
446         * bus/services.c (bus_registry_release_service): Return an error
447         when an application tries to release the org.freedesktop.DBus Bus Name
448
449 2006-08-17  Alp Toker  <alp@atoker.com>
450
451         * doc/dbus-specification.xml: Fix some minor typos.
452
453 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
454
455         * configure.in: use $with_init_scripts instead of $operating_system
456         to determine where to store the pid since the init scripts manipulate 
457         the pid file (patch from Marcelo Ricardo Leitner 
458         <marcelo dot leitner at terra dot com dot br>.  
459
460 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
461
462         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
463         static DBusList *uninitialized_condvar_list to support new late 
464         initialization threading model.  In this model threads can be initialized
465         even after the D-Bus API has been used but still needs to be initialized 
466         before the second thread has been started.  Mutexes and condvar addresses
467         are stored in the two static lists and are replaced with actuall locks
468         when threads are initalized.
469         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
470         the location into the static list
471         (_dbus_mutex_free_at_location): New method for removing a mutex location 
472         from the static list and freeing the mutex
473         (_dbus_condvar_new_at_location): New method for creating a conditional 
474         variable and placing the location into the static list
475         (_dbus_condvar_free_at_location): New method for removing a conditional
476         variable location from the static list and freeing the conditional variable 
477         (init_uninitialized_locks): Atomic method which goes through the static 
478         lists of mutex and condvar location and updates them with actuall locks
479         (init_global_locks): changed to init_locks
480         
481         * dbus/dbus-connection.c:
482         (_dbus_connection_test_get_locks): New method for tests to check connections
483         (_dbus_connection_new_for_transport): Use the new at_location mutex and
484         condvar API
485         (dbus_connection_allocate_data_slot): Pass in the global lock address
486         to _dbus_data_slot_allocator_alloc
487
488         * dbus/dbus-dataslot.c:
489         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
490         instead of the mutex itself
491
492         * dbus/dbus-message.c:
493         (dbus_message_allocate_data_slot): Pass in the global lock address
494         to _dbus_data_slot_allocator_alloc
495
496         * dbus/dbus-pending-call.c:
497         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
498         to _dbus_data_slot_allocator_alloc
499
500         * dbus/dbus-server.c:
501         (_dbus_server_init_base): Use the new at_location mutex API
502         (dbus_server_allocate_data_slot): Pass in the global lock address
503         to _dbus_data_slot_allocator_alloc
504
505         * test/name-test/test-threads-init.c: New test case for late thread
506         initialization
507
508 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
509
510         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
511         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
512         causes compile problems when asserts are turned off
513         Keeping _dbus_warn for printing out the message so even if
514         asserts are turned off the user gets the messages that something is 
515         wrong 
516
517 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
518
519         Patches by Kjartan Maraas <kmaraas at gnome dot org>
520
521         * bus/services.c (bus_service_list_queued_owners):
522         Add a pointer cast to fix compiler warning
523
524         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
525         return a NULL instead of FALSE since the return type
526         is not expecting a boolean
527
528         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
529         Remove unused variable
530
531         * dbus/dbus-marshal-recursive-util.c (node_new):
532         return a NULL instead of FALSE since the return type
533         is not expecting a boolean
534
535         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
536         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
537         because we are expecting a pointer not a boolean
538
539         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
540         add void as the parameter so some compilers
541         don't complain
542
543         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
544           _dbus_transport_new_for_tcp_socket):
545         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
546         because we are expecting a pointer not a boolean
547
548         * test/shell-test.c (test_command_line):
549         cast the second argument to _dbus_list_append to avoid compiler
550         warnings
551
552         * test/test-names.c (main): remove unused variable
553
554         * test/test-service.c (check_hello_from_self_reply):
555         Initialize echo_message and echo_reply to NULL
556         
557         * test/test-shell-service.c (handle_echo):
558         Remove unused variable and cast the third parameter passed to
559         dbus_connection_get_object_path_data to avoid compiler warrnings
560
561         * test/name-test/test-names.c (clear_message_queue):
562         Remove unused function
563
564         * test/name-test/test-pending-call-dispatch.c:
565         Fix format string in printf
566
567
568 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
569
570         * dbus/dbus-bus.c:
571         * test/name-test/test-names.c:
572         Remove test method dbus_bus_connection_get_unique_name because 
573         we already have public method dbus_bus_get_unique_name that 
574         does the exact same thing
575
576 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
577
578         * dbus/dbus-signature.c:
579         fix typos in Julio's previous patch which cause make check to fail
580
581 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
582
583         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
584         In any case it was wrong since this is a test checking to see if
585         address parsing is correct.  There was no need to get the true
586         tmp directory.  
587
588 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
589
590         * dbus/dbus-macros.h: Revert the addition of stddef.h
591         as we should not be adding it to library headers 
592
593 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
594
595         * dbus/dbus-signature.c:
596         Fix the unit tests so that they work if assertions are not enabled.
597         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
598
599 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
600
601         * tools/run-with-tmp-session-bus.sh:
602         * test/name-test/run-test.sh:
603         Remove bashisms (patch from Julio M. Merino Vidal
604         <jmmv at NetBSD dot org>)
605
606 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
607
608         * configure.in: add a version (>= 2.6.0) check for libxml2
609
610 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
611
612         * configure.in: make sure the compiler supports -Wfloat-equal
613         
614         * bus/dir-watch-dnotify.c: move functional code after 
615         variable declerations (C99 fix)  (patches from Jens Granseuer
616         <jensgr at gmx dot net>
617
618 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
619
620         * dbus/dbus-macros.h:
621         add #include <stddef.h> so that Sun compilers don't complain about
622         the defining NULL
623
624 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
625
626         * dbus/dbus-sysdeps.c:
627         * dbus/dbus-address.c:
628         * bus/activation.c:
629         * test/shell-test.c:
630         don't hardcode tmp directory (patch from Dave Meikle 
631         <dmk at davemeikle dot co dot uk>)
632
633 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
634
635         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
636         Change an assert to a detailed warning and abort.  
637         When allocator->lock != mutex it indicates that the user has failed
638         to initalize threads before using the D-Bus library.  This warning
639         helps the user identify the issue and fix their app.
640
641 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
642
643         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
644         with cleanups of bugs found from Coverity reports:
645
646         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
647         close the file on error to avoid a leak
648
649         * bus/expirelist.c (bus_expire_list_test):
650         Check for NULL on dbus_new0
651
652         * bus/activation.c (update_directory):
653         remove dead code
654
655         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
656         Fix some leaks
657
658         * bus/bus.c (process_config_every_time):
659         Fixed a leak
660
661         * bus/desktop-file.c (parse_key_value):
662         Fixed leak
663
664         * bus/selinux.c (bus_selinux_id_table_insert):
665         Fixed leak
666
667 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
668
669         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
670         remove dead code
671
672 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
673
674         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
675         #!/bin/bash
676
677 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
678
679         * Doxyfile.in: fix the INPUT line so we can generate docs 
680         when sourcedir != builddir (patch from Cygwin Ports maintainer
681         <yselkowitz at users dot sourceforge dot net>
682
683 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
684
685         * dbus/dbus-sysdeps.h:
686         * dbus/dbus-sysdeps.c: 
687         * dbus/dbus-string.c: 
688         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
689         GLib's function which does the same thing
690
691         * configure.in:
692         * bus/Makefile.am:
693         * bus/dir-watch-default.c:
694         * bus/dir-watch-dnotify.c:
695         * bus/dir-watch-kqueue.c:
696         Add kqueue directory watching for freebsd and split the directory
697         watching code into seperate files per method/arch
698         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
699
700 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
701
702         * configure.in:
703         * tools/Makefile.am:
704         * tools/dbus-launch.c:
705         * bus/Makefile.am:
706         allow --with-dbus-daemondir switch to be used to make the
707         daemon install to a seperate bindir like /usr/libexec
708         (patch from Brian Cameron <brian dot cameron at sun dot com)
709
710 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
711
712         * bus/Makefile.am (install-data-hook): removed the slash after 
713         $(DESTDIR) so we don't get the double slash which does not work
714         in windows (patch from Andras Porjesz 
715         <andras dot porjesz at siemens dot com>)
716
717 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
718
719         * dbus/dbus-sysdeps.h:
720         * dbus/dbus-sysdeps.c: 
721           add _dbus_printf_length (patch from Peter Kümmel 
722           <syntheticpp at gmx dot net>)
723
724 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
725
726         * dbus/dbus-internals.c: unistd.h is not used 
727         (_dbus_verbose_real): only enable verbose printing 
728         if DBUS_VERBOSE environment var is set to '1'
729         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
730
731 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
732
733         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
734         so we still compile on older gcc (patch from Frederic Peters 
735         <fpeters at 0d dot be>
736
737 2006-08-04  Havoc Pennington  <hp@redhat.com>
738
739         * configure.in: add -Wdeclaration-after-statement
740
741         * dbus/dbus-connection.c: change all the pending call stuff to
742         reflect the fact that pending call operations use the connection
743         lock
744
745         * dbus/dbus-pending-call.c: add locking here
746
747         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
748         field const consistent with how message field is done
749
750 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
751
752         * s/D-BUS/D-Bus/g
753
754 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
755
756         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
757         <in7y118 at public.uni-hamburg dot de> - fix invalid
758         read/write reported by valgrind
759
760 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
761
762         * Released 0.91
763
764 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
765
766         * dbus/dbus-connection.c:
767         (_dbus_connection_attach_pending_call_unlocked):
768         (connection_timeout_and_complete_all_pending_calls_unlocked):
769         Make sure we set timeout_added on pending calls to FALSE when
770         we remove the timeout from the connection
771
772 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
773
774         * Removed some extra bindings stuff lingering around (thanks timo)
775         * dbus-pendingcall.c (_dbus_pending_call_new): 
776         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
777         when we tried to take a lock on an already locked connection
778
779 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
780
781         * Released 0.90
782
783 2006-07-17  Havoc Pennington  <hp@redhat.com>
784
785         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
786         ints, reported by Owen Taylor
787
788 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
789
790         * doc/TODO:
791         * dbus/dbus-bus.c:
792         * dbus-errors.c:
793         * dbus/dbus-marshal-validate.c:
794           Removed TODO items which were fixed or are no longer relevent
795
796 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
797
798         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
799         Remove stray files from the stripped bindings
800
801 2006-07-16  Havoc Pennington  <hp@redhat.com>
802
803         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
804         Improve the error message on reply timeout
805
806 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
807
808         * Remove all bindings
809
810 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
811
812         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
813         and set pending_reply out arg to NULL is connection is disconnected
814         (connection_timeout_and_complete_all_pending_calls_unlocked): New
815         static method for cleaning up pending calls on disconnect
816         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
817         calls queued timeouts on disconnect 
818
819          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
820         Remove 
821
822 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
823
824         * bus/activation.[ch] (bus_activation_list_services): new function to 
825         get the list of services that can be activated
826
827         * bus/dispatch.c: test coverage for the new bus method
828         ListActivatableNames
829
830         * bus/driver.c: new bus method ListActivatableNames to get the list of
831         services that can be activated
832
833         * doc/dbus-specification.xml: ListActivatableNames method documentation
834
835 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
836         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
837         source files
838
839 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
840         * dbus/dbus-message-factory.c:
841         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
842
843 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
844         * dbus/dbus-connection-internal.h:
845         * dbus/dbus-connection.c:
846         * file dbus/dbus-pending-call.c:
847         * dbus/dbus-pending-call.h:
848         Make DBusPendingCall an opaque type even to D-Bus internals
849
850 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
851
852         * dbus/dbus-connection.h: remove connection_disconnect and replace with
853         connection_close
854
855         * dbus/dbus-connection.c: include dbus-bus.h
856         (_dbus_connection_read_write_dispatch): make static
857
858 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
859
860         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
861         function
862         (dbus_connection_dispatch): On disconnect unref any shared connections
863
864         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
865         for cleaning up shared connections on disconnect
866         (internal_bus_get): get a hard refrence to shared connections when
867         they are created
868         
869         * doc/TODO: Remove items which are no longer relevent or have been fixed
870         Split 1.0 todo items with a 0.90 freeze todo list
871  
872 2006-06-14  Ross Burton  <ross@openedhand.com>
873
874         * glib/dbus-gobject.c:
875         Free a leaking GArray (surely not!) in dbus_g_method_return.
876
877 2006-06-14  Ross Burton  <ross@openedhand.com>
878
879         * tools/Makefile.am:
880         * tools/dbus-monitor.c:
881         Don't use the GLib bindings in dbus-monitor (patch from Ralf
882         Habacker).
883         
884 2006-06-14  Ross Burton  <ross@openedhand.com>
885
886         * tools/dbus-print-message.c:
887         Also print the object path when outputting signals or method calls.
888
889 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
890
891         * qt/src/Makefile.am: install the qdbus.h header.
892         This allows people to actually use the installed code.
893
894 2006-06-12  Ross Burton  <ross@openedhand.com>
895
896         * glib/dbus-gproxy.c:
897         Don't leak a GArray when firing signals (thank Rob Taylor for review).
898
899 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
900
901         * Released 0.62
902
903 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
904
905         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
906         break pedantic builds. Closes bug 6043 (patch approved by
907         Havoc back in February).
908
909 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
910
911         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
912         that took a QDBusMessage parameter.
913         * qt/src/qdbusbus.h: Add a default flag for RequestName.
914         * qt/tools/dbus.cpp: Don't use automatic call because we might
915         be calling an async method: request a reply.
916
917 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
918
919         * test/qt/*: Update the testcases, including testing the new
920         functionality of sending null QByteArray and QString over the
921         bus. Add new headertest test and restore the old
922         qdbusxmlparser test.
923
924 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
925
926         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
927         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
928
929         * qt/examples/Makefile.am:
930         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
931         form.
932
933         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
934         QByteArray() (nulls) over the bus.
935         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
936         the one that has the signature suffix stripped.
937         * qt/src/qdbusreply.h: Make some methods const.
938
939 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
940
941         Patch from Timo Hoenig <thoenig@suse.de>.
942
943         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
944         required during build to EXTRA_DIST.
945         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
946         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
947         * configure.in: Fix "make dist", take care that the Makefile for
948         qt/dbus is being generated.
949
950 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
951
952         * bus/bus.c: Fix eavesdropping on method calls
953
954 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
955
956         * configure.in:
957         * dbus/dbus-userdb-util.c:
958         Add Solaris console owner patch from Artem Kachitchkine
959
960 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
961
962         * qt/Makfile.am:
963         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
964         reorganisation. Thanks to Timo Hoenig for pointing this out.
965
966 2006-06-06  Robert McQueen  <robot101@debian.org>
967
968         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
969           call to dbus_g_type_get_struct.
970
971 2006-06-06  Robert McQueen  <robot101@debian.org>
972
973         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
974           pointers were put into a GPtrArray-based specialised collection, and
975           then freed along with the array. GValues which you add into
976           collections or maps which have the NOCOPY flag set are assumed to not
977           belong to the caller, so rather than the existing pointer-stealing
978           semantics, they are copied instead. Given that the main consumers of
979           this abstraction are the bindings themselves, I don't think this is
980           too bad, but others should watch their choice of take vs set_static.
981
982 2006-06-06  Robert McQueen  <robot101@debian.org>
983
984         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
985           of g_slist_prepend not being used. Fixed copying of slist-based
986           specialised collections, then wrote a test case and found that it was
987           all broken. Went on to fix iterating and appending too. Good thing
988           nobody uses this code yet.
989
990 2006-06-06  Robert McQueen  <robot101@debian.org>
991
992         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
993           the iterators use gvalue_take_ptrarray_value (the GValues themselves
994           are discarded without unsetting, so it makes no difference whether
995           we take or set_static). Remove cases for G_TYPE_POINTER because
996           there really is nothing useful we can do with them in our
997           specialised types - we *need* boxed copy/free functions at the very
998           least.
999
1000 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1001
1002         * qt/dbus: Add directory. I had forgotten to add this
1003         yesterday after the move...
1004
1005         * qt/examples/Makefile.am:
1006         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1007
1008         * qt/tools/Makefile.am:
1009         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1010         Added feature to get and set properties.
1011         Added validation of service, object path and interface names.
1012
1013         * qt/tools/dbusidl2cpp.cpp: Two new features:
1014         1) Allow specifying both the header and the source file names,
1015         by separating them with a colon.
1016         2) Don't write an interface output if the -p switch wasn't
1017         given, but the -a was.
1018
1019         * qt/src/*: Fix usage of Iterators and ConstIterators.
1020         Fix shadowing of variables by other variables (-Wshadow).
1021         Fix keyword-cleanliness in headers.
1022         Fix ASCII-cast (QLatin1String, QLatin1Char).
1023         Fix validation of member names.
1024         Add extra checking of introspection data during XML parsing.
1025         Various bug fixes.
1026
1027 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1028
1029         * dbus/Makefile.am:
1030         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1031         qt/dbus/qdbus.h now.
1032
1033 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1034
1035         * configure.in: Make --disable-qt actually do
1036           something. Patch inspired by Zack Rusin.
1037
1038 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1039
1040         * qt/: Update to Subversion r548032.
1041         This includes a big reorganisation of the files inside the
1042         subdir.
1043
1044 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1045
1046         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1047         clear:  
1048         "Failed to connect to socket <host>:<port> <error>" instead of
1049         "Failed to connect to socket <host>: <error>:<port>"
1050
1051         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1052         for a tcp transport. 
1053
1054 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1055
1056         * qt/*: Update the QtDBus bindings up to revision 546310 in
1057         Subversion.
1058         This adds the dbuscpp2xml tool, that parses a C++ header and
1059         outputs a D-BUS Introspection XML.
1060
1061 2006-05-21  Havoc Pennington  <hp@redhat.com>
1062
1063         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1064         is not NULL when it shouldn't be. Also a couple of possible fixes
1065         for #4637 though I don't understand why the bug happens, to be
1066         honest... also the object constructor has an assert name != NULL
1067         and the name is only currently NULL for peer-to-peer proxies that 
1068         I don't think anyone uses? So it should be asserting.
1069         Anyway, for now at least see if we get an earlier assertion failure.
1070
1071         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1072         apparently broken code to be sure the tests fail and someone 
1073         will fix them...
1074
1075 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1076
1077         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1078         and arrays when they had a single element: has_next returns
1079         false, even before you read the element. So, instead, check
1080         the array length.
1081
1082 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1083
1084         * qt/qdbusmessage.cpp:
1085         * qt/qdbustypehelper_p.h:
1086         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1087         the list is a const-reference
1088
1089 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1090
1091         * Adding old doc patch that never got applied
1092         
1093         * dbus/bus.c (dbus_bus_add_match): Add documentation
1094
1095         * doc/dbus-specification.xml: Add documentation for the match rules
1096           and the AddMatch and RemoveMatch methods
1097
1098 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1099
1100         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1101         call (r535506)
1102
1103         * qt/dbusidl2cpp.cpp:
1104         * qt/qdbusabstractadaptor.cpp:
1105         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1106         sibling of the QDBusAbstractAdaptor objects instead of the
1107         parent. (r535848)
1108
1109         * qt/dbusidl2cpp.cpp:
1110         * qt/qdbusabstractinterface.cpp:
1111         * qt/qdbusabstractinterface.h:
1112         * qt/qdbusabstractinterface_p.h:
1113         * qt/qdbusinterface.cpp: Make properties in interfaces
1114         actually work. The code that was generated would not compile,
1115         due to moc calls to functions that did not exist. They now
1116         shall. (r536571)
1117
1118 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1119
1120         * Makefile.am:
1121         * configure.in:
1122         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1123         Thanks to Brad Hards for providing the patch
1124
1125 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1126
1127         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1128         call. (r535506)
1129
1130 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1131
1132         * qt/examples/dbus.cpp: Enhance error messages and use
1133         QDBusInterfacePtr.
1134
1135 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1136
1137         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1138         and disable the copy operators. (r533772, r534746)
1139
1140         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1141
1142         * qt/qdbusabstractinterface.cpp:
1143         * qt/qdbusabstractinterface.h: Change the default call mode to
1144         not use the event loop. Add convenience call() methods that
1145         take a CallMode parameter. (r534042)
1146
1147         * qt/qdbusconnection.h: Change the default call mode to not
1148         use the event loop. (r534042)
1149
1150         * qt/qdbusinterface.cpp:
1151         * qt/qdbusinterface.h: Add a method to tell us if the
1152         interface is valid (since we don't return a null pointer
1153         anymore) (r534099)
1154
1155         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1156         (r534101)
1157
1158         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1159         function in two so taht we get the chance to introspect
1160         without having a QDBusMessage (r534102)
1161
1162         * qt/qdbusbus.h:
1163         * qt/qdbusconnection.cpp:
1164         * qt/qdbusconnection_p.h:
1165         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1166         avoid a round-trip to the server when attempting to introspect
1167         one of our own objects. Also make sure the filter functions
1168         match the empty interface as well. (r534108)
1169         Don't keep the connection names. Instead, trust the unique
1170         connection name (r534111)
1171         Remove event loop usage (r534112)
1172
1173 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1174
1175         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1176         Brad Hards.
1177
1178 2006-04-28  Robert McQueen  <robot101@debian.org>
1179
1180         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1181         any order, making it easier for people who inherit from this
1182         object.
1183
1184 2006-04-28  Robert McQueen  <robot101@debian.org>
1185
1186         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1187         of memory from within pointer arrays and lists. Fixes bug #6300.
1188
1189 2006-04-28  Robert McQueen  <robot101@debian.org>
1190
1191         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1192         generating struct signatures. Fixes bug #6083.
1193
1194 2006-04-28  Robert McQueen  <robot101@debian.org>
1195
1196         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1197         to qdbusconnection_p.moc.
1198
1199 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1200
1201         * README, INSTALL: Doc fixes
1202         Patch from Brad Hards <bradh at frogmouth.net>
1203
1204 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1205
1206         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1207         the dynamic meta object. No need to guess which interface to
1208         call.
1209
1210 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1211
1212         * qt/qdbusconnection_p.h:
1213         * qt/qdbusmetaobject.cpp:
1214         * qt/qdbusmetaobject_p.h:
1215         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1216         for the dynamic meta object. No need to guess which
1217         interface to call.
1218         * qt/qdbusabstractinterface_p.h:
1219         * qt/qdbusconnection.cpp:
1220         * qt/qdbusintegrator.cpp:
1221         * qt/qdbusinterface.cpp:
1222         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1223         Add a QDBusRef that looks and behaves like DCOPRef.
1224
1225 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1226
1227         * dbus/dbus-connection.c: Interfaces are optional in method
1228         calls, so don't give up if the interface parameter is NULL.
1229         Patch reviewed by Havoc Pennington.
1230
1231 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1232
1233         * qt/qdbusreply.h: Add default constructor and operator=
1234           (r532625)
1235         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1236           in public headers (r532952)
1237         * qt/qdbusabstractinterface.cpp:
1238         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1239           make it the default (r532951)
1240
1241 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1242
1243         * dbus/dbus-connection.c: Fix asserts
1244         Patch from Tim Moloney <t.moloney at verizon.net>
1245
1246 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1247
1248         * mono/Connection.cs, mono/Message.cs: Check Target type
1249         Patch from Aaron Bockover (abockover at novell.com)
1250
1251 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1252
1253         * INSTALL: fine-tune the requirements for the Qt4 binding.
1254
1255 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1256
1257         * tools/dbus-print-message.c: Added support for printing of all 
1258           remaining data types. Fixed logic for indentation of compound
1259           data types.
1260         
1261 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1262
1263         * INSTALL: fill out content of file providing DBus specific
1264           build installations, followed by generic Auto* INSTALL file
1265           content
1266         
1267 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1268
1269         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1270           Patch by Stefan Eilers. (r529537)
1271
1272 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1273
1274         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1275           contents (r528208)
1276
1277 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1278
1279         * qt/Makefile.am: fix the dependency for
1280           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1281           not in qdbusconnection.cpp.
1282           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1283           spotting this.
1284
1285 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1286
1287         * qt/examples/listnames.cpp:
1288         * qt/examples/Makefile.am: Three ways to list the names on the
1289           bus.
1290
1291 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1292
1293         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1294           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1295
1296 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1297
1298         Merge from Subversion:
1299         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1300           something that exists (r526315)
1301         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1302           slots/signals (r526316)
1303         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1304           also return an unknown-method error if the parameters don't
1305           match for org.freedesktop.DBus.Properties. (r526842)
1306         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1307         * qt/qdbusintegrator.cpp: Restore the proper order of
1308           delivery: don't make method returns be delivered on priority
1309           (r528150)
1310
1311 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1312
1313         * configure.in qt/Makefile.am: add qt/examples
1314         * qt/examples: Add QtDBus example programs:
1315           - hello: Hello, World
1316           - ping: Simple method-calling program
1317           - pong: Simple object-exporting program (not using adaptors)
1318           - complexping: Interactive method-calling program 
1319                 (also gets and sets properties).
1320           - complexpong: Sample program exporting methods, signals and
1321                 properties, using adaptors.
1322           - dbus: Simple implementation of a generic method-calling
1323                 program, similar to 'dbus-send', but with semantics
1324                 similar to 'dcop'.
1325           - chat: Simplistic chat program, implemented using signals
1326                 and the system bus. Looks like IRC.
1327
1328 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1329
1330         * configure.in: Detect QtGui (necessary for one of the
1331           example programs). Note: this increases the minimum required
1332           version of Qt to 4.1.3.
1333
1334 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1335
1336         * test/qt/*: Sync with KDE Subversion revision 523647.
1337         Update the testcases to the new API. Remove testcases for
1338         classes that are no longer public or have been removed.
1339
1340 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1341
1342         * qt/*: 
1343         * dbus/qdbus.h: Sync with KDE Subversion revision
1344         523647. Hopefully, this will be the last of the
1345         source-incompatible changes. Documentation has been improved;
1346         support for QList<basic-types> has been added; QDBusObject is
1347         gone; QDBus(Abstract)Interface is now a QObject with
1348         auto-generated meta-object; QDBusIntrospection is marked
1349         private, since QMetaObject can be used now; lots of bugfixes.
1350
1351 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1352
1353         Patch from Milosz Derezynski <internalerror at gmail.com>
1354         
1355         * configure.in:
1356         Output the service directory in the configure summary
1357
1358         * dbus-1.pc.in:
1359         Add session_bus_services_dir
1360
1361 2006-03-10  Ross Burton  <ross@openedhand.com>
1362
1363         * tools/dbus-print-message.c:
1364         Add support for object paths and signatures.
1365
1366 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1367
1368         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1369         config reload.
1370         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1371         information caches
1372         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1373         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1374         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1375         * dbus/dbus-userdb.h: Add function to flush all user/group information
1376         caches.
1377
1378 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1379
1380         * qt/dbusidl2cpp.cpp:
1381         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1382         for dcopidl2cpp, found in the KDE installations (or the more
1383         modern kalyptus): generate Qt4 C++ code for the input XML
1384         introspection. Currently no IDL parsing.
1385
1386 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1387
1388         * test/qt/*: Update the self-tests.
1389
1390 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1391
1392         * qt/*: 
1393         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1394         represents the first feature-complete version of the Qt4
1395         bindings since I took ove maintainership.
1396
1397 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1398
1399         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1400         dir. This is C++, so we can't use the DBus ones.
1401
1402 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1403
1404         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1405         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1406
1407 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1408
1409         * dbus/dbus-connection.c: 
1410         (_dbus_connection_block_pending_call):
1411         Check to see if our data has already been read off the connection
1412         by another blocking pending call before we block in poll.
1413         (check_for_reply_and_update_dispatch_unlocked):
1414         Code taken from _dbus_connection_block_pending_call - checks for
1415         an already read reply and updates the dispatch if there is one.
1416
1417         * test/name-test/test-pending-call-dispatch.c:
1418         New test for making sure we don't get stuck polling a 
1419         dbus connection which has no data on the socket when
1420         blocking out of order on two or more pending calls.
1421
1422 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1423
1424         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1425         make/automake don't detect that we're talking about the same
1426         .lo file if I specify the full path to the source files.
1427
1428 2006-02-26  Havoc Pennington  <hp@redhat.com>
1429
1430         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1431
1432         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1433         session bus variable is unset, suggest "man dbus-launch" and "man
1434         dbus-daemon" to figure out how to fix the problem
1435
1436 2006-02-25  Havoc Pennington  <hp@redhat.com>
1437
1438         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1439         should make this thing use the new glib options parser
1440
1441 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1442
1443         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1444         .lo files taking moc sources.
1445
1446 2006-02-25  Havoc Pennington  <hp@redhat.com>
1447
1448         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1449         and install it as a public header
1450
1451 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1452
1453         * Released 0.61
1454
1455 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1456         
1457         * proxies.py: Fix the callchain
1458
1459 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1460         
1461         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1462
1463         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1464         dbus/dbus-sysdeps.c
1465
1466         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1467         call _dbus_group_info_free_allocated which causes infinite loop,
1468         correctly call _dbus_group_info_free
1469
1470 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1471
1472         * qt/qdbusinterface_p.h:
1473         * qt/qdbusinterface.cpp: Use the standard
1474         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1475         calls instead of creating one for us.
1476
1477         * qt/qdbusconnection_p.h:
1478         * qt/qdbusintegrator.cpp: Remove debugging code.
1479
1480         * qt/qdbusintegrator.cpp:
1481         * qt/qdbusmessage.cpp:
1482         * qt/qdbusmessage_p.h:
1483         * qt/qdbusmessage.h: Change the behaviour of automatic
1484         reply-sending: now a reply is always sent, unless the caller
1485         didn't request one or if the user slot has already sent one.
1486
1487 2006-02-16  Robert McQueen  <robot101@debian.org>
1488
1489         * configure.in: Patch from Debian packages by Sjoerd Simons
1490         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1491         arguments so it's possible to build both bindings in the
1492         same tree.
1493
1494         * qt/Makefile.am: Fix truncated value so that make dist works.
1495
1496 2006-02-16  Robert McQueen  <robot101@debian.org>
1497
1498         * acinclude.m4, configure.in: Patch from Brad Hards
1499         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1500         improving quoting, re-ordering a few checks, and a few other
1501         aesthetic tidy-ups.
1502
1503 2006-02-16  Robert McQueen  <robot101@debian.org>
1504
1505         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1506         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1507         assertion that the next element to read from the iter is fixed in
1508         size. This is not the case when you are at the end of the iter,
1509         because the next element type is INVALID.
1510
1511         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1512         a bogus assert which means that you may not initialise a 0-length
1513         string unless you provide a non-NULL pointer. This prevented
1514         you from marshalling messages containing zero-length arrays in
1515         some cases.
1516
1517         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1518         from Rob to correct bogus asserts when trying to demarshal an
1519         array and get_fixed_array got you 0 elements. Append nothing to
1520         the GArray in this case.
1521
1522         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1523         an empty array via the glib bindings. Without all of the above
1524         patches, this new test fails.
1525
1526 2006-02-16  Robert McQueen  <robot101@debian.org>
1527
1528         * glib/dbus-gmain.c: Make the previous commit compile.
1529
1530         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1531         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1532         specify sender_keyword="foo", path_keyword="bar" when adding
1533         a signal listener, so that you can bind to signals generically
1534         but still do something useful in your callback.
1535
1536         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1537         chars so that they're not cast to chars and made negative. Thanks
1538         to Jakub Stachowski for reporting this and testing the fix.
1539
1540 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1541
1542         * dbus/dbus-glib.h:
1543         * glib/dbus-gmain.h:
1544         (dbus_g_connection_open): new method for openning
1545         a connection to an arbitrary address in the glib bindings
1546
1547         * ChangeLog: checkin last entry which doesn't seem to be commited
1548
1549 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1550
1551         * tools/dbus-launch.c: Fixed sh syntax output
1552
1553 2006-02-13  Robert McQueen  <robot101@debian.org>
1554
1555         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1556         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1557         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1558         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1559         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1560         missing piece of the glib bindings jigsaw puzzle. This modifies
1561         the existing specialised types to have N type parameters (rather
1562         than the current 1 or 2 for arrays and dictionaries respectively).
1563         You can then use this to get a glib type to represent any arbitrary
1564         D-Bus struct type using dbus_g_type_get_struct. The only
1565         implementation of these types is with GValueArrays as before,
1566         but it's now possible to store these in arrays, emit them in
1567         signals, etc.
1568
1569 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1570
1571         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1572         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1573         <thiago.macieira at trolltech.com>
1574
1575 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1576
1577         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1578         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1579
1580 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1581
1582         * bus/connection.c (bus_connections_expect_reply): Make
1583         pending reply limit not common to all connections (Bug #5416)
1584         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1585
1586 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1587
1588         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1589
1590 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1591
1592         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1593         patch from Doug Goldstein <cardoe at gentoo.org>
1594
1595 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1596
1597         * mono/Arguments.cs: Fix a magic number in the mono bindings
1598         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1599
1600 2006-01-27  Robert McQueen  <robot101@debian.org>
1601
1602         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1603         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1604         when generating the client-side methods, instead of overloading
1605         CSymbol which broke everything horribly. My apologies.
1606
1607 2006-01-27  Robert McQueen  <robot101@debian.org>
1608
1609         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1610         by me and Rob Taylor to add a simple_free function to D-Bus map
1611         and collection types, which allows those types which can be freed
1612         with a GDestroyNotify (such as GHashTables and GArrays, but not
1613         GPtrArrays) to be stored as the values in hashtables.
1614
1615         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1616         Patch by Rob Taylor to add nested dicts to the glib tests to check
1617         the above code works, and appears not to leak when called repeatedly.
1618
1619 2006-01-27  Robert McQueen  <robot101@debian.org>
1620
1621         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1622         to free a D-Bus allocated string with dbus_free () instead of
1623         g_free ().
1624
1625 2006-01-27  Iain Holmes  <iain@openedhand.com>
1626
1627         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1628         method from being called multiple times.
1629
1630 2006-01-19  Robert McQueen  <robot101@debian.org>
1631
1632         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1633         <rob.taylor@collabora.co.uk> to add support for generating bindings
1634         to arrays that are represented as GPtrArrays rather than GArrays (ie
1635         size-variable things, such as strings, objects, structs, etc).
1636
1637 2006-01-05  Robert McQueen  <robot101@debian.org>
1638
1639         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1640         <ricardo.kekki@movial.fi> to make it possible to inherit from
1641         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1642         a private part, and moving the setting of the DBusGProxyManager into a
1643         connection property, allowing proper GObject construction.
1644
1645 2006-01-05  Robert McQueen  <robot101@debian.org>
1646
1647         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1648         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1649         annotations when generating glib client bindings.
1650
1651 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1652
1653         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1654
1655         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1656
1657 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1658
1659         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1660
1661 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1662
1663         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1664
1665 2005-12-19  Ross Burton  <ross@openedhand.com>
1666
1667         * doc/dbus-tutorial.xml:
1668         Document the Glib client-side bindings, and list all possible annotations.
1669
1670 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1671
1672         * dbus/bus.c (dbus_bus_release_name): Add documentation
1673
1674 2005-12-06  Robert McQueen  <robot101@debian.org>
1675
1676         * python/service.py: s/sucessful/successful/ so we're allocating to
1677         and reading from the same variable. Oops.
1678
1679 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1680
1681         * Released 0.60
1682
1683 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1684
1685         * test/qt/Makefile.am: build from srcdir
1686
1687         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1688         Note - this code is wrong and needs to be fixed by the Qt binding
1689         developers.  The flags should be treated as bitfields and not enums.
1690
1691         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1692
1693 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1694
1695         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1696           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1697           in production code
1698
1699 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1700
1701         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1702         method for getting messages off the bus in the absence of a
1703         mainloop.  This method is much like 
1704         dbus_connection_read_write_dispatch except it does not dispatch
1705         the messages to a registered filter function.  Instead it
1706         allows a developer to process messages by directly popping
1707         them off the bus.
1708
1709 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1710
1711         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1712         the parser to continue instead of returning error
1713         (bus_desktop_file_load): Do not free parser data when
1714         parse_section_start or parse_key_value fails because it was 
1715         already freed by parser_free (patch from Carlos Garcia Campos  
1716         <carlosgc at gnome.org>)
1717
1718 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1719
1720         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1721         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1722         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1723         test/test-segfault.c, test/test-utils.c,
1724         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1725         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1726         Various cleanup of dead code and compiler warnings (patch from
1727         Kjartan Maraas <kmaraas at gnome.org>) 
1728
1729 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1730
1731         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1732         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1733
1734 2005-11-27  Robert McQueen  <robot101@debian.org>
1735
1736         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1737         part of the preceding one. Oops. Merge patch by Johan Hedberg
1738         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1739         on big-endian platforms.
1740
1741         * test/python/test-client.py: Add some 16-bit integers to the test
1742         values.
1743
1744 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1745
1746         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1747         method return message for property getters
1748
1749 2005-11-27  Robert McQueen  <robot101@debian.org>
1750
1751         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1752         with type v of an instance of dbus.Variant(foo, type='x') caused
1753         it to be boxed twice before sending over the bus.
1754
1755         * python/dbus_bindings.pyx, python/service.py,
1756         test/python/test-client.py: Update the constants for the new
1757         request_name flags, and update comments/test cases now that queueing
1758         is the default action.
1759
1760 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1761
1762         * configure.in:
1763         - Change version to 0.60 for impending release
1764         - upped the sonames because of ABI and API breakage
1765
1766 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1767
1768         * configure.in: Add test/name-test/Makefile to the generated
1769         Makefile list
1770
1771         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1772         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1773         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1774         not to queue an ower if it can't be the primary owner
1775
1776         * bus/bus.h: Add new internal BusOwner struct
1777
1778         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1779         to bus_registry_ensure and don't set the prohibit_replacement flag
1780         since they are now set per BusOwner and not per name.
1781         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1782         that returns the list of connections in a name's connection queue
1783         
1784         * bus/services.c (struct BusService): remove prohibit_replacement field
1785         (struct BusOwner): new struct for keeping track of queued connections
1786         and their associated flags for the queue
1787         (struct BusRegistry): add a BusOwner memory pool
1788         (bus_registry_new): initialize the BusOwner memory pool
1789         (bus_registry_unref): free the BusOwner memory pool
1790         (_bus_service_find_owner_link): new internal method for
1791         searching the queue for a specific connection
1792         (bus_owner_set_flags): new method for adding setting the flags on a
1793         bus owner
1794         (bus_owner_new): new method that creates a BusOwner object from the
1795         pool and sets its flags
1796         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1797         (bus_registry_ensure): Add the flags parameter
1798         (bus_registry_acquire_service): Switch from using raw connections to
1799         using the BusOwner struct
1800         Add new state machine for dealing with the new set of flags
1801         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1802         cancel_ownership, free_ownership_cancel_data, 
1803         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1804         restore_ownership, free_ownership_restore_data, 
1805         add_restore_ownership_to_transaction): Switch to using BusOwner 
1806         instead of raw connections
1807         (bus_service_add_owner): Add flags parameter
1808         Switch to using BusOwner instead of raw connections
1809         Add state machine for dealing with the new set of flags
1810         (bus_service_swap_owner): Swaps the first and second owners in the
1811         queue.  Used to make sure proper signals are sent when a service looses 
1812         or gains primary ownership.  We never insert an owner at the top of the
1813         queue.  Instead we insert it in the second position and then swap.
1814         (bus_service_remove_owner): Remove the owner from the queue sending
1815         out the NameLost and NameOwnerChanged signals if the we were the 
1816         primary owner
1817         (bus_service_get_primary_owners_connection): New method that extracts
1818         the connection from the primary owner
1819         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1820         connection
1821         (bus_service_get_allow_replacement): Changed from the old 
1822         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1823         primary owner and returns if it can be replaced or not
1824         (bus_service_set_prohibit_replacement): removed
1825         (bus_service_has_owner): returns TRUE if and owner with
1826         the specified connection exists in the queue
1827         
1828         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1829         method that only compiles if tests are enabled.  Allows us to get the 
1830         unique name of a connection so we can check it against the queue when
1831         doing regression tests
1832
1833         * bus/activation.c (bus_activation_send_pending_auto_activate),
1834         bus/dispatch.c (bus_dispatch),  
1835         bus/driver.c (bus_driver_handle_get_service_owner, 
1836         bus_driver_handle_get_connection_unix_user, 
1837         bus_driver_handle_get_connection_unix_process_id,
1838         bus_driver_handle_get_connection_selinux_security_context),
1839         bus/signals.c (connection_is_primary_owner): 
1840         use bus_service_get_primary_owners_connection instead of
1841         bus_service_get_primary_owner
1842
1843         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1844         _dbus_listen_unix_socket): Calculate the length of the socket
1845         path and use that instead of using a fixed length which was
1846         causing socket names to contain many trailing Nul bytes.
1847
1848         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1849         (dbus_g_method_get_sender): New method for extracting the sender 
1850         from a DBusGMethodInvocation
1851         (dbus_g_method_return_get_reply): changed name to 
1852         dbus_g_method_get_reply
1853         (dbus_g_method_return_send_reply): changed name to
1854         dbus_g_method_send reply
1855
1856         * doc/dbus-specification.xml: New docs that describe how the new
1857         queueing system works and talks about the changes to the how
1858         we specify socket names
1859
1860         * glib/examples/example-service.c, 
1861         glib/examples/example-signal-emitter.c,
1862         glib/examples/statemachine/statemachine-server.c:
1863         Changed the RequestName flags to the new system
1864
1865         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1866         regression test suite for testing various states of the new
1867         queueing system
1868         
1869 2005-11-15  Robert McQueen  <robot101@debian.org>
1870
1871         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1872         Taylor to add two methods, dbus_g_method_return_get_reply and
1873         dbus_g_method_return_send_reply, to allow you to get the reply
1874         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1875         and send it. The GLib bindings can't marshal a return value of
1876         something like a(s) if the array is empty - ultimately they should be
1877         made to heed the signature of the out arguments as the Python bindings
1878         now can, but this is a workable interim solution which might have
1879         other applications.
1880
1881 2005-11-15  Robert McQueen  <robot101@debian.org>
1882
1883         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1884         method to org.freedesktop.DBus to release a bus name or give up
1885         waiting in the queue for it.
1886
1887         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1888         dbus_bus_release_name method to send the ReleaseName method calls.
1889         Add constants for the return values to dbus/dbus-shared.h.
1890
1891         * doc/dbus-specification.xml: Document the new ReleaseName method
1892         in the specification.
1893
1894         * python/dbus_bindings.pyx: Add a low-level python binding for the
1895         release name method.
1896
1897         * python/exceptions.py, python/service.py: Make freeing BusName
1898         objects release the name. Add a NameExistsException, and fix a
1899         bug with creating UnknownMethodException.
1900
1901         * test/python/test-client.py: Add tests for freeing BusName
1902         objects causing names to be released.
1903
1904 2005-11-14  Robert McQueen  <robot101@debian.org>
1905
1906         * python/service.py: Include the traceback in the error reply when we
1907         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1908
1909 2005-11-14  David Zeuthen  <davidz@redhat.com>
1910
1911         Patch from Timo Hoenig <thoenig@suse.de>.
1912
1913         * bus/bus.c: I've recently investigated why the automatic reload
1914         of configuration files does not work as expected.
1915
1916         Currently, reloading configuration files does only work when
1917         running dbus-daemon with --nodaemon.  If we are running as daemon
1918         we're hitting a dnotify bug once we fork the process.
1919
1920         We're initializing the dnotify fds before calling fork().  Once
1921         the child process forked it does still have the fds (and they
1922         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1923         getting SIGIO as changes are made to the configuration files.
1924
1925         The attached patch moves the initialization of the dnotify fds to
1926         process_config_postinit().  This is safe for all current code
1927         paths and solves the dnotify disfunction.  If we're running
1928         dbus-daemon as daemon the fds for dnotify are now being
1929         initialized after fork() for the child process.
1930
1931         * configure.in: The current configure.in check for dnotify probes
1932         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1933         match for 'xlinux', too. Additionally I have adapted the configure
1934         option's style to match with the others.
1935
1936 2005-11-14  Robert McQueen  <robot101@debian.org>
1937
1938         * python/decorators.py, python/service.py: Add a new argument to the
1939         dbus.service.method decorator called sender_keyword, which if set,
1940         specifies the name of an argument which will be provided the bus
1941         name of the method caller.
1942
1943         * test/python/test-client.py, test/python/test-service.py: Add a
1944         method and test to check the sender_keyword functionality.
1945
1946 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1947
1948         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1949         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1950         Simons <sjoerd at luon.net>)
1951
1952         * AUTHORS: Add Robert McQueen for his work on the Python
1953         Bindings and other parts of D-Bus
1954
1955 2005-11-07  Robert McQueen  <robot101@debian.org>
1956
1957         * python/decorators.py: Change emit_signal function to use the
1958         signature annotation of the signal when marhsalling the arguments from
1959         the service. Fix a bug where the code checking signature length
1960         against argument length referenced the wrong variable.
1961
1962         * python/introspect_parser.py: Avoid adding the type signature of
1963         signal arguments to any methods which occur after them in the
1964         introspection data (!) by making the parser a little more careful
1965         about its current state.
1966
1967         * python/service.py: Remove debug prints from last commit (again :D).
1968
1969         * test/python/test-client.py, test/python/test-service.py: Add test
1970         signals with signature decorators to test the strict marshalling code
1971         gives errors at the right time. Could do with checking the signals
1972         actually get emitted too, given that the test does nothing with
1973         signals at the moment...
1974
1975 2005-11-07  Robert McQueen  <robot101@debian.org>
1976
1977         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1978         instances to stop madness of creating new instances representing
1979         the same bus connection all the time, rendering any tracking of
1980         match rules and bus names quite meaningless. Caught a bug where
1981         the private argument to SessionBus() and friends was being passed
1982         in as use_default_mainloop by mistake. Still some problems with
1983         multiple dbus_binding.Connection instances representing the same
1984         low-level connection (eg when you use both SessionBus() and
1985         StarterBus() in same process), but it's a lot better now than it
1986         was.
1987
1988         * python/dbus_bindings.pyx: Add constants with the return values
1989         for bus_request_name().
1990
1991         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1992         and retrieve the same instances for the same name, so deletion can be
1993         done with refcounting. Also now throws some kind of error if you
1994         don't actually get the name you requested, unlike previously...
1995
1996         * test/python/test-client.py: Add tests for instance caching of buses
1997         and bus name objects.
1998
1999 2005-11-04  Robert McQueen  <robot101@debian.org>
2000
2001         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2002         marshalling of boolean values. Add some booleans to the values in
2003         the test client.
2004
2005         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2006         argument to the dbus.service.method decorator, which allows you to
2007         name arguments to take two callback functions for replying with
2008         return values or an exception.
2009
2010         * test/python/test-client.py, test/python/test-service.py: Add test
2011         case using asynchronous method reply functions, both return values and
2012         errors, and from within both the function itself and from a mainloop
2013         callback.
2014
2015         * python/decorators.py, python/service.py: Perform checking that the
2016         number of method/signal arguments matches the number of types in the
2017         signature at class loading time, not when you first introspect the
2018         class.
2019
2020         * python/service.py: Remove debug print left by the last commit.
2021
2022 2005-11-03  Robert McQueen  <robot101@debian.org>
2023
2024         * python/service.py: Heavy refactoring of method invocation, with
2025         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2026         in favour of a new _message_cb that uses seperate functions for
2027         looking up the method to call, marshalling the return values, and
2028         sending exceptions as errors, and is easier to follow as a
2029         consequence.  Fixes some corner cases about returning things that
2030         don't match your declared out_signature, allows exceptions to define
2031         _dbus_error_name and have it be sent over the bus as the error name,
2032         and paves the way for cool stuff like heeding the message no reply
2033         flag, asynchronous method implementations, informing the method of the
2034         sender, and including backtraces in the error messages.
2035
2036         * test/python/test-client.py: Catch and print exceptions thrown in the
2037         async callback tests, rather than passing them to the low-level
2038         bindings to be ignored in a noisy and frustrating manner.
2039
2040 2005-11-03  Robert McQueen  <robot101@debian.org>
2041
2042         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2043         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2044         tweak others to be consistent.
2045
2046         * test/python/test-client.py: Tweak output of testInheritance.
2047
2048 2005-10-29  Robert McQueen  <robot101@debian.org>
2049
2050         * python/service.py: Major changes to allow multiple inheritance
2051         from classes that define D-Bus interfaces:
2052         
2053          1. Create a new Interface class which is the parent class of
2054             Object, and make the ObjectType metaclass into InterfaceType.
2055         
2056          2. Patch written with Rob Taylor to replace use of method_vtable
2057             with code that walks the class's __MRO__ (method resolution order)
2058             to behave like Python does when invoking methods and allow
2059             overriding as you'd expect. Code is quite tricky because
2060             we have to find two methods, the one to invoke which has the
2061             right name and isn't decorated with the /wrong/ interface,
2062             and the one to pick up the signatures from which is decorated
2063             with the right interface.
2064         
2065             The same caveats apply as to normal multiple inheritance -
2066             this has undefined behaviour if you try and inherit from two
2067             classes that define a method with the same name but are
2068             decorated with different interfaces. You should decorate
2069             your overriding method with the interface you want.
2070         
2071          3. Replace grungy introspection XML generation code in the metaclass
2072             with dictionaries that cope correctly with multiple inheritance
2073             and the overriding of methods. This also uses the signature
2074             decorations to provide correct introspection data, including
2075             the debut appearance of the types of your return values. :D
2076
2077         * test/python/test-client.py, test/python/test-service.py: Add a test
2078         case to try invoking an method that overrides one inherited from a
2079         D-Bus interface class.
2080
2081 2005-10-29  Robert McQueen  <robot101@debian.org>
2082
2083         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2084         Add checking for the end of struct character when marshalling a
2085         struct in MessageIter.append_strict.
2086
2087         * python/examples/example-service.py,
2088         python/examples/gconf-proxy-service.py,
2089         python/examples/gconf-proxy-service2.py: Update to use gobject
2090         mainloop directly rather than appearing to depend on gtk.
2091
2092         * python/test/test-client.py, python/test/test-server.py: Remove
2093         obsolete and broken test scripts for old bindings. We have up to date
2094         and working tests in test/python/.
2095
2096 2005-10-29  Robert McQueen  <robot101@debian.org>
2097
2098         * python/decorators.py: Add optional arguments to the method and
2099         signal decorators to allow you to specify the signature of arguments
2100         and return values. Preserve the doc strings of signal functions in the
2101         decorated version, for pydoc and friends.
2102
2103         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2104         parse_signature_block function with an iterable dbus.Signature()
2105         type. Fix a bug in MessageIter.append_strict where you could append
2106         anything by claiming it was a string.
2107
2108         * python/service.py: Use the out_signature decoration on methods to
2109         marshal return values, meaning you no longer require dbus.Array()
2110         or dbus.Dictionary() to indicate the type when returning empty
2111         arrays or dictionaries. Fix a bug where exceptions which are defined
2112         in __main__ are not turned into error replies.
2113
2114         * test/python/test-client.py, test/python/test-service.py: Add test
2115         for correct marshalling of return values according to out_signature.
2116         Fix a bug in the async call test where the error_handler is missing a
2117         self argument.
2118
2119 2005-10-29  Robert McQueen  <robot101@debian.org>
2120
2121         * glib/Makefile.am, glib/examples/Makefile.am,
2122         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2123         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2124
2125         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2126
2127         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2128         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2129         the command line.
2130
2131 2005-10-27  Ross Burton  <ross@openedhand.com>
2132
2133         * dbus/dbus-marshal-header.c:
2134         Remove dead code.
2135
2136         * glib/dbus-gobject.c:
2137         Stop compiler warning.
2138
2139 2005-10-25  Ross Burton  <ross@openedhand.com>
2140
2141         * dbus/dbus-auth.c:
2142         * dbus/dbus-server-unix.c:
2143         * dbus/dbus-transport-unix.c:
2144         * glib/dbus-gmain.c:
2145         * glib/dbus-gobject.c:
2146         Add some const keywords.
2147
2148 2005-10-25  Ross Burton  <ross@openedhand.com>
2149
2150         * doc/dbus-specification.xml:
2151         Document the NoReply annotation.
2152
2153         * glib/dbus-binding-tool-glib.h:
2154         * glib/dbus-binding-tool-glib.c:
2155         Respect the NoReply annotation.
2156
2157 2005-10-24  Robert McQueen <robot101@debian.org>
2158
2159         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2160         derive from unicode instead of str, and encode/decode UTF-8 when
2161         marshalling/unmarshalling bus messages
2162
2163         * python/introspect_parser.py: encode introspection data as UTF-8
2164         before passing the buffer into libxml2
2165
2166         * test/python/test-client.py: add unicode test strings
2167
2168         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2169         ignore generated python test files
2170
2171 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2172
2173         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2174         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2175         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2176
2177         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2178         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2179         when constructing struct signatures
2180
2181         * python/_dbus.py (Bus): handle private connections using the
2182         private keyword in the constructor. defaults to private=False
2183         (Bus::close): new method to close a connection to the bus
2184
2185         * python/dbus_bindings.pyx (Connection::close): renamed method
2186         was previously called disconnect
2187         (bus_get): now supports getting a private connection
2188
2189         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2190         keyword is set to True.  if it is, execute the method without waiting
2191         for a reply
2192         (ProxyObject::_introspect_execute_queue): new method for executing
2193         all the pending methods that were waiting for the introspect to
2194         finish.  this is called when introspect either succeeds or fails
2195         (ProxyObject::_introspect_error_handler): call queued methods
2196
2197 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2198
2199         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2200         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2201
2202         * python/service.py (Object::_message_cb): handle exceptions correctly
2203         by sending them over the wire to the calling app.  This makes sure
2204         the client returns immediately instead of waiting the 15 seconds to
2205         timeout.
2206
2207         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2208         Add a test to benchmark how long it takes to introspect a service and 
2209         call a method which returns a large element (pretty fast)
2210
2211         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2212         method which pushes a lot of data
2213
2214 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2215
2216         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2217         reclaim memory outside of the loop and use del istead of just setting
2218         the key to None
2219
2220 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2221
2222         * python/service.py (ObjectType::_reflect_on_signal): Always close
2223         signal tag even when there are no arguments
2224
2225 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2226
2227         * configure.in: Set mono, mono-docs and Qt3 to default
2228         to no instead of auto when building.  These bindings do not
2229         have full time maintainers and will not be supported for the
2230         1.0 release.
2231
2232 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2233
2234         patches from Michael Krivoruchko <misha at sun.com>: 
2235         
2236         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2237         _dbus_connection_message_sent, 
2238         _dbus_connection_send_preallocated_unlocked_no_update, 
2239         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2240         is NULL when calling _dbus_verbose
2241
2242         * configure.in: check for functions getpeerucred and getpeereid
2243
2244         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2245         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2246         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2247         Patch was only tested on Solaris 10 x86 so it might be issues
2248         with other platforms (i.e. BSDs and MacOSX)
2249         
2250
2251 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2252
2253         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2254         instead of marshal basic so we can handle recursive types in a variant
2255
2256         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2257         in variants
2258
2259         * test/glib/test-service-glib.c, test-service-glib.xml
2260         (my_object_echo_variant [EchoVariant], 
2261         my_object_process_variant_of_array_of_ints123
2262         [ProcessVariantOfArrayOfInts123]): 
2263         Add two test methods
2264
2265         * python/introspect_parser.py: New module for parsing introspect
2266         data.
2267
2268         * python/dbus_bindings.pyx:
2269         (various places): when throwing errors fix to use errormsg instead 
2270         of message local variable because Pyrex can get confused with other 
2271         message variables (initial patch by Robert McQueen 
2272         <robert.mcqueen at collabora.co.uk>)
2273         (MessageIter::parse_signature_block): new method for getting the next
2274         block in a signiture.
2275         (MessageIter::append_strict): new method for appending values strictly
2276         using the passed in signature instead of guessing at the type
2277         (MessageItter:: append_dict, append_struct, append_array): use 
2278         signatures to marshal children if the signature is available
2279         
2280         * python/exceptions.py (IntrospectionParserException): new exception
2281
2282         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2283         introspected signatures if available, else we fall back to the
2284         old way of doing things.
2285         (ProxyObject::_introspect_reply_handler ): parse introspection data
2286         
2287         * python/service.py (ObjectType::_reflect_on_method): Properly
2288         terminate <method> if there are no args in the reflection data
2289
2290         * test/python/test-client.py: add tests for talking with the GLib
2291         test server.  This gives us better coverage for introspection since
2292         python to python will always generate arguments as variants.  It also
2293         allows us to test the robustness of the GLib bindings and interlanguage
2294         communications.
2295
2296         
2297 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2298
2299         * bus/driver.c (bus_driver_handle_introspect): Add signals
2300         to the introspect data. (patch from Daniel P. Berrange 
2301         <dan at berrange.com>)
2302
2303         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2304         
2305         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2306         _dbus_connection_run_builtin_filters): Changed these to
2307         be unlock_no_update functions and call 
2308         _dbus_connection_send_unlocked_no_update instead of
2309         dbus_connection_send to avoid locking errors.
2310         
2311         * doc/TODO: Removed the make Ping test TODO
2312         
2313 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2314
2315         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2316         We now copy the message from a DBusError and then free 
2317         the error object befor throwing the error
2318
2319         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2320         DBusBindingOutputMode enum which was causing a warning.
2321         #include <time.h> so using time_t is explicitly defined
2322
2323 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2324
2325         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2326         - dbus/dbus-bus.c
2327         (internal_bus_get): new method that take over the heavy lifting
2328         of dbus_bus_get and adds the ability to get a private connection
2329         to the bus
2330         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2331         interface as in previous versions
2332         (dbus_bus_get_private): new method that is a wrapper to 
2333         internal_bus_get to get a private connection to the bus
2334
2335         - dbus/dbus-bus.h
2336         (dbus_bus_get_private): add as a public libdbus interface
2337
2338         - dbus-1.pc.in: output system_bus_default_address and 
2339         sysconfdir variables so apps can use them when compiling
2340
2341 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2342         * dbus/qt: New Qt bindings
2343
2344 2005-09-12  Waldo Bastian  <bastian@kde.org>
2345
2346         * dbus/dbus-marshal-validate.c,
2347         doc/dbus-specification.xml, test/Makefile.am,
2348         test/test-names.c: allow hyphens in bus names.
2349
2350 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2351
2352         * test/data/auth/fallback.auth-script: we don't
2353         retry the EXTERNAL method when we know its going
2354         to fail anymore.
2355
2356 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2357
2358         * dbus/dbus-connection-internal.h: rename
2359         (add|remove|toggle)_(watch|timeout) to unlocked()
2360         
2361         * dbus/dbus-connection.c: ditto.
2362         
2363         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2364         Update some callers for the renaming.
2365
2366 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2367
2368         * dbus/dbus-auth.c: (record_mechanisms): don't
2369         retry the first auth mechanism because we know
2370         we're just going to get rejected again.
2371         
2372         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2373         Fix thinko ... and what a nasty little bugger to
2374         track down you were ...
2375
2376         * dbus/dbus-connection.c:
2377         (_dbus_connection_add_watch),
2378         (_dbus_connection_remove_watch): add note about
2379         these needing the connection to be locked.
2380         (_dbus_connection_get_dispatch_status_unlocked):
2381         set status to DATA_REMAINS when we queue the
2382         disconnected message.
2383         
2384         * bus/dispatch.c:
2385         (bus_dispatch): fix warning.
2386         (check_existent_service_no_auto_start):
2387         Expect ChildSignaled error too.
2388         (check_existent_hello_from_self): fix another
2389         couple of warnings.
2390         
2391 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2392
2393         Patches from James Willcox <snorp@snorp.net>
2394
2395         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2396
2397         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2398         support array "out" parameters.
2399
2400         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2401         for 16-bit int support.
2402
2403 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2404
2405         * Released 0.50
2406
2407         * Patch from Steve Grubb:
2408         - bus/activation.c (bus_activation_service_reload_test): clean up
2409         some indentation
2410         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2411         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2412         buffer overflows in the test suite.  This is non critical because
2413         it can not be exploited and this code is only run when doing a 
2414         make check.
2415
2416         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2417         - configure.in: Don't check and link against kdecore, only qt headers
2418         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2419         - gcj/org/freedesktop/dbus/Makefile.am:
2420         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2421         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2422         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2423         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2424         - tools/Makefile.am: Add platform extentions to binaries 
2425         (i.e. .exe on windows)
2426
2427         * configure.in: 
2428         - Make it so if no suitable version of python is found we only 
2429         disable building python instead of exiting the configure script
2430         - Require version 2.4 of glib for glib bindings
2431         - Up version to 0.50
2432
2433         * python/__init__.py: Sync version with libdbus to (0,50,0)
2434         
2435 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2436
2437         * dbus/dbus-object-tree.c (find_subtree_recurse):
2438         a couple of optimizations (bug #710):
2439         - do a binary search in the tree
2440         - insert a new child at the right place directly, no need for
2441           qsort anymore
2442         - do the "double alloc" thing when allocating children
2443
2444 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2445
2446         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2447
2448         * python/dbus_bindings.pyx: Memory management foo
2449         (global): remove hacky _user_data_references global list
2450         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2451         tuples. Unref user_data
2452         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2453         (Connection::__del__): Remove and replace with __dealloc__ method
2454         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2455         to keep tuple from being deallocated instead of the global var hack
2456         (Connection::register_object_path): Stuff user_data into a tuple.
2457         Use Py_INCREF to keep tuple from being deallocated instead of the 
2458         global var hack
2459         (Connection::register_fallback): Stuff user_data into a tuple.
2460         Use Py_INCREF to keep tuple from being deallocated instead of the 
2461         global var hack
2462         (GIL_safe_pending_call_notification): Don't unref the message
2463         because it gets unreffed when going out of scope.  Py_XDECREF
2464         the user_data
2465         (PendingCall::__del__): Remove and replace with __dealloc__ method
2466         (PendingCall::set_notify): ref the pending call because we will
2467         need it to stick around for when the notify callback gets called
2468         (Message::__del__): Remove and replace with __dealloc__ method
2469
2470         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2471         gthreads_init to match up with the dbus call
2472
2473         * python/glib.py (init_threads): Changed to threads_init to match
2474         up with gobject.threads_init().  init_threads is kept for backwards
2475         compat but will most likely be deprecated in the future
2476
2477         * test/python/test-client.py: 
2478         - revamp to use Python's unittest functionality
2479         - add async call tests
2480         - setup threads in glib and dbus so we make sure locks are working
2481         
2482 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2483
2484         * python/dbus_bindings.pyx 
2485         (_pending_call_notification, cunregister_function_handler, 
2486         cmessage_function_handler): All callback functions have been rearranged 
2487         to workaround a bug in Pyrex when working with the GIL which is Python's 
2488         global lock when dealing with threads.  They have been split into
2489         a wrapper function (which assumes the name of the old function) and
2490         a _GIL_safe_<function name> function which contains the functionality
2491         of the old function.  This ensures that Pyrex does not write code
2492         the lock is released.
2493         
2494
2495 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2496
2497         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2498         GIL global lock when calling back into Python
2499
2500 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2501
2502         * Release 0.36.2
2503
2504         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2505
2506         * bus/policy.c (bus_policy_allow_user): change default "user is
2507         allowed" to be "user has same uid as the bus itself"; any
2508         allow/deny rules will override.
2509
2510         * bus/session.conf.in: don't allow all users, since now by default
2511         the user that ran the bus can connect.
2512
2513 2005-08-26  Colin Walters  <walters@verbum.org>
2514
2515         * tools/dbus-print-message.c (print_message): Flush stdout
2516         after printing a message, so that redirecting to a file, then
2517         hitting Ctrl-C works.
2518
2519 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2520
2521         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2522         (EmptyMessage): new class that subclasses Message.  This is a workaround
2523         to a Pyrex bug that fails to call __del__ when the Message object goes out
2524         of scope.  For some reason subclassing Message fixes this bug
2525         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2526         - s/Message(_create=0)/EmptyMessage everywhere else
2527         
2528         * test/python/test-{server|client}.py: add the python/.libs directory
2529         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2530         get picked up from the system
2531
2532 2005-08-25  Colin Walters  <walters@verbum.org>
2533
2534         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2535         to Ryan Lortie for the suggestion.
2536
2537 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2538
2539         * test/python: Add python regression test
2540
2541         * configure.in: Add test/python/Makefile
2542
2543         * test/Makefile.am: Add the python directory to SUBDIRS
2544
2545 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2546
2547         * Release 0.36.1
2548
2549         * python/_dbus.py: 
2550         (Interface::connect_to_signal): propigate keywords for match on args
2551         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2552
2553         * python/proxies.py (ProxyObject::connect_to_signal):
2554         propigate keywords for match on args
2555
2556         * Makefile.am: point everything to pyexecdir since python borks
2557         on multilib
2558
2559 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2560
2561         * Release 0.36
2562
2563 2005-08-23  Colin Walters  <walters@verbum.org>
2564
2565         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2566
2567 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2568
2569         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2570         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2571         of defining DBusConnection ourselves.
2572
2573 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2574
2575         * python/dbus.pth: New path file to fix up problems when installing
2576         c libraries to lib64 and python files to lib.
2577
2578         * python/Makefile.am: install dbus.pth in the correct spot
2579
2580 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2581         * ChangeLog: clean up my last entry a bit
2582
2583         * doc/introspect.xsl: New stylesheet for converting introspection data
2584         into browser renderable xhtml. Contributed by Lennart Poettering.
2585
2586         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2587         Poettering.
2588
2589         * doc/dbus-tutorial.xml: 
2590         - Add Colin Walter to the Authors section for authoring the GLib
2591         section
2592         - Add descriptions of the new signature and type functionality
2593         in the Python complex type mapping section
2594         - Add a sidenote on the new args matching functionality in 
2595         the Python bindings
2596         - Fixed up some of the examples to use the gobject.MainLoop
2597         instead of gtk.main
2598         
2599         * python/_dbus.py:
2600         (Bus::_create_args_dict): New. Converts a hash of arg matches
2601         to a more useable format
2602         (Bus::add_signal_receiver): add a **keywords parameter for catching
2603         arg match parameters
2604         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2605         arg match parameters
2606         
2607         * python/matchrules.py:
2608         (MatchTree::exec_matches): Check for arg matches
2609         (SignalMatchRule::add_args_match): New method
2610         (SignalMatchRule::execute): Added args_list parameter as an optimization
2611         so we don't have to marshal the args more than once
2612         (SignalMatchRule::match_args_from_list): New method that checks to see
2613         if the rule's arg matches match an argument list.  Only arguments
2614         set in the rule are checked.
2615         (SignalMatchRule::match_args_from_rule): New method that checks to see
2616         if the rule's arg matches match another rule's.  All args have to match
2617         in order for this method to return true.  If either rule has more args
2618         then it is not a match.
2619         (SignalMatchRule::is_match): Add args match
2620         (SignalMatchRule::repr): Add args to the final output if they exist
2621
2622 2005-08-17  Ross Burton  <ross@burtonini.com>
2623
2624         * glib/dbus-gproxy.c:
2625         (dbus_g_proxy_call_no_reply): unref the message once sent.
2626         (dbus_g_proxy_call): protect against NULL proxy.
2627
2628 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2629
2630         * python/__init__.py: Version updated (0, 43, 0)
2631         
2632         * python/dbus_bindings.pyx: 
2633         - Fixed type objects to have self passed into __init__
2634         - Added the Variant type
2635         - Add the ability to specify types or signatures for Array, Variant 
2636         and Dictionary
2637         (Connection::send_with_reply_handlers): return a PendingCall object
2638         (_pending_call_notification): handle the case when an error is returned 
2639         without an error message in the body
2640         (MessageIter::get_boolean): return True or False instead of an integer
2641         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2642         and add checks for objects with embeded signatures or types (Array, 
2643         Variant and Dictionary)
2644         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2645         (MessageIter::append_dict): handle embeded types or signatures
2646         (MessageIter::append_array): handle embeded types or signatures
2647         (MessageIter::append_variant): new method
2648         
2649         * python/proxies.py:
2650         (DeferedMethod): New. Dummy executable object used when queuing calls 
2651         blocking on introspection data
2652         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2653         or shorter timeouts for method calls
2654         (ProxyObject): Add first pass at an introspection state machine
2655         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2656         introspection. 
2657         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2658         the usual mechanisms for sending messages.  This is to avoid a deadlock
2659         where the Intospect call would be queued waiting for the Introspect 
2660         call to finish ;-)
2661         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2662         when introspection returns with no error
2663         (ProxyObject::_introspect_error_handler): New.  This method is called 
2664         when introspection encounters an error
2665         (ProxyObject::__getattr__): Code to handle different introspection 
2666         states.  Queue async calls or block blocking calls if we are 
2667         introspecting.  Pass through as normal if we are not or are done with 
2668         introspecting.
2669         
2670         * python/service.py: Import signal and method from decorators.py
2671
2672         * python/types.py: Add Variant type
2673
2674 2005-08-16  Colin Walters  <walters@verbum.org>
2675
2676         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2677         DBusError message is NULL.
2678
2679 2005-08-09  Havoc Pennington  <hp@redhat.com>
2680
2681         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2682         malloc'd copy of the name parameter
2683
2684 2005-08-09  Havoc Pennington  <hp@redhat.com>
2685
2686         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2687         warning if the reply serial is set to 0
2688
2689 2005-08-04  Colin Walters  <walters@verbum.org>
2690
2691         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2692         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2693         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2694         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2695         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2696         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2697         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2698         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2699         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2700         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2701         
2702         Prefix name with _ to ensure they're not exported.  All callers
2703         updated.
2704
2705         * glib/dbus-gvalue.c (typecode_to_gtype)
2706         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2707         (signature_iter_to_g_type_dict)
2708         (signature_iter_to_g_type_array)
2709         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2710         (dbus_gtypes_from_arg_signature):
2711         Move to dbus-gsignature.c.
2712
2713         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2714         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2715         (dbus_binding_tool_output_glib_client): Ditto.
2716
2717         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2718         and dbus-gsignature.h
2719
2720         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2721         unused variable.
2722
2723 2005-08-03  Colin Walters  <walters@verbum.org>
2724
2725         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2726         catch any incompatible changes accidentally made.
2727
2728 2005-08-03  Havoc Pennington  <hp@redhat.com>
2729
2730         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2731         typo, from Julien Puydt
2732
2733         * bus/connection.c (bus_connection_disconnected): we were always
2734         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2735
2736 2005-08-01  Colin Walters  <walters@verbum.org>
2737
2738         Patch from Joe Markus Clarke:   
2739         
2740         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2741         use-after-free.
2742
2743 2005-08-01  Colin Walters  <walters@verbum.org>
2744         
2745         Patch from Joe Markus Clarke:   
2746         
2747         * tools/dbus-send.c (main): 
2748         
2749         Don't use C99 style initializers (bug #3933).
2750         
2751 2005-08-01  Colin Walters  <walters@verbum.org>
2752
2753         Patch from Joe Markus Clarke:   
2754
2755         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2756         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2757         * glib/dbus-gobject.c (write_interface):
2758
2759         Don't use C99 style initializers (bug #3933).
2760
2761 2005-07-31  Havoc Pennington  <hp@redhat.com>
2762
2763         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2764         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2765
2766 2005-07-30  Havoc Pennington  <hp@redhat.com>
2767
2768         * fix a bunch of Doxygen warnings and mistakes
2769
2770 2005-07-30  Havoc Pennington  <hp@redhat.com>
2771
2772         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2773         DBUS_BUILD_TESTS since it's now used in production code
2774
2775 2005-07-29  Havoc Pennington  <hp@redhat.com>
2776
2777         * test/glib/test-profile.c (write_junk): initialize the junk
2778         buffer so valgrind doesn't have a breakdown
2779
2780 2005-07-29  Havoc Pennington  <hp@redhat.com>
2781
2782         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2783         (match_rule_matches): remove unused arg
2784         (test_matching): add tests for match_rule_matches()
2785
2786         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2787         do arg0='foo' arg5='bar' in the match rules
2788         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2789
2790         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2791
2792 2005-07-29  Ross Burton  <ross@openedhand.com>
2793
2794         * dbus/dbus-connection.c:
2795         Don't create a DBusCondVar which is never used.
2796
2797 2005-07-27  Ross Burton  <ross@openedhand.com>
2798
2799         * dbus/dbus-message.c:
2800         Reduce the size of the maximum cached message to 10K.
2801
2802 2005-07-25  Ross Burton  <ross@openedhand.com>
2803
2804         * glib/dbus-gproxy.c:
2805         Remove matches when all proxies are unregistered.
2806
2807 2005-07-24  Colin Walters  <walters@verbum.org>
2808
2809         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2810         typedata; recursive arrays won't have it.
2811
2812         * test/glib/test-dbus-glib.c:
2813         * test/glib/test-service-glib.c:
2814         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2815         
2816 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2817
2818         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2819         proxies.py, service.py: Cleanup of code after running it through the
2820         pyflakes code checker mostly dealing with undefined names.  
2821         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2822
2823 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2824
2825         * NEWS: Update to 0.35.2
2826
2827 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2828
2829         * python/_dbus.py: Remove import of the dbus.services
2830         module as it no longer exists (patch from Dimitur Kirov)
2831
2832         * python/service.py (Object::__init__): Fixed typo
2833         s/name/bus_name (patch from Dimitur Kirov)
2834
2835         * python/examples/example-signal-emitter.py: import dbus.glib
2836         to get the main loop and use glib mainloop instead of gtk so
2837         X doesn't have to be running.
2838
2839         * python/examples/example-signal-recipient.py: import dbus.glib
2840         to get the main loop and use glib mainloop instead of gtk so
2841         X doesn't have to be running. Import the decorators module
2842         directly.
2843
2844         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2845         didn't pick up on but are needed to build
2846
2847         * configure.in: upped version to 0.35.2
2848
2849         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2850         added Colin Walters' SELinux API rename patch from head 
2851         s/unix sercurity context/selinux security context/
2852
2853 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2854
2855         * python/Makefile.am: dbus_binding.pxd.in should be included 
2856         in EXTRA_DIST not dbus_binding.pxd
2857         fix up $(srcdir) hopefully for the last time
2858
2859         * NEWS: Update to 0.35.1
2860
2861 2005-07-16  Colin Walters  <walters@verbum.org>
2862
2863         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2864         from bus_driver_handle_get_connection_unix_security_context.  Update for
2865         error usage.
2866         (message_handlers): Update for renames.
2867
2868         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2869         _dbus_string_init failure correctly.
2870         (bus_selinux_append_context): Convert SID to context.  Append it
2871         as a byte array.
2872         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2873         hasn't been called.
2874
2875         * bus/selinux.h: Update prototype.
2876
2877         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2878         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2879
2880 2005-07-15  Colin Walters  <walters@verbum.org>
2881
2882         * doc/TODO: Add note about convenience wrappers.
2883
2884 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2885
2886         * NEWS: Update to 0.35
2887
2888 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2889
2890         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2891         so distcheck doesn't fail
2892
2893         * glib/examples/Makefile.am: Add example-service.xml and 
2894         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2895
2896         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2897         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2898
2899         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2900         compiler looks in the right places during distcheck
2901
2902 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2903
2904         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2905         to fail
2906
2907 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2908
2909         * python/examples/example-service.py,
2910         python/examples/example-signal-emitter.py: Fixed up examples
2911         for API changes
2912
2913 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2914
2915         * python/__init__.py: Upped to version (0,42,0) because of
2916         the API change
2917
2918 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2919
2920         * ChangeLog: fix date in last entry
2921
2922         * configure.in, bus/system.conf.in: add the ability to configure 
2923         the system bus user at compiletime with the --with-dbus-user flag
2924         (patch from Kristof Vansant)
2925
2926 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2927
2928         * bus/dispatch.c, test/test-service.c: Add testcase
2929         for sending messages to oneself (TODO item).
2930
2931         * python/service.py (class Object): Swap ordering of bus_name 
2932         and object_path parameters to better support inheritance.
2933
2934         * doc/dbus-tutorial.xml: change Python docs to reflect change
2935         in parameter ordering and fix the inheritance section.
2936
2937         * doc/TODO: remove sending message to oneself TODO item
2938
2939 2005-07-15  Ross Burton  <ross@openedhand.com>
2940
2941         * glib/dbus-gproxy.c:
2942         Fix a leak when calling methods via the proxy.
2943
2944 2005-07-15  Colin Walters  <walters@verbum.org>
2945
2946         * bus/selinux.c (bus_selinux_append_context): Wrap in
2947         HAVE_SELINUX.
2948
2949 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2950
2951         * python/_dbus.py (Bus::remove_signal_receiver):
2952         don't add a callback to the match if none has been passed in
2953         
2954         * python/matchrules.py (SignalMatchTree::remove): if the rule
2955         being matched does not have a callback treat it as a wildcard
2956         fix matching logic
2957
2958         * doc/dbus-tutorial.xml: Add Python tutorial
2959
2960 2005-07-14  Colin Walters  <walters@verbum.org>
2961
2962         * bus/driver.c
2963         (bus_driver_handle_get_connection_unix_security_context): New function.
2964         (message_handlers): Add.
2965
2966         * bus/selinux.c (bus_selinux_append_context): New function; appends
2967         security context to message.
2968
2969         * bus/selinux.h: Prototype.
2970
2971         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2972
2973 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2974
2975         * bus/activation.c: clean up all tabs to be 8 spaces 
2976         (bus_activation_activate_service): make sure we clean up
2977         if activation fails
2978
2979         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2980         (check_shell_fail_service_auto_start): New function
2981         tests to make sure we get fail properly when trying to auto start a service
2982         with a faulty command line
2983         (check_shell_service_success_auto_start): New function tests to make sure
2984         auto started services get the arguments on the command line
2985
2986         * test/test-shell-service.c: Added service for testing auto-starting with 
2987         command line arguments
2988
2989         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2990         test/data/valid-service-files/debug-shell-echo-success.service.in:
2991         Added service files for testing auto-starting with command line arguments
2992
2993         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2994
2995 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2996
2997         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2998         
2999         * dbus/Makefile.am: added new files to build.
3000
3001         * bus/activation.c (bus_activation_activate_service): support
3002         activation commands with parameters.
3003
3004         * test/shell-test.c: added test program for the shell parsing
3005         code.
3006
3007 2005-07-13  David Zeuthen  <davidz@redhat.com>
3008
3009         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3010         64 bit signed and unsigned parameters
3011
3012 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3013
3014         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3015
3016         * python/service.py (class Name): renamed BusName to make it clearer
3017         what the object is for (a name on the bus)
3018
3019         * python/examples/example-service.py,
3020         python/examples/example-signal-emitter.py: change the Name object to
3021         BusName
3022
3023 2005-07-12  Colin Walters  <walters@verbum.org>
3024
3025         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3026
3027         * tools/dbus-launch.c: Include sys/select.h.
3028
3029 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3030         * python/dbus_bindings.pyx.in: removed
3031
3032         * python/dbus_bindings.pyx: Added.
3033         - Fixed some memleaks (patch from 
3034         Sean Meiners <sean.meiners@linspireinc.com>)
3035         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3036         own pxd file (Pyrex definition)
3037         - Broke out glib dependancies into its own pyx module
3038         
3039         * python/dbus_bindings.pdx: Added.
3040         - Defines C class Connection for exporting to other modules
3041
3042         * python/dbus_glib_bindings.pyx: Added.
3043         - New module to handle lowlevel dbus-glib mainloop integration
3044
3045         * python/glib.py: Added.
3046         - Registers the glib mainloop when you import this module
3047
3048         * python/services.py: Removed (renamed to service.py)
3049         
3050         * python/service.py: Added.
3051         - (class Server): renamed Name
3052
3053         * python/__init__.py: Bump ro version (0,41,0)
3054         -don't import the decorators or service module
3055         by default.  These now reside in the dbus.service namespace
3056
3057         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3058         setup function on creation 
3059
3060         * python/examples/example-service.py,
3061         python/examples/example-signal-emitter.py: update examples
3062
3063         * python/examples/gconf-proxy-service.py,
3064         python/examples/gconf-proxy-service2.py: TODO fix these up
3065
3066         * doc/TODO: Addition
3067         - Added a Python Bindings 1.0 section
3068         - added "Add match on args or match on details to match rules"
3069
3070
3071 2005-07-12  Colin Walters  <walters@verbum.org>
3072
3073         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3074         (statemachine-glue.h): 
3075         * glib/examples/Makefile.am (example-service-glue.h) 
3076         (example-signal-emitter-glue.h): 
3077         * glib/Makefile.am (dbus-glib-error-switch.h): 
3078         Add libtool --mode=execute so we use the built library instead
3079         of any installed one.
3080
3081 2005-07-11  Colin Walters  <walters@verbum.org>
3082
3083         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3084         (dbus_g_value_types_init): Remove assertion.
3085         (dbus_g_value_get_g_type, dbus_g_value_open)
3086         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3087         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3088         functions related to DBusGValue.  Now we marshal/demarshal
3089         structures as GValueArray.
3090         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3091         structures.
3092         (signature_iter_to_g_type_array): Don't call
3093         signature_iter_to_g_type_struct.
3094         (signature_iter_to_g_type_struct): Delete.
3095         (dbus_gvalue_to_signature): Delete.
3096         (dbus_gvalue_to_signature): New function with same name as other
3097         one; we can convert structures to signatures.
3098         (demarshal_valuearray): New function.
3099         (get_type_demarshaller): Use it.
3100         (demarshal_recurse): Delete.
3101         (marshal_proxy): New function.
3102         (marshal_map): Warn if we can't determine signature from type.
3103         (marshal_collection_ptrarray): Ditto.
3104         (marshal_collection_array): Ditto.
3105         (get_type_marshaller): Use marshal_valuearray.
3106         (marshal_recurse): Delete.
3107         (_dbus_gvalue_test): Add some tests.
3108
3109         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3110         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3111         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3112         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3113         (dbus_g_value_free): Remove prototypes.
3114
3115         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3116         G_TYPE_VALUE_ARRAY.
3117
3118         * glib/examples/example-service.c:
3119         * glib/examples/example-client.c: Implement GetTuple.
3120
3121         * test/glib/test-dbus-glib.c:
3122         * test/glib/test-service-glib.c:
3123         * test/glib/test-service-glib.xml: Add structure tests.
3124
3125 2005-07-10  Colin Walters  <walters@verbum.org>
3126
3127         * doc/TODO: Knock off some GLib items with this patch.
3128
3129         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3130         (_dbus_gvalue_signals_error): New functions.
3131
3132         * glib/dbus-gvalue-utils.h: Prototype them.
3133
3134         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3135         and change to not output const/retval flags for input args.  All
3136         callers updated.
3137         (invoke_object_method): Refactor to handle return values.  Add
3138         some more comments in various places.  Remove debug g_print.
3139
3140         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3141
3142         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3143         Handle G_TYPE_NONE.
3144         (compute_gsignature): New function; refactored from code from
3145         compute_marshaller and compute_marshaller_name.  Enhance to
3146         handle return values and async ops more cleanly.  Update for
3147         async ops returning NONE instead of BOOLEAN.
3148         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3149         and output appropriate string.
3150         (generate_glue): Handle return value annotation.  Also don't dump
3151         constness flag for input arguments.
3152
3153         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3154         files shared between installed library and utilities.
3155         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3156         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3157         binding tool can access gtype utility functions.
3158
3159         * test/glib/test-service-glib.c: 
3160         * test/glib/test-service-glib.xml: 
3161         * test/glib/test-dbus-glib.c: Add some tests for return values.
3162
3163 2005-07-09  Colin Walters  <walters@verbum.org>
3164
3165         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3166         argument if available, not method.
3167
3168         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3169         (invoke_object_method): First, remove some redundant
3170         GValues (object_value, error_value) in favor of working on
3171         array directly.  Second, rework constness to be less buggy.
3172         Now we iterate directly over the argument metadata instead
3173         of parallel iterating over output signature and metadata.
3174
3175         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3176
3177         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3178         annotation on input args.
3179         
3180 2005-07-09  Colin Walters  <walters@verbum.org>
3181
3182         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3183         Define.
3184
3185         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3186         annotation.
3187
3188         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3189         (method_dir_signature_from_object_info): Handle arg_iterate change.
3190         (write_interface): Ditto.
3191         (lookup_object_info): Don't barf if format_version is > 0.
3192         (invoke_object_method): Handle arg constness.
3193
3194         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3195         (arg_info_new): Create.
3196         (arg_info_unref): Destroy.
3197         (arg_info_get_annotations, arg_info_get_annotation) 
3198         (arg_info_add_annotation): New functions.
3199
3200         * glib/dbus-gidl.h: Prototype them.
3201
3202         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3203         args, disallow them in properties.
3204         (parse_annotation): Handle arg annotations.
3205
3206         * test/glib/test-service-glib.xml: 
3207         * test/glib/test-service-glib.c: Update to make some methods
3208         const.
3209
3210 2005-07-08  Colin Walters  <walters@verbum.org>
3211
3212         * test/glib/test-service-glib.xml: 
3213         * test/glib/test-service-glib.c:
3214         * test/glib/test-dbus-glib.c: Test a{sv}.
3215
3216         * glib/examples/statemachine/statemachine.c:
3217         * glib/examples/statemachine/statemachine-server.c:
3218         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3219         add progress bar, etc.
3220
3221         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3222         needed anymore due to generic array/map marshalling.
3223         (dbus_g_value_types_init): Don't register basic arrays or the
3224         string/string hash.
3225         (dbus_gtype_from_signature_iter): Don't try to recurse into
3226         variants.
3227         (dbus_gtype_to_signature): Check collection/map before type
3228         metadata.
3229         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3230         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3231         generic map creation/append functions instead of hash table
3232         specifically.
3233         (get_type_demarshaller): Handle maps.
3234         (demarshal_collection): Dispatch on collection type to either
3235         demarshal_collection_ptrarray or demarshal_collection_array.
3236         (get_type_marshaller): Handle maps.
3237         (marshal_collection): Dispatch collection type to either
3238         marshal_collection_ptrarray or marshal_collection_array.
3239         (_dbus_gvalue_test): New test.
3240
3241         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3242         (hash_free_from_gtype): Use it to free GValues.
3243         (hashtable_append): New function.
3244         (ptrarray_append): Fix prototype.
3245         (slist_append): Ditto.
3246         (_dbus_gvalue_utils_test): Extend tests.
3247
3248         * glib/dbus-gtype-specialized.c
3249         (dbus_g_type_specialized_init_append): Renamed from
3250         dbus_g_type_specialized_collection_init_append.  Remove const from
3251         value, since we steal it.
3252         (dbus_g_type_specialized_map_append): New function.
3253
3254         * glib/dbus-gtype-specialized.h: Update prototypes.
3255         Add DBusGTypeSpecializedMapAppendFunc.
3256
3257         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3258         _dbus_gvalue_test.
3259         
3260         * glib/dbus-gtest.h: Prototype it.
3261
3262 2005-07-08  Ross Burton  <ross@openedhand.com>
3263
3264         * dbus/dbus-glib.h:
3265         Add DBysGAsyncData for the async bindings.
3266
3267         * glib/dbus-binding-tool-glib.c:
3268         Re-enable the async bindings.
3269
3270         * test/glib/test-dbus-glib.c:
3271         Add a test for the generated async bindings.
3272
3273 2005-07-08  Colin Walters  <walters@verbum.org>
3274
3275         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3276         connection concept.
3277         
3278 2005-07-08  Colin Walters  <walters@verbum.org>
3279         
3280         * tools/Makefile.am: Kill of print-introspect in favor of using
3281         dbus-send --print-reply=literal.
3282
3283         * test/glib/test-service-glib.xml: 
3284         * test/glib/test-service-glib.c (my_object_get_objs): New test
3285         for "ao".
3286
3287         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3288         (main): Test GetObjs.
3289
3290         * glib/examples/statemachine/Makefile.am:
3291         * glib/examples/statemachine/sm-marshal.list:
3292         * glib/examples/statemachine/statemachine-client.c:
3293         * glib/examples/statemachine/statemachine-server.c:
3294         * glib/examples/statemachine/statemachine-server.xml:
3295         * glib/examples/statemachine/statemachine.c:
3296         * glib/examples/statemachine/statemachine.h:
3297         * glib/examples/statemachine/statemachine.xml:
3298
3299         New example.
3300
3301         * glib/examples/example-service.c (main): Move invocation
3302         of dbus_g_object_type_install_info earlier, to emphasize it
3303         should only be done once.
3304
3305         * glib/examples/example-signal-emitter.c (main): Ditto.
3306
3307         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3308
3309         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3310         (dbus_gvalue_marshal): Update prototypes.
3311
3312         * glib/dbus-gvalue.c: Update all marshalling functions to take
3313         const GValue instead of GValue.
3314         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3315         types.
3316         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3317         change.
3318         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3319         Return a newly-allocated string.
3320         (demarshal_proxy, demarshal_object_path, demarshal_object)
3321         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3322         we get the wrong types from message.
3323         (get_type_demarshaller): New function, extracted from
3324         dbus_gvalue_demarshal.
3325         (demarshal_collection): New function, demarshals generic
3326         collection.
3327         (dbus_gvalue_demarshal): Just invoke result of
3328         get_type_demarshaller.  Throw error if we don't have one.
3329         (marshal_garray_basic): Abort on OOM.
3330         (get_type_marshaller): New function, extracted from
3331         dbus_gvalue_marshal.
3332         (collection_marshal_iterator, marshal_collection): New functions;
3333         implements generic marshalling for an iteratable specialized
3334         collection.
3335         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3336
3337         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3338         G_TYPE_STRING.
3339         (ptrarray_value_from_gvalue): Ditto.
3340         (ptrarray_append, ptrarray_free): New functions.
3341         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3342         (slist_append, slist_end_append, slist_free): New functions.
3343         (dbus_g_type_specialized_builtins_init): Add append fuctions
3344         for GPtrArray and GSList.  Register GSList.
3345         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3346
3347         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3348         New.
3349         (dbus_g_type_specialized_collection_init_append)
3350         (dbus_g_type_specialized_collection_append)
3351         (dbus_g_type_specialized_collection_end_append): Prototype.
3352         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3353         end_append_func.
3354
3355         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3356         (dbus_g_type_specialized_collection_append) 
3357         (dbus_g_type_specialized_collection_end_append): New functions.
3358         (dbus_g_type_map_value_iterate): Take const GValue.
3359         (dbus_g_type_collection_value_iterate): Ditto.
3360
3361         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3362         _dbus_gvalue_utils_test.
3363         
3364         * glib/dbus-gtest.h: Prototype it.
3365
3366         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3367         using uninitialized owner_list.
3368         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3369         public API.
3370         (dbus_g_proxy_end_call_internal): Update to use error set
3371         from dbus_gvalue_demarshal instead of setting it here.
3372         (dbus_g_proxy_begin_call): Move return_if_fail here.
3373
3374         * glib/dbus-gobject.c (write_interface): Update for
3375         dbus_gtype_to_signature returning new string.
3376
3377         * configure.in: Add glib/examples/statemachine.
3378
3379 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3380
3381         * configure.in: Add a configure option, --with-console-auth-dir
3382         
3383         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3384         new setting.  Patch from Kay Sievers.
3385
3386 2005-07-06  Colin Walters  <walters@verbum.org>
3387
3388         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3389         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3390         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3391         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3392         Delete in favor of dbus_g_proxy_begin_call and
3393         dbus_g_proxy_cancel_call.
3394         (DBusGProxyCall, DBusGProxyCallNotify): New.
3395         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3396         data, and destroy function.  This replaces
3397         dbus_g_pending_call_set_notify.
3398         (dbus_g_proxy_cancel_call): Prototype.
3399         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3400
3401         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3402         pending_calls map.
3403         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3404         internal proxy for calls to the bus. Remove
3405         pending_nameowner_calls, now the internal proxy keeps track.
3406         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3407         pending_nameowner_calls.
3408         (got_name_owner_cb): Update prototype, and use
3409         dbus_g_proxy_end_call.
3410         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3411         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3412         favor of using internal proxy.
3413         (dbus_g_proxy_manager_unregister): Update to use
3414         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3415         (dbus_g_proxy_init): Initialize pending calls map.
3416         (dbus_g_proxy_constructor): New.
3417         (dbus_g_proxy_class_init): Add get/set property functions,
3418         constructor, and add NAME, PATH, and INTERFACE properties.
3419         (cancel_pending_call): New function.
3420         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3421         cancel them.
3422         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3423         (GPendingNotifyClosure): New structure.
3424         (d_pending_call_notify, d_pending_call_free): Moved here from
3425         dbus-glib.c.
3426         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3427         ordering.
3428         (manager_begin_bus_call): New internal function for talking to
3429         internal bus proxy.
3430         (dbus_g_proxy_new): Construct object using GObjet properties.
3431         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3432         Create closure of same, and insert call into map of pending calls.
3433         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3434         call.  Look up pending call in current set.  Remove it when we've
3435         completed.
3436         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3437         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3438         and destroy function directly.
3439         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3440         (dbus_g_proxy_call): Invoke with NULL callback.
3441         (dbus_g_proxy_cancel_call): New function, replaces
3442         dbus_g_pending_call_cancel.
3443
3444         * glib/dbus-gparser.c (validate_signature): Fix call to
3445         dbus_set_g_error.
3446
3447         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3448         New quark for attaching metadata to GType.
3449         (info_hash): Delete.
3450         (lookup_object_info): Look up using quark.
3451         (dbus_g_object_type_install_info): Check that a type is classed,
3452         not that it's an object.  Also just install type data using quark
3453         instead of using global hash.
3454
3455         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3456         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3457         (GPendingNotifyClosure): Delete.
3458         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3459         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3460
3461         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3462         client method generation until we can fix it...
3463         
3464         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3465         (load_from_service_thread_func): Ditto.
3466
3467         * tools/dbus-names-model.c (struct NamesModel): Hold
3468         DBusGProxyCall.
3469         (have_names_notify): Update prototype, use
3470         dbus_g_proxy_cancel_call.
3471         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3472
3473         * tools/dbus-monitor.c (filter_func): Update for print_message
3474         API change.
3475
3476         * test/glib/test-dbus-glib.c: Add more tests for async
3477         invocations.  Update many begin_call/end_call pairs to just use
3478         dbus_g_proxy_call.
3479
3480         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3481         allows us to dump print-introspect.c.
3482
3483         * tools/dbus-print-message.h (print_message): Add literal argument
3484         to print_message which is intended to allow printing arguments without
3485         metadata like "string=".
3486
3487         * tools/dbus-print-message.c (print_iter): Add literal argument.
3488         (print_message): Allow printing string messages literally.
3489
3490 2005-07-05  Colin Walters  <walters@verbum.org>
3491
3492         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3493         Remove value refcount leak, original patch from Jorn Baayen
3494         <jorn@openedhand.com>.  Also remove useless extra value in favor
3495         of prepending to value array directly.
3496
3497 2005-07-02  Colin Walters  <walters@verbum.org>
3498
3499         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3500
3501 2005-07-01  Colin Walters  <walters@verbum.org>
3502
3503         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3504         
3505         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3506         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3507         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3508         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3509
3510 2005-06-30  Colin Walters  <walters@verbum.org>
3511
3512         * test/glib/test-dbus-glib.c:
3513         * test/glib/test-service-glib.c:
3514         * test/glib/test-service-glib.xml: Update tests for new error
3515         setting bits, also add async tests (patch from Ross Burton).
3516
3517         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3518         DBUS_GLIB_THREADS_LIBS.
3519
3520         * glib/dbus-gproxy.c (get_name_owner)
3521         (dbus_g_pending_call_end_valist): Ditto.
3522
3523         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3524         domain (GQuark) to DBusGErrorInfo.  
3525         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3526         quark in error_metadata.  Take message interface as default
3527         error message interface.
3528         (gerror_to_dbus_error_message): Pass message interface.
3529         (dbus_set_g_error): Resurrected.
3530         (dbus_g_error_info_free): New function.
3531         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3532         of _peek to actually create the object class if it hasn't been
3533         created yet.
3534         (dbus_g_error_domain_register): New function.
3535
3536         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3537
3538         * glib/dbus-gparser.c (validate_signature): Ditto.
3539
3540         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3541         (dbus_g_error_domain_register): Prototype.
3542
3543         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3544         Update tests.
3545
3546 2005-06-29  Colin Walters  <walters@verbum.org>
3547
3548         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3549         DBUS_TYPE_G_OBJECT_PATH.
3550
3551         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3552         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3553         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3554         (dbus_g_object_path_get_g_type): New function.
3555         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3556         to DBUS_TYPE_G_OBJECT_PATH by default.
3557         (demarshal_proxy): Remove unused name variable.
3558         (demarshal_object_path, marshal_object_path): New functions.
3559         (demarshal_proxy_array, marshal_proxy_array): Delete.
3560         
3561         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3562         DBUS_TYPE_G_OBJECT_PATH to char *.
3563         (dbus_g_type_get_lookup_function): Map builtin
3564         DBUS_TYPE_G_OBJECT_PATH.
3565
3566         * test/glib/test-dbus-glib.c
3567         * test/glib/test-service-glib.c (my_object_objpath): 
3568         Adapt tests to new object path marshalling.
3569
3570 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3571
3572         * configure.in: force check for Python >= 2.4
3573
3574 2005-06-29  Colin Walters  <walters@verbum.org>
3575         
3576         Patch from Ross Burton <ross@openedhand.com>
3577         
3578         * glib/dbus-gobject.c (invoke_object_method): Unset object
3579         value in all cases, not only in async case.
3580
3581 2005-06-29  Colin Walters  <walters@verbum.org>
3582
3583         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3584         name_call for keeping track of any outgoing GetNameOwner call.
3585         Also add for_owner and associated.
3586         (struct _DBusGProxyManager): Add owner_names, which is hash table
3587         that maps a base name to a list of names it owns (that we're
3588         interested in).  Add pending_nameowner_calls which is a list of
3589         all outstanding GetNameOwner; avoids us having to iterate over
3590         every proxy.  Add unassociated_proxies which keeps track of name
3591         proxies with no associated name owner.
3592         (dbus_g_proxy_manager_unref): Destroy owner_names.
3593         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3594         name refcounts.
3595         (find_name_in_info, name_owner_foreach)
3596         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3597         (dbus_g_proxy_manager_monitor_name_owner)
3598         (dbus_g_proxy_manager_unmonitor_name_owner)
3599         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3600         New functions; they manipulate the owner_names mapping.
3601         (got_name_owner_cb): New function.
3602         (get_name_owner): New function, extracted from
3603         dbus_g_proxy_new_for_name_owner.
3604         (dbus_g_proxy_manager_register): For now we need to keep track of
3605         all NameOwnerChanged.  Also if the proxy is for a name, if we
3606         don't already know the name owner, queue a new GetNameOwner
3607         request and add it to our list of unassociated proxies.  Otherwise
3608         inc the refcount.
3609         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3610         cancel any pending GetNameOwner call, etc.
3611         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3612         the owner_names mapping to look up the current names for the
3613         signal source, and dispatch to any proxies for that name.
3614         (dbus_g_proxy_new): Initialize new members.
3615         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3616         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3617         (dbus_g_pending_call_end_valist): New function, extracted from
3618         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3619         but want to use the GLib infrastructure.  Also note how many
3620         arguments in reply were over.
3621         (dbus_g_pending_call_end): New function, just call
3622         dbus_g_pending_call_end_valist.
3623         (dbus_g_proxy_end_call_internal): Just call
3624         dbus_g_pending_call_end_valist.
3625
3626         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3627         of builtin marshaller for STRING_STRING_STRING.
3628
3629         * test/glib/test-dbus-glib.c: 
3630         * test/glib/test-service-glib.c:
3631         * test/glib/test-service-glib.xml:
3632         Extend tests to cover name proxies, destruction of owner proxies,
3633         etc.
3634         
3635         * glib/examples/example-signal-recipient.c
3636         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3637         
3638         * tools/dbus-send.c (main): Print D-BUS error name in addition
3639         to message.
3640
3641 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3642
3643         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3644         cmessage_function_handler): Patch from 
3645         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3646         by using the Py_GILState_Ensure/Release to synchronize with the
3647         python runtime.
3648         
3649 2005-06-28  Ray Strode  <rstrode@redhat.com>
3650
3651         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3652         babysitter helper process on last unref, bug #2813.
3653
3654 2005-06-27  Colin Walters  <walters@verbum.org>
3655
3656         * test/glib/test-dbus-glib.c: 
3657         * test/glib/test-service-glib.c:
3658         * test/glib/test-service-glib.xml:
3659         Test hash table signal emitting.
3660
3661         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3662         types to their fundamental basis types, since this is what
3663         marshallers operate on.  Also add an entry for VOID__BOXED.
3664         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3665
3666 2005-06-26  Havoc Pennington  <hp@redhat.com>
3667
3668         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3669         from Don Park
3670
3671 2005-06-26  Colin Walters  <walters@verbum.org>
3672
3673         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3674         (dbus_g_error_set): New public function from its ashes; used by
3675         both service-side method implementation and GLib bindings
3676         internals.
3677         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3678         (_dbus_glib_test): Add some tests.
3679
3680         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3681
3682         * test/glib/test-service-glib.c (my_object_throw_error): Use
3683         dbus_g_error_set.
3684
3685         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3686         errors thrown by dbus_g_error_set.
3687
3688         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3689
3690         * glib/dbus-gparser.c (validate_signature): Ditto.
3691
3692         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3693         (dbus_g_proxy_end_call_internal): Ditto.
3694
3695         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3696         converts DBUS_ERROR_x to DBUS_GERROR_x.
3697         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3698
3699         * doc/TODO: Remove error TODO.
3700
3701         * doc/dbus-tutorial.xml: Update with documentation about error
3702         handling.
3703
3704         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3705         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3706         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3707
3708 2005-06-22  Colin Walters  <walters@verbum.org>
3709         
3710         Patch from Ross Burton <ross@openedhand.com>
3711
3712         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3713
3714 2005-06-20  Colin Walters  <walters@verbum.org>
3715
3716         * configure.in: Add glib/examples.
3717
3718         * glib/Makefile.am: Add examples/
3719
3720         * glib/examples/.cvsignore
3721         * glib/examples/Makefile.am
3722         * glib/examples/example-client.c
3723         * glib/examples/example-service.c
3724         * glib/examples/example-service.xml
3725         * glib/examples/example-signal-emitter.c
3726         * glib/examples/example-signal-emitter.xml
3727         * glib/examples/example-signal-recipient.c:
3728         New files; GLib binding examples, ported from
3729         python/examples.
3730
3731 2005-06-20  Colin Walters  <walters@verbum.org>
3732
3733         * dbus/dbus-glib.h: 
3734         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3735         dbus_g_proxy_call.
3736
3737         * glib/dbus-binding-tool-glib.c: 
3738         * doc/dbus-tutorial.xml: 
3739         * test/glib/test-dbus-glib.c: Update for rename.
3740         
3741 2005-06-20  Colin Walters  <walters@verbum.org>
3742
3743         Patch suggested by Ross Burton <ross@openedhand.com>
3744
3745         * glib/dbus-gobject.c (export_signals): Free signal name.
3746         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3747         memory leak.  Add a bit of documentation.
3748         (dbus_g_method_return_error): Free context, and note we do
3749         so.
3750
3751 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3752
3753         * dbus/dbus-glib.h:
3754         * glib/dbus-gobject.c:
3755         * glib/dbus-gproxy.c:
3756         * glib/dbus-gvalue.c: Predeclare structs as 
3757         typedef struct _Something Something instead of 
3758         typedef struct Something Something, so we can 
3759         redeclare the prototypes. Other GNOME libraries 
3760         do this already.
3761
3762 2005-06-17  Colin Walters  <walters@verbum.org>
3763
3764         * tools/dbus-names-model.c (have_names_notify): Fix call
3765         to dbus_g_proxy_end_call.
3766         
3767 2005-06-17  Colin Walters  <walters@verbum.org>
3768
3769         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3770         spew warnings if we get malformed remote signals.
3771
3772         * glib/dbus-gobject.c (propsig_iterate): New function.
3773         (lookup_object_info): New function, extracted from
3774         lookup_object_and_method.
3775         (introspect_properties, introspect_signals): Delete; these
3776         are merged into write_interface.
3777         (write_interface): Write out signals and properties here;
3778         dump the org.gtk.object stuff and use the interface given
3779         in the introspection data blob.  Also fix up property XML.
3780         (lookup_values): New function.
3781         (introspect_interfaces): Gather a mapping from interface to a
3782         list of its methods, signals, and properties, then write out
3783         each interface.
3784         (lookup_object_and_method): Use lookup_object_info.
3785         (struct DBusGSignalClosure): Add interface.
3786         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3787         we can just use the constant data.
3788         (dbus_g_signal_closure_finalize): Don't free signal name.
3789         (signal_emitter_marshaller): Use interface from signal closure.
3790         (export_signals): Only export signals mentioned in introspection
3791         blob.
3792         (dbus_g_connection_register_g_object): Warn if we have no
3793         introspection data for an object.
3794         (funcsig_equal): Remove unused variable.
3795         (dbus_g_object_register_marshaller): Take varargs instead of
3796         list.
3797         (dbus_g_object_register_marshaller_array): New function,
3798         extracted from old dbus_g_object_register_marshaller.
3799
3800         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3801         signals and property data.
3802         (write_quoted_string): New function, extracted from generate_glue.
3803         (generate_glue): Write signals and properties to introspection
3804         blob.
3805
3806         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3807         exported_signals and exported_properties.
3808         (dbus_g_object_register_marshaller): Update prototype.
3809         (dbus_g_object_register_marshaller_array): Prototype.
3810         
3811         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3812
3813         * test/glib/test-service-glib.c: Add new test signals and method
3814         to emit them.
3815
3816         * test/glib/test-service-glib.xml: Add some test signals.
3817
3818         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3819         and my-object-marshal.h
3820         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3821         my-object-marshal.c.
3822         (my-object-marshal.c, my-object-marshal.h): Implement.
3823
3824         * test/glib/.cvsignore: Update.
3825
3826         * doc/TODO: Remove two GLib TODO items fixed by this
3827         patch.
3828
3829 2005-06-16  Colin Walters  <walters@verbum.org>
3830
3831         * doc/TODO: Update for GLib bindings.
3832         
3833 2005-06-16  Colin Walters  <walters@verbum.org>
3834
3835         * glib/dbus-binding-tool-glib.c:
3836         * glib/dbus-gobject.c:
3837         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3838         from Ross Burton, for his GLib bindings work.
3839
3840 2005-06-16  Colin Walters  <walters@verbum.org>
3841
3842         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3843         to iterate instead of walking to G_TYPE_INVALID.
3844
3845         Patch based on a patch from Ryan Gammon.
3846
3847 2005-06-16  Colin Walters  <walters@verbum.org>
3848
3849         * bus/bus.c (bus_context_new): Set parser to NULL
3850         after we unref it (Patch from Chris Boscolo, #2174).
3851         
3852 2005-06-16  Colin Walters  <walters@verbum.org>
3853
3854         * python/dbus_bindings.pyx.in: Import size_t,
3855         __int64_t, __uint64_t, and __signed.
3856
3857         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3858         Define cmsg struct, output it.
3859         (_dbus_read_credentials_unix_socket):
3860         Use cmsg struct.
3861         
3862         Patch from Joe Markus Clarke for FreeBSD support.
3863         
3864 2005-06-16  Colin Walters  <walters@verbum.org>
3865
3866         * tools/dbus-send.c (append_array): Use strtok.
3867         (append_dict): New function.
3868         (type_from_name): New function, extracted from main.
3869         (main): Handle sending dicts.
3870
3871         * tools/dbus-print-message.c (print_iter): Print dict
3872         entries.
3873         
3874 2005-06-16  Colin Walters  <walters@verbum.org>
3875
3876         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3877         values as the empty string (#2948).
3878         
3879 2005-06-16  Colin Walters  <walters@verbum.org>
3880
3881         * dbus/Makefile.am:
3882         * mono/doc/Makefile.am:
3883         * test/glib/Makefile.am:
3884
3885         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3886
3887 2005-06-16  Colin Walters  <walters@verbum.org>
3888
3889         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3890         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3891
3892         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3893         Increment pointer after swapping fixed array.  Add assertion
3894         for array length.
3895                 
3896 2005-06-15  Colin Walters  <walters@verbum.org>
3897
3898         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3899         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3900         
3901 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3902
3903         * NEWS: Update to 0.34
3904
3905 2005-06-15  David Zeuthen  <davidz@redhat.com>
3906
3907         * configure.in (LT_CURRENT): Revert back to 1 as the library
3908         hasn't changed and we've certainly not committed to protocol
3909         stability yet.  All this does is to break ABI. See commit note
3910         from hp@redhat.com 2005-05-05 for details.
3911         
3912 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3913
3914         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3915         (_dbus_connection_run_builtin_filters): New method
3916         (dbus_connection_dispatch): Run the builtin filters which in turn
3917         runs the peer filter which handles Ping messages.
3918
3919         * doc/TODO: 
3920          - Ping isn't handled: This patch fixes it
3921          
3922          - Add a test case for the Ping message: added TODO item
3923
3924 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3925
3926         * dbus/dbus-message.c:
3927         (dbus_message_has_path): New method
3928         (dbus_message_has_interface): New method
3929         (dbus_message_has_member): New method
3930
3931         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3932         New method
3933
3934         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3935         the keyring directory is private to the user
3936
3937         * doc/TODO:
3938          - The convenience functions in dbus-bus.h should perhaps have
3939          the signatures that they would have if they were autogenerated
3940          stubs. e.g. the acquire service function. We should also evaluate
3941          which of these functions to include, in light of the fact that
3942          GLib/Qt native stubs will probably also exist.: Punted
3943
3944          - add dbus_message_has_path(), maybe has_member/interface:
3945          fixed in this patch
3946
3947          - in dbus-keyring.c, enforce that the keyring dir is not
3948          world readable/writable: Fixed in this patch
3949
3950 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3951
3952         * dbus/dbus-marshal-validate.h: Added a new validation
3953         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3954         out of memory errors when validating signitures
3955
3956         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3957         in places where we previously used DBUS_VALID and a FALSE return 
3958         value to indicate OOM
3959         
3960         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3961         Use a stack to track the number of elements inside containers.  The 
3962         stack values are then used to validate that dict entries have only two
3963         elements within them.
3964         (validate_body_helper): check the reason for failure when validating
3965         varients
3966         
3967         * dbus/dbus-message.c (load_message): use 
3968         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3969         DBUS_VALID and a FALSE return value to indicate OOM
3970
3971         * doc/TODO: remove "- validate dict entry number of fields" as this
3972         patch fixes it
3973
3974 2005-06-14  David Zeuthen  <davidz@redhat.com>
3975
3976         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3977         watches (if applicable) and add new watches
3978
3979         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3980         (main): Setup SIGIO signal handler if using D_NOTIFY
3981
3982         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3983
3984         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3985         (merge_included): Also merge conf_dirs list
3986         (bus_config_parser_unref): Clear conf_dirs list
3987         (include_dir): Add directory to conf_dirs list
3988         (bus_config_parser_get_conf_dirs): New function
3989
3990         * bus/dir-watch.[ch]: New files
3991
3992         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3993
3994         * configure.in: Add checks for D_NOTIFY on Linux
3995
3996 2005-06-14  Colin Walters  <walters@verbum.org>
3997
3998         * glib/dbus-binding-tool-glib.c:
3999         * glib/dbus-gobject.c:
4000         * glib/dbus-gvalue.c: Fix indentation and brace style.
4001         
4002 2005-06-14  Ross Burton <ross@openedhand.com>.
4003
4004         * glib/dbus-glib.h: Make DBusGMethodInvocation
4005         a private structure.  Rearrange prototypes a bit.
4006         
4007         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4008         documentation for first_arg_type.
4009         
4010         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4011         here, add documentation.  Move dbus_g_method_return
4012         and dbus_g_method_return_error into public API
4013         section.
4014
4015 2005-06-14  Colin Walters  <walters@verbum.org>
4016
4017         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4018         Add missing return statements, noticed by Ross Burton.
4019         
4020 2005-06-13  Ross Burton <ross@openedhand.com>.
4021
4022         * glib/dbus-gobject.c: Handle errors on message
4023         demarshalling by sending error message back.
4024         * glib/dbus-gvalue.c: Initialize return variables.
4025
4026 2005-06-13  Colin Walters  <walters@verbum.org>
4027
4028         * glib/Makefile.am: Fix thinko in last patch.
4029
4030 2005-06-13  Colin Walters  <walters@verbum.org>
4031
4032         * glib/Makefile.am: Move dbus-gtype-specialized.c
4033         and dbus-gtype-specialized.h into a _HEADERS variable,
4034         install them.
4035
4036 2005-06-12  Colin Walters  <walters@verbum.org>
4037
4038         Async signals and various bugfixes and testing by
4039         Ross Burton <ross@openedhand.com>.
4040
4041         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4042         (dbus_gvalue_genmarshal_name_from_type)
4043         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4044         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4045         (dbus_g_value_types_init, dbus_gtype_from_signature)
4046         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4047         (dbus_gtypes_from_arg_signature): New function prototypes.
4048         (dbus_gvalue_demarshal): Take context and error arguments.
4049         (dbus_gvalue_demarshal_variant): New function.
4050         (dbus_gvalue_demarshal_message): New function.
4051         (dbus_gvalue_store): Delete.
4052
4053         * glib/dbus-gvalue.c:
4054
4055         File has been almost entirely rewritten; now we special-case
4056         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4057         hash tables correctly, etc.  Full support for recursive values
4058         is not yet complete.
4059
4060         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4061         argument of signal to G_TYPE_POINTER since we now pass a
4062         structure.
4063         (lookup_g_marshaller): Delete in favor of
4064         _dbus_gobject_lookup_marshaller.
4065         (marshal_dbus_message_to_g_marshaller): Use
4066         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4067         to handle remote signal callbacks.
4068         (dbus_g_proxy_new_from_proxy): New function; creates a new
4069         DBusGProxy by copying an existing one.
4070         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4071         (dbus_g_proxy_get_path): New functions.
4072         (dbus_g_proxy_marshal_args_to_message): New function;
4073         factored out of existing code.
4074         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4075         from a varargs array.
4076         (dbus_g_proxy_begin_call_internal): New function.
4077         (dbus_g_proxy_end_call_internal): New function.
4078         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4079         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4080         after collecting args into value array.
4081         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4082         invoke dbus_g_proxy_end_call_internal.
4083         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4084         end_call_internal.
4085         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4086         types.
4087         (array_free_all): New function.
4088         (dbus_g_proxy_add_signal): Take GTypes.
4089
4090         * glib/dbus-gobject.h:
4091         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4092         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4093         Prototype.
4094
4095         * glib/dbus-gobject.c: Add a global marshal_table hash which
4096         stores mappings from type signatures to marshallers.  Change lots
4097         of invocations of dbus_gtype_to_dbus_type to
4098         dbus_gtype_to_signature.
4099         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4100         (introspect_signals): Fix test for query.return_type.
4101         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4102         (invoke_object_method): Many changes.  Handle asynchronous
4103         invocations.  Convert arguments with
4104         dbus_gvalue_demarshal_message.  Handle errors.  Use
4105         DBusSignatureIter instead of strlen on args. Handle all arguments
4106         generically.  Special-case variants.
4107         (dbus_g_method_return, dbus_g_method_return_error): New function.
4108         (DBusGSignalClosure): New structure, closes over signal
4109         information.
4110         (dbus_g_signal_closure_new): New function.
4111         (dbus_g_signal_closure_finalize): New function.
4112         (signal_emitter_marshaller): New function; is special marshaller
4113         which emits signals on bus.
4114         (export_signals): New function; introspects object signals and
4115         connects to them.
4116         (dbus_g_object_type_install_info): Take GType instead of
4117         GObjectClass.
4118         (dbus_g_connection_register_g_object): Invoke export_signals.
4119         (dbus_g_connection_lookup_g_object): New function.
4120         (DBusGFuncSignature) New structure; used for mapping type
4121         signatures to marshallers.
4122         (funcsig_hash): New function; hashes DBusGFuncSignature.
4123         (funcsig_equal): New function; compares DBusGFuncSignature.
4124         (_dbus_gobject_lookup_marshaller): New function.
4125         (dbus_g_object_register_marshaller): New function; used to
4126         register a marshaller at runtime for a particular signature.
4127
4128         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4129
4130         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4131         which notes a server method implementation should be
4132         asynchronous.
4133
4134         * glib/dbus-binding-tool-glib.c
4135         (dbus_binding_tool_output_glib_server): Call
4136         dbus_g_value_types_init.
4137         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4138         variants specially.
4139         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4140         of a lookup function.
4141         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4142         (write_untyped_out_args): New method; write output arguments.
4143         (write_formal_declarations_for_direction): Function for
4144         writing prototypes.
4145         (write_formal_parameters_for_direction): Function for
4146         writing implementations.
4147         (write_typed_args_for_direction): Function for writing
4148         arguments prefixed with GTypes.
4149         (write_async_method_client): Write out async version
4150         of method.
4151
4152         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4153         (dbus_g_type_get_marshal_name): Move mapping from GType
4154         to marshal name into here.
4155         (dbus_g_type_get_c_name): Move into here.
4156         (compute_marshaller): Convert signature to type with
4157         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4158         (compute_marshaller_name): Ditto.
4159         (compute_marshaller): Handle async signal annotations.
4160         (gather_marshallers): Return if we don't have a known
4161         prefix.
4162         (generate_glue): Collect introspection blob here, and
4163         write all of the blob at the end.  This allows an object
4164         with multiple interfaces to work.
4165         Mark async methods in introspection blob.
4166
4167         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4168         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4169         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4170
4171         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4172         avoids people accidentally using DBUS_TYPE_* which should
4173         not be necessary anymore.
4174         Do include dbus-gtype-specialized.h, which are utilities
4175         for GLib container types.
4176         Add various #defines for types such as
4177         DBUS_TYPE_G_BOOLEAN_ARRAY.
4178         (DBusGValueIterator, DBusGValue): Define, not fully used
4179         yet.
4180         (dbus_g_value_get_g_type): Type for recursive value.
4181         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4182         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4183         (dbus_g_value_free): Prototypes.
4184         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4185         (dbus_g_proxy_set_interface): Prototype.
4186         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4187         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4188         types.
4189         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4190         Accessors.
4191         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4192         doing async invocations.
4193         (dbus_g_method_return, dbus_g_method_return_error):
4194         Prototypes.
4195         * doc/dbus-tutorial.xml: Update GLib section.
4196         
4197         * tools/dbus-viewer.c (load_child_nodes): Update
4198         for new invocation type of dbus_g_proxy_end_call.
4199         (load_from_service_thread_func): Ditto.
4200
4201         * tools/print-introspect.c (main): Ditto.
4202
4203         * tools/dbus-names-model.c (have_names_notify)
4204         (names_model_reload, names_model_set_connection)
4205         Use GTypes.
4206
4207         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4208         needed since Python bindings use GLib bindings.
4209
4210         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4211         Add --prefix argument.
4212
4213         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4214         unneeded --ignore-unsupported arg.
4215         
4216         * test/glib/test-service-glib.c: 
4217         * test/glib/test-service-glib.xml:
4218         * test/glib/test-dbus-glib.c: Add many more tests.
4219
4220 2005-06-06  David Zeuthen  <davidz@redhat.com>
4221
4222         * doc/TODO: Add item about need to remove deprecated functions.
4223
4224         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4225
4226         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4227         to repair the ABI which was broken with the last commit.
4228
4229 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4230
4231         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4232         (dbus_connection_disconnect): renamed to dbus_connection_close 
4233         for API symmetry with dbus_connection_open
4234         (_dbus_connection_open_internal): 
4235         s/dbus_connection_disconnect/dbus_connection_close
4236
4237         * dbus/dbus-bus.c (dbus_bus_get):
4238         s/dbus_connection_disconnect/dbus_connection_close
4239
4240         * bus/connection.c (bus_connections_unref, 
4241         bus_connections_setup_connection, bus_connections_expire_incomplete):
4242         s/dbus_connection_disconnect/dbus_connection_close
4243
4244         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4245         kill_client_connection_unchecked, check_hello_connection):
4246         s/dbus_connection_disconnect/dbus_connection_close
4247
4248         * bus/bus.c (new_connection_callback):
4249         s/dbus_connection_disconnect/dbus_connection_close
4250
4251         * tools/dbus-send.c (main):
4252         s/dbus_connection_disconnect/dbus_connection_close
4253
4254         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4255         s/dbus_connection_disconnect/dbus_connection_close
4256         
4257         * test/test-service.c (path_message_func, filter_func):
4258         s/dbus_connection_disconnect/dbus_connection_close
4259         
4260         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4261         
4262 2005-05-25  Colin Walters  <walters@verbum.org>
4263
4264         * dbus/dbus-protocol.h: Move various bus service #defines such
4265           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4266           dbus/dbus-shared.h.
4267         * dbus/dbus-shared.h: Various defines moved here.
4268         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4269
4270 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4271
4272         * python/__init__.py: Python bindings deserve a minor version
4273         update.  Upped to (0, 40, 2)
4274
4275 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4276
4277         * python/decorators.py: add explicitly_pass_message decorator
4278         for passing in the dbus message as keyword for edge case signal
4279         handling
4280
4281         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4282         to conform with what dbus expects for match rules
4283         (SignalMatchRule.execute): add the dbus message as a keyword
4284         if the signal handler has requested it
4285
4286         * python/examples/example/signal-recipient.py: added some more
4287         examples on how to hook up to signals
4288
4289 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4290
4291         * python/decorators.py: import dbus_bindings
4292
4293         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4294         SignalMatchNode): new classes that implement wildcard signal
4295         callback matching using a tree lookup. Heavily modified from a
4296         patch sent by Celso Pinto (fd.o bug #3241)
4297
4298         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4299         use new match classes to handle signals.
4300
4301 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4302         
4303         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4304
4305 2005-05-18  Havoc Pennington  <hp@redhat.com>
4306
4307         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4308         gettext. Not really worth requiring yet perhaps, but any
4309         production quality 1.0 would require it so we should go ahead and
4310         get things set up. We do have a couple token calls to
4311         bindtextdomain in the code already.
4312
4313 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4314
4315         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4316         when using recursive g_main_loops
4317
4318         * python/_dbus.py (class Bus): add the ProxyObjectClass
4319         alias for ProxyObject to make it easier for the Twisted 
4320         networking framework to integrate dbus.
4321
4322         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4323         alias for ProxyMethod to make it easier for the Twisted 
4324         networking framework to integrate dbus. 
4325
4326 2005-05-11  Ross Burton  <ross@openedhand.com>
4327
4328         * glib/dbus-glib-tool.c: Add --prefix argument.
4329         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4330         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4331         Add prefix argument.
4332         (generate_glue): Pass prefix argument down.
4333         (dbus_binding_tool_output_glib_server): Pass prefix to
4334         glib-genmarshal.
4335         
4336 2005-05-11  Colin Walters  <walters@verbum.org>
4337
4338         * tools/dbus-send.c (append_array): New function.
4339         (append_arg): Broken out from main.
4340         (main): Add cheesy hack to send arrays and variants.
4341         (usage): Update.
4342         * tools/dbus-print-message.c (print_iter): Broken out
4343         from main.
4344
4345 2005-05-11  Colin Walters  <walters@verbum.org>
4346
4347         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4348         New function, returns signature string for signature iter.
4349         * dbus/dbus-signature.h: Prototype it.
4350         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4351         New function, returns signature string for message iter.
4352         (dbus_message_iter_get_array_len): New function, returns
4353         length of array.
4354         (dbus_message_iter_get_fixed_array): Fix assertion; this
4355         function should be used when the iter is pointing to the
4356         contents of an array
4357         * dbus/dbus-message.h: Prototypes.
4358         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4359         New function; returns length of an array.
4360         * dbus/dbus-marshal-recursive.h: Prototype it.
4361         
4362 2005-05-11  Colin Walters  <walters@verbum.org>
4363
4364         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4365         compilation error.
4366         
4367 2005-05-08  Havoc Pennington  <hp@redhat.com>
4368
4369         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4370         daemon's pid, not the parent's pid, to the file descriptor.
4371         Reported by Taj Morton.
4372
4373 2005-05-05  Havoc Pennington  <hp@redhat.com>
4374
4375         * configure.in (LT_*): add notes on how the libtool versioning
4376         works to save thinking. Increment soname to indicate protocol
4377         breakage (though really the library interface hasn't changed I
4378         guess)
4379
4380         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4381         verify the GUID received from server matches what we were
4382         expecting, if we had an expectation
4383
4384         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4385         (_dbus_auth_get_guid_from_server): new function
4386         (send_begin): parse the OK args
4387
4388         * doc/dbus-specification.xml: add GUID to the auth protocol
4389
4390 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4391
4392         * Fix my name in previous changelog ;)
4393
4394         * python/proxies.py (ProxyObject.__getattr__): add further patch
4395         from Anthony Baxter to throw an AttributeError when python 
4396         __special__ functions are called instead of marshling them over 
4397         the bus (Bug#1685 comment 3).
4398
4399 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4400
4401         * python/Makefile.am: changed to use pyexecdir for the binding
4402         shared libraries (Bug#2494)
4403
4404         * python/exceptions.py: bring exceptions over from the bindings
4405         so they can be used in applications (Bug#2036)
4406         Make all exceptions derive from DBusException
4407
4408         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4409         of classes so that print obj doesn't throw an exception (Bug #1685)
4410
4411 2005-05-03  Ross Burton  <ross@openedhand.com>
4412
4413         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4414         Return if we get an error during registration.  Set up a
4415         weak reference on object to unregister if object is destroyed.
4416         (unregister_gobject): New function.
4417         
4418 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4419
4420         * python/dbus_bindings.pyx.in: 
4421         - added new type classes for hinting to the marashaler what type 
4422         to send over the wire
4423         - added int16 and uint16 marshalers
4424         - Fixed a bug in the type constants that caused int32 to go out
4425         as uint16 over the wire
4426         * python/dbus.py: split up into different files and renamed _dbus.py
4427         * python/__init__.py, python/_util.py, python/decorators.py, 
4428         python/exceptions.py, python/proxies.py, python/services.py,
4429         python/types.py: new files split off from dbus.py
4430         * python/Makefile.am: Add new files, remove dbus.py and 
4431         install all python files to <python module dir>/dbus
4432         * python/examples/*: Added #!/usr/bin/env python to the top of
4433         every example.  Patch provided by Tatavarty Kalyan
4434
4435 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4436
4437         * NEWS: Update to 0.33
4438
4439 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4440
4441         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4442         method for doing async calls
4443         (_pending_call_notification): New C function for handling pendning call
4444         callbacks
4445         (set_notify): New method for setting pending call notification
4446         
4447         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4448         Async capabilities added to remote method calls
4449         (Sender): class removed
4450         (RemoteService): class removed
4451         (ObjectTree): class removed for now
4452         (RemoteObject): Renamed to ProxyObject
4453         (RemoteMethod): Renamed to ProxyMethod
4454         (method): Decorator added for decorating python methods as dbus methods
4455         (signal): Decorator added for decorating python methods as signal emitters
4456         (ObjectType): Metaclass added for generating introspection data and the
4457         method callback vtable
4458         (Interface): Wrapper class added to wrap objects in a dbus interface
4459         (Object): Uses ObjectType as its metaclass and exports Introspect
4460         of the org.freedesktop.DBus.Introspectable interface
4461         (ValidationException, UnknownMethodException): new exceptions
4462
4463         * python/examples/*: Modified to fit with the new bindings
4464
4465 2005-04-23  Havoc Pennington  <hp@redhat.com>
4466
4467         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4468         reported by Tony Houghton
4469
4470         * test/test-service.c (main): test
4471         dbus_connection_get_object_path_data()
4472
4473         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4474         the exact_match
4475         (_dbus_object_tree_get_user_data_unlocked): new function used by
4476         dbus_connection_get_object_path_data()
4477         (do_register): add assertion test for get_user_data_unlocked
4478         (object_tree_test_iteration): more tests
4479
4480         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4481         new function from Dan Reed to let you get the user data from 
4482         dbus_connection_register_object_path()
4483
4484 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4485
4486         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4487         in numerous places that did not account for the NULL terminator
4488         (signature_from_seed): changed the manual string copy loop to 
4489         just use strcpy instead
4490         make check should now pass
4491
4492 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4493
4494         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4495         so that it allows messages that are not signals to pass in 
4496         NULL as the interface.
4497
4498 2005-04-18  David Zeuthen  <davidz@redhat.com>
4499
4500         * glib/dbus-gmain.c (io_handler_destroy_source): 
4501         (timeout_handler_destroy_source, connection_setup_free): 
4502         Also unref the source to avoid memory leaks.
4503
4504 2005-04-13  David Zeuthen  <davidz@redhat.com>
4505
4506         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4507         more reasonable, yet still totally arbitrary, value :-). 
4508
4509 2005-04-13  David Zeuthen  <davidz@redhat.com>
4510
4511         * doc/TODO: Added an "important for 1.0" item about selinux
4512         allow/deny messages
4513
4514 2005-04-13  David Zeuthen  <davidz@redhat.com>
4515
4516         * bus/selinux.c: Add c-file-style to top of file
4517         (log_audit_callback): Don't free the data here anymore
4518         (bus_selinux_check): Don't take spid and tpid since appending
4519         that to auxdata may OOM.
4520         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4521         to the caller if we are OOM by taking an error object.
4522         (bus_selinux_allows_send): -do-
4523
4524         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4525         and bus_selinux_allows_send
4526
4527         * bus/bus.c (bus_context_check_security_policy): Pass error and
4528         pass on OOM thrown by bus_selinux_allows_send()
4529
4530         * bus/services.c (bus_registry_acquire_service): Pass error and
4531         pass on OOM thrown by bus_selinux_allows_acquire_service()
4532
4533 2005-04-13  Havoc Pennington  <hp@redhat.com>
4534
4535         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4536         message at a time to avoid monopolizing the main loop, bug 
4537         #2953 from Benjamin Otte
4538
4539 2005-04-09  Havoc Pennington  <hp@redhat.com>
4540
4541         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4542         possible overlap, fix from Daniel Reed
4543         (fixup_alignment): fix signedness warnings
4544         (_dbus_string_append_unichar): ditto
4545
4546 2005-04-09  Havoc Pennington  <hp@redhat.com>
4547
4548         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4549
4550         * glib/dbus-glib-tool.c (main): fix warning
4551
4552         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4553
4554         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4555         add a new function that can be used in simple applications that
4556         don't have a main loop and are willing to block
4557
4558 2005-04-05  David Zeuthen  <davidz@redhat.com>
4559
4560         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4561
4562         * glib/dbus-gmain.c:
4563         (io_handler_destroy_source): Remove from list of IO handlers
4564         of the ConnectionSetup object
4565         (timeout_handler_destroy_source): -do- for timeout handlers
4566         (io_handler_source_finalized): Don't remove from list since
4567         we now do that in io_handler_destroy_source(). Renamed from
4568         io_handler_source_destroyed
4569         (timeout_handler_source_destroyed): -do- for timeout handlers
4570         (connection_setup_free): It is now safe to iterate over all
4571         IO and timeout handlers as the _destroy_source removes them
4572         from the list synchronously
4573
4574 2005-03-30  Havoc Pennington  <hp@redhat.com>
4575
4576         * configure.in: change check to gtk 2.4
4577
4578         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4579         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4580         to 2.4
4581
4582 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4583
4584         * News: Update 0.32
4585
4586         * HACKING: Fixed realease instructions.  configure.in should be updated to
4587           the next release by the person who made the last release.
4588
4589 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4590
4591         * python/lvalue_cast_post_process.py - removed.  Patch has been
4592           submitted to Pyrex maintainers that fixes gcc4.0 errors
4593
4594         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4595
4596 2005-03-24  Daniel Reed  <n@ml.org>
4597
4598         * tools/Makefile.am: Make print-introspect and
4599         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4600
4601 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4602
4603         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4604
4605         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4606           had in Red Hat packages for a while but for some reason never 
4607           got merged upstream
4608           (_dbus_is_a_number): New checks if a string
4609           can be converted to a number and does the conversion if it can
4610           (_dbus_user_database_lookup): Add check to see if the given username
4611           is a udi.  This allows udi's to be used instead of usernames in the
4612           config file.
4613           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4614           is a gdi.  This allows gdi's to be used instead of groupnames in the
4615           config file.
4616
4617 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4618
4619         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4620           code so that it compiles with gcc4.0
4621
4622         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4623           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4624           results back to dbus_binding.c
4625
4626 2005-03-20  Colin Walters  <walters@verbum.org>
4627
4628         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4629
4630         * configure.in: Require GTK+ 2.6.
4631         
4632 2005-03-20  Colin Walters  <walters@verbum.org>
4633
4634         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4635
4636 2005-03-17  Tom Parker  <palfrey@tevp.net>
4637
4638         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4639         print DBUS_UID_UNSET; instead print passed username.  Also
4640         be sure to actually use gid looked up in cache.
4641         
4642         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4643         for DBUS_GID_UNSET and groupname.
4644
4645 2005-03-17  Colin Walters  <walters@verbum.org>
4646
4647         * bus/print-introspect.c: Move to tools/.
4648         * bus/run-with-tmp-session-bus.sh: Ditto.
4649         
4650         * glib/Makefile.am (dbus-glib-bindings.h): Move
4651         generation to tools/Makefile.am.
4652
4653         * test/glib/run-test.sh: Update to handle move
4654         of run-with-tmp-session-bus.sh.
4655
4656         * test/glib/test-service-glib.c: Update to handle
4657         move of dbus-glib-bindings.h.
4658
4659         * tools/print-introspect.c: Moved here
4660         from bus/, and ported to GLib bindings.
4661
4662         * tools/run-with-tmp-session-bus.sh: Moved here
4663         from bus/.
4664
4665         * tools/Makefile.am: Generate dbus-glib-bindings.h
4666         and dbus-bus-introspect.xml here.
4667
4668         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4669         Update.
4670
4671 2005-03-17  Colin Walters  <walters@verbum.org>
4672
4673         * bus/driver.c (write_args_for_direction): Use
4674         _dbus_string_get_const_data to retrieve string;
4675         _dbus_string_get_const_data_len doesn't actually return
4676         a NULL-terminated substring.
4677
4678         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4679         (main): Change to use org_freedesktop_DBus_request_name
4680         instead of using g_proxy_begin_call/end_call.
4681
4682 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4683
4684         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4685         generating the finalizer.  Fixes from Ben Maurer.
4686
4687 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4688
4689         * mono/BusDriver.cs: Update method names: ListServices
4690         becomes ListNames; GetOwner becomes GetNameOwner.
4691
4692         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4693         onto the eval stack when removing the delegate.
4694
4695 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4696
4697         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4698         LT_CURRENT.  Set it to the autoconf variable.
4699                                                                                 
4700         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4701         classes that disconnects the signal handler delegate from the
4702         service object.  Fixes a big leak of proxy objects on the
4703         client side of things.  Patch from Ben Maurer
4704         <bmaurer@ximian.com>
4705
4706 2005-03-12  Colin Walters  <walters@verbum.org>
4707
4708         * bus/driver.c (write_args_for_direction): New function,
4709         parses a type signature into arguments and outputs to
4710         XML.
4711         (bus_driver_handle_introspect): Use it instead of
4712         hardcoding XML for certain signatures.
4713         
4714         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4715         dependency on dbus-daemon.
4716
4717         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4718         argument, pass it to dbus_binding_tool_output_glib_client.
4719
4720         * glib/dbus-binding-tool-glib.c
4721         (generate_client_glue): Protect against multiple inclusion.
4722         (dbus_binding_tool_output_glib_client): Add
4723         G_BEGIN_DECLS/G_END_DECLS.
4724
4725         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4726         Change to just take iface prefix directly.
4727         (write_formal_parameters): Clarify error message.
4728         (check_supported_parameters): New function; checks to see type
4729         signatures of method parameters are supported.
4730         (generate_client_glue): Handle ignore_unsupported flag.
4731         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4732         parameter.
4733
4734         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4735         --ignore-unsupported by default until glib bindings
4736         support arrays.
4737
4738 2005-03-11  Colin Walters  <walters@verbum.org>
4739
4740         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4741         install it.
4742
4743         * bus/print-introspect.c: New file; prints introspection
4744         data for a given name and object path.
4745
4746         * bus/run-with-tmp-session-bus.sh: New file, refactored
4747         from test/glib/run-test.sh.  Creates a temporary session
4748         bus and runs another program.
4749
4750         * test/glib/run-test.sh: Refactor to invoke
4751         run-with-tmp-session-bus.sh.
4752
4753         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4754         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4755         macros instead of hardcoding.
4756
4757         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4758
4759 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4760
4761         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4762         this unref; it doesn't match up evenly in some codepaths.
4763         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4764         this evenly matches with the ref near the top of this function.
4765
4766 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4767
4768         * dbus/dbus-object-tree.c
4769         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4770         and we try to unregister a path that's not registered, still go
4771         through the process of unlocking and don't just return.
4772
4773 2005-03-09  Colin Walters  <walters@verbum.org>
4774
4775         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4776         to this are generated for client-side wrappers.  Invokes a
4777         D-BUS method and returns reply values.  
4778
4779         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4780         function; writes signature string for argument direction.
4781         (write_args_for_direction): Change to pass input values directly
4782         instead of via address, and fix indentation.
4783         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4784         make generated wrappers inlineable.
4785
4786         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4787         note about using dbus_type_is_fixed.
4788
4789         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4790         dbus/dbus-signature.c as dbus_type_is_fixed.
4791
4792         All callers updated.
4793
4794         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4795         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4796
4797         * dbus/dbus-signature.h: Prototype.
4798
4799         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4800         error printf code.
4801
4802         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4803         appropriate instead of just freeing it.
4804         (main): Free returned strings using g_free.
4805
4806         * test/glib/Makefile.am (test-service-glib-glue.h)
4807         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4808
4809         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4810         simply maps a simple D-BUS type to GType.
4811         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4812         GType.
4813         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4814         initialize the value with it.
4815         (dbus_gvalue_binding_type_from_type): Unused, delete.
4816         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4817         various types instead of unmarshalling to value data directly.
4818         Remove can_convert boolean.
4819         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4820         returning directly instead of using can_convert boolean.
4821         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4822         Stores a GValue in a pointer to a value of its corresponding C
4823         type.
4824
4825         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4826         add dbus_gvalue_store.
4827
4828 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4829
4830         Fix a bunch of lifecycle and memory management problems
4831         in the mono bindings.
4832
4833         * mono/Arguments.cs (Arguments): Implement IDisposable
4834
4835         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4836         strictly a static class.
4837
4838         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4839         delegates into this file.
4840         (Connection): Implement IDisposable.
4841         (Dispose): Disconnect the connection and set the raw connection
4842         pointer to IntPtr.Zero.
4843         (~Connection): Call Dispose().
4844         (RegisterObjectPath): Added.  Manages the registration of object
4845         paths so we can cleanly disconnect them at dispose/finalize time.
4846         (UnregisterObjectPath): Ditto.
4847         (set_RawConnection): Unregister all of the object paths when
4848         changing the underlying DBusConnection.  Add them back onto the
4849         new connection, if any.
4850
4851         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4852         more unmanaged resources anymore, so it's not necessary.  Move all
4853         the DBusObjectPathVTable stuff out of here.
4854         (Handler): Save references to our delegates so that they don't get
4855         finalized.  Call Connection.RegisterObjectPath() instead of
4856         dbus_connection_register_object_path() directly.
4857         (Message_Called): Dispose the message after we're finished with
4858         it.
4859
4860         * mono/Message.cs (Message): Implement IDisposable.
4861         (Dispose): Dispose the Arguments, and set the RawMessage to
4862         IntPtr.Zero.
4863         (SendWithReplyAndBlock): We own the ref to the reply that comes
4864         back from dbus_connection_send_with_reply_and_block() so add a
4865         comment about that and unref it after we've constructed a managed
4866         MethodReturn class around it.  Fixes a big, big leak.
4867
4868         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4869         method.
4870         (BuildSignalHandler): After we've sent the Signal message, dispose
4871         of it.
4872         (BuildMethod): Dispose of the method call and reply messages after
4873         we've sent the message and extracted the data we want from the
4874         reply.
4875
4876         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4877         anymore.
4878         (Service_FilterCalled): Dispose of the message after we're
4879         finished with it.
4880
4881 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4882
4883         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4884         After we attach our pending call to the connection, unref
4885         it.  Fixes a leak.
4886  
4887         * mono/Connection.cs (set_RawConnection): Disconnect our
4888         filter and match callbacks from the old connection and
4889         reconnect them to the new connection, if any.
4890
4891         * mono/DBusType/Array.cs: "Code" is a static member, so
4892         don't use "this" to refer to it.  Fix for stricter checking
4893         in Mono 1.1.4.
4894  
4895         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4896         object path that we pass into unmanaged code.
4897  
4898         * mono/DBusType/String.cs (Append): Don't leak the string
4899         that we pass into unmanged code.
4900
4901 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4902         * NEWS: Update for 0.31
4903
4904         * configure.in: Release 0.31
4905         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4906
4907         * qt/Makefile.am: fixed build
4908
4909         * dbus/Makefile.am: soname bump for libdbus
4910
4911         * glib/Makefile.am: soname bump for libdbus-glib
4912
4913 2005-03-05  Havoc Pennington  <hp@redhat.com>
4914
4915         * dbus/dbus-sysdeps.c:
4916         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4917         value
4918         (_dbus_generate_random_bytes_buffer): fix return value
4919
4920         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4921         checks actually work, from Tom Parker <fdo@tevp.net>
4922
4923 2005-03-01  Colin Walters  <walters@verbum.org>
4924
4925         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4926         functions copied from dbus-glib-tool.c.
4927         (main): Convert lots of error code to use them.
4928         Also add some testing for introspection bits.
4929
4930 2005-03-01  Colin Walters  <walters@verbum.org>
4931         
4932         * doc/TODO: Remove introspection signature TODO.
4933
4934 2005-02-27  Colin Walters  <walters@verbum.org>
4935
4936         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4937         Change return value to const char * instead of int so we can do
4938         full signatures.
4939         (struct PropertyInfo, struct ArgInfo): Store char *.
4940         (property_info_new, arg_info_new): Update parameters, strdup.
4941         (property_info_unref, arg_info_unref): Free.
4942
4943         * glib/dbus-gidl.h: Update prototypes.
4944
4945         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4946         (validate_signature): New function, just validates signature and
4947         sets GError.
4948         (parse_property, parse_arg): Invoke validate_signature.  Store
4949         signature instead of just type code.
4950
4951         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4952         function to return a primary type for a signature, dropping
4953         information about types in container types.
4954         (dbus_gvalue_genmarshal_name_from_type)
4955         (dbus_gvalue_binding_type_from_type)
4956         (dbus_gvalue_ctype_from_type): Update to take full signature
4957          instead of type code.
4958         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4959
4960         * glib/dbus-gvalue.h: Update prototypes for above.
4961
4962         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4963         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4964         (introspect_properties, introspect_signals, write_interface):
4965         Update to handle signatures, and remove usage of
4966         _dbus_gutils_type_to_string.
4967         (handle_introspect): Print out type codes instead of e.g. "string"
4968         in hardcoded introspection XML; also use x_AS_STRING constants
4969         instead of hardcoding in string.
4970
4971         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4972         to string.  Remove usage of _dbus_gutils_type_to_string.
4973
4974         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4975
4976         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4977         deletion.
4978         
4979         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4980         (compute_marshaller_name, generate_glue): Handle signature change
4981         to string.
4982         (write_formal_parameters, write_args_for_direction): Ditto, and
4983         remove FIXME.
4984
4985         * tools/dbus-tree-view.c (type_to_string): Delete.
4986         (info_set_func_text): Update to print full signatures.
4987
4988         * test/glib/test-service-glib.xml: Change types to new
4989         introspection format.
4990
4991 2005-02-26  Havoc Pennington  <hp@redhat.com>
4992
4993         * doc/TODO: remove the "guid" item
4994
4995         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4996         (with_bus_thread_func): use open_private
4997
4998         * dbus/dbus-connection.c (dbus_connection_open_private): new
4999         function that works like the old dbus_connection_open()
5000         (dbus_connection_open): now returns an existing connection if
5001         possible
5002
5003         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5004         through the GUID to the transport
5005
5006         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5007         GUID in hex-encoded form.
5008
5009         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5010         pass GUID argument in to the transport
5011
5012         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5013         guid argument
5014
5015         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5016
5017         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5018
5019 2005-02-25  Havoc Pennington  <hp@redhat.com>
5020
5021         * doc/dbus-specification.xml: document the GUID thing
5022
5023         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5024         globally unique ID for the server, and put a "guid=hexencoded"
5025         field in the address
5026
5027         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5028
5029         * dbus/dbus-message.c: ditto
5030
5031         * dbus/dbus-dataslot.c: ditto
5032
5033         * dbus/dbus-list.c: ditto
5034
5035         * dbus/dbus-internals.h: wait, just include
5036         dbus-threads-internal.h here
5037         
5038         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5039         use in main library
5040
5041         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5042
5043 2005-02-24  Colin Walters  <walters@verbum.org>
5044
5045         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5046
5047 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5048
5049         * glib/Makefile.am: added dbus-gobject.h to sources list
5050         so distcheck doesn't fail
5051         
5052 2005-02-24  Havoc Pennington  <hp@redhat.com>
5053
5054         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5055         you must disconnect before unref, since locking and other things
5056         are screwed up otherwise. Fix assorted other locking stuff.
5057
5058         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5059         fix compilation
5060
5061         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5062         into a private header and don't export from the library
5063
5064         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5065
5066 2005-02-24  Colin Walters  <walters@verbum.org>
5067         
5068         * dbus/dbus-signature.c: New file; implements various functions
5069         related to type signatures.  Includes an interator for parsing,
5070         validation functions.
5071         (dbus_type_is_basic): Moved here from
5072         dbus-marshal-basic.c:_dbus_type_is_basic.
5073         (dbus_type_is_container): Moved here from
5074         dbus-marshal-basic.c:_dbus_type_is_container.
5075
5076         All callers of _dbus_type_is_container and _dbus_type_is_basic
5077         updated, and include dbus-signature.h.
5078
5079         * dbus/dbus-signature.h: New file; prototypes for the above.
5080
5081         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5082         dbus-signature.h.
5083
5084         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5085         function factored out of _dbus_first_type_in_signature.
5086         (_dbus_first_type_in_signature_c_str): New function; returns first
5087         type code for a type signature character.
5088
5089         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5090         handle function moves.
5091
5092         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5093
5094         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5095         function; skips to next complete type in type signature.
5096         Implemented using previous skip_one_complete_type.  Now
5097         skip_one_complete_type just delegates to
5098         _dbus_type_signature_next.
5099
5100         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5101         to dbus-signature.c
5102         (_dbus_type_is_container): Ditto.
5103
5104         * doc/dbus-specification.xml: Update introspection sample to
5105         use real type signatures.
5106
5107         * dbus/dbus-test.h: Prototype signature test.
5108
5109         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5110         signature tests.
5111
5112         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5113
5114 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5115
5116         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5117         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5118
5119 2005-02-21  Colin Walters  <walters@verbum.org>
5120
5121         * dbus/dbus-test-main.c (main): Take optional specific test
5122         argument.
5123
5124         * dbus/dbus-test.c (run_test): New function, runs a test function
5125         with no data directory.
5126         (run_data_test): Like above, but takes data directory.
5127         (dbus_internal_do_not_use_run_tests): Take
5128         specific test argument.  Replace lots of cut n' paste code
5129         with run_test and run_data_test.
5130
5131         * dbus/dbus-test.h: Update prototype for
5132         dbus_internal_do_not_use_run_tests.
5133
5134 2005-02-20  Havoc Pennington  <hp@redhat.com>
5135
5136         Fix bugs reported by Daniel P. Berrange
5137         
5138         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5139         (protected_change_watch): new function
5140         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5141         (_dbus_server_add_watch): change to work like the
5142         dbus-connection.c equivalents; like those, probably kind of
5143         busted, but should at least mostly work for now
5144         (dbus_server_disconnect): drop the lock if we were already
5145         disconnected, patch from Daniel P. Berrange
5146
5147         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5148         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5149         same stuff
5150
5151         * doc/TODO: todo about unscrewing this mess
5152
5153 2005-02-19  Colin Walters  <walters@verbum.org>
5154
5155         * glib/dbus-binding-tool-glib.c
5156         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5157
5158         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5159         as errno.h and sys/stat.h.
5160         (lose): New function, prints error with
5161         newline and exits.
5162         (lose_gerror): Similar, but takes GError for message.
5163         (main): Add --output argument to specify output file to write to,
5164         instead of always printing to stdout.  In this mode, determine
5165         timestamps on source files to see whether any are newer than the
5166         target file.  If not, exit.  Also convert a number of error
5167         messages to use lose (since it's shorter), and switch to using
5168         g_io_channel_shutdown.
5169
5170 2005-02-19  Havoc Pennington  <hp@redhat.com>
5171
5172         * glib/dbus-gobject.c
5173         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5174
5175         * glib/dbus-glib.c: fix doxygen warnings
5176
5177         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5178         is found on an <arg>
5179
5180 2005-02-17  Colin Walters  <walters@verbum.org>
5181
5182         * glib/dbus-gobject.h: Don't export
5183         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5184         
5185         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5186         (invoke_object_method): Handle it.
5187
5188         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5189         Handle rename.
5190         
5191 2005-02-17  Colin Walters  <walters@verbum.org>
5192
5193         * bus/.cvsignore, doc/.cvsignore
5194         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5195         Update.
5196
5197 2005-02-17  Colin Walters  <walters@verbum.org>
5198         
5199         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5200         Rename to DBUS_SERVICE_DBUS.
5201         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5202         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5203         Change the value from "org.freedesktop.Local"
5204         to "org.freedesktop.DBus.Local".
5205         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5206         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5207         DBUS_INTERFACE_INTROSPECTABLE.
5208         Change the value from "org.freedesktop.Introspectable"
5209         to "org.freedesktop.DBus.Introspectable".
5210         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5211         DBUS_INTERFACE_PROPERTIES.
5212         Change the value from "org.freedesktop.Properties"
5213         to "org.freedesktop.DBus.Properties".
5214         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5215         DBUS_INTERFACE_PEER.
5216         Change the value from "org.freedesktop.Peer"
5217         to "org.freedesktop.DBus.Peer".
5218         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5219         DBUS_INTERFACE_LOCAL.
5220         Change the value from "org.freedesktop.Local"
5221         to "org.freedesktop.DBus.Local".
5222
5223         All other users of those constants have been changed.
5224
5225         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5226
5227         * glib/dbus-gobject.c (handle_introspect): Use constants.
5228
5229         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5230
5231 2005-02-17  Colin Walters  <walters@verbum.org>
5232
5233         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5234         (parse_node, parse_interface, parse_method, parse_signal)
5235         (parse_property, parse_annotation): Lose if we're currently in an
5236         annotation.
5237         (parse_annotation): New function.
5238         (parser_start_element, parser_end_element): Handle annotation.
5239         (parse_method, parse_interface): Remove support for c_name attribute,
5240         switch to annotations.
5241
5242         * glib/dbus-gidl.h (interface_info_get_binding_names)
5243         (method_info_get_binding_names)
5244         (interface_info_get_binding_name, method_info_get_binding_name)
5245         (interface_info_set_binding_name, method_info_set_binding_name):
5246         Remove.
5247         (interface_info_get_annotations, method_info_get_annotations)
5248         (interface_info_get_annotation, method_info_get_annotation)
5249         (interface_info_add_annotation, method_info_add_annotation):
5250         Prototype.
5251
5252         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5253         for "bindings".
5254         (struct MethodInfo): Ditto.
5255         Straightfoward conversion of binding methods into annotation methods
5256         as prototyped.
5257
5258         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5259
5260         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5261
5262         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5263         Use new annotation API.
5264
5265         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5266         annotation element.
5267         
5268         * doc/dbus-specification.xml: Discuss introspection annotations,
5269         include list of well-known annotations.
5270
5271         * test/glib/test-service-glib.xml: Make validate against new DTD.
5272
5273 2005-02-17  Colin Walters  <walters@verbum.org>
5274
5275         This patch is based on initial work from
5276         Paul Kuliniewicz <kuliniew@purdue.edu>.
5277
5278         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5279         initialization of GValue from dbus type to here.
5280         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5281         for the "glib-genmarshal" program from a DBus type.
5282         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5283         into the C name for it we use in the glib bindings.
5284         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5285         glib C type (not GValue).
5286         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5287
5288         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5289         from dbus-gobject.c.
5290
5291         * glib/dbus-gutils.h: Prototype it.
5292
5293         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5294         (marshal_dbus_message_to_g_marshaller): Use new shared function
5295         dbus_glib_marshal_dbus_message_to_gvalue_array.
5296
5297         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5298         Will be changed once we have annotations.
5299
5300         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5301         GStaticRWLock.  Callers updated.
5302         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5303         (string_table_next): New function for iterating over zero-terminated
5304         string value array.
5305         (string_table_lookup): New function; retrieves specific entry in
5306         array.
5307         (get_method_data): New function; look up method data in object data chunk.
5308         (object_error_domain_prefix_from_object_info)
5309         (object_error_code_from_object_info): New functions, but not implemented yet.
5310         (method_interface_from_object_info): New function; retrieve interface name.
5311         (method_name_from_object_info): New function; retrieve method name.
5312         (method_arg_info_from_object_info): New function; retrieve argument data.
5313         (arg_iterate): New function; iterates over serialized argument data.
5314         (method_dir_signature_from_object_info): New function; returns a
5315         GString holding type signature for arguments for just one
5316         direction (input or output).
5317         (method_input_signature_from_object_info)
5318         (method_output_signature_from_object_info): New functions.
5319         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5320         converts dbus message arguments into a GValue array.  Used for both
5321         signal handling and method invocation.
5322         (struct DBusGlibWriteIterfaceData): New utility structure.
5323         (write_interface): New function; generate introspection XML for
5324         an interface.
5325         (introspect_interfaces): New function; gathers all interface->methods,
5326         generates introspection XML for them.
5327         (handle_introspect): Invoke introspect_interfaces.
5328         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5329         (lookup_object_and_method): New function; examines an incoming message
5330         and attempts to match it up (via interface, method name, and argument
5331         signature) with a known object and method.
5332         (gerror_domaincode_to_dbus_error_name): New function; converts a
5333         GError domain and code into a DBus error name.  Needs GError data
5334         added to object introspection to work well.
5335         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5336         GError.
5337         (invoke_object_method): New function to invoke an object method
5338         looked up via lookup_object_and_method.  Parses the incoming
5339         message, turns it into a GValue array, then invokes the marshaller
5340         specified in the DBusGMethodInfo.  Creates a new message with
5341         either return values or error message as appropriate.
5342         (gobject_message_function): Invoke lookup_object_and_method and
5343         invoke_object_method.
5344
5345         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5346         (enum DBusBindingOutputMode): New enum for binding output modes.
5347         (pretty_print): Print binding names.
5348         (dbus_binding_tool_error_quark): GError bits.
5349         (version): Fix typo.
5350         (main): Create GIOChannel for output.  Parse new --mode argument,
5351         possible values are "pretty-print", "glib-server", "glib-client".
5352         Use mode to invoke appropriate function.
5353         
5354         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5355
5356         * glib/dbus-glib-tool.h: New header, just includes GError bits
5357         for now.
5358
5359         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5360         maps binding style to name.
5361         (struct MethodInfo): Ditto.
5362         (get_hash_keys, get_hash_key): Utility function, returns keys for
5363         a GHashTable.
5364         (interface_info_new, method_info_new): Initialize bindings.
5365         (interface_info_unref, method_info_unref): Destroy bindings.
5366         (method_info_get_binding_names, method_info_get_binding_name)
5367         (interface_info_get_binding_names, interface_info_get_binding_name):
5368         Functions for retrieving binding names.
5369         (method_info_set_binding_name, interface_info_set_binding_name):
5370         Functions for setting binding names.
5371
5372         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5373         for glib binding generation.
5374
5375         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5376         and client-side glib glue generation.
5377
5378         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5379         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5380         dbus-glib-tool.h.
5381
5382         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5383         of using GClosureMarshal directly.
5384         (struct DBusGObjectInfo): Add n_infos member.
5385
5386         * test/glib/test-service-glib.xml: New file; contains introspection data
5387         for MyTestObject used in test-service-glib.c.
5388
5389         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5390         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5391         (my_object_uppercase, my_object_many_args): New test methods.
5392         (main): Use dbus_g_object_class_install_info to include generated object
5393         info.
5394
5395         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5396         as well as client-side bindings.
5397
5398         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5399         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5400         using both the dbus_gproxy stuff directly as well as the generated bindings.
5401
5402 2005-02-15  Havoc Pennington  <hp@redhat.com>
5403
5404         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5405         complete a pending call, don't run filters first.
5406
5407         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5408         dbus_pending_call_steal_reply
5409
5410         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5411         _dbus_connection_block_pending_call
5412         (dbus_pending_call_get_reply): change to steal_reply and return a
5413         ref
5414
5415         * dbus/dbus-connection.c
5416         (dbus_connection_send_with_reply_and_block): port to work in terms
5417         of DBusPendingCall
5418         (_dbus_connection_block_pending_call): replace block_for_reply
5419         with this
5420
5421 2005-02-14  Havoc Pennington  <hp@redhat.com>
5422
5423         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5424         properly handle looking up group information by name; fix 
5425         from j@bootlab.org
5426
5427 2005-02-13  Havoc Pennington  <hp@redhat.com>
5428
5429         * dbus/dbus-connection.c (dbus_connection_return_message) 
5430         (dbus_connection_borrow_message): hold dispatch lock while message
5431         is outstanding
5432         (_dbus_connection_block_for_reply): hold dispatch lock while we
5433         block for the reply, so nobody steals our reply
5434         (dbus_connection_pop_message): hold the dispatch lock while we
5435         pluck the message
5436
5437 2005-02-13  Havoc Pennington  <hp@redhat.com>
5438
5439         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5440         (_dbus_connection_release_dispatch)
5441         (_dbus_connection_acquire_io_path)
5442         (_dbus_connection_release_io_path): make the mutex and condvar
5443         control access to the "acquired" flag. Drop the connection lock
5444         while waiting on the condvar. Hopefully these are baby steps in
5445         roughly the right direction.
5446
5447 2005-02-13  Havoc Pennington  <hp@redhat.com>
5448
5449         * dbus/dbus-connection.c: use separate mutexes for the condition
5450         variables; this is some kind of baseline for sanity, but the
5451         condition variables still aren't used correctly afaict
5452
5453 2005-02-13  Havoc Pennington  <hp@redhat.com>
5454
5455         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5456         fix a double-unlock
5457
5458         * dbus/dbus-connection.c
5459         (_dbus_connection_detach_pending_call_unlocked): add this
5460
5461         Initial semi-correct pass through to fix thread locking; there are
5462         still some issues with the condition variable paths I'm pretty
5463         sure
5464         
5465         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5466         lock/unlock calls
5467
5468         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5469         rename to add _unlocked
5470         (struct DBusConnection): move "dispatch_acquired" and
5471         "io_path_acquired" to use only one bit each.
5472         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5473         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5474         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5475         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5476         (_dbus_connection_remove_timeout) 
5477         (_dbus_connection_toggle_timeout): drop lock when calling out to
5478         user functions; done in a hacky/bad way.
5479         (_dbus_connection_send_and_unlock): add a missing unlock
5480         (_dbus_connection_block_for_reply): add a missing unlock
5481
5482         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5483         drop lock in a hacky probably unsafe way to call out to user
5484         function
5485
5486 2005-02-12  Havoc Pennington  <hp@redhat.com>
5487
5488         * tools/dbus-tree-view.c (info_set_func_text): display more
5489         details on args
5490
5491         * bus/driver.c (bus_driver_handle_list_services): list the bus
5492         driver
5493
5494         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5495
5496         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5497         (method_info_get_n_args): new function
5498
5499 2005-02-12  Havoc Pennington  <hp@redhat.com>
5500
5501         * bus/driver.c (bus_driver_handle_introspect): add introspection
5502         for bus driver
5503
5504 2005-02-12  Havoc Pennington  <hp@redhat.com>
5505
5506         * bus/driver.c: put the signature of each bus driver method in the
5507         table of handlers and check it on incoming calls; this isn't
5508         really useful, but going to add introspect support in a minute.
5509
5510 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5511
5512         * mono/Connection.cs: The unpredictability of finalizers in mono
5513         prevents us from deterministically disconnecting the filters from
5514         the Service class's finalizer, so move tracking of filters and
5515         matches here.  Add API for that.
5516
5517         * mono/Service.cs: Remove the code, add code which calls the
5518         methods now on the Connection class.
5519
5520 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5521
5522         * python/dbus.py (class Sender): added to support dbus signals better
5523         (Bus::add_signal_receiver): added expand_args parameter which defaults
5524         to True.  When expand args is True the signal handler will pass the 
5525         message arguments as parameters to the signal handler.  If False
5526         revert to previous behavior where the signal handler must get the
5527         argument list from the message.  This is to help port applications
5528         like HAL that have a tendancy to send variable length argument lists.
5529         self._match_rule_to_receivers is now a dict of dicts.
5530         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5531         removing it from a list
5532         (Bus::_signal_func): change signal handlers so that interface,
5533         signal_name, service, path and message are packed into a Sender
5534         object and that is passed to the handler.  If expand_args is True
5535         extract the args list from the message and append it to the parameter
5536         list
5537         
5538         * python/dbus_bindings.pyx.in (class Signature): added to support 
5539         signiature types
5540         (MessageIter::__init__): changed iteration limit to match D-BUS
5541         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5542         STRUCT and VARIENT type support
5543         (MessageIter::python_value_to_dbus_sig): made recursive to support
5544         recursive types
5545         (MessageIter::append*): added Signature, dict, tuple 
5546         support
5547
5548         * python/examples/example-client.py: added examples of getting tuples
5549         and dicts
5550
5551         * python/examples/example-service.py: added examples of sending tuples
5552         and dicts
5553
5554         * python/examples/example-signal-recipient.py: Fixed to handle new
5555         signal callback format
5556
5557 2005-02-10  Havoc Pennington  <hp@redhat.com>
5558
5559         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5560         (call dbus_g_proxy_add_signal)
5561
5562         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5563         escape the hostname
5564         (_dbus_server_new_for_domain_socket): escape the path
5565
5566         * dbus/dbus-address.c (dbus_address_escape_value): new
5567         (dbus_address_unescape_value): new
5568         (dbus_parse_address): unescape values
5569
5570         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5571
5572         * doc/dbus-specification.xml: explain how to escape values in
5573         addresses
5574
5575 2005-02-10  Havoc Pennington  <hp@redhat.com>
5576
5577         * dbus/dbus-message-factory.c (generate_special): modify test to
5578         avoid using a non-basic dict key
5579
5580         * dbus/dbus-marshal-validate-util.c: add test for the below
5581
5582         * doc/dbus-specification.xml: require that dict keys are a basic
5583         type
5584
5585         * dbus/dbus-marshal-validate.c
5586         (_dbus_validate_signature_with_reason): require that dict key is a
5587         basic type
5588
5589 2005-02-10  Havoc Pennington  <hp@redhat.com>
5590
5591         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5592         change to be _and_unlock instead of _unlocked
5593
5594         * dbus/dbus-connection.c
5595         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5596         have no_update so we can find this bug quickly in future
5597
5598 2005-02-10  Havoc Pennington  <hp@redhat.com>
5599
5600         * dbus/dbus-message-util.c (verify_test_message): tests for string
5601         array
5602
5603         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5604         support for arrays of string/signature/path
5605
5606 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5607
5608         * dbus/dbus-connection.c
5609         (_dbus_connection_queue_received_message_link,
5610         _dbus_connection_message_sent): Add the path to
5611         the verbose output.
5612         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5613         _dbus_connection_send_preallocated_unlocked(), updated the
5614         dispatch status, and unlocks.  Fixes a bug where certain
5615         situations (like a broken pipe) could cause a Disconnect message
5616         to not be sent, tricking the bus into thinking a service was still
5617         there when the process had quit.
5618         (_dbus_connection_send_preallocated): Call
5619         _dbus_connection_send_preallocated_and_unlock().
5620         (_dbus_connection_send_and_unlock): Added.  Calls
5621         _dbus_connection_send_preallocated_and_unlock().
5622         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5623         (dbus_connection_send_with_reply): Update the dispatch status and
5624         unlock.
5625
5626         * mono/Service.cs (~Service): Added.  Removes the filter so that
5627         we don't get unmanaged code calling back into a GCed delegate.
5628         (RemoveFilter); Added.
5629
5630 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5631
5632         * dbus/dbus-message.c (dbus_message_iter_open_container):
5633         - Removed check for iterator type being an array because
5634         get_arg_type does not work with writer iterators
5635         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5636
5637 2005-02-07  Havoc Pennington  <hp@redhat.com>
5638
5639         * doc/dbus-specification.xml: some more language cleanups; add
5640         stuff about how to deal with invalid protocol and extension
5641         points; add _ to allowed chars in auth commands; add EXTENSION_
5642         auth command prefix
5643
5644 2005-02-06  Havoc Pennington  <hp@redhat.com>
5645
5646         * s/expected/required/ in a couple places for clarity
5647
5648 2005-02-07  Colin Walters  <walters@verbum.org>
5649
5650         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5651         sender or proposed_recipient.
5652
5653 2005-02-06  Havoc Pennington  <hp@redhat.com>
5654
5655         * dbus/dbus-message-factory.c (generate_special): more tests
5656
5657         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5658         array length that exceeds the maximum
5659
5660 2005-02-05  Havoc Pennington  <hp@redhat.com>
5661
5662         * dbus/dbus-message-factory.c (generate_special): more test cases,
5663         increasing coverage
5664
5665         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5666         reason why a signature was invalid
5667
5668         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5669         skip the length of the string before we look at it in validation
5670
5671         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5672         equal_substring
5673
5674         * dbus/dbus-message.c (_dbus_message_loader_new): default
5675         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5676
5677 2005-02-05  Havoc Pennington  <hp@redhat.com>
5678
5679         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5680         if the signature of a variant was empty
5681         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5682         struct with no element type)
5683
5684         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5685         mangled messages to break things
5686
5687 2005-02-04  Havoc Pennington  <hp@redhat.com>
5688
5689         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5690         g_quark_try_string() so it actually can return 0
5691         (dbus_g_proxy_connect_signal): ditto
5692
5693 2005-02-04  Havoc Pennington  <hp@redhat.com>
5694
5695         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5696         bogus warning
5697         (tristring_from_message): assert cleanly on null path/interface
5698         (should not be possible though I decided later)
5699         (dbus_g_proxy_dispose): move proxy manager unregistration here
5700         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5701         g_return_if_fail() checks
5702
5703 2005-02-04  Havoc Pennington  <hp@redhat.com>
5704
5705         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5706
5707         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5708         (with some minor changes)
5709
5710         * doc/dbus-specification.xml: add deprecated attribute to
5711         introspection format
5712
5713 2005-01-31  Havoc Pennington  <hp@redhat.com>
5714
5715         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5716         think it's sort of right
5717
5718 2005-01-30  Havoc Pennington  <hp@redhat.com>
5719
5720         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5721
5722 2005-01-30  Havoc Pennington  <hp@redhat.com>
5723
5724         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5725
5726         * autogen.sh: change to autotools 1.9
5727
5728         * glib/dbus-gproxy.c: completely change how signals work
5729         (dbus_g_proxy_add_signal): new function to specify signature of a
5730         signal
5731         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5732         and g_warning if the incoming message has the wrong signature.
5733
5734 2005-01-30  Havoc Pennington  <hp@redhat.com>
5735
5736         * tools/dbus-names-model.c (have_names_notify): fix this
5737
5738         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5739         up the string array handling a bit 
5740
5741 2005-01-30  Havoc Pennington  <hp@redhat.com>
5742
5743         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5744         (dbus_g_pending_call_cancel): new function
5745
5746         * dbus/dbus-glib.h: move GType decls for connection/message here;
5747         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5748         here, just kind of rationalizing how we handle all that
5749
5750         * tools/dbus-names-model.c: new file for a tree model listing the
5751         services on a bus
5752
5753         * tools/dbus-tree-view.c (model_new): use proper typing on the
5754         model rows
5755
5756 2005-01-30  Havoc Pennington  <hp@redhat.com>
5757
5758         * glib/dbus-gmain.c: add a custom GSource back that just checks
5759         whether the message queue has anything in it; otherwise, there are 
5760         cases where we won't see messages in the queue since there was no 
5761         IO visible to the glib main loop
5762
5763         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5764         increase default message timeout to 25 seconds
5765
5766 2005-01-30  Havoc Pennington  <hp@redhat.com>
5767
5768         * test/glib/test-profile.c (no_bus_stop_server): remove the
5769         warning about the g_warning that I just fixed
5770
5771         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5772         custom source, seems to be a lot easier to understand and work
5773         better.
5774
5775 2005-01-30  Havoc Pennington  <hp@redhat.com>
5776
5777         I think this main loop thing is conceptually broken, but here are 
5778         some band aids. I'll maybe rewrite it in a minute.
5779         
5780         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5781         custom GSource, so don't pass it in; confusing
5782         (gsource_server_finalize, gsource_connection_finalize): add
5783         finalize handlers that remove all the watches.  
5784
5785 2005-01-30  Havoc Pennington  <hp@redhat.com>
5786
5787         * glib/dbus-gobject.c (introspect_properties): fix the XML
5788         generated
5789
5790         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5791         which effectively detects the use of freed messages
5792
5793         * glib/dbus-gobject.c (handle_introspect): modify and return the
5794         reply message instead of the incoming message
5795
5796         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5797         gee, maybe it should SEND THE XML instead of just making a string
5798         and freeing it again ;-)
5799
5800         * tools/dbus-print-message.c (print_message): improve printing of
5801         messages
5802
5803         * configure.in: add debug-glib.service to the output
5804
5805 2005-01-30  Havoc Pennington  <hp@redhat.com>
5806
5807         dbus-viewer introspected and displayed the bus driver
5808         
5809         * dbus/dbus-object-tree.c 
5810         (object_tree_test_iteration): add tests for a handler registered on "/"
5811
5812         * dbus/dbus-object-tree.c
5813         (_dbus_decompose_path): fix to handle path "/" properly
5814         (run_decompose_tests): add tests for path decomposition
5815         
5816         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5817         properly
5818
5819         * glib/dbus-gobject.c (handle_introspect): fix quotes
5820
5821         * test/glib/run-test.sh: support launching the bus, then running
5822         dbus-viewer
5823
5824         * test/glib/test-service-glib.c (main): put in a trivial gobject
5825         subclass and register it on the connection
5826
5827         * bus/driver.c (bus_driver_handle_introspect): implement
5828         introspection of the bus driver service
5829
5830         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5831         identifiers, doctype decl
5832
5833         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5834         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5835         returning the service unchanged.
5836         (bus_driver_handle_message): remove old check for reply_serial in
5837         method calls, now the message type deals with that
5838         (bus_driver_handle_message): handle NULL interface
5839
5840         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5841
5842         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5843         -1 for len
5844
5845         * tools/dbus-viewer.c: add support for introspecting a service on
5846         a bus
5847
5848         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5849         (dbus_g_pending_call_unref): add
5850
5851 2005-01-29  Havoc Pennington  <hp@redhat.com>
5852
5853         * tools/dbus-tree-view.c: add support for displaying properties.
5854         (run dbus-viewer with an introspect xml file as arg, then resize
5855         the window so the tree elements show up, not sure what that is)
5856
5857         * glib/dbus-gobject.c (handle_introspect): return
5858         org.freedesktop.Properties and org.freedesktop.Introspectable
5859         interfaces when we are introspected.
5860
5861         * doc/dbus-specification.xml: allow empty interface name when 
5862         Get/Set a property
5863
5864 2005-01-29  Havoc Pennington  <hp@redhat.com>
5865
5866         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5867         though it uses glib, it could be extended for any binding in
5868         principle
5869
5870         * glib/dbus-gobject.c (gobject_message_function): change to the
5871         new way properties work
5872
5873         * dbus/dbus-protocol.h: add the new interfaces
5874
5875         * doc/dbus-specification.xml: document the introspection format,
5876         Introspectable interface, and add an org.freedesktop.Properties
5877         interface.
5878
5879         * glib/dbus-gparser.c: add support for a <property> element
5880
5881         * glib/dbus-gidl.c: add PropertyInfo
5882
5883         * glib/dbus-gobject.c (handle_introspect): put the outermost
5884         <node> outside the signal and property descriptions.
5885         (introspect_properties): export properties as <property> rather
5886         than as method calls
5887
5888 2005-01-28  Havoc Pennington  <hp@redhat.com>
5889
5890         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5891         related to authentication protocol
5892
5893 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5894
5895         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5896                 - BUS_ACTIVATION -> BUS_STARTER
5897                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5898                 - class MessageIter (__init__): Added recursion checking 
5899                 so we throw a nice error instead of just disconnecting from the
5900                 bus.
5901                 (get): Added arg_type parameter for recursion.
5902                 Removed the nil type
5903                 Added signiture type placeholder (not implemented)
5904                 Added struct type placeholder (not implemented)
5905                 Added varient type placeholder (not implemented)
5906                 Commented out dict type for now     
5907                 (get_element_type): renamed from get_array_type
5908                 (get_*): changed to use the dbus_message_iter_get_basic API
5909                 (get_*_array): removed in favor of recursive get_array method
5910                 (get_array): new recursive method which calls get to marshal
5911                 the elements of the array
5912                 (value_to_dbus_sig): New method returns the corrasponding
5913                 dbus signiture to a python value
5914                 (append): Comment out dict handling for now
5915                 Handle lists with the new recursive API
5916                 Comment out None handling for now
5917                 (append_nil): removed
5918                 (append_*): changed to use dbus_message_iter_append_basic API
5919                 (append_*_array): removed in favor of recursive append_array 
5920                 method
5921                 (__str__): Make it easier to print out recursive iterators
5922                 for debugging
5923                 - class Message (__str__): moved type inspection to the
5924                 MessageIter class' __str__ method
5925                 (get_iter): Added an append parameter wich defaults to False
5926                 If True use the new API's to create an append iterator
5927
5928         * python/dbus.py: Update to use new bindings API
5929                 - TYPE_ACTIVATION -> TYPE_STARTER
5930                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5931                 - class ActivationBus -> class StarterBus
5932                 - class RemoteObject (__call__): get an append iterator
5933                 - (_dispatch_dbus_method_call): get an append iterator
5934                 - class Object (emit_signal): get an append iterator
5935
5936         * python/examples/: Fixed up the examples to work with the new API
5937                 
5938 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5939
5940         * configure.in: Bump version up to 0.30.
5941
5942         * HACKING: Add a release item to bump the version number up after 
5943         a release.
5944
5945 2005-01-28  Havoc Pennington  <hp@redhat.com>
5946
5947         * doc/dbus-specification.xml: update to describe 16-bit types and
5948         dict entries
5949
5950         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5951         assertion
5952
5953         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5954         type
5955
5956         * dbus/dbus-marshal-recursive.c: implement
5957
5958 2005-01-27  Havoc Pennington  <hp@redhat.com>
5959
5960         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5961
5962         * configure.in: find the right type for 16 and 32 bit ints as well
5963         as 64
5964
5965         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5966         the 16-bit types so people don't have to stuff them in 32-bit or
5967         byte arrays.
5968
5969 2005-01-27  Havoc Pennington  <hp@redhat.com>
5970
5971         * dbus/dbus-message.c: byteswap the message if you init an
5972         iterator to read/write from it
5973         
5974         * dbus/dbus-marshal-byteswap.c: new file implementing 
5975         _dbus_marshal_byteswap()
5976
5977         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5978
5979 2005-01-26  Havoc Pennington  <hp@redhat.com>
5980         
5981         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5982         build, apparently - nobody noticed?)
5983         
5984 2005-01-26  Havoc Pennington  <hp@redhat.com>
5985
5986         * dbus/dbus-marshal-recursive.h: remove todo comment
5987
5988 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5989
5990         * Land the mono binding changes to conform to the new APIs.
5991
5992         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5993         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5994
5995         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5996         type code as a string.
5997         (InitAppending): Rename dbus_message_append_iter_init() to
5998         dbus_message_iter_init_append().
5999
6000         * mono/BusDriver.cs: Rename ServiceEventHandler to
6001         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6002         Rename ServiceOwnerChanged to NameOwnerChanged.
6003
6004         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6005         underlying C call.
6006
6007         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6008
6009         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6010         dbus_bus_acquire_service() to dbus_bus_request_name().
6011
6012         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6013         of Type.UnderlyingSystemType to get the correct element type for
6014         the array.
6015         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6016         dbus_message_get_{element|arg}_type() instead of
6017         dbus_message_iter_init_array_iterator().
6018         (Append): Replace dbus_message_iter_append_array() with
6019         dbus_message_iter_open_container() and
6020         dbus_message_iter_close_container().
6021
6022         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6023         types have been removed.
6024         
6025         * mono/DBusType/*.cs: Replace calls of
6026         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6027         but specify the type in the DllImport extern declaration.  Ditto
6028         for dbus_message_iter_append_[type]() ->
6029         dbus_message_iter_append_basic().
6030
6031         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6032         NameOwnerChangedHandler.
6033
6034 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6035
6036         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6037                 - get_base_service -> get_unique_name
6038                 - bus_get_base_service -> bus_get_unique_name
6039                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6040                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6041                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6042                 - bus_activate_service -> bus_start_service_by_name
6043                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6044                 - bus_acquire_service -> bus_request_name
6045                 - dbus_bus_acquire_service -> dbus_bus_request_name
6046                 - bus_service_exists -> bus_name_has_owner
6047                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6048
6049         * python/dbus.py: Rename of methods
6050                 - activate_service -> start_service_by_name
6051                 - bus_acquire_service -> bus_request_name
6052                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6053                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6054
6055         
6056 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6057
6058         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6059         signature for the method that can't be found.
6060
6061         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6062         the message has any arguments, we need to call
6063         _dbus_type_reader_get_current_type(), not
6064         _dbus_type_reader_has_next().
6065
6066 2005-01-24  Havoc Pennington  <hp@redhat.com>
6067
6068         * dbus/dbus-message-factory.c: more testing of message validation
6069
6070         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6071         header
6072
6073 2005-01-23  Havoc Pennington  <hp@redhat.com>
6074
6075         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6076         get this all working, not many tests in the framework yet though
6077
6078 2005-01-22  Havoc Pennington  <hp@redhat.com>
6079
6080         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6081         tutorial, based on work from David Wheeler.
6082
6083 2005-01-21  Havoc Pennington  <hp@redhat.com>
6084
6085         * dbus/dbus-bus.c: add more return_if_fail checks
6086
6087         * dbus/dbus-message.c (load_message): have the "no validation"
6088         mode (have to edit the code to toggle the mode for now though)
6089
6090         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6091         skips all validation; I want to use this at least for benchmark
6092         baseline, I'm not sure if it should be a publicly-available switch.
6093
6094 2005-01-21  Havoc Pennington  <hp@redhat.com>
6095
6096         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6097         toplevel doxygen group as the low-level API stuff
6098
6099         * dbus/dbus.h: note that libdbus is the low-level API
6100
6101 2005-01-20  Havoc Pennington  <hp@redhat.com>
6102
6103         * update-dbus-docs.sh: script to update docs on the web site, only
6104         works for me though. neener.
6105
6106 2005-01-20  Havoc Pennington  <hp@redhat.com>
6107
6108         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6109         code can reveal bugs in it
6110
6111 2005-01-20  Havoc Pennington  <hp@redhat.com>
6112
6113         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6114         select() version, patches from Tor Lillqvist
6115
6116 2005-01-20  Havoc Pennington  <hp@redhat.com>
6117
6118         * doc/dbus-tutorial.xml: replace > with &gt;
6119
6120         * bus/services.c (bus_registry_acquire_service): validate the name
6121         and return a better error if it's no good.
6122
6123         * doc/dbus-specification.xml: note NO_AUTO_START change
6124
6125         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6126         from AUTO_START, we're toggling the default
6127
6128         * bus/dispatch.c: adapt the tests to change of auto-start default
6129
6130 2005-01-18  Havoc Pennington  <hp@redhat.com>
6131
6132         * rename dbus-daemon-1 to dbus-daemon throughout
6133
6134 2005-01-18  Havoc Pennington  <hp@redhat.com>
6135
6136         * Throughout, grand renaming to strip out the use of "service",
6137         just say "name" instead (or "bus name" when ambiguous).  Did not
6138         change the internal code of the message bus itself, only the
6139         programmer-facing API and messages.
6140         
6141         * doc/dbus-specification.xml: further update the message bus section
6142         
6143         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6144         in error case
6145
6146 2005-01-17  Havoc Pennington  <hp@redhat.com>
6147
6148         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6149         ever
6150
6151         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6152         "invalid name character" not only non-ASCII
6153
6154         * doc/dbus-specification.xml: further update spec, message bus 
6155         parts are still out-of-date but the marshaling etc. stuff is now
6156         accurate-ish
6157
6158 2005-01-17  Havoc Pennington  <hp@redhat.com>
6159
6160         * doc/dbus-specification.xml: partially update spec
6161
6162 2005-01-17  Havoc Pennington  <hp@redhat.com>
6163
6164         * Throughout, align variant bodies according to the contained
6165         type, rather than always to 8. Should save a fair bit of space in
6166         message headers.
6167         
6168         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6169         fix handling of case where p == end
6170
6171         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6172
6173 2005-01-17  Havoc Pennington  <hp@redhat.com>
6174
6175         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6176
6177         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6178         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6179         are marshaling/unmarshaling a boolean.
6180
6181 2005-01-16  Havoc Pennington  <hp@redhat.com>
6182
6183         This is about it on what can be disabled/deleted from libdbus
6184         easily, back below 150K anyhow. Deeper cuts are more work than 
6185         just turning the code off as I've done here.
6186         
6187         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6188         signed int convenience funcs
6189
6190         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6191         verbose mode
6192
6193         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6194         things out of libdbus
6195
6196         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6197         
6198         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6199         tests-enabled-only, though it should probably be deleted)
6200
6201         * dbus/dbus-message-util.c: same stuff
6202
6203         * dbus/dbus-auth-util.c: same stuff
6204
6205 2005-01-16  Havoc Pennington  <hp@redhat.com>
6206
6207         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6208
6209         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6210         way for stripping down dbus-userdb.c stuff included in libdbus.
6211         Rename _dbus_parse_uid for consistency.
6212
6213 2005-01-16  Havoc Pennington  <hp@redhat.com>
6214
6215         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6216         name the assertion failed in
6217
6218         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6219         (_dbus_return_val_if_fail): assert that the name of the function
6220         containing the check doesn't start with '_', since we only want to 
6221         use checks on public functions
6222         
6223         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6224         checks to assertions
6225
6226         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6227         change checks to asserts for private function
6228
6229         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6230         to asserts for private function
6231
6232         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6233         broken assertion that was breaking make check
6234         (_dbus_type_reader_array_is_empty): remove this rather than fix
6235         it, was only used in assertions
6236
6237 2005-01-16  Havoc Pennington  <hp@redhat.com>
6238
6239         * test/unused-code-gc.py: hacky script to find code that's used
6240         only by the bus (not libdbus) or used only by tests or not used at
6241         all. It has some false alarms, but looks like we can clean up a
6242         lot of size from libdbus.
6243
6244         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6245         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6246         
6247 2005-01-16  Havoc Pennington  <hp@redhat.com>
6248
6249         * Add and fix docs according to Doxygen warnings throughout
6250         source.
6251         
6252         * dbus/dbus-marshal-recursive.c
6253         (_dbus_type_reader_array_is_empty): change this to just call
6254         array_reader_get_array_len() and make it static
6255
6256         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6257         from get_array_type
6258         (dbus_message_iter_init_append): rename from append_iter_init
6259
6260         * dbus/dbus-marshal-recursive.c
6261         (_dbus_type_reader_get_element_type): rename from
6262         _dbus_type_reader_get_array_type
6263
6264 2005-01-15  Havoc Pennington  <hp@redhat.com>
6265
6266         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6267
6268         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6269         when DBUS_DISABLE_ASSERT
6270         (_dbus_marshal_set_basic): be sure we align for the string length
6271
6272         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6273         this look faster
6274
6275         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6276         inline macro version
6277         (_dbus_string_set_byte): provide inline macro version
6278
6279 2005-01-15  Havoc Pennington  <hp@redhat.com>
6280
6281         * Land the new message args API and type system.
6282
6283         This patch is huge, but the public API change is not 
6284         really large. The set of D-BUS types has changed somewhat, 
6285         and the arg "getters" are more geared toward language bindings;
6286         they don't make a copy, etc.
6287
6288         There are also some known issues. See these emails for details
6289         on this huge patch:
6290         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6291         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6292         
6293         * dbus/dbus-marshal-*: all the new stuff
6294
6295         * dbus/dbus-message.c: basically rewritten
6296
6297         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6298         freed blocks to be all non-nul bytes so using freed memory is less
6299         likely to work right
6300
6301         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6302         DBUS_FAIL_MALLOC=N environment variable, so you can do
6303         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6304         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6305         thorough.
6306
6307         * qt/message.cpp: port to the new message args API
6308         (operator<<): use str.utf8() rather than str.unicode()
6309         (pretty sure this is right from the Qt docs?)
6310
6311         * glib/dbus-gvalue.c: port to the new message args API
6312
6313         * bus/dispatch.c, bus/driver.c: port to the new message args API
6314
6315         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6316         "locked" flag to TRUE and align_offset to 0; I guess we never
6317         looked at these anyhow, but seems cleaner.
6318
6319         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6320         move allocation padding macro to this header; use it to implement
6321         (_DBUS_STRING_STATIC): ability to declare a static string.
6322
6323         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6324         change to return TRUE if the interface is not set.
6325
6326         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6327         to dbus-marshal-validate.[hc]
6328
6329         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6330         dbus-internals.c
6331
6332         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6333         to dbus-marshal-*.[hc]
6334
6335         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6336         function here from dbus-marshal.c
6337
6338 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6339
6340         * NEWS: Update for 0.23.
6341
6342         * configure.in: Release 0.23.
6343
6344 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6345
6346         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6347         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6348         behind.
6349
6350         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6351         uninstall"
6352
6353         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6354         is an enum, get the enum's underlying type.  Another mono
6355         1.1.3 fix.
6356
6357 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6358
6359         Patch from Sjoerd Simons <sjoerd@luon.net>
6360
6361         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6362         DESTDIR.  It breaks stuff.
6363
6364 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6365
6366         Patch from Tambet Ingo <tambet@ximian.com>
6367
6368         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6369         calling type.GetElementType().  The code previously depended on
6370         broken Mono behavior, which was fixed in Mono 1.1.3.
6371
6372         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6373         Activator.CreateInstance() so that the class's constructor is
6374         called with the right parameters.
6375
6376 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6377
6378         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6379
6380         * dbus/dbus-connection.c
6381         (_dbus_connection_queue_received_message_link): Call
6382         _dbus_connection_remove_timeout() instead of the _locked()
6383         variant, since it's always called from
6384         _dbus_connection_handle_watch(), which handles the locking.
6385         Removed the _locked() variant since it's no longer used.
6386
6387 2005-01-03  Havoc Pennington  <hp@redhat.com>
6388
6389         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6390         return
6391         
6392 2004-12-26  Havoc Pennington  <hp@redhat.com>
6393
6394         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6395
6396 2005-01-03  Havoc Pennington  <hp@redhat.com>
6397
6398         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6399         floating point
6400
6401         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6402
6403 2005-01-02  Havoc Pennington  <hp@redhat.com>
6404
6405         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6406
6407 2005-01-01  Havoc Pennington  <hp@redhat.com>
6408
6409         * configure.in: add -Wfloat-equal
6410
6411 2005-01-01  Havoc Pennington  <hp@redhat.com>
6412
6413         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6414         for a variety of reasons '==' doesn't do this.
6415
6416 2004-12-31  Havoc Pennington  <hp@redhat.com>
6417
6418         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6419         I keep wishing I had
6420
6421 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6422
6423         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6424
6425 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6426
6427         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6428         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6429         dbus-protocol.h.  Because they are defines and not enums they are not
6430         autogenerated.
6431
6432 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6433
6434         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6435         dbus_bus_activate_service
6436
6437         * python/dbus.py (Bus.activate_service): activate a service on the
6438         bus.
6439
6440 2004-12-24  Havoc Pennington  <hp@redhat.com>
6441
6442         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6443         file format has also changed and I haven't adapted to that yet
6444         
6445         * Makefile.am: load .gcno files from latest gcc
6446
6447 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6448         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6449
6450         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6451         lowlevel binding
6452
6453         * python/dbus.py (get_unix_user): Added binding to 
6454         call dbus_bindings.bus_get_unix_user
6455
6456         * python/extract.py: Modified the proto_pat regex to
6457         handle unsigned long
6458
6459 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6460
6461         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6462         better POSIX compliance.
6463
6464 2004-12-19  Havoc Pennington  <hp@redhat.com>
6465
6466         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6467         (_dbus_string_insert_8_aligned): new functions
6468
6469         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6470
6471 2004-12-18  Havoc Pennington  <hp@redhat.com>
6472
6473         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6474         macro
6475
6476         * dbus/dbus-message.c: fix a comment, and add a still-unused
6477         not-implemented function
6478
6479         * dbus/dbus-marshal.h: fix comment
6480
6481         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6482
6483 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6484
6485         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6486         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6487         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6488         Type.UnderlyingSystemType to get the actual system type
6489         underneath.  This code previously depended on the broken Mono
6490         behavior, which was fixed in 1.1.3.
6491
6492 2004-11-27  Havoc Pennington  <hp@redhat.com>
6493
6494         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6495         are disabled
6496         (_dbus_string_get_const_data): inline when asserts are disabled
6497
6498         * dbus/dbus-message.c: record the _dbus_current_generation of
6499         creation so we can complain if dbus_shutdown() is used improperly.
6500         Do this only if checks are enabled.
6501
6502         * dbus/dbus-connection.c: ditto
6503         
6504 2004-11-26  Havoc Pennington  <hp@redhat.com>
6505
6506         * test/glib/test-profile.c: add with_bus mode to profile echoes
6507         that go through the bus.
6508
6509         * test/glib/run-test.sh: add ability to run test-profile
6510
6511         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6512         config file reload.
6513
6514 2004-11-26  Havoc Pennington  <hp@redhat.com>
6515
6516         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6517         thing was implemented
6518
6519 2004-11-26  Havoc Pennington  <hp@redhat.com>
6520
6521         * test/glib/test-profile.c: tweak a bit, add support for some
6522         made-up minimal malloc overhead with plain sockets, since in 
6523         real life some sort of buffers are unavoidable thus we could 
6524         count them in the theoretical best case
6525
6526 2004-11-26  Havoc Pennington  <hp@redhat.com>
6527
6528         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6529         where I was trying to cache one too many messages
6530
6531 2004-11-26  Havoc Pennington  <hp@redhat.com>
6532
6533         * dbus/dbus-message.c: reimplement message cache as an array which 
6534         makes the cache about twice as fast and saves maybe 1.5% overall
6535
6536 2004-11-26  Havoc Pennington  <hp@redhat.com>
6537
6538         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6539         message cache lock here
6540
6541 2004-11-26  Havoc Pennington  <hp@redhat.com>
6542
6543         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6544         the "char byte_order" next to each other to save 4 bytes
6545         (dbus_message_new_empty_header): reduce preallocation, since the
6546         message cache should achieve a similar effect
6547         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6548         message cache that keeps a few DBusMessage around in a pool,
6549         another 8% speedup or so.
6550
6551         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6552
6553 2004-11-25  Havoc Pennington  <hp@redhat.com>
6554
6555         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6556         to write, without reading or blocking, try it before the poll()
6557         and skip the poll() if nothing remains to write. This is about a
6558         3% speedup in the echo client/server
6559
6560 2004-11-25  Havoc Pennington  <hp@redhat.com>
6561
6562         The primary change here is to always write() once before adding
6563         the write watch, which gives us about a 10% performance increase.
6564         
6565         * dbus/dbus-transport-unix.c: a number of modifications to cope
6566         with removing messages_pending
6567         (check_write_watch): properly handle
6568         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6569         messages_pending stuff
6570         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6571         AUTHENTICATED cases
6572         (unix_handle_watch): after writing, see if the write watch can be
6573         removed
6574         (unix_do_iteration): assert that write_watch/read_watch are
6575         non-NULL rather than testing that they aren't, since they 
6576         aren't allowed to be NULL. check_write_watch() at the end so 
6577         we add the watch if we did not finish writing (e.g. got EAGAIN)
6578
6579         * dbus/dbus-transport-protected.h: remove messages_pending call,
6580         since it resulted in too much inefficient watch adding/removing; 
6581         instead we now require that the transport user does an iteration 
6582         after queueing outgoing messages, and after trying the first
6583         write() we add a write watch if we got EAGAIN or exceeded our 
6584         max bytes to write per iteration setting
6585
6586         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6587         function
6588
6589         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6590         freed and then accessed, valgrind flagged this bug, fix it
6591
6592         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6593         as the last valid field plus 1, where really it is equal to the
6594         last valid field. Corrects some message corruption issues.
6595
6596         * dbus/dbus-mainloop.c: verbosity changes
6597
6598         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6599         instead of aborting in one of the test codepaths
6600
6601         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6602         caused not printing the pid ever again if a verbose was missing
6603         the newline at the end
6604         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6605
6606         * dbus/dbus-connection.c: verbosity changes; 
6607         (dbus_connection_has_messages_to_send): new function
6608         (_dbus_connection_message_sent): no longer call transport->messages_pending
6609         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6610         try to write() immediately, so we can avoid the write watch. This
6611         is the core purpose of this patchset
6612         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6613         dump the outgoing message queue, so nobody will get confused
6614         trying to send them or thinking stuff is pending to be sent
6615
6616         * bus/test.c: verbosity changes
6617
6618         * bus/driver.c: verbosity/assertion changes
6619
6620         * bus/dispatch.c: a bunch of little tweaks to get it working again
6621         because this patchset changes when/where you need to block.
6622
6623 2004-11-23  Havoc Pennington  <hp@redhat.com>
6624
6625         * test/glib/test-profile.c: modify to accept a plain_sockets
6626         argument in which case it will bench plain sockets instead of
6627         libdbus, for comparison purposes.
6628
6629 2004-11-22  Havoc Pennington  <hp@redhat.com>
6630
6631         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6632         threads for more time, so sysprof can get a grip on it.
6633
6634         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6635         pointless variable
6636
6637 2004-11-13  Havoc Pennington  <hp@redhat.com>
6638
6639         * test/glib/test-profile.c: fix this thing up a bit
6640
6641         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6642         preallocation sizes by a fair bit; not sure if this will be an
6643         overall performance win or not, but it does reduce reallocs.
6644
6645         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6646         the test hack that forced constant realloc if asserts are
6647         disabled, so we can profile sanely. Sprinkle in some
6648         _DBUS_UNLIKELY() which are probably pointless, but before I
6649         noticed the real performance problem I put them in.
6650         (_dbus_string_validate_utf8): micro-optimize this thing a little
6651         bit, though callgrind says it didn't help; then special-case
6652         ascii, which did help a lot; then be sure we detect nul bytes as
6653         invalid, which is a bugfix.
6654         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6655         superstition; use memset to nul the padding instead of a manual
6656         loop.
6657         (_dbus_string_get_length): inline this as a
6658         macro; it showed up in the profile because it's used for loop
6659         tests and so forth
6660
6661 2004-11-10  Colin Walters  <walters@verbum.org>
6662
6663         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6664         for extra paranoia.
6665
6666 2004-11-09  Colin Walters  <walters@verbum.org>
6667
6668         * dbus/dbus-string.c (_dbus_string_get_length): New
6669         function, writes DBusString to C buffer.
6670
6671         * dbus/dbus-string.h: Prototype it.
6672
6673         * dbus/dbus-message.c (dbus_message_type_to_string): New
6674         function, converts message type into C string.
6675
6676         * dbus/dbus-message.h: Prototype it.
6677
6678         * bus/selinux.c (bus_selinux_check): Take source pid,
6679         target pid, and audit data.  Pass audit data to
6680         avc_has_perm.
6681         (log_audit_callback): New function, appends extra
6682         audit information.
6683         (bus_selinux_allows_acquire_service): Also take
6684         service name, add it to audit data.
6685         (bus_selinux_allows_send): Also take message
6686         type, interface, method member, error name,
6687         and destination, and add them to audit data.
6688         (log_cb): Initialize func_audit.
6689         
6690         * bus/selinux.h (bus_selinux_allows_acquire_service)
6691         (bus_selinux_allows_send): Update prototypes 
6692
6693         * bus/services.c (bus_registry_acquire_service): Pass
6694         service name to bus_selinux_allows_acquire_service.
6695
6696         * bus/bus.c (bus_context_check_security_policy): Pass
6697         additional audit data.  Move assignment of dest
6698         to its own line.
6699
6700 2004-11-07  Colin Walters  <walters@verbum.org>
6701
6702         * dbus/dbus-transport-unix.c (do_authentication): Always
6703         initialize auth_completed.
6704         
6705 2004-11-07  Colin Walters  <walters@verbum.org>
6706
6707         * bus/bus.c (load_config): Break into three
6708         separate functions: process_config_first_time_only,
6709         process_config_every_time, and process_config_postinit.
6710         (process_config_every_time): Move call of
6711         bus_registry_set_service_context_table into
6712         process_config_postinit.
6713         (process_config_postinit): New function, does
6714         any processing that needs to happen late
6715         in initialization (and also on reload).
6716         (bus_context_new): Instead of calling load_config,
6717         open config parser here and call process_config_first_time_only
6718         and process_config_every_time directly.  Later, after
6719         we have forked but before changing UID,
6720         invoke bus_selinux_full_init, and then call
6721         process_config_postinit.
6722         (bus_context_reload_config): As in bus_context_new,
6723         load parse file inside here, and call process_config_every_time
6724         and process_config_postinit.
6725
6726         * bus/services.h, bus/services.c
6727         (bus_registry_set_service_context_table): Rename
6728         from bus_registry_set_sid_table.  Take string hash from config
6729         parser, and convert them here into SIDs.
6730
6731         * bus/config-parser.c (struct BusConfigParser): Have
6732         config parser only store a mapping of service->context
6733         string.
6734         (merge_service_context_hash): New function.
6735         (merge_included): Merge context string hashes instead
6736         of using bus_selinux_id_table_union.
6737         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6738         simply create a new string hash.
6739         (bus_config_parser_unref): Unref it.
6740         (start_selinux_child): Simply insert strings into hash,
6741         don't call bus_selinux_id_table_copy_over.
6742
6743         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6744         (bus_selinux_id_table_copy_over): Delete.
6745
6746 2004-11-03  Colin Walters  <walters@verbum.org>
6747
6748         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6749         variables.
6750         
6751 2004-11-03  Colin Walters  <walters@verbum.org>
6752
6753         * bus/test-main.c (test_pre_hook): Fix test logic,
6754         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6755
6756 2004-11-02  Colin Walters  <walters@redhat.com>
6757
6758         * bus/selinux.c (bus_selinux_init): Split into two functions,
6759         bus_selinux_pre_init and bus_selinux_post_init.
6760         (bus_selinux_pre_init): Just determine whether SELinux is
6761         enabled.
6762         (bus_selinux_post_init): Do everything else.
6763
6764         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6765         config file, and bus_selinux_post_init after.  This ensures that
6766         we don't lose the policyreload notification thread that
6767         bus_selinux_init created before forking previously.
6768         
6769         * bus/test-main.c (test_pre_hook): Update for split.
6770
6771 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6772
6773         Patch from Johan Fischer <linux@fischaz.com>
6774         
6775         * mono/doc/Makefile.am (install-data-local): Added directory
6776         install for DESTDIR
6777
6778 2004-10-29  Colin Walters  <walters@redhat.com>
6779
6780         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6781         parameter for fd to write pid to.       
6782
6783         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6784         
6785         * bus/bus.c (bus_context_new): Pass print_pid_fd
6786         to _dbus_become_daemon (bug #1720)
6787
6788 2004-10-29  Colin Walters  <walters@redhat.com>
6789
6790         Patch from Ed Catmur <ed@catmur.co.uk>
6791
6792         * mono/doc/Makefile.am (install-data-local): Handle
6793         DESTDIR.
6794
6795 2004-10-29  Colin Walters  <walters@redhat.com>
6796
6797         * bus/.cvsignore, qt/.cvsignore: Update.
6798
6799 2004-10-29  Colin Walters  <walters@redhat.com>
6800
6801         Patch from Kristof Vansant <de_lupus@pandora.be>
6802
6803         * configure.in: Detect Slackware.
6804         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6805         * bus/rc.messagebus.in: New file.
6806
6807 2004-10-29  Colin Walters  <walters@redhat.com>
6808
6809         * tools/dbus-monitor.c (filter_func): Return
6810         DBUS_HANDLER_RESULT_HANDLED in filter function
6811         for now.  See:
6812         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6813
6814 2004-10-29  Colin Walters  <walters@redhat.com>
6815
6816         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6817
6818         * bus/services.c (bus_registry_acquire_service): 
6819         Correctly retrieve service name from DBusString
6820         for printing.
6821
6822 2004-10-29  Colin Walters  <walters@redhat.com>
6823
6824         * dbus/dbus-glib.h: Update documentation to not
6825         refer to internal APIs.
6826
6827 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6828
6829         * mono/Arguments.cs (GetDBusTypeConstructor):
6830         type.UnderlyingSystemType will return "System.Byte" if you do it
6831         on "byte[]", which is not what we want.  So check the type.IsArray
6832         property and use System.Array instead.
6833
6834 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6835
6836         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6837         the DBusUserInfo structure since this is passed into the function.
6838         This would cause a double free when the function that allocated
6839         the structure would try to free it when an error occured.
6840
6841         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6842         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6843         for service activation to avoid 32bit/64bit parallel install issues
6844
6845 2004-10-21  Colin Walters  <walters@verbum.org>
6846
6847         * AUTHORS: Fix my email address, the @gnu.org one
6848         has been bouncing for some time.  Also add J5.
6849         
6850 2004-10-21  Colin Walters  <walters@verbum.org>
6851
6852         * dbus/dbus-transport-unix.c (do_authentication): Return
6853         authentication status to callers.
6854         (unix_handle_watch): If we completed authentication this round,
6855         don't do another read.  Instead wait until the next iteration,
6856         after we've read any pending data in the auth buffer.
6857         (unix_do_iteration): Ditto.
6858         (unix_handle_watch): Updated for new do_authentication prototype.
6859
6860 2004-10-18  Colin Walters  <walters@verbum.org>
6861
6862         * bus/selinux.c (bus_selinux_enabled): Handle
6863         --disable-selinux case.
6864         
6865 2004-10-18  Colin Walters  <walters@verbum.org>
6866
6867         * bus/selinux.h: Add bus_selinux_enabled.
6868         
6869         * bus/selinux.c (bus_selinux_enabled): Implement it.
6870         
6871         * bus/config-parser.c (struct include): Add
6872         if_selinux_enabled member.
6873         (start_busconfig_child): Parse if_selinux_enabled
6874         attribute for include.
6875         (bus_config_parser_content): Handle it.
6876
6877         * bus/session.conf.in, bus/system.conf.in: Add
6878         inclusion of context mapping to default config files;
6879         conditional on SELinux being enabled.
6880         
6881         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6882         
6883         * test/data/invalid-config-files/badselinux-1.conf, 
6884         test/data/invalid-config-files/badselinux-2.conf:
6885         Test files for bad syntax.
6886         
6887 2004-10-17  Colin Walters  <walters@verbum.org>
6888
6889         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6890         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6891         format specifier mismatches.
6892
6893 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6894
6895         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6896         format string.
6897
6898         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6899         pointer (bug #1540, Leonardo Boiko).
6900
6901 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6902
6903         * mono/BusDriver.cs: Changed BusDriver struct to remove
6904         the ServiceCreated and ServiceDeleted events and replace them
6905         with the new ServiceOwnerChanged event.
6906
6907         * mono/example/BusListener.cs: Added a new example program,
6908         which listens for and reports any ServiceOwnerChanged events
6909         on the bus driver.
6910
6911         * mono/example/Makefile.am (DESTDIR): Build changes for the
6912         new BusListener.cs example.
6913
6914 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6915
6916         * bus/signals.c (bus_match_rule_parse): validate the components of
6917         match rules (bug #1439).
6918
6919         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6920
6921 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6922
6923         * doc/dbus-specification.xml: document ServiceOwnerChanged
6924         signal.
6925         
6926         * bus/driver.c, bus/driver.h, bus/services.c: Use
6927         ServiceOwnerChanged signal instead of ServiceCreated and
6928         ServiceDeleted.
6929         
6930         * bus/dispatch.c: update testcase for the new signal.
6931
6932 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6933
6934         Patch from Nat Friedman <nat@novell.com>
6935
6936         * mono/Makefile.am: A number of small build fixes to allow "make
6937         distcheck" to succeed.
6938
6939         * mono/example/Makefile.am: "make distcheck" fixes.
6940
6941         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6942         key in @srcdir@.
6943
6944         * test/Makefile.am: "make distcheck" fixes.
6945
6946 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6947
6948         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6949
6950         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6951
6952         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6953         messages after the first one (bug #1389).
6954         
6955         * bus/dispatch.c (check_double_hello_message): add a test case for
6956         the double hello message bug.
6957         (check_existent_service_activation): fix check of spawning error.
6958         
6959 2004-09-16  David Zeuthen  <david@fubar.dk>
6960
6961         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6962
6963 2004-09-12  David Zeuthen  <david@fubar.dk>
6964
6965         Patch from Kay Sievers <kay.sievers@vrfy.org>
6966
6967         * bus/bus.c (bus_context_new):
6968         * bus/bus.h:
6969         * bus/main.c (usage)
6970         (main):
6971         Add commandline option --nofork to override configuration file
6972         setting.
6973
6974 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6975
6976         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6977         compilers don't like it (bug #974).
6978
6979 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6980
6981         * qt/connection.*: Applied patch by Jérôme Lodewyck
6982         <lodewyck@clipper.ens.fr> to integrate an existing
6983         connection into the Qt eventloop
6984
6985 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6986
6987         * mono/BusDriver.cs: Added.  This is a class for interacting with
6988         the org.freedesktop.DBus service.
6989
6990         * mono/Message.cs: Added a mechanism to expose the message that is
6991         currently being dispatched via the static Message.Current
6992         property.  Added Message.Sender and Message.Destination
6993         properties.
6994
6995         * mono/Handler.cs: Expose the dispatched message via
6996         Message.Current when handling method calls.
6997
6998         * mono/Service.cs: Expose the dispatched message via
6999         Message.Current when handling signal emissions.
7000         
7001         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7002         Connection.BaseService property.
7003
7004 2004-08-28  Havoc Pennington  <hp@redhat.com>
7005
7006         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7007
7008         More fixes from Steve Grubb
7009         
7010         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7011         (_dbus_listen_tcp_socket): fix fd leak
7012
7013         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7014         EINTR to a bit lower in the code
7015
7016 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7017
7018         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7019         TRUE if we are inquiring about the existence of the built-in
7020         org.freedesktop.DBus service.
7021
7022 2004-08-25  John Palmieri  <johnp@redhat.com>
7023         * bus/config-parser.c:
7024         (struct PolicyType): Add POLICY_CONSOLE
7025         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7026         (start_busconfig_child): Sets up console element when
7027         <policy at_console=""> is encountered in a policy file
7028         (append_rule_from_element): Convert console elements to console
7029         rules.
7030
7031         * bus/policy.c: 
7032         (bus_policy_create_client_policy): Add console rules to the client
7033         policy based on if the client is at the console
7034         (bus_policy_append_console_rule): New function for adding a
7035         console rule to a policy
7036         (bus_policy_merge): Handle console rule merging
7037
7038         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7039         where we check for console user files
7040         
7041         * dbus/dbus-sysdeps.c:
7042         (_dbus_file_exists): New function which checks if the given
7043         file exists
7044         (_dbus_user_at_console): New function which does the system
7045         specific process of checking if the user is at the console
7046
7047         * dbus/dbus-userdb.c:
7048         (_dbus_is_console_user): New function converts a UID to user name
7049         and then calls the system specific _dbus_user_at_console to 
7050         see if the user is at the console and therefor a console user
7051
7052 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7053
7054         * bus/config-parser.c (set_limit):
7055         * bus/dbus-daemon-1.1.in:
7056         * test/data/valid-config-files/many-rules.conf: set the
7057         max_match_rules_per_connection limt from the config file. 
7058
7059         * doc/busconfig.dtd: update the DTD.
7060
7061         * bus/driver.c: remove some unused variables.
7062
7063 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7064
7065         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7066         it's been replaced by dbus_g_bus_get
7067
7068 2004-08-23  Colin Walters  <walters@redhat.com>
7069
7070         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7071
7072         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7073
7074         * bus/selinux.c: Create a thread for policy reload notification.
7075         (bus_selinux_get_policy_root): Implement.
7076
7077         * bus/config-parser.c (start_busconfig_child)
7078         (bus_config_parser_content): Support SELinux-root relative
7079         inclusion.
7080
7081         * configure.in <HAVE_SELINUX>: Add -lpthread.
7082         
7083         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7084         (test_post_hook): Move memory checking into here.
7085         (test_pre_hook, test_post_hook): Move SELinux checks in
7086         here, but conditional on a DBUS_TEST_SELINUX environment
7087         variable.  Unfortunately we can't run the SELinux checks
7088         as a normal user, since they won't have any permissions
7089         for /selinux.  So this will have to be tested manually
7090         for now, until we have virtualization for most of
7091         libselinux.
7092         
7093 2004-08-23  Havoc Pennington  <hp@redhat.com>
7094
7095         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7096         drop supplementary groups, suggested by Steve Grubb
7097
7098 2004-08-20  Colin Walters  <walters@redhat.com>
7099
7100         * bus/config-parser.c (start_busconfig_child): Remove some unused
7101         variables.
7102         
7103         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7104         warning.
7105
7106 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7107
7108         * configure.in: If --enable-mono is passed in, if we can't find
7109         mono error out.
7110
7111         * mono/Makefile.am: Use /gacutil to install assemblies into the
7112         GAC and not /root.
7113
7114 2004-08-12  Havoc Pennington  <hp@redhat.com>
7115
7116         * NEWS: update for 0.22
7117
7118         * configure.in: release 0.22
7119
7120 2004-08-11  Colin Walters  <walters@redhat.com>
7121
7122         * tools/dbus-send.c (main, usage): Add --reply-timeout
7123         argument.
7124
7125 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7126
7127         * bus/bus.c (process_config_first_time_only): get rid of an unused
7128         DBusError that was causing a memoy leak (bug #989).
7129
7130         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7131         fix compilation on Solaris/Forte C (bug #974)
7132
7133         * bus/main.c (main): plug two minuscule memleaks.
7134
7135 2004-08-10  Havoc Pennington  <hp@redhat.com>
7136
7137         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7138
7139 2004-08-09  Havoc Pennington  <hp@redhat.com>
7140
7141         * COPYING: switch to Academic Free License version 2.1 instead of
7142         2.0, to resolve complaints about patent termination clause.
7143
7144 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7145
7146         * README: added documentation for the --enable-python 
7147         configure switch.
7148
7149 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7150
7151         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7152         _unref in the SELinux support.
7153
7154         * doc/busconfig.dtd: update DTD for SELinux support.
7155
7156         * bus/config-loader-libxml.c: fix error handler and parser
7157         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7158
7159         * configure.in: remove the warning about libxml2.
7160
7161         * dbus/dbus-bus.c: silence doxygen warning.
7162
7163 2004-07-31  Colin Walters  <walters@redhat.com>
7164
7165         * configure.in: Move #error in SELinux check to its own line.
7166
7167 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7168
7169         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7170         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7171         dbus_error_set.
7172
7173         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7174         broken by the change in the _SET_OOM macros.
7175
7176 2004-07-31  Colin Walters  <walters@redhat.com>
7177
7178         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7179         BUS_SET_OOM.
7180
7181 2004-07-31  Colin Walters  <walters@redhat.com>
7182
7183         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7184         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7185         AC_MSG_CHECKING.
7186
7187 2004-07-24  Havoc Pennington  <hp@redhat.com>
7188
7189         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7190
7191         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7192         functionality
7193
7194         * configure.in: add --enable-selinux
7195         
7196         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7197
7198         * bus/main.c (main): initialize and shut down selinux
7199
7200         * bus/connection.c: store SELinux ID on each connection, to avoid 
7201         repeated getting of the string context and converting it into 
7202         an ID
7203
7204         * bus/bus.c (bus_context_get_policy): new accessor, though it
7205         isn't used
7206         (bus_context_check_security_policy): check whether the security
7207         context of sender connection can send to the security context of
7208         recipient connection
7209
7210         * bus/config-parser.c: add parsing for <selinux> and <associate>
7211         
7212         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7213         implement dbus_connection_get_unix_fd()
7214
7215         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7216         function, used by the selinux stuff
7217         
7218 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7219
7220         * bus/config-loader-libxml.c: complete the implementation of
7221         libxml backend for config file loader. Doesn't work with full OOM
7222         test yet. 
7223         
7224         * configure.in: change error when selecting libxml into a warning.
7225         
7226         * test/data/invalid-config-files: add two non-well-formed XML
7227         files. 
7228         
7229         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7230         
7231         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7232         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7233         be necessary to read all the buffer. (bug #894)
7234
7235         * bus/activation.c (bus_activation_activate_service): fix a
7236         potential assertion failure (bug #896). Small optimization in the
7237         case of auto-activation messages.
7238
7239         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7240         add test case for byte-through-vararg bug (#901). patch by Kimmo
7241         Hämäläinen. 
7242
7243 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7244
7245         * python/dbus.py:
7246         * python/dbus_bindings.pyx.in:
7247         Add dbus.init_gthreads (), allow emit_signal to pass
7248         arguments to the signal.
7249         
7250 2004-07-24  Havoc Pennington  <hp@redhat.com>
7251
7252         * AUTHORS: add some people, not really comprehensively, let me
7253         know if I missed you
7254
7255 2004-07-24  Havoc Pennington  <hp@redhat.com>
7256
7257         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7258         Owen
7259
7260         * test/Makefile.am (DIST_SUBDIRS): here also
7261
7262 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7263
7264         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7265         breaking build on Solaris, reported by Farhad Saberi on the ML.
7266
7267         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7268         va_arg invocation to account for integer promotion in the case of
7269         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7270
7271         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7272         _dbus_list_get_first_link, not _dbus_list_get_first.
7273
7274         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7275
7276         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7277         handler functions so that the asserts in _dbus_object_subtree_unref
7278         do not fail.
7279
7280         * dbus/dbus-transport-unix.c (do_reading):
7281         _dbus_transport_queue_messages return value is of type
7282         dbus_bool_t, not DBusDispatchStatus.
7283         
7284 2004-07-19  David Zeuthen  <david@fubar.dk>
7285
7286         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7287
7288         * bus/dispatch.c:
7289         (check_get_connection_unix_user): Debug says GetProperty; but the
7290         method is called GetConnectionUnixUser
7291         (check_get_connection_unix_process_id): New function
7292         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7293         also call check_get_connection_unix_process_id()
7294         
7295         * bus/driver.c:
7296         (bus_driver_handle_get_connection_unix_process_id): New function,
7297         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7298         interface
7299         
7300         * dbus/dbus-auth.c:
7301         (handle_server_data_external_mech): Set pid from the credentials
7302         obtained from the socket
7303         
7304         * dbus/dbus-connection.c:
7305         (dbus_connection_get_unix_process_id): New function
7306         
7307         * dbus/dbus-connection.h: 
7308         Add prototype for dbus_connection_get_unix_process_id
7309         
7310         * dbus/dbus-transport.c:
7311         (_dbus_transport_get_unix_process_id): New function
7312         
7313         * dbus/dbus-transport.h:
7314         Add prototype for _dbus_transport_get_unix_process_id
7315         
7316 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7317
7318         * dbus/dbus-message.c: Message counter fix, patch by Christian
7319         Hammond <chipx86@gnupdate.org>
7320
7321 2004-07-18  Seth Nickell  <seth@gnome.org>
7322
7323         * python/dbus.py:
7324         * python/dbus_bindings.pyx.in:
7325         * python/tests/test-client.py:
7326
7327         Add dbus.ByteArray and dbus_bindings.ByteArray
7328         types so that byte streams can be passed back.
7329
7330         Give jdahlin the heaps of credit that are so
7331         rightfully his.
7332         
7333 2004-07-12  Seth Nickell  <seth@gnome.org>
7334
7335         * python/dbus.py:
7336
7337         Add message argument to the default object_method_handler
7338         function.
7339         
7340         * python/dbus_bindings.pyx.in:
7341
7342         Automatically return NIL when passed an empty list
7343         (we can't pass back a list since lists are typed
7344         and we don't have any idea what type the the client
7345         intended the list to be... :-( )
7346         
7347 2004-07-10  Seth Nickell  <seth@gnome.org>
7348
7349         * python/examples/Makefile.am:
7350
7351         Fix distcheck breakage caused by new examples.
7352
7353 2004-07-10  Seth Nickell  <seth@gnome.org>
7354
7355         * python/dbus.py:
7356
7357         Add "message" argument to service-side dbus.Object
7358         methods. This will break existing services written
7359         using the python bindings, but will allow extraction
7360         of all the message information (e.g. who its from).
7361
7362         Add improved "object oriented" signal handling/emission.
7363         
7364         * python/examples/example-service.py:
7365
7366         Nix this example.
7367         
7368         * python/examples/example-signal-emitter.py:
7369         * python/examples/example-signal-recipient.py:
7370
7371         Two new examples that show how to emit and receive
7372         signals using the new APIs.
7373         
7374         * python/examples/example-signals.py:
7375         * python/examples/gconf-proxy-service.py:
7376         * python/examples/gconf-proxy-service2.py:
7377
7378         Add "message" argument to service methods.
7379
7380 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7381
7382         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7383         * dbus/bus.c (dbus_bus_get_unix_user)
7384         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7385         method of org.freedesktop.DBus interface.
7386
7387         * bus/dispatch.c: test case
7388
7389 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7390
7391         * python/Makefile.am: switched include directory from glib/ to dbus/
7392         since dbus-glib.h moved
7393  
7394 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7395
7396         * configure.in: prevent building the gcj stuff and libxml loader
7397         since they are broken.
7398
7399 2004-06-20  Havoc Pennington  <hp@redhat.com>
7400
7401         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7402         codes from the dbus error names
7403         
7404         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7405         as dbus/dbus-glib.h and that breakage is now visible due to 
7406         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7407         
7408         * glib/dbus-glib.h: s/gproxy/g_proxy/
7409
7410         * dbus/dbus-shared.h: new header to hold stuff shared with
7411         binding APIs
7412         
7413         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7414         than dbus-errors.h
7415
7416         * glib/dbus-glib.h (dbus_set_g_error): move to
7417         dbus-glib-lowlevel.h
7418
7419         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7420         of stuff to enable this
7421
7422         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7423
7424         * a bunch of other changes with the same basic "separate glib 
7425         bindings from dbus.h" theme
7426         
7427 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7428
7429         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7430
7431         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7432
7433 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7434
7435         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7436         the reply value of the ServiceExists message.
7437
7438 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7439
7440         * python/dbus_bindings.pyx.in: No longer need to parse path
7441         elements and pass them as arrays of strings.  The C API now
7442         accepts plain path strings.
7443         (_build_parsed_path): removed 
7444
7445 2004-06-07  Havoc Pennington  <hp@redhat.com>
7446
7447         * doc/TODO: remove auto-activation item since it's done; sort
7448         items by importance/milestone
7449
7450 2004-06-07  Havoc Pennington  <hp@redhat.com>
7451
7452         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7453         random signature when using REQUIRED_FIELDS (this hack won't work
7454         in the long term)
7455
7456         * dbus/dbus-message.c: change the signature to be a header field,
7457         instead of message->signature special-case string. Incremental
7458         step forward. Then we can fix up code to send the signature in the
7459         message, then fix up code to validate said signature, then fix up
7460         code to not put the typecodes inline, etc.
7461         (load_one_message): don't make up the signature after the fact
7462         (decode_header_data): require signature field for the known
7463         message types
7464
7465         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7466
7467         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7468
7469 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7470
7471         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7472
7473         * mono/Handler.cs: Updated to follow new path argument for
7474         (un-)registering objects.
7475
7476         * mono/example/Makefile.am:
7477         * mono/Makefile.am:
7478         * configure.in: Bumped required version for mono and use new -pkg
7479         syntax for deps
7480
7481 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7482
7483         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7484         registration functions take the path argument as char* instead of
7485         char**.
7486
7487         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7488         split off the path decompostion part of
7489         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7490         warnings. 
7491
7492         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7493         
7494 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7495  
7496         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7497         machine approach.  A state is implemented as a function that
7498         handles incoming events as specified for that state.
7499         
7500         * doc/dbus-specification.xml: Update auth protocol state machine
7501         specification to match implementation.  Remove some leftover
7502         base64 examples.
7503
7504 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7505
7506         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7507         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7508         quiet doxygen.
7509
7510         * Doxyfile.in: remove deprecated options.
7511
7512         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7513         glib/test-thread.h, glib/test-thread-client.c,
7514         glib/test-thread-server.c, glib/test-profile.c,
7515         glib/test-dbus-glib.c: remove these unused files.
7516
7517 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7518
7519         * dbus/dbus-object-tree.c
7520         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7521         non-fallback handlers (bug #684).
7522         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7523         (find_subtree_recurse): report wether the returned subtree is an
7524         exact match or a "fallback" match higher up in the tree.
7525         (object_tree_test_iteration): update test case.
7526
7527 2004-06-01  Seth Nickell  <seth@gnome.org>
7528
7529         * python/dbus_bindings.pyx.in:
7530         * python/tests/test-client.py:
7531
7532         Round off basic type support. Add dicts (yay!), and 
7533         remaining array types.
7534
7535         Make MessageIter more general so it works for dicts too.
7536
7537         Mark all loop variables as C integers.
7538         
7539 2004-05-31  Havoc Pennington  <hp@redhat.com>
7540
7541         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7542         "in" before "out"
7543
7544         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7545
7546         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7547         option that runs the tests, and start filling in some code
7548         including for starters just dumping the interfaces to stdout
7549
7550         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7551
7552         * test/data/valid-introspection-files/lots-of-types.xml: test of
7553         an example introspection file
7554
7555         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7556         "node" (I think...)
7557
7558 2004-05-31  Seth Nickell  <seth@gnome.org>
7559
7560         * python/dbus_bindings.pyx.in:
7561         * python/tests/test-client.py:
7562
7563         Test Suite: 1
7564         Python Bindings: 0
7565
7566         Fix string array memory trashing bug... oops...
7567
7568 2004-05-30  Seth Nickell  <seth@gnome.org>
7569
7570         * python/dbus.py:
7571
7572         Add a nicer-but-less-flexible alternate API for handling 
7573         calls to virtual objects in dbus.ObjectTree.
7574
7575         Screw up the argument order to the dbus.Object constructor
7576         for consistency with dbus.ObjectTree (and to make dbus_methods
7577         optional for future extension)
7578         
7579         * python/examples/Makefile.am:
7580         * python/examples/gconf-proxy-service.py:
7581         * python/examples/gconf-proxy-service2.py:
7582
7583         Alternate implementation of gconf-proxy-service using the
7584         nicer dbus.ObjectTree API.
7585         
7586         * python/examples/example-service.py:
7587         * python/tests/test-server.py
7588
7589         Reverse the argument order to deal with dbus.Object constructor
7590         changes.
7591         
7592 2004-05-30  Seth Nickell  <seth@gnome.org>
7593
7594         * python/examples/example-client.py:
7595         * python/examples/example-service.py:
7596
7597         Take it back. Lists seem to work but they're broken
7598         in the test suite. Make the base examples use
7599         lists (works fine).
7600
7601 2004-05-30  Seth Nickell  <seth@gnome.org>
7602
7603         * python/dbus_bindings.pyx.in:
7604         * python/tests/test-client.py:
7605
7606         Add some more tests and fix errors that crop up.
7607         Unfortunately, currently it seems like marshalling
7608         and unmarshalling of lists is completely broken :-(
7609
7610 2004-05-30  Seth Nickell  <seth@gnome.org>
7611
7612         * python/dbus_bindings.pyx.in:
7613
7614         Add support for ObjectPath type.
7615
7616         * python/dbus.py:
7617
7618         Refactor message handling code to a common function.
7619         
7620         * python/tests/test-client.py:
7621         * python/tests/test-server.py:
7622
7623         Add tests that check to make sure values of all types
7624         can be echoed from a service w/o mangling.
7625         
7626 2004-05-29  Seth Nickell  <seth@gnome.org>
7627
7628         * python/dbus.py:
7629
7630         Add ObjectTree class which allows implementation
7631         of trees of "virtual" objects. Basically the python
7632         wrapper for "register_fallback".
7633         
7634         * python/examples/Makefile.am
7635         * python/examples/gconf-proxy-client.py:
7636         * python/examples/gconf-proxy-service.py:
7637
7638         Implement a simple GConf proxy service that supports
7639         get/set on string and int GConf keys using the ObjectTree.
7640         
7641 2004-05-29  Seth Nickell  <seth@gnome.org>
7642
7643         * python/dbus.py:
7644         * python/examples/example-client.py:
7645         * python/examples/example-service.py:
7646         * python/examples/list-system-services.py:
7647
7648         Add SessionBus, SystemBus and ActivationBus classes
7649         so you don't need to know the special little BUS_TYPE
7650         flag.
7651         
7652 2004-05-29  Havoc Pennington  <hp@redhat.com>
7653
7654         * bus/config-parser.c (process_test_valid_subdir): temporarily
7655         stop testing config parser OOM handling, since expat has issues
7656         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7657
7658         * bus/dbus-daemon-1.1.in: change requested_reply to
7659         send_requested_reply/receive_requested_reply so we can send the
7660         replies, not just receive them.
7661
7662         * bus/config-parser.c: parse the new
7663         send_requested_reply/receive_requested_reply
7664
7665         * bus/policy.c (bus_client_policy_check_can_send): add
7666         requested_reply argument and use it
7667
7668         * bus/bus.c (bus_context_check_security_policy): pass through
7669         requested_reply status to message send check
7670
7671         * bus/system.conf.in: adapt to requested_reply change
7672         
7673 2004-05-28  Havoc Pennington  <hp@redhat.com>
7674
7675         * test/glib/test-service-glib.c (main): remove unused variable
7676
7677         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7678
7679         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7680         from the enum, no longer in use.
7681
7682         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7683         works right.
7684
7685         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7686         whether error_name passed in is a valid error name.
7687
7688 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7689
7690         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7691         OBJECT_PATH and OBJECT_PATH_ARRAY
7692
7693 2004-05-28  Seth Nickell  <seth@gnome.org>
7694
7695         * python/examples/Makefile.am:
7696
7697         Forget to add Makefile.am. Do not pass go.
7698
7699 2004-05-28  Michael Meeks  <michael@ximian.com>
7700
7701         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7702         fix no int64 case.
7703
7704         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7705
7706         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7707         (_dbus_message_iter_get_basic_type_array): impl.
7708         drastically simplify ~all relevant _get methods to use these.
7709         (_dbus_message_iter_append_basic_array),
7710         (dbus_message_iter_append_basic): impl
7711         drastically simplify ~all relevant _append methods to use these.
7712
7713         * dbus/dbus-message-builder.c (parse_basic_type) 
7714         (parse_basic_array, lookup_basic_type): impl.
7715         (_dbus_message_data_load): prune scads of duplicate /
7716         cut & paste coding.
7717
7718         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7719         (_dbus_demarshal_basic_type): implement,
7720         (demarshal_and_validate_len/arg): beef up debug.
7721         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7722
7723 2004-05-27  Seth Nickell  <seth@gnome.org>
7724
7725         * configure.in:
7726         * python/Makefile.am:
7727
7728         Include the example python apps in the tarball.
7729         
7730         * python/examples/list-system-services.py
7731
7732         Add a python new example that fetches the list of services
7733         from the system bus.
7734         
7735 2004-05-27  Seth Nickell  <seth@gnome.org>
7736
7737         * python/dbus.py:
7738         * python/dbus_bindings.pyx.in:
7739
7740         Fix failure to notify that a signal was not handled,
7741         resulted in hung functions.
7742         
7743 2004-05-25  Colin Walters  <walters@redhat.com>
7744
7745         * tools/dbus-monitor.c (main): Monitor all types of messages.
7746
7747 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7748
7749         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7750         which unregisters the object path and disposes the handler.
7751
7752 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7753  
7754         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7755          
7756         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7757         operands to && so we call dbus_message_iter_next () for the last
7758         argument also.
7759
7760 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7761
7762         * dbus/dbus-object-tree.c
7763         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7764         children even if the requested path isn't registered.
7765         (object_tree_test_iteration): test object_tree_list_registered.
7766
7767         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7768         it to 0.
7769         
7770 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7771
7772         * doc/TODO: Remove resolved items.
7773
7774         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7775         field.
7776         
7777         * bus/connection.c (bus_connections_expect_reply): Enforce the
7778         per-connection limit on pending replies.
7779         
7780         Patch from Jon Trowbridge <trow@ximian.com>:
7781  
7782         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7783         up a watch that triggers a config reload when one end of the pipe
7784         becomes readable.
7785         (signal_handler): Instead of doing the config reload in our SIGHUP
7786         handler, just write to the reload pipe and let the associated
7787         watch handle the reload when control returns to the main loop.
7788  
7789         * bus/driver.c (bus_driver_handle_reload_config): Added.
7790         Implements a ReloadConfig method for requesting a configuration
7791         file reload via the bus driver.
7792  
7793 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7794
7795         * HACKING: Updated release instructions concerning the wiki page.
7796
7797 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7798
7799         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7800         filter against auth->allowed_mechs; we only add allowed mechs in
7801         record_mechanisms().
7802  
7803         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7804         ALLOWED_MECHS to auth-script format so we can set the list of
7805         allowed mechanisms.
7806  
7807         * data/auth/client-out-of-mechanisms.auth-script: New test to
7808         check client disconnects when it is out of mechanisms to try.
7809  
7810         * dbus/dbus-auth.c (process_command): Remove check for lines
7811         longer that 1 MB; we only buffer up maximum 16 kB.
7812  
7813         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7814         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7815         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7816         assume there might be unused bytes.
7817  
7818         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7819         client-out-of-mechs, it is handled in process_reject(). Move check
7820         for max failures to send_rejected(), as it's a server-only thing.
7821
7822         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7823         send_auth(), send_data(), send_rejected(), send_error(),
7824         send_ok(), send_begin() and send_cancel().
7825
7826 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7827
7828         Remove base64 encoding, replace with hex encoding. Original patch
7829         from trow@ximian.com, added error handling.
7830
7831         * dbus/dbus-string.c (_dbus_string_base64_encode)
7832         (_dbus_string_base64_decode): Remove.
7833         (_dbus_string_hex_decode): Add end_return argument so we can
7834         distinguish between OOM and invalid hex encoding.
7835         (_dbus_string_test): Remove base64 tests and add test case for
7836         invalid hex.
7837
7838         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7839         Replace base64 with hex.
7840
7841         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7842         for invalid hex encoded data in auth protocol.
7843
7844 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7845
7846         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7847         leak.
7848
7849 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7850
7851         * mono/dbus-sharp.dll.config.in: Added for GAC
7852         * mono/dbus-sharp.snk: Added for GAC
7853         * mono/Assembly.cs.in: Added for GAC
7854         * mono/Makefile.am: Changes for GAC installation        
7855         * configure.in: Added refs for dbus-sharp.dll.config.in and
7856         Assembly.cs.in. More fixes for mono testing
7857         * mono/example/Makefile.am: Changed var to CSC
7858         * Makefile.am: Changed flag name to DBUS_USE_CSC
7859
7860 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7861
7862         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7863         * mono/doc/*: Added documentation framework
7864         * configure.in: Added monodoc check
7865         * README: Added description of mono configure flags
7866
7867 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7868
7869         * doc/dbus-specification.xml: Added a "Required" column to the 
7870         header fields table and changed the "zero or more" verbage in
7871         the above paragraph to read "The header must contain the required 
7872         named header fields and zero or more of the optional named header 
7873         fields".
7874         * test/data/invalid-messages/*.message: Added the required PATH 
7875         named header field to the tests so that they don't fail on 
7876         'Missing path field'
7877
7878 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7879
7880         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7881         the stack by implicitly defining variable and parameter types and
7882         removing the hack of defining C pointers as python objects and later
7883         casting them.
7884
7885 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7886
7887         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7888
7889 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7890
7891         * mono/DBusType/Dict.cs: Handle empty dicts
7892         * mono/DBusType/Array.cs: Handle empty arrays
7893         * mono/Arguments.cs: Handle empty arguments
7894
7895 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7896
7897         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7898         field
7899
7900 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7901
7902         * test/data/valid-messages/standard-*.message: Update message
7903         test scripts to new header field names.
7904
7905 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7906
7907         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7908         overflow to times_we_did_each_thing array which would chop off the
7909         first character of the failure_dir string. Increased the size of
7910         the array to 7 to reflect the number of random mutation functions
7911         we have.
7912
7913 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7914
7915         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7916         unix_server->watch here, it is unreffed in disconnect.
7917         (_dbus_server_new_for_tcp_socket): convert NULL host to
7918         "localhost" here so we don't append NULL to address.
7919         
7920         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7921         various addresses, including tcp with no explicit host.
7922
7923 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7924
7925         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7926         fix incorrect setting of .name_offset in the HeaderField (it was
7927         off by two bytes, positioned right after the name and typecode)
7928
7929         * bus/bus.c (bus_context_new, bus_context_unref): test before
7930         calling dbus_server_free_data_slot and _dbus_user_database_unref
7931         in case of an error.
7932
7933         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7934         by libdbus-gtool.
7935
7936 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7937
7938         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7939         _dbus_poll() instead of select().
7940
7941 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7942
7943         * bus/main.c (signal_handler): Reload the configuration files
7944         on SIGHUP.
7945         (main): Set up our SIGHUP handler.
7946
7947         * bus/bus.c (struct BusContext): Store the config file, user and
7948         fork flag in the BusContext.
7949         (process_config_first_time_only): Added.  Contains the code
7950         (previously in bus_context_new) for setting up the BusContext from
7951         the BusConfigParser that should only be run the first time the
7952         config files are read.
7953         (process_config_every_time): Added.  Contains the code (previously
7954         in bus_context_new) for setting up the BusContext from the
7955         BusConfigParser that should be run every time the config files are
7956         read.
7957         (load_config): Added.  Builds a BusConfigParser from the config
7958         files and passes the resulting structure off to
7959         process_config_first_time_only (assuming this is the first time)
7960         and process_config_every_time.
7961         (bus_context_new): All of the config-related code has been moved
7962         to process_config_first_time_only and process_config_every_time.
7963         Now this function just does the non-config-related initializations
7964         and calls load_config.
7965         (bus_context_reload_config): Added.
7966
7967 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7968
7969         * bus/driver.c (bus_driver_handle_get_service_owner):
7970         implement a GetServiceOwner method.
7971         * doc/dbus-specification.xml: document it.
7972         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7973         
7974         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7975         implement, using the bus GetServiceOwner method.
7976
7977         * test/glib/test-dbus-glib.c:
7978         use dbus_gproxy_new_for_service_owner so that we can receive the
7979         signal. 
7980
7981 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7982
7983         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7984         dbus/dbus-message.c, dbus/dbus-protocol.h
7985         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7986
7987         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7988         dbus/dbus-message.c, dbus/dbus-protocol.h
7989         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7990
7991         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7992         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7993         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7994
7995         * doc/dbus-specification.xml (Header Fields Table):
7996         s/SERVICE/DESTINATION
7997         s/SENDER_SERVICE/SENDER
7998
7999
8000 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8001
8002         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8003         a few seconds.
8004
8005 2004-04-13  Michael Meeks  <michael@ximian.com>
8006
8007         * glib/dbus-gobject.c (handle_introspect): split out
8008         (introspect_properties): this.
8009         (handle_introspect): implement this.
8010
8011         * test/glib/Makefile.am: use the absolute path so the bus
8012         daemon's chdir ("/") doesn't kill us dead.
8013
8014         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8015
8016 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8017
8018         * bus/config-parser.c (struct BusConfigParser): Added
8019         included_files field.
8020         (seen_include): Added.  Checks whether or not a file has already
8021         been included by any parent BusConfigParser.
8022         (bus_config_parser_new): Copy the parent's included_files.
8023         (include_file): Track which files have been included, and fail on
8024         circular inclusions.
8025         (process_test_valid_subdir): Changed printf to report if we are
8026         testing valid or invalid conf files.
8027         (all_are_equiv): Changed printf to be a bit clearer about
8028         what we are actually doing.
8029         (bus_config_parser_test): Test invalid configuration files.
8030
8031 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8032
8033         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8034         argument.  If non-null, the newly-constructed BusConfigParser will
8035         be initialized with the parent's BusLimits instead of the default
8036         values.
8037         (include_file): When including a config file, pass in
8038         the current parser as the parent and then copy the BusLimits
8039         from the included BusConfigParser pack to the current parser.
8040         (process_test_valid_subdir): Renamed from process_test_subdir.
8041         (process_test_equiv_subdir): Added.  Walks through a directory,
8042         descending into each subdirectory and loading the config files
8043         it finds there.  If any subdirectory contains two config files
8044         that don't produce identical BusConfigParser structs, fail.
8045         For now, the BusConfigParser's BusPolicies are not compared.
8046         (bus_config_parser_test): Call both process_test_valid_subdir and
8047         process_test_equiv_subdir.
8048
8049         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8050         argument and pass it along to the call to bus_config_parser_new.
8051         Also made a few small changes to allow this code to compile.
8052
8053         * bus/config-loader-expat.c (bus_config_load): Take a parent
8054         argument and pass it along to the call to bus_config_parser_new.
8055
8056         * bus/bus.c (bus_context_new): Load the config file
8057         with a NULL parent argument.
8058
8059 2004-03-29  Michael Meeks  <michael@ximian.com>
8060
8061         * glib/dbus-gobject.c (introspect_properties): split
8062         out, fix mangled 'while' flow control.
8063         (introspect_signals): implement.
8064         (handle_introspect): update.
8065
8066 2004-03-29  Michael Meeks  <michael@ximian.com>
8067
8068         * glib/dbus-gobject.c (set_object_property): split out / 
8069         re-work, use the property type, and not the message type(!)
8070         (get_object_property): ditto.
8071
8072         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8073         (dbus_gvalue_marshal): make this code re-usable, needed
8074         for signals too, also on both proxy and server side.
8075         Re-write for more efficiency / readability.
8076
8077 2004-03-29  Michael Meeks  <michael@ximian.com>
8078
8079         * dbus/dbus-message.c
8080         (dbus_message_new_error_printf): impl.
8081
8082         * dbus/dbus-connection.c
8083         (dbus_connection_unregister_object_path): fix warning.
8084
8085         * configure.in: fix no-mono-installed situation.
8086
8087 2004-03-27  Havoc Pennington  <hp@redhat.com>
8088
8089         Patch from Timo Teräs:
8090         
8091         * tools/dbus-send.c (main): if --print-reply, assume type is
8092         method call; support boolean type args
8093         
8094         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8095         bunch of memleak and logic bugs
8096         
8097 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8098
8099         * mono/Arguments.cs:
8100         * mono/Introspector.cs:
8101         * mono/Handler.cs:
8102         * mono/InterfaceProxy.cs:
8103         * mono/Message.cs
8104         * mono/ProxyBuilder.cs:
8105         * mono/Service.cs:
8106         Added InterfaceProxy class to avoid building proxies for every
8107         object.
8108
8109         * dbus-message.h:
8110         * dbus-message.c (dbus_message_append_args_valist)
8111         (dbus_message_iter_get_object_path)
8112         (dbus_message_iter_get_object_path_array)
8113         (dbus_message_iter_append_object_path)
8114         (dbus_message_iter_append_object_path_array):
8115         Added object_path iter functions to handle OBJECT_PATH arguments
8116         
8117 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8118
8119         First checkin of mono bindings.
8120         * configure.in:
8121         * Makefile.am:
8122         Build stuff for the bindings
8123         * dbus-sharp.pc.in: Added for pkgconfig
8124         
8125 2004-03-21  Havoc Pennington  <hp@redhat.com>
8126
8127         * test/test-service.c (main): remove debug spew
8128
8129 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8130
8131         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8132         arrays
8133
8134         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8135         (dbus_message_iter_init_array_iterator)
8136         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8137         indicate whether the iterator is empty
8138
8139         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8140         warnings
8141
8142 2004-03-19  Havoc Pennington  <hp@redhat.com>
8143
8144         * NEWS: 0.21 updates
8145
8146         * configure.in: 0.21
8147
8148         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8149         
8150         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8151         you don't need pyrex to make dist
8152
8153         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8154         sources; run moc
8155         
8156 2004-03-18  Richard Hult  <richard@imendio.com>
8157
8158         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8159         (dbus_message_set_auto_activation): Add doxygen docs.
8160
8161 2004-03-16  Richard Hult  <richard@imendio.com>
8162
8163         * bus/activation.c: (bus_activation_service_created),
8164         (bus_activation_send_pending_auto_activation_messages),
8165         (bus_activation_activate_service):
8166         * bus/activation.h:
8167         * bus/dispatch.c: (bus_dispatch),
8168         (check_nonexistent_service_auto_activation),
8169         (check_service_auto_activated),
8170         (check_segfault_service_auto_activation),
8171         (check_existent_service_auto_activation), (bus_dispatch_test):
8172         * bus/driver.c: (bus_driver_handle_activate_service):
8173         * bus/services.c: (bus_registry_acquire_service):
8174         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8175         (dbus_message_get_auto_activation):
8176         * dbus/dbus-message.h:
8177         * dbus/dbus-protocol.h: Implement auto-activation.
8178         
8179         * doc/dbus-specification.xml: Add auto-activation to the spec.
8180
8181 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8182
8183         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8184         fix a bug with CUSTOM types.
8185
8186         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8187         a unit test for this bug (used to fail).
8188
8189 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8190
8191         * bus/activation.c:
8192         (babysitter_watch_callback): notify all pending activations waiting for
8193           the same exec that the activation failed.
8194         (bus_activation_activate_service): shortcut the activation if we 
8195           already waiting for the same executable to start up.
8196
8197 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8198
8199         * bus/activation.c: 
8200         - Added service file reloading. 
8201           Each service files directory is kept in an hash table in 
8202           BusActivation and each BusActivationEntry knows what .service-file it
8203           was read from. So when you try to activate a service the bus will 
8204           check if it's been updated, removed or if new .service-files has 
8205           been installed.
8206         - Test code at the bottom for the service file reloading.
8207         * bus/test-main.c: (main):
8208         * bus/test.h:
8209         - added service reloading test.
8210         * dbus/dbus-sysdeps.c: 
8211         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8212
8213 2004-03-08  Michael Meeks  <michael@ximian.com>
8214
8215         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8216         bail immediately if disconnected, to avoid busy loop.
8217
8218         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8219         cleanup cut/paste/inefficiency.
8220
8221 2004-03-01  David Zeuthen  <david@fubar.dk>
8222
8223         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8224         bug where args were used twice. This bug resulted in a segfault
8225         on a Debian/PPC system when starting the messagebus daemon. Include
8226         dbus-sysdeps.h for DBUS_VA_COPY
8227
8228         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8229
8230         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8231         appropriate va_copy implementation. From GLib
8232         
8233 2004-02-24  Joe Shaw  <joe@ximian.com>
8234
8235         * bus/services.c (bus_registry_acquire_service): We need to pass
8236         in the service name to dbus_set_error() to prevent a crash.
8237
8238 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8239
8240         * AUTHORS: Reveal my True identity.
8241
8242 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8243
8244         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8245         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8246
8247 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8248
8249         * doc/TODO: Added not about better error check of configuration files.
8250
8251 2003-12-02  Richard Hult  <richard@imendio.com>
8252
8253         * Update AFL version to 2.0 throughout the source files to reflect
8254         the update that was done a while ago.
8255
8256 2003-12-02  Richard Hult  <richard@imendio.com>
8257
8258         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8259         wrote_dict_key to FALSE on the iter that the dict is appended to,
8260         just like when appending other types. Fixes a bug where a dict
8261         couldn't be put inside a dict.
8262         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8263         (message_iter_test, _dbus_message_test): Add test case for dict
8264         inside dict.
8265
8266 2003-12-01  David Zeuthen  <david@fubar.dk>
8267
8268         * python/dbus.py: Add the actual message when calling the reciever
8269         of a signal such that parameters can be inspected. Add the method
8270         remove_signal_receiver
8271         
8272 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8273
8274         * bus/*.[ch]:
8275         * dbus/*.[ch]:
8276         * glib/*.[ch]: Made ref functions return the pointer
8277
8278 2003-11-25  Zack Rusin  <zack@kde.org>
8279
8280         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8281
8282         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8283         wrappers,
8284
8285         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8286         the Integrator and to better fit with the server,
8287
8288 2003-11-24  Zack Rusin  <zack@kde.org>
8289
8290         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8291         the integrator handles it now
8292
8293         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8294         since QTimer wasn't really meant to be used the way DBusTimeout is
8295
8296 2003-11-24  Zack Rusin  <zack@kde.org>
8297
8298         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8299         Integrator class which integrates D-BUS with the Qt event loop,
8300
8301         * qt/connection.h, qt/connection.cpp: Move all the code which
8302         was dealing with D-BUS integration to the Integrator class,
8303         and start using Integrator,
8304
8305 2003-11-23  Zack Rusin  <zack@kde.org>
8306
8307         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8308         wrapper
8309
8310         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8311         switching namespaces to DBusQt, reworking the class,
8312
8313         * Makefile.cvs: switching dependencies so that it matches KDE 
8314         schematics,
8315         
8316         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8317         the library
8318
8319 2003-11-19  Havoc Pennington  <hp@redhat.com>
8320
8321         * NEWS: update
8322
8323         * configure.in: bump version to 0.20
8324
8325         * configure.in (have_qt): add yet another place to look for qt
8326         (someone hand trolltech a .pc file...)
8327
8328 2003-11-01  Havoc Pennington  <hp@redhat.com>
8329
8330         * doc/dbus-specification.xml: add state machine docs on the auth
8331         protocol; just a first draft, I'm sure it's wrong.      
8332
8333 2003-10-28  David Zeuthen  <david@fubar.dk>
8334
8335         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8336         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8337         
8338 2003-10-28  Havoc Pennington  <hp@redhat.com>
8339
8340         * dbus/dbus-message.c (get_next_field): delete unused function
8341
8342 2003-10-28  Havoc Pennington  <hp@redhat.com>
8343
8344         * bus/expirelist.c (do_expiration_with_current_time): detect
8345         failure of the expire_func due to OOM
8346
8347         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8348
8349         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8350         NoReply error that's now created by the bus when the service exits
8351
8352 2003-10-28  Havoc Pennington  <hp@redhat.com>
8353
8354         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8355         tests for set_path, set_interface, set_member, etc.
8356
8357         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8358
8359         * dbus/dbus-message.c (set_string_field): always just delete and
8360         re-append the field; accept NULL for deletion
8361         (re_align_fields_recurse): reimplement
8362         
8363 2003-10-26  Havoc Pennington  <hp@redhat.com>
8364
8365         * dbus/dbus-connection.c: fix docs to properly describe the
8366         disconnected message
8367         (_dbus_connection_notify_disconnected): remove this function; 
8368         we can't synchronously add the disconnected message, we have to 
8369         do it after we've queued any remaining real messages
8370         (_dbus_connection_get_dispatch_status_unlocked): queue the
8371         disconnect message only if the transport has finished queueing all
8372         its real messages and is disconnected.
8373         (dbus_connection_disconnect): update the dispatch status here
8374
8375 2003-10-22  Havoc Pennington  <hp@redhat.com>
8376
8377         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8378
8379         * bus/connection.c (bus_transaction_send_from_driver): set the
8380         destination to the connection's base service
8381
8382 2003-10-20  Havoc Pennington  <hp@redhat.com>
8383
8384         hmm, make check is currently not passing.
8385         
8386         * doc/dbus-specification.xml: add requirement that custom type
8387         names follow the same rules as interface names.
8388
8389         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8390         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8391         'map'
8392
8393         * doc/dbus-specification.xml: update type codes to match
8394         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8395         CUSTOM. Add type OBJECT_PATH to the spec.
8396
8397 2003-10-17  Havoc Pennington  <hp@redhat.com>
8398
8399         * bus/driver.c (create_unique_client_name): use "." as separator
8400         in base service names instead of '-'
8401
8402         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8403         byte at the end of the string
8404
8405         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8406         optimization macros since string validation seems to be a slow
8407         point.
8408         
8409         * doc/dbus-specification.xml: restrict valid
8410         service/interface/member/error names. Add test suite code for the
8411         name validation.
8412
8413         * dbus/dbus-string.c: limit service/interface/member/error names 
8414         to [0-9][A-Z][a-z]_
8415
8416         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8417         format arg to verbose spew
8418
8419         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8420         memory, return instead of g_error
8421
8422         * test/test-service.c (path_message_func): support emitting a
8423         signal on request
8424
8425         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8426         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8427         assuming the activation bus was the session bus so that services
8428         started manually will still register.
8429         (init_connections_unlocked): fix so that in OOM situation we get
8430         the same semantics when retrying the function
8431         
8432         * test/test-service.c (main): change to use path registration, to
8433         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8434         than DBUS_BUS_SESSION
8435
8436 2003-10-16  Havoc Pennington  <hp@redhat.com>
8437
8438         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8439
8440         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8441         coverage of the tests
8442         (coverage-report.txt): don't move the .da and .bbg files around
8443
8444 2003-10-16  Havoc Pennington  <hp@redhat.com>
8445
8446         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8447         to put there
8448
8449 2003-10-16  Havoc Pennington  <hp@redhat.com>
8450
8451         * bus/connection.c (bus_pending_reply_expired): either cancel or
8452         execute, not both
8453         (bus_connections_check_reply): use unlink, not remove_link, as we
8454         don't want to free the link; fixes double free mess
8455
8456         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8457         where no reply was received
8458
8459         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8460         fix a refcount leak
8461
8462         * bus/signals.c (match_rule_matches): add special cases for the
8463         bus driver, so you can match on sender/destination for it.
8464
8465         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8466         DBUS_PRINT_BACKTRACE is set
8467
8468         * dbus/dbus-internals.c: add pid to assertion failure messages
8469
8470         * dbus/dbus-connection.c: add message type code to the debug spew
8471
8472         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8473         sender=foo not service=foo
8474
8475         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8476         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8477         DBUS_ACTIVATION_ADDRESS instead
8478
8479         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8480         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8481
8482         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8483         context struct
8484
8485         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8486         (dbus_message_iter_get_object_path_array): new function (half
8487         finished, disabled for the moment)
8488         
8489         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8490         DBUS_MESSAGE_TYPE_ERROR
8491
8492         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8493         avoid redirecting stderr to /dev/null
8494         (babysit): close stdin if not doing the "exit_with_session" thing
8495
8496         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8497         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8498         stdout/stdin, so things don't get confused
8499         
8500         * bus/system.conf.in: fix to allow replies, I modified .conf
8501         instead of .conf.in again.
8502
8503 2003-10-14  David Zeuthen  <david@fubar.dk>
8504
8505         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8506         argtype to arg_type when raising unknown arg type exception.
8507         Changed type list to reflect the changes in dbus-protocol.h so 
8508         the bindings actually work.
8509
8510 2003-10-14  Havoc Pennington  <hp@redhat.com>
8511
8512         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8513         to have a bug keeping it from outputting the .da files sometimes
8514         (string_get_string): don't append garbage nul bytes to the string.
8515
8516 2003-10-15  Seth Nickell  <seth@gnome.org>
8517
8518         * python/Makefile.am:
8519
8520         Include dbus_h_wrapper.h in the dist tarball.
8521
8522 2003-10-14  Havoc Pennington  <hp@redhat.com>
8523
8524         * bus/bus.c (bus_context_check_security_policy): revamp this to
8525         work more sanely with new policy-based requested reply setup
8526
8527         * bus/connection.c (bus_transaction_send_from_driver): set bus
8528         driver messages as no reply
8529
8530         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8531         requested_reply attribute on allow/deny rules
8532
8533         * bus/system.conf: add <allow requested_reply="true"/>
8534
8535         * bus/driver.c (bus_driver_handle_message): fix check for replies
8536         sent to the bus driver, which was backward. How did this ever work
8537         at all though? I think I'm missing something.
8538
8539         * dbus/dbus-message.c (decode_header_data): require error and
8540         method return messages to have a reply serial field to be valid
8541         (_dbus_message_loader_queue_messages): break up this function;
8542         validate that reply serial and plain serial are nonzero; 
8543         clean up the OOM/error handling.
8544         (get_uint_field): don't return -1 from this
8545         (dbus_message_create_header): fix signed/unsigned bug
8546
8547         * bus/connection.c (bus_connections_expect_reply): save serial of
8548         the incoming message, not reply serial
8549
8550 2003-10-14  Havoc Pennington  <hp@redhat.com>
8551
8552         * bus/connection.c: implement pending reply tracking using
8553         BusExpireList
8554
8555         * bus/bus.c (bus_context_check_security_policy): verify that a
8556         reply is pending in order to allow a reply to be sent. Deny 
8557         messages of unknown type.
8558
8559         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8560
8561         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8562         (bus_context_get_reply_timeout): new
8563
8564 2003-10-13  Seth Nickell  <seth@gnome.org>
8565
8566         * python/Makefile.am:
8567
8568         Pass "make distcheck": remove a couple files from DIST_FILES
8569         that weren't included in the final version.
8570
8571 2003-10-12  Havoc Pennington  <hp@pobox.com>
8572
8573         Added test code that 1) starts an actual bus daemon and 2) uses
8574         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8575         more testing possible, but this is the basic framework.
8576         
8577         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8578         empty proxy lists from the proxy list hash
8579
8580         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8581         couple of return_if_fail checks
8582
8583         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8584         to allocate, so everything is cleared to NULL as it should be.
8585
8586         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8587         source as data to dbus_connection_set_timeout_functions() as the 
8588         timeout functions expected
8589
8590         * test/glib/run-test.sh: add a little script to start up a message
8591         bus and run tests using it
8592
8593         * tools/dbus-launch.1: updates
8594
8595         * tools/dbus-launch.c (main): add --config-file option
8596
8597         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8598         that could never be reached.
8599
8600         * dbus/dbus-message.c (dbus_message_new_method_return) 
8601         (dbus_message_new_error, dbus_message_new_signal): set the
8602         no-reply-expected flag on all these. Redundant, but may
8603         as well be consistent.
8604
8605 2003-10-11  Havoc Pennington  <hp@pobox.com>
8606
8607         * test/decode-gcov.c (function_solve_graph): make broken block
8608         graph a nonfatal error since it seems to be broken. Need to debug
8609         this.
8610
8611         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8612         can't just check type > INVALID < LAST anymore
8613
8614         * dbus/dbus-message.c (dbus_message_get_signature): new function
8615         (dbus_message_has_signature): new function
8616         (struct DBusMessage): add signature field (right now it isn't sent
8617         over the wire, just generated on the fly)
8618         (dbus_message_copy): copy the signature, and init strings to
8619         proper length to avoid some reallocs
8620         (dbus_message_iter_init_array_iterator): return void, since it
8621         can't fail
8622         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8623         (_dbus_message_loader_queue_messages): add silly temporary hack to
8624         fill in message->signature on load
8625
8626         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8627         characters, so they are relatively human-readable.
8628
8629 2003-10-11  Havoc Pennington  <hp@pobox.com>
8630
8631         * dbus/dbus-message.c (_dbus_message_test): add more test
8632         coverage, but #if 0 for now since they uncover a bug 
8633         not fixed yet; I think in re_align_field_recurse()
8634         (re_align_field_recurse): add FIXME about broken assertion
8635
8636         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8637
8638         * bus/connection.c: share a couple code bits with expirelist.c
8639
8640         * bus/expirelist.h, bus/expirelist.c: implement a generic
8641         expire-items-after-N-seconds facility, was going to share between
8642         expiring connections and replies, decided not to use for expiring
8643         connections for now.
8644
8645         * COPYING: include AFL 2.0 (still need to change all the file headers)
8646
8647 2003-10-09  Havoc Pennington  <hp@redhat.com>
8648
8649         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8650         gcc 3.3. Not that we do anything about it yet.
8651
8652         * bus/signals.c (bus_match_rule_parse): impose max length on the
8653         match rule text
8654
8655         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8656
8657 2003-10-09  Havoc Pennington  <hp@redhat.com>
8658
8659         Make matching rules theoretically work (add parser).
8660         
8661         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8662         the case where destination is explicitly specified as bus driver
8663         and someone else is eavesdropping.
8664         
8665         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8666         definition of eavesdropping and assertion
8667
8668         * tools/dbus-send.c (main): use dbus_message_type_from_string
8669
8670         * bus/signals.c (bus_match_rule_parse): implement
8671
8672         * dbus/dbus-message.c (dbus_message_type_from_string): new
8673
8674         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8675
8676 2003-10-02  Havoc Pennington  <hp@pobox.com>
8677
8678         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8679         dbus_gproxy_oneway_call
8680
8681         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8682         (dbus_server_setup_with_g_main): fix to allow calling them more
8683         than once on the same args
8684         (dbus_bus_get_with_g_main): new function
8685
8686 2003-10-02  Havoc Pennington  <hp@redhat.com>
8687
8688         * doc/dbus-tutorial.xml: write some stuff
8689
8690 2003-09-29  Havoc Pennington  <hp@pobox.com>
8691
8692         * configure.in: split checks for Doxygen from XML docs, check for
8693         xmlto
8694
8695         * doc/Makefile.am: XML-ify all the docs, and add a blank
8696         dbus-tutorial.xml
8697
8698 2003-09-29  Havoc Pennington  <hp@pobox.com>
8699
8700         * Merge dbus-object-names branch. To see the entire patch 
8701         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8702         it's huuuuge though.
8703         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8704         
8705 2003-09-28  Havoc Pennington  <hp@pobox.com>
8706
8707         * HACKING: update to reflect new server
8708
8709 2003-09-26  Seth Nickell  <seth@gnome.org>
8710
8711         * python/dbus.py:
8712         * python/examples/example-signals.py:
8713
8714         Start implementing some notions of signals. The API
8715         is really terrible, but they sort of work (with the
8716         exception of being able to filter by service, and to
8717         transmit signals *as* a particular service). Need to
8718         figure out how to make messages come from the service
8719         we registered :-(
8720         
8721         * python/dbus_bindings.pyx.in:
8722
8723         Removed duplicate message_handler callbacks.
8724         
8725 2003-09-25  Havoc Pennington  <hp@redhat.com>
8726
8727         * bus/session.conf.in: fix my mess
8728
8729 2003-09-25  Havoc Pennington  <hp@pobox.com>
8730
8731         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8732
8733 2003-09-25  Seth Nickell  <seth@gnome.org>
8734
8735         * python/examples/example-service.py:
8736
8737         Johan notices complete wrong code in example-service, but
8738         completely wrong in a way that works exactly the same (!).
8739         Johan is confused, how could this possibly work? Example
8740         code fails to serve purpose of making things clear.
8741         Seth fixes.
8742
8743 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8744
8745         * doc/dbus-specification.sgml: don't require header fields
8746         to be 4-byte aligned and specify that fields should be
8747         distinguished from padding by the fact that zero is not
8748         a valid field name.
8749         
8750         * doc/TODO: remove re-alignment item and add item to doc
8751         the OBJECT_PATH type.
8752         
8753         * dbus/dbus-message.c:
8754         (HeaderField): rename the original member to value_offset
8755         and introduce a name_offset member to keep track of where
8756         the field actually begins.
8757         (adjust_field_offsets): remove.
8758         (append_int_field), (append_uint_field),
8759         (append_string_field): don't align the start of the header
8760         field to a 4-byte boundary.
8761         (get_next_field): impl finding the next marhsalled field
8762         after a given field.
8763         (re_align_field_recurse): impl re-aligning a number of
8764         already marshalled fields.
8765         (delete_field): impl deleting a field of any type and
8766         re-aligning any following fields.
8767         (delete_int_or_uint_field), (delete_string_field): remove.
8768         (set_int_field), (set_uint_field): no need to re-check
8769         that we have the correct type for the field.
8770         (set_string_field): ditto and impl re-aligning any
8771         following fields.
8772         (decode_header_data): update to take into account that
8773         the fields aren't 4-byte aligned any more and the new
8774         way to distinguish padding from header fields. Also,
8775         don't exit when there is too much header padding.
8776         (process_test_subdir): print the directory.
8777         (_dbus_message_test): add test to make sure a following
8778         field is re-aligned correctly after field deletion.
8779         
8780         * dbus/dbus-string.[ch]:
8781         (_dbus_string_insert_bytes): rename from insert_byte and
8782         allow the insert of multiple bytes.
8783         (_dbus_string_test): test inserting multiple bytes.
8784
8785         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8786         warning note to docs about having to re-align any
8787         marshalled values following the string.
8788         
8789         * dbus/dbus-message-builder.c:
8790         (append_string_field), (_dbus_message_data_load):
8791         don't align the header field.
8792         
8793         * dbus/dbus-auth.c: (process_test_subdir): print the
8794         directory.
8795         
8796         * test/break-loader.c: (randomly_add_one_byte): upd. for
8797         insert_byte change.
8798         
8799         * test/data/invalid-messages/bad-header-field-alignment.message:
8800         new test case.
8801         
8802         * test/data/valid-messages/unknown-header-field.message: shove
8803         a dict in the unknown field.
8804
8805 2003-09-25  Seth Nickell  <seth@gnome.org>
8806
8807         * python/dbus.py:
8808         * python/dbus_bindings.pyx.in:
8809
8810         Handle return values.
8811         
8812         * python/examples/example-client.py:
8813         * python/examples/example-service.py:
8814
8815         Pass back return values from the service to the client.
8816         
8817 2003-09-24  Seth Nickell  <seth@gnome.org>
8818
8819         * python/dbus.py:
8820
8821         Connect Object methods (when you are sharing an object) up... pass
8822         in a list of methods to be shared. Sharing all the methods just
8823         worked out too weird. You can now create nice Services over the
8824         DBus in Python. :-)
8825         
8826         * python/dbus_bindings.pyx.in:
8827
8828         Keep references to user_data tuples passed into C functions so 
8829         Python doesn't garbage collect on us.
8830
8831         Implement MethodReturn and Error subclasses of Message for creating
8832         DBusMessage's of those types.
8833         
8834         * python/examples/example-client.py:
8835         * python/examples/example-service.py:
8836
8837         Simple example code showing both how create DBus services and objects,
8838         and how to use them.
8839
8840 2003-09-23  Havoc Pennington  <hp@pobox.com>
8841
8842         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8843
8844 2003-09-23  Havoc Pennington  <hp@redhat.com>
8845
8846         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8847         (dbus_gproxy_disconnect_signal): implement
8848         (dbus_gproxy_manager_remove_signal_match): implement
8849         (dbus_gproxy_manager_add_signal_match): implement
8850         (dbus_gproxy_oneway_call): implement
8851
8852 2003-09-23  Havoc Pennington  <hp@pobox.com>
8853
8854         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8855         subclass. This means dropping the transparent thread safety of the
8856         proxy; you now need a separate proxy per-thread, or your own
8857         locking on the proxy. Probably right anyway.
8858         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8859
8860 2003-09-22  Havoc Pennington  <hp@redhat.com>
8861
8862         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8863
8864 2003-09-21  Seth Nickell  <seth@gnome.org>
8865
8866         First checkin of the Python bindings.
8867         
8868         * python/.cvsignore:
8869         * python/Makefile.am:
8870         * python/dbus_bindings.pyx.in:
8871         * python/dbus_h_wrapper.h:
8872
8873         Pieces for Pyrex to operate on, building a dbus_bindings.so
8874         python module for low-level access to the DBus APIs.
8875         
8876         * python/dbus.py:
8877
8878         High-level Python module for accessing DBus objects.
8879
8880         * configure.in:
8881         * Makefile.am:
8882
8883         Build stuff for the python bindings.
8884
8885         * acinclude.m4:
8886
8887         Extra macro needed for finding the Python C header files.
8888
8889 2003-09-21  Havoc Pennington  <hp@pobox.com>
8890
8891         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8892         implementing the proxy manager, didn't get very far.
8893
8894         * dbus/dbus-bus.c (dbus_bus_add_match): new
8895         (dbus_bus_remove_match): new
8896
8897         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8898         path_name argument; adjust the other not-yet-implemented 
8899         gproxy constructors to be what I think they should be.
8900
8901 2003-09-21  Havoc Pennington  <hp@pobox.com>
8902
8903         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8904         by default for message bus connections.
8905
8906         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8907         exit_on_disconnect flag is set and we process the disconnected
8908         signal.
8909         (dbus_connection_set_exit_on_disconnect): new function
8910
8911 2003-09-21  Havoc Pennington  <hp@pobox.com>
8912
8913         Get matching rules mostly working in the bus; only actually
8914         parsing the rule text remains. However, the client side of
8915         "signal connections" hasn't been started, this patch is only the
8916         bus side.
8917         
8918         * dbus/dispatch.c: fix for the matching rules changes
8919         
8920         * bus/driver.c (bus_driver_handle_remove_match)
8921         (bus_driver_handle_add_match): send an ack reply from these
8922         method calls
8923
8924         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8925         arguments, reported by Seth Nickell
8926
8927         * bus/config-parser.c (append_rule_from_element): support
8928         eavesdrop=true|false attribute on policies so match rules 
8929         can be prevented from snooping on the system bus.
8930
8931         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8932         and "destination" in attribute names; fix some docs bugs; 
8933         add eavesdrop=true|false attribute
8934
8935         * bus/driver.c (bus_driver_handle_add_match)
8936         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8937         messages
8938
8939         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8940         rid of broadcast service concept, signals are just always broadcast
8941
8942         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8943         mostly implement matching rules stuff (currently only exposed as signal
8944         connections)
8945
8946 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8947
8948         * doc/dbus-specification.sgml: Change the header field name
8949         to be an enum and update the rest of the spec to reference
8950         the fields using the conventinal name.
8951
8952         * dbus/dbus-protocol.h: update to reflect the spec.
8953
8954         * doc/TODO: add item to remove the 4 byte alignment requirement.
8955         
8956         * dbus/dbus-message.c: Remove the code to generalise the
8957         header/body length and serial number header fields as named
8958         header fields so we can reference field names using the 
8959         protocol values.
8960         (append_int_field), (append_uint_field), (append_string_field):
8961         Append the field name as a byte rather than four chars.
8962         (delete_int_or_uint_field), (delete_string_field): reflect the
8963         fact that the field name and typecode now occupy 4 bytes instead
8964         of 8.
8965         (decode_string_field), (decode_header_data): update to reflect
8966         protocol changes and move the field specific encoding from
8967         decode_string_field() back into decode_header_data().
8968         
8969         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8970         Add utility to aid debugging.
8971         
8972         * dbus/dbus-message-builder.c:
8973         (append_string_field), (_dbus_message_data_load): Update to
8974         reflect protocol changes; Change the FIELD_NAME directive
8975         to HEADER_FIELD and allow it to take the field's conventional
8976         name rather than the actual value.
8977         
8978         * test/data/*/*.message: Update to use HEADER_FIELD instead
8979         of FIELD_NAME; Always align the header on an 8 byte boundary
8980         *before* updating the header length.
8981
8982 2003-09-15  Havoc Pennington  <hp@pobox.com>
8983
8984         * dbus/dbus-pending-call.c: add the get/set object data
8985         boilerplate as for DBusConnection, etc. Use generic object data
8986         for the notify callback.
8987
8988         * glib/dbus-gparser.c (parse_node): parse child nodes
8989
8990         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8991         
8992         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8993         contain functions shared between the convenience lib and the
8994         installed lib
8995
8996         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8997         -export-symbols-regex to the GLib library
8998
8999         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9000         fix the locking in here, and add a default handler for
9001         Introspect() that just returns sub-nodes.
9002
9003 2003-09-14  Havoc Pennington  <hp@pobox.com>
9004
9005         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9006         rather than gfoo consistent
9007
9008         * glib/dbus-gproxy.h: delete for now, move contents to
9009         dbus-glib.h, because the include files don't work right since we
9010         aren't in the dbus/ subdir.
9011         
9012         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9013         (dbus_gproxy_end_call): finish
9014         (dbus_gproxy_begin_call): finish
9015
9016         * glib/dbus-gmain.c (dbus_set_g_error): new
9017
9018         * glib/dbus-gobject.c (handle_introspect): include information
9019         about child nodes in the introspection
9020
9021         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9022         function to help in implementation of introspection
9023
9024         * dbus/dbus-object-tree.c
9025         (_dbus_object_tree_list_registered_and_unlock): new function
9026
9027 2003-09-12  Havoc Pennington  <hp@pobox.com>
9028
9029         * glib/dbus-gidl.h: add common base class for all the foo_info
9030         types
9031
9032         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9033         similar to kdcop
9034
9035         * test/Makefile.am: try test srcdir -ef . in addition to test
9036         srcdir = ., one of them should work (yeah lame)
9037         
9038         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9039         library
9040         
9041         * glib/dbus-gparser.h: make description_load routines return
9042         NodeInfo* not Parser*
9043
9044         * Makefile.am (SUBDIRS): build test dir after all library dirs
9045
9046         * configure.in: add GTK+ detection
9047
9048 2003-09-07  Havoc Pennington  <hp@pobox.com>
9049
9050         * Make Doxygen contented.
9051
9052 2003-09-07  Havoc Pennington  <hp@pobox.com>
9053
9054         * doc/dbus-specification.sgml: more updates
9055
9056 2003-09-06  Havoc Pennington  <hp@pobox.com>
9057
9058         * doc/dbus-specification.sgml: partial updates
9059
9060         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9061         zillionth time; hopefully I edited the right file this time.
9062
9063         * bus/config-parser.c (append_rule_from_element): support
9064         send_type, send_path, receive_type, receive_path
9065
9066         * bus/policy.c: add message type and path to the list of things
9067         that can be "firewalled"
9068
9069 2003-09-06  Havoc Pennington  <hp@pobox.com>
9070
9071         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9072         (dbus_connection_register_object_path): make this not handle
9073         messages to paths below the given path
9074
9075 2003-09-03  Havoc Pennington  <hp@pobox.com>
9076
9077         * test/glib/Makefile.am: add this with random glib-linked test
9078         programs
9079
9080         * glib/Makefile.am: remove the random test programs from here,
9081         leave only the unit tests
9082
9083         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9084         uscore/javacaps conversion, and fix     
9085         (get_object_property, set_object_property): change to .NET
9086         convention for mapping props to methods, set_FooBar/get_FooBar, 
9087         since one language has such a convention we may as well copy it. 
9088         Plus real methods in either getFooBar or get_foo_bar style won't 
9089         collide with this convention.
9090
9091 2003-09-01  Havoc Pennington  <hp@pobox.com>
9092
9093         * glib/dbus-gparser.c: implement
9094
9095         * glib/dbus-gobject.c: start implementing skeletons support
9096
9097         * configure.in: when disabling checks/assert, also define
9098         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9099
9100 2003-09-01  Havoc Pennington  <hp@pobox.com>
9101
9102         * glib/Makefile.am: rearrange a bunch of files and get "make
9103         check" framework set up
9104
9105 2003-08-31  Havoc Pennington  <hp@pobox.com>
9106
9107         * fix build with --disable-tests
9108
9109 2003-08-30  Havoc Pennington  <hp@pobox.com>
9110
9111         * dbus/dbus-connection.c: purge DBusMessageHandler
9112
9113         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9114         use callbacks everywhere
9115
9116 2003-08-30  Havoc Pennington  <hp@pobox.com>
9117
9118         * test/data/valid-config-files/system.d/test.conf: change to 
9119         root for the user so warnings don't get printed
9120
9121         * dbus/dbus-message.c: add dbus_message_get_path,
9122         dbus_message_set_path
9123         
9124         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9125         dispatching to a path
9126
9127         * dbus/dbus-string.c (_dbus_string_validate_path): add
9128
9129         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9130         (_dbus_marshal_object_path): implement
9131
9132         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9133         to contain the path to the target object
9134         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9135         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9136
9137 2003-08-30  Havoc Pennington  <hp@pobox.com>
9138
9139         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9140
9141 2003-08-29  Havoc Pennington  <hp@pobox.com>
9142
9143         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9144         registered
9145         (struct DBusObjectSubtree): shrink this
9146         a lot, since we may have a lot of them
9147         (_dbus_object_tree_free_all_unlocked): implement
9148         (_dbus_object_tree_dispatch_and_unlock): implement
9149
9150 2003-08-29  Havoc Pennington  <hp@pobox.com>
9151
9152         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9153
9154 2003-08-28  Havoc Pennington  <hp@pobox.com>
9155
9156         purge DBusObjectID
9157         
9158         * dbus/dbus-connection.c: port to no ObjectID, create a
9159         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9160
9161         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9162         everything except UnregisterFunction and MessageFunction
9163         
9164         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9165         add DBUS_TYPE_OBJECT_PATH
9166         
9167         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9168         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9169         path-based object IDs
9170
9171 2003-08-25  Havoc Pennington  <hp@pobox.com>
9172
9173         Just noticed that dbus_message_test is hosed, I wonder when I
9174         broke that. I thought make check was passing earlier...
9175         
9176         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9177         container tree, will replace most of dbus-object-registry
9178
9179         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9180         screwup
9181
9182 2003-08-19  Havoc Pennington  <hp@pobox.com>
9183
9184         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9185         (dbus_message_is_error): fix this function
9186
9187         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9188         match
9189
9190         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9191         reflect clarified man page
9192         (bus_client_policy_check_can_send): ditto
9193         
9194         * bus/session.conf.in: fixup
9195
9196         * bus/system.conf.in: fixup
9197
9198 2003-08-18  Havoc Pennington  <hp@redhat.com>
9199
9200         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9201
9202         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9203         dumb bug created earlier (wrong order of args to
9204         decode_header_data())
9205         
9206         * tools/dbus-send.c: port
9207
9208         * tools/dbus-print-message.c (print_message): port
9209
9210         * test/data/*messages: port all messages over
9211         
9212         * dbus/dbus-message-builder.c: support including 
9213         message type
9214         
9215         * bus/driver.c: port over
9216         
9217         * bus/dispatch.c: port over to new stuff
9218
9219         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9220         rename disconnect signal to "Disconnected"
9221
9222 2003-08-17  Havoc Pennington  <hp@pobox.com>
9223
9224         This doesn't compile yet, but syncing up so I can hack on it from
9225         work. What are branches for if not broken code? ;-)
9226         
9227         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9228         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9229         DBUS_HEADER_FIELD_ERROR_NAME
9230         
9231         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9232         for the interface+member pairs
9233         (string_hash): change to use g_str_hash algorithm
9234         (find_direct_function, find_string_function): refactor these to
9235         share most code.
9236         
9237         * dbus/dbus-message.c: port all of this over to support 
9238         interface/member fields instead of name field
9239
9240         * dbus/dbus-object-registry.c: port over
9241         
9242         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9243         from _dbus_string_validate_name
9244
9245         * bus/dbus-daemon-1.1: change file format for the 
9246         <deny>/<allow> stuff to match new message naming scheme
9247
9248         * bus/policy.c: port over
9249
9250         * bus/config-parser.c: parse new format
9251         
9252 2003-08-16  Havoc Pennington  <hp@pobox.com>
9253
9254         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9255         broken assertion
9256
9257         * glib/dbus-gproxy.c: some hacking
9258
9259 2003-08-15  Havoc Pennington  <hp@redhat.com>
9260
9261         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9262
9263         * dbus/dbus-connection.c
9264         (dbus_connection_send_with_reply_and_block): factor out internals;
9265         change to convert any error replies to DBusError instead of 
9266         returning them as a message
9267
9268 2003-08-15  Havoc Pennington  <hp@pobox.com>
9269
9270         * dbus/dbus-connection.c, 
9271         dbus/dbus-pending-call.c: Finish the pending call stuff
9272
9273 2003-08-14  Havoc Pennington  <hp@redhat.com>
9274
9275         * dbus/dbus-pending-call.c: start on new object that will replace
9276         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9277         replies
9278
9279         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9280         with remote interfaces
9281
9282         * dbus/dbus-gidl.c: do the boring boilerplate in here
9283         
9284 2003-08-12  Havoc Pennington  <hp@pobox.com>
9285
9286         * bus/dispatch.c (bus_dispatch): make this return proper 
9287         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9288
9289         * dbus/dbus-errors.c (dbus_set_error): use
9290         _dbus_string_append_printf_valist
9291
9292         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9293         (_dbus_string_append_printf): new
9294
9295         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9296         UNKNOWN_METHOD
9297
9298         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9299         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9300         message is unhandled.
9301
9302 2003-08-11  Havoc Pennington  <hp@pobox.com>
9303
9304         * bus/test.c (client_disconnect_handler): change to return
9305         HANDLED (would have been REMOVE_MESSAGE)
9306
9307         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9308         HANDLED/NOT_YET_HANDLED instead of
9309         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9310         should be used.
9311
9312 2003-08-10  Havoc Pennington  <hp@pobox.com>
9313
9314         * tools/dbus-send.c (main): add --type argument, for now
9315         supporting only method_call and signal types.
9316
9317         * tools/dbus-print-message.c: print message type
9318
9319         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9320         init connection->objects
9321
9322         * doc/dbus-specification.sgml: fix sgml
9323
9324         * bus/*.c: port over to object-instance API changes
9325
9326         * test/test-service.c: ditto
9327         
9328         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9329         name, we will have to fix up the rest of the code to also handle
9330         this
9331         (dbus_message_new): generic message-creation call
9332         (set_string_field): allow appending name field
9333
9334 2003-08-06  Havoc Pennington  <hp@pobox.com>
9335
9336         * dbus/dbus-object-registry.c: implement signal connection 
9337         and dispatch
9338
9339         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9340
9341         * dbus/dbus-internals.c (_dbus_memdup): new function
9342
9343 2003-08-02  Havoc Pennington  <hp@pobox.com>
9344
9345         * dbus/dbus-message.c (dbus_message_get_no_reply)
9346         (dbus_message_set_no_reply): add these and remove
9347         set_is_error/get_is_error
9348
9349         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9350         remove the ERROR flag, since there's now an ERROR type
9351
9352 2003-08-01  Havoc Pennington  <hp@pobox.com>
9353
9354         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9355         implement
9356
9357         * dbus/dbus-message.c (dbus_message_get_type): new function
9358
9359         * doc/dbus-specification.sgml: add "type" byte to messages
9360
9361 2003-08-01  Havoc Pennington  <hp@pobox.com>
9362
9363         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9364         a message type enum to distinguish kinds of message
9365         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9366         that need not be replied to
9367
9368 2003-08-01  Havoc Pennington  <hp@pobox.com>
9369
9370         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9371         (unpack_8_octets): fix no-64-bit-int bug
9372
9373         * dbus/dbus-object-registry.c (validate_id): validate the 
9374         connection ID bits, not just the instance ID.
9375
9376         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9377         the connection-global 33 bits of the object ID
9378
9379         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9380         object ID in the new way
9381
9382         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9383         define server/client/instance bits.
9384
9385 2003-07-30  Havoc Pennington  <hp@pobox.com>
9386
9387         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9388         build
9389
9390 2003-07-13  Havoc Pennington  <hp@pobox.com>
9391
9392         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9393         fields to DBusObjectVTable and DBusObjectInfo
9394
9395 2003-07-12  Havoc Pennington  <hp@pobox.com>
9396
9397         * dbus/dbus-object-registry.c: implement unit test,
9398         fix bugs discovered in process
9399
9400         * dbus/dbus-connection.c: remove handler_table and
9401         register_handler(), add DBusObjectRegistry usage
9402
9403         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9404         (dbus_object_id_set_null): new functions
9405
9406 2003-07-08  Havoc Pennington  <hp@pobox.com>
9407
9408         * dbus/dbus-object.c: implement some of this
9409
9410         * dbus/dbus-object-registry.c
9411         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9412         param
9413         (_dbus_object_registry_new): handle OOM
9414
9415 2003-07-08  Havoc Pennington  <hp@pobox.com>
9416
9417         * dbus/dbus-object.h: sketch out an API for registering objects
9418         with a connection, that allows us to use as little as 24 bytes
9419         per object and lets application code represent an object in 
9420         any conceivable way.
9421
9422         * dbus/dbus-object-registry.c: implement the hard bits of the
9423         DBusConnection aspect of object API. Not yet wired up.
9424         
9425 2003-07-06  Havoc Pennington  <hp@pobox.com>
9426
9427         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9428         (_dbus_marshal_object_id): new
9429         (_dbus_demarshal_object_id): new
9430         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9431         consolidate identical switch cases. Don't conditionalize handling
9432         of DBUS_TYPE_UINT64, need to handle the type always.
9433         (_dbus_marshal_validate_arg): consolidate identical cases, and
9434         handle DBUS_TYPE_OBJECT_ID
9435
9436         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9437
9438         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9439
9440 2003-09-28  Havoc Pennington  <hp@pobox.com>
9441
9442         * real 0.13 release
9443
9444 2003-09-28  Havoc Pennington  <hp@pobox.com>
9445
9446         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9447         to work with Debian db2html
9448
9449 2003-09-28  Havoc Pennington  <hp@pobox.com>
9450
9451         * configure.in: 0.13
9452
9453         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9454         stylesheet-images for benefit of Debian
9455         
9456         Change back to using filesystem-linked sockets for the system
9457         bus, so only root can create the default system bus address.
9458         
9459         * bus/system.conf.in: change to use
9460         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9461
9462         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9463         from here.
9464
9465         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9466         here, and AC_DEFINE DBUS_SYSTEM_PATH
9467
9468 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9469
9470         * doc/TODO:
9471         * doc/busconfig.dtd:
9472         Add busconfig DTD.
9473         
9474 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9475
9476         * doc/dbus-specification.sgml:
9477         Add activation reply values.
9478         
9479 2003-08-05  Havoc Pennington  <hp@redhat.com>
9480
9481         * configure.in: 0.12
9482
9483 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9484
9485         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9486         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9487         (add_watch), (remove_watch), (create_source):
9488         Refcount fds, fixes some reentrancy issues.
9489         
9490 2003-07-30  Havoc Pennington  <hp@redhat.com>
9491
9492         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9493         bus address to be abstract if we have abstract sockets
9494
9495         * NEWS: update
9496
9497 2003-07-28  Havoc Pennington  <hp@redhat.com>
9498
9499         * bus/messagebus.in: fix to avoid processname/servicename 
9500         confusion, from Michael Kearey
9501         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9502         
9503 2003-07-23  Havoc Pennington  <hp@pobox.com>
9504
9505         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9506         fix from Andy Hanton to remove broken "+1"
9507
9508 2003-07-16  Havoc Pennington  <hp@pobox.com>
9509
9510         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9511         babysitter process, as suggested by Thomas Leonard, so 
9512         an "eval `dbus-launch --exit-with-session`" will actually 
9513         return
9514
9515 2003-07-16  Havoc Pennington  <hp@pobox.com>
9516
9517         * configure.in: print out EXPANDED_* variables in the summary at
9518         the end; clean up the code that computes EXPANDED_ variables and
9519         get the ones using exec_prefix right. Should make things work
9520         when you build without --prefix
9521
9522 2003-06-29  Havoc Pennington  <hp@pobox.com>
9523
9524         * mono/Test.cs (class Test): fire up a main loop and run it
9525
9526         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9527         done once, the app has to do it
9528
9529 2003-06-26  Havoc Pennington  <hp@pobox.com>
9530
9531         * mono/Connection.cs: set up connection with the glib main loop
9532
9533 2003-07-01  Havoc Pennington  <hp@redhat.com>
9534
9535         * doc/dbus-specification.sgml: clarify the format of a type code,
9536         change suggested by Jim Blandy
9537
9538 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9539
9540         * doc/Makefile.am:
9541         * tools/Makefile.am: Don't assume srcdir == builddir.
9542
9543         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9544         the allocated block.
9545         (_dbus_memory_test): New function.
9546         * dbus/dbus-test.h: Add _dbus_memory_test ().
9547         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9548
9549         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9550         of %c%c%c%c.
9551         (dbus_message_new): Remove obsolete @todo.
9552
9553         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9554         (_dbus_marshal_set_uint64): Fix comment.
9555
9556         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9557         hardcode FIELD_REPLY_SERIAL.
9558
9559         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9560         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9561
9562         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9563         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9564
9565 2003-06-24  Havoc Pennington  <hp@pobox.com>
9566
9567         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9568
9569 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9570
9571         * configure.in:
9572         * gcj/.cvsignore:
9573         * gcj/Hello.java:
9574         * gcj/Makefile.am:
9575         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9576         * gcj/org/.cvsignore:
9577         * gcj/org/Makefile.am:
9578         * gcj/org/freedesktop/.cvsignore:
9579         * gcj/org/freedesktop/Makefile.am:
9580         * gcj/org/freedesktop/dbus/.cvsignore:
9581         * gcj/org/freedesktop/dbus/Makefile.am:
9582         * gcj/org/freedesktop/dbus/Message.java: (Message),
9583         (Message.Message):
9584         * gcj/org/freedesktop/dbus/natMessage.cc:
9585         Fix the build system.
9586
9587 2003-06-22  Havoc Pennington  <hp@pobox.com>
9588
9589         * mono/Connection.cs: add more bindings
9590
9591         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9592         more than once.
9593
9594 2003-06-22  Havoc Pennington  <hp@pobox.com>
9595
9596         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9597         Start wrapping more stuff.
9598
9599 2003-06-22  Havoc Pennington  <hp@pobox.com>
9600
9601         * mono/Message.cs: implement Message.Wrap() that ensures we only
9602         have a single C# wrapper per DBusMessage, assuming it works which
9603         it probably doesn't.
9604
9605         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9606         (dbus_message_free_data_slot): new
9607         (dbus_message_set_data): new
9608         (dbus_message_get_data): new
9609
9610 2003-06-22  Havoc Pennington  <hp@pobox.com>
9611
9612         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9613         (_dbus_data_slot_allocator_alloc): rework these to keep a
9614         reference count on each slot and automatically manage a global
9615         slot ID variable passed in by address
9616
9617         * bus/bus.c: convert to new dataslot API
9618
9619         * dbus/dbus-bus.c: convert to new dataslot API
9620
9621         * dbus/dbus-connection.c: convert to new dataslot API
9622
9623         * dbus/dbus-server.c: convert to new dataslot API
9624
9625         * glib/dbus-gmain.c: ditto
9626
9627         * bus/test.c: ditto
9628
9629         * bus/connection.c: ditto
9630
9631 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9632
9633         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9634         after the gcj checks so that the correct configuration tags
9635         will be added to libtool.
9636
9637         * dbus-glib-1.pc.in: No need to specify any includes since
9638         dbus-1.pc.in has those.
9639
9640 2003-06-22  Havoc Pennington  <hp@pobox.com>
9641
9642         * mono/*, gcj/*, configure.in, Makefile.am:
9643         Check in makefiles and subdirs for mono and gcj bindings.
9644         Neither binding actually exists, just trying to get through
9645         all the build and other boring bits.
9646
9647 2003-06-21  Philip Blundell  <philb@gnu.org>
9648
9649         * tools/dbus-monitor.1: Updated.
9650
9651         * tools/dbus-send.1: Likewise.
9652
9653 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9654
9655         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9656         for hangup and error after checking read so we won't discard
9657         pending data if both hangup and read are set.
9658
9659 2003-06-19  Philip Blundell  <philb@gnu.org>
9660
9661         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9662
9663         * tools/dbus-send.c: Accept both --system and --session.
9664
9665         * tools/dbus-monitor.c: Same here.
9666
9667 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9668
9669         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9670         from C++ (Patch by Miloslav Trmac).
9671
9672 2003-06-15  Joe Shaw  <joe@assbarn.com>
9673
9674         * configure.in: Check for socklen_t.
9675
9676         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9677
9678         * test/test-segfault.c: Add #include <sys/time.h>
9679
9680         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9681         dbus-launch needs it.
9682
9683 2003-06-09  Havoc Pennington  <hp@redhat.com>
9684
9685         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9686         SUN_LEN, it breaks abstract socket usage
9687
9688         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9689         starts of lines.
9690
9691 2003-06-04  Havoc Pennington  <hp@pobox.com>
9692
9693         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9694         using unix:abstract=/foo, and when listening in a tmpdir
9695         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9696
9697         * dbus/dbus-transport.c (_dbus_transport_open): support
9698         unix:abstract=/foo
9699
9700         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9701         support abstract sockets
9702
9703         * dbus/dbus-transport-unix.c
9704         (_dbus_transport_new_for_domain_socket): support abstract sockets
9705
9706         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9707         toggle as an argument, implement abstract namespace support
9708         (_dbus_listen_unix_socket): ditto
9709
9710         * configure.in: add --enable-abstract-sockets and implement
9711         a configure check for autodetection of the right value.
9712
9713 2003-06-01  Havoc Pennington  <hp@pobox.com>
9714
9715         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9716         in /tmp (though on Linux this will end up being useless,
9717         when we add abstract namespace support)
9718
9719         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9720         subst'ing it
9721
9722 2003-05-28  Colin Walters  <walters@verbum.org>
9723
9724         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9725
9726 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9727
9728         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9729
9730 2003-05-17  Colin Walters  <walters@gnu.org>
9731
9732         * tools/dbus-send.c: Don't exit with an error code if --help was
9733         passed.  Default to using the session bus instead of the system
9734         one.
9735
9736         * tools/dbus-launch.c: Ditto.
9737
9738         * tools/dbus-monitor.c: Ditto.
9739
9740         * tools/dbus-send.1: Update with new arguments.
9741
9742         * tools/dbus-launch.c: Emit code to export variables.  New
9743         arguments -s and -c to specify shell syntax, and a bit of code to
9744         autodetect syntax.  Also, allow specifying a program to run.
9745
9746         * tools/dbus-launch.1: Update with new arguments.
9747
9748         * tools/dbus-send.1: Ditto.
9749
9750         * tools/dbus-monitor.1: Ditto.
9751
9752 2003-05-17  Havoc Pennington  <hp@pobox.com>
9753
9754         * bus/config-parser.c (merge_included): merge in policies from
9755         child configuration file.
9756
9757         * bus/policy.c (bus_policy_merge): function to merge two policies
9758         together
9759
9760 2003-05-16  Havoc Pennington  <hp@redhat.com>
9761
9762         * dbus/dbus-connection.c: disable verbose lock spew
9763
9764         * tools/dbus-send.c: add --print-reply command line option
9765
9766         * tools/dbus-print-message.h (print_message): new util function
9767         shared by dbus-send and dbus-monitor
9768
9769         * tools/dbus-monitor.c (handler_func): exit on disconnect
9770
9771         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9772         disconnected, don't try to use the read_watch
9773
9774         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9775         so we can find this bug more easily
9776
9777 2003-05-16  Havoc Pennington  <hp@redhat.com>
9778
9779         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9780         NULL as DBusHashTable is annoyingly likely to do.
9781
9782 2003-05-16  Colin Walters  <walters@verbum.org>
9783
9784         * tools/dbus-monitor.c: Add --session argument and usage()
9785         function.
9786
9787         * tools/dbus-monitor.1: Update with new --session arg.
9788
9789         * bus/Makefile.am (install-data-hook): Create
9790         $(libdir)/dbus-1.0/services so that the session bus is happy.
9791
9792 2003-05-15  Havoc Pennington  <hp@redhat.com>
9793
9794         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9795         on non-x86. ifdef's are evil.
9796
9797 2003-05-15  Havoc Pennington  <hp@redhat.com>
9798
9799         * configure.in: 0.11
9800
9801         * NEWS: update
9802
9803         * bus/Makefile.am (initddir): apparently we are supposed to put
9804         init scripts in /etc/rc.d/init.d not /etc/init.d
9805
9806         * bus/Makefile.am: remove the "you must --enable-tests to make
9807         check" as it broke distcheck
9808
9809         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9810
9811 2003-05-13  James Willcox  <jwillcox@gnome.org>
9812
9813         * configure.in:
9814         * bus/activation.c: (bus_activation_service_created),
9815         (bus_activation_activate_service):
9816         * bus/driver.c: (bus_driver_send_service_deleted),
9817         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9818         (bus_driver_send_service_acquired),
9819         (bus_driver_send_welcome_message),
9820         (bus_driver_handle_list_services):
9821         * bus/session.conf.in:
9822         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9823         (dbus_bus_service_exists), (dbus_bus_activate_service):
9824         * dbus/dbus-bus.h:
9825
9826         Add some convenience API which lets you activate a service, and did a
9827         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9828         and dbus_message_get_args()
9829
9830 2003-05-11  Havoc Pennington  <hp@pobox.com>
9831
9832         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9833         calling _dbus_marshal_validate_arg() for every byte in a byte
9834         array, etc.
9835
9836         * dbus/dbus-message-handler.c: use atomic reference counting to
9837         reduce number of locks slightly; the global lock in here sucks
9838
9839         * dbus/dbus-connection.c
9840         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9841         update_dispatch_status that can be called with lock held; then use
9842         in a couple places to reduce locking/unlocking
9843         (dbus_connection_send): hold the lock over the whole function
9844         instead of acquiring it twice.
9845
9846         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9847
9848         * bus/connection.c (bus_connections_setup_connection): fix access
9849         to already-freed memory.
9850
9851         * dbus/dbus-connection.c: keep a little cache of linked list
9852         nodes, to avoid using the global linked list alloc lock in the
9853         normal send-message case. Instead we just use the connection lock
9854         that we already have to take.
9855
9856         * dbus/dbus-list.c (_dbus_list_find_last): new function
9857
9858         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9859         change to use a struct for the atomic type; fix docs,
9860         they return value before increment, not after increment.
9861
9862         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9863         (_dbus_string_append_8_aligned): new functions to try to
9864         microoptimize this operation.
9865         (reallocate_for_length): break this out of set_length(), to
9866         improve profile info, and also so we can consider inlining the
9867         set_length() part.
9868
9869         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9870         strings with some preallocation, cuts down on our calls to realloc
9871         a fair bit. Though if we can get the "move entire string to empty
9872         string" optimization below to kick in here, it would be better.
9873
9874         * dbus/dbus-string.c (_dbus_string_move): just call
9875         _dbus_string_move_len
9876         (_dbus_string_move_len): add a special case for moving
9877         an entire string into an empty string; we can just
9878         swap the string data instead of doing any reallocs.
9879         (_dbus_string_init_preallocated): new function
9880
9881 2003-05-11  Havoc Pennington  <hp@pobox.com>
9882
9883         Write a "test-profile" that does echo client-server with threads;
9884         profile reveals lock contention, memcpy/realloc of buffers, and
9885         UTF-8 validation as hot spots. 20% of lock contention eliminated
9886         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9887         contention is global mempool locks for GList and DBusList.
9888
9889         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9890         x86 implementation
9891
9892         * dbus/dbus-connection.c (struct DBusConnection): use
9893         dbus_atomic_t for the reference count
9894
9895         * dbus/dbus-message.c (struct DBusMessage): declare
9896         dbus_atomic_t values as volatile
9897
9898         * configure.in: code to detect ability to use atomic integer
9899         operations in assembly, from GLib patch
9900
9901         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9902         time, tired of it being wrong in threads and forked processes
9903
9904         * glib/test-profile.c: a little program to bounce messages back
9905         and forth between threads and eat CPU
9906
9907         * dbus/dbus-connection.c: add debug spew macros for debugging
9908         thread locks; include config.h at top; fix deadlock in
9909         dbus_connection_flush()
9910
9911 2003-05-08  Havoc Pennington  <hp@pobox.com>
9912
9913         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9914         data from getting written, and there wasn't a good reason to
9915         use _exit really.
9916
9917         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9918         dbus_verbose lines in test coverage
9919         (main): add list of functions sorted by # of untested blocks
9920         to the coverage report
9921
9922         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9923
9924         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9925
9926         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9927         extend test coverage
9928
9929         * test/data/auth/cancel.auth-script: test canceling an
9930         authentication
9931
9932         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9933         aren't used. in CVS history if we end up needing them.
9934
9935 2003-05-04  Havoc Pennington  <hp@pobox.com>
9936
9937         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9938         unit test
9939
9940         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9941         function, which assumed length was in # of strings, not bytes
9942
9943         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9944         missing coverage
9945
9946         * dbus/dbus-connection.c
9947         (_dbus_connection_queue_received_message): disable function for
9948         now, we are only using it in test mode
9949
9950         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9951         remove a mistaken FIXME
9952
9953 2003-05-04  Havoc Pennington  <hp@pobox.com>
9954
9955         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9956         unlock mutex on successful return, patch from Anders Gustafsson
9957
9958 2003-05-04  Havoc Pennington  <hp@pobox.com>
9959
9960         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9961         Anders Gustafsson
9962
9963 2003-05-04  Havoc Pennington  <hp@pobox.com>
9964
9965         * tools/dbus-launch.c: implement
9966
9967         * bus/main.c (main), bus/bus.c (bus_context_new):
9968         implement --print-pid and --fork
9969
9970 2003-05-03  Havoc Pennington  <hp@redhat.com>
9971
9972         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9973         the address had no value, and add to test suite. Fix and
9974         regression test from Miloslav Trmac
9975
9976 2003-05-03  Havoc Pennington  <hp@pobox.com>
9977
9978         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9979         watch is invalid when handled
9980
9981         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9982         dbus-launch utility to launch the bus from a shell script.  Didn't
9983         actually implement dbus-launch yet, it's just a placeholder still.
9984
9985 2003-05-03  Havoc Pennington  <hp@pobox.com>
9986
9987         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9988         daemon; also documents daemon config file, so replaces
9989         doc/config-file.txt. Corrected some stuff from config-file.txt in
9990         the process of moving it.
9991
9992 2003-05-03  Havoc Pennington  <hp@pobox.com>
9993
9994         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9995         add some man pages
9996
9997 2003-05-03  Colin Walters  <walters@verbum.org>
9998
9999         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10000         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10001
10002         * Makefile.am: Update to use new .pc versioning scheme.
10003
10004 2003-05-02  Havoc Pennington  <hp@redhat.com>
10005
10006         * bus/system.conf.in: allow send/receive to/from message bus
10007         service
10008
10009 2003-04-30  Havoc Pennington  <hp@redhat.com>
10010
10011         * configure.in: print a note when building with unit tests and
10012         without assertions
10013
10014 2003-04-30  Havoc Pennington  <hp@redhat.com>
10015
10016         * Makefile.am: add a check-local that complains if you didn't
10017         configure with --enable-tests
10018
10019 2003-04-29  Havoc Pennington  <hp@redhat.com>
10020
10021         * glib/dbus-gmain.c: docs cleanups
10022
10023         * dbus/dbus-types.h: add docs on int64 types
10024
10025         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10026         public API docs section
10027
10028 2003-04-29  Havoc Pennington  <hp@redhat.com>
10029
10030         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10031         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10032         parallel install API version, not with the D-BUS package version.
10033
10034         * HACKING: move some of README over here
10035
10036         * README: updates, and document API/ABI policy
10037
10038         * configure.in: reindentation
10039
10040 2003-04-29  Havoc Pennington  <hp@redhat.com>
10041
10042         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10043         to use this library" to be sure people have the right
10044         expectations.
10045
10046 2003-04-28  Havoc Pennington  <hp@redhat.com>
10047
10048         * configure.in: add --enable-docs which by default is auto yes if
10049         doxygen and db2html found, no otherwise; but can be forced on/off
10050
10051         * doc/Makefile.am: conditionalize whether to build docs on
10052         --enable-docs
10053
10054 2003-04-28  Havoc Pennington  <hp@redhat.com>
10055
10056         * configure.in: 0.10
10057
10058         * NEWS: update
10059
10060         * bus/system.conf.in: add <includedir>system.d</includedir>
10061
10062         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10063         username was provided but not uid
10064
10065         * bus/config-parser.c (struct BusConfigParser): keep track of
10066         whether the parser is toplevel or was included; change some
10067         of the error handling if it's included.
10068
10069 2003-04-27  Havoc Pennington  <hp@pobox.com>
10070
10071         Unbreak my code...
10072
10073         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10074         report correct status if we finish processing authentication
10075         inside this function.
10076
10077         * bus/activation.c (try_send_activation_failure): use
10078         bus_transaction_send_error_reply
10079
10080         * bus/connection.c (bus_connection_get_groups): return an error
10081         explaining the problem
10082
10083         * bus/bus.c (bus_context_check_security_policy): implement
10084         restriction here that inactive connections can only send the
10085         hello message. Also, allow bus driver to send anything to
10086         any recipient.
10087
10088         * bus/connection.c (bus_connection_complete): create the
10089         BusClientPolicy here instead of on-demand.
10090         (bus_connection_get_policy): don't return an error
10091
10092         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10093         sender field in message being replied to
10094
10095         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10096         causing it to return FALSE always
10097
10098         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10099         we checked sender rather than destination
10100
10101 2003-04-25  Havoc Pennington  <hp@redhat.com>
10102
10103         test suite is slightly hosed at the moment, will fix soon
10104
10105         * bus/connection.c (bus_connections_expire_incomplete): fix to
10106         properly disable the timeout when required
10107         (bus_connection_set_name): check whether we can remove incomplete
10108         connections timeout after we complete each connection.
10109
10110         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10111         probably still broken.
10112
10113         * bus/services.c (bus_registry_acquire_service): implement max
10114         number of services owned, and honor allow/deny rules on which
10115         services a connection can own.
10116
10117         * bus/connection.c (bus_connection_get_policy): report errors here
10118
10119         * bus/activation.c: implement limit on number of pending
10120         activations
10121
10122 2003-04-25  Havoc Pennington  <hp@redhat.com>
10123
10124         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10125         where we used >= 0 instead of != DBUS_UID_UNSET.
10126
10127 2003-04-25  Havoc Pennington  <hp@redhat.com>
10128
10129         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10130         were toggled without add/remove, fix from Anders Gustafsson
10131
10132 2003-04-24  Havoc Pennington  <hp@redhat.com>
10133
10134         * test/data/valid-config-files/basic.conf: add <limit> tags to
10135         this test
10136
10137         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10138         <limit> tag in configuration file.
10139
10140 2003-04-24  Havoc Pennington  <hp@redhat.com>
10141
10142         * bus/dispatch.c: somehow missed some name_is
10143
10144         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10145         (_dbus_timeout_set_interval): new
10146
10147         * bus/connection.c (bus_connections_setup_connection): record time
10148         when each connection is first set up, and expire them after the
10149         auth timeout passes.
10150
10151 2003-04-24  Havoc Pennington  <hp@redhat.com>
10152
10153         * dbus/dbus-message.c (dbus_message_name_is): rename
10154         (dbus_message_service_is): rename
10155         (dbus_message_sender_is): rename
10156         (dbus_message_get_service): rename
10157
10158 2003-04-24  Havoc Pennington  <hp@redhat.com>
10159
10160         * configure.in: add --enable-checks
10161
10162         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10163
10164         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10165         to use thread locks.
10166         (_dbus_connection_handler_destroyed_locked): move some private
10167         functions into proper docs group
10168
10169         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10170         _dbus_return_val_if_fail
10171
10172         Throughout: use dbus_return_if_fail
10173
10174 2003-04-23  James Willcox  <jwillcox@gnome.org>
10175
10176         * glib/dbus-glib.h:
10177         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10178         (dbus_connection_setup_with_g_main),
10179         (dbus_server_setup_with_g_main):
10180         * glib/test-dbus-glib.c: (main):
10181         * glib/test-thread-client.c: (main):
10182         * glib/test-thread-server.c: (new_connection_callback), (main):
10183         * tools/dbus-monitor.c: (main):
10184
10185         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10186         and dbus_server_setup_with_g_main().
10187
10188 2003-04-20  Havoc Pennington  <hp@pobox.com>
10189
10190         * doc/dbus-specification.sgml: document the restrictions on
10191         message and service names
10192
10193 2003-04-22  Havoc Pennington  <hp@redhat.com>
10194
10195         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10196         support, and do some code cleanups to share more code and
10197         speed up array marshal/demarshal.
10198
10199         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10200
10201         * configure.in: generate dbus-arch-deps.h
10202
10203         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10204         64-bit typecodes
10205
10206 2003-04-22  Havoc Pennington  <hp@redhat.com>
10207
10208         * test/data/valid-messages/opposite-endian.message: fix test
10209         to use proper type for rply field
10210
10211         * test/data/invalid-messages: add tests for below validation
10212
10213         * dbus/dbus-message.c (decode_header_data): validate field types,
10214         and validate that named fields are valid names
10215         (decode_name_field): consider messages in the
10216         org.freedesktop.Local. namespace to be invalid.
10217
10218         * dbus/dbus-string.c (_dbus_string_validate_name): new
10219
10220 2003-04-19  Havoc Pennington  <hp@pobox.com>
10221
10222         * bus/driver.c (bus_driver_handle_hello): check limits and
10223         return an error if they are exceeded.
10224
10225         * bus/connection.c: maintain separate lists of active and inactive
10226         connections, and a count of each. Maintain count of completed
10227         connections per user. Implement code to check connection limits.
10228
10229         * dbus/dbus-list.c (_dbus_list_unlink): export
10230
10231         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10232         number of bytes in the message queue for a connection
10233
10234 2003-04-18  Havoc Pennington  <hp@pobox.com>
10235
10236         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10237
10238         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10239         memleaks
10240
10241         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10242         on realloc be sure to update the pointer in the keyring
10243
10244         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10245         offset to avoid writing to unallocated memory
10246
10247         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10248         try the next mechanism, so we properly handle OOM
10249
10250         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10251         on OOM.
10252         (_dbus_keyring_new): fix OOM bug
10253         (_dbus_keyring_new_homedir): always set error; impose a maximum
10254         number of keys we'll load from the file, mostly to speed up the
10255         test suite and make its OOM checks more useful, but also for
10256         general sanity.
10257
10258         * dbus/dbus-auth.c (process_error_server): reject authentication
10259         if we get an error from the client
10260         (process_cancel): on cancel, send REJECTED, per the spec
10261         (process_error_client): send CANCEL if we get an error from the
10262         server.
10263
10264 2003-04-18  Havoc Pennington  <hp@pobox.com>
10265
10266         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10267         debug spew
10268
10269         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10270         handling problem
10271
10272         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10273         about DBUS_TEST_HOMEDIR once
10274
10275         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10276         the environment
10277
10278         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10279         config file so we test the right thing
10280
10281         Throughout: assorted docs improvements
10282
10283 2003-04-18  Havoc Pennington  <hp@pobox.com>
10284
10285         * glib/dbus-gmain.c: adapt to watch changes
10286
10287         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10288
10289         * dbus/dbus-server.h: remove dbus_server_handle_watch
10290
10291         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10292
10293         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10294         like DBusTimeout, so we don't need dbus_connection_handle_watch
10295         etc.
10296
10297 2003-04-17  Havoc Pennington  <hp@redhat.com>
10298
10299         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10300         database usage so it all goes via the DBusUserDatabase cache.
10301
10302 2003-04-17  Havoc Pennington  <hp@redhat.com>
10303
10304         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10305         there was an OOM watch we skipped, we always return TRUE so we
10306         iterate again to have a look at it again. Fixes test suite hang.
10307         Code rearrangement also lets us lose some memset and only iterate
10308         over callbacks once.
10309
10310         * bus/driver.c (bus_driver_handle_message): sense of test for
10311         reply was backward
10312
10313 2003-04-16  Havoc Pennington  <hp@pobox.com>
10314
10315         * doc/dbus-specification.sgml: make spec say serials are unsigned
10316
10317         * dbus/dbus-message.h: change message serials to unsigned
10318
10319         * dbus/dbus-connection.c: adapt to message serials being unsigned
10320
10321 2003-04-15  Havoc Pennington  <hp@pobox.com>
10322
10323         * bus/bus.c: create and keep around a shared DBusUserDatabase
10324         object.
10325
10326         * bus/connection.c (bus_connection_get_groups): don't cache
10327         groups for user in the connection object, since user database
10328         object now does that.
10329
10330 2003-04-16  Havoc Pennington  <hp@redhat.com>
10331
10332         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10333         list of size counters
10334         (_dbus_message_loader_putback_message_link): put back a popped link
10335
10336         * dbus/dbus-connection.c
10337         (dbus_connection_set_max_live_messages_size): rename
10338         max_received_size
10339         (dbus_connection_get_outgoing_size): get size of outgoing
10340         queue
10341         (_dbus_connection_set_connection_counter): remove this cruft
10342
10343 2003-04-14  Havoc Pennington  <hp@redhat.com>
10344
10345         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10346         caching, but at some point we might want to be able to use a
10347         different database.
10348
10349         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10350         SHA1 conf file to test the sha1 auth mechanism, since the regular
10351         test always uses EXTERNAL when available.
10352
10353         * configure.in,
10354         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10355         add conf file that requires use of sha1 auth
10356
10357 2003-04-13  Havoc Pennington  <hp@pobox.com>
10358
10359         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10360         from Philip Blundell to send messages and monitor them.
10361
10362 2003-04-13  Havoc Pennington  <hp@pobox.com>
10363
10364         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10365         callbacks
10366
10367         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10368         users
10369
10370         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10371         fix to only recover unused bytes if we're already authenticated
10372         (_dbus_transport_get_is_authenticated): fix to still mark us
10373         authenticated if there are unused bytes.
10374
10375         * bus/dispatch.c: implement security policy checking
10376
10377         * bus/connection.c (bus_transaction_send_from_driver): new
10378
10379         * bus/bus.c (bus_context_check_security_policy): new
10380
10381         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10382         now we just set the DBusError and it gets converted to an error
10383         reply.
10384
10385         * bus/connection.c (allow_user_function): enable code using actual
10386         data from the config file
10387
10388         * bus/policy.c (list_allows_user): handle wildcard rules for
10389         user/group connection perms
10390
10391 2003-04-13  Havoc Pennington  <hp@pobox.com>
10392
10393         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10394
10395         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10396
10397         * bus/policy.c (bus_policy_append_mandatory_rule)
10398         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10399         (bus_policy_append_group_rule): new functions
10400
10401 2003-04-12  Havoc Pennington  <hp@pobox.com>
10402
10403         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10404
10405         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10406         the pid/gid/uid, just for paranoia.
10407
10408         * test/break-loader.c (randomly_do_n_things): find a byte
10409         containing a type code, and randomly change it to a different
10410         type code.
10411
10412 2003-04-12  Havoc Pennington  <hp@pobox.com>
10413
10414         * bus/policy.h: change BusPolicy to be the thing from the config
10415         file, and rename old BusPolicy to BusClientPolicy
10416
10417         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10418         match change in how policy works
10419
10420         * dbus/dbus-internals.h: mark assert_not_reached as
10421         __attribute((noreturn))__
10422
10423 2003-04-11  Havoc Pennington  <hp@redhat.com>
10424
10425         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10426         the broadcast service. Use boolean return for ServiceExists.
10427
10428 2003-04-11  Havoc Pennington  <hp@redhat.com>
10429
10430         * configure.in: add another directory to look for qt in.
10431
10432 2003-04-11  Havoc Pennington  <hp@redhat.com>
10433
10434         * AUTHORS: add Colin Walters
10435
10436 2003-04-11  Havoc Pennington  <hp@redhat.com>
10437
10438         * NEWS: update
10439
10440         * configure.in: 0.9
10441
10442 2003-04-11  Havoc Pennington  <hp@redhat.com>
10443
10444         * bus/messagebus.in: remove pid file when stopping the
10445         message bus, since the bus won't have privileges to remove it
10446         itself.
10447
10448 2003-04-11  Havoc Pennington  <hp@redhat.com>
10449
10450         * bus/bus.c (bus_context_new): move credentials change after
10451         creating pidfile
10452
10453 2003-04-11  Havoc Pennington  <hp@pobox.com>
10454
10455         * test/decode-gcov.c: add "below average functions" to the
10456         coverage report, and change how some of the code works.
10457
10458         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10459         not in the coverage stats.
10460
10461         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10462         couple places so running the test suite doesn't result in megaspam.
10463
10464 2003-04-11  Havoc Pennington  <hp@pobox.com>
10465
10466         * bus/dispatch.c (check_existent_service_activation): accept a no
10467         memory error in a place we didn't before
10468
10469         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10470         in case the first one failed," since the test suite is less
10471         broken now.
10472
10473 2003-04-10  Havoc Pennington  <hp@pobox.com>
10474
10475         * bus/dispatch.c (check_segfault_service_activation): add test
10476         for launching an executable that just crashes.
10477
10478         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10479         don't leave a million cores. We'll see how portable this is.
10480
10481 2003-04-10  Havoc Pennington  <hp@pobox.com>
10482
10483         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10484         the possible parent failures before we fork, so that we don't
10485         fail to create a babysitter after creating the child.
10486
10487         * bus/activation.c (bus_activation_activate_service): kill child
10488         if we don't successfully complete the activation.
10489
10490 2003-04-10  Havoc Pennington  <hp@redhat.com>
10491
10492         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10493         the connection if it's disconnected
10494
10495         * bus/activation.c (bus_activation_service_created): use new
10496         transaction features to roll back removal of pending activation if
10497         we don't successfully create the service after all. Don't remove
10498         pending activation if the function fails.
10499
10500         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10501         (_dbus_list_insert_after_link): new code to facilitate
10502         services.c fixes
10503
10504         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10505         new functionality, so we can preallocate the ability to insert
10506         into a hash table.
10507
10508         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10509         allowing us to put custom hooks in a transaction to be used for
10510         cancelling said transaction
10511
10512         * doc/dbus-specification.sgml: add some discussion of secondary
10513         service owners, and disallow zero-length service names
10514
10515         * bus/services.c (bus_registry_acquire_service): new function,
10516         splits out part of bus_driver_handle_acquire_service() and fixes
10517         a bug where we didn't remove the service doing the acquiring
10518         from the secondary queue if we failed to remove the current owner
10519         from the front of the queue.
10520
10521 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10522
10523         * doc/dbus-specification.sgml:
10524         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10525
10526 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10527
10528         * bus/.cvsignore:
10529         * glib/.cvsignore:
10530         * test/.cvsignore:
10531         Added files to cvsignore
10532
10533         * dbus/dbus-message.h:
10534         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10535         Make get_named() take two out argument and return a boolean.
10536         (dbus_message_iter_get_args_valist):
10537         Update usage of get_named().
10538         (dbus_message_iter_append_byte):
10539         Fix typo
10540         (dbus_message_iter_append_named)
10541         Fix typo
10542         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10543         More tests.
10544
10545 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10546
10547         * dbus/dbus-marshal.[ch]:
10548         Add array_type_pos argument to _dbus_marshal_validate_arg.
10549         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10550
10551         * dbus/dbus-message.[ch]:
10552         Multi-dimensional arrays have full type specification in the
10553         outermost array. Iter code re-arranged to handle this.
10554         Added some more iter tests.
10555
10556         * doc/dbus-specification.sgml:
10557         Add me to authors.
10558         Remove old FIXME.
10559         Update new array encoding description.
10560         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10561
10562         * test/data/invalid-messages/array-with-mixed-types.message:
10563         * test/data/valid-messages/array-of-array-of-uint32.message:
10564         Change to the new array format.
10565
10566         * test/data/invalid-messages/too-short-dict.message:
10567         Fix bug in test.
10568
10569         * test/data/valid-messages/recursive-types.message:
10570         Fix up and extend test.
10571
10572 2003-04-10  Havoc Pennington  <hp@pobox.com>
10573
10574         * bus/dispatch.c: lots of fixes
10575
10576         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10577         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10578         that was crack, broke the test service.
10579
10580         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10581         handling to avoid piling up errors if we get a failure on the
10582         first address.
10583
10584         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10585         pid in assertion failures.
10586
10587         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10588         to some fixed size of file descriptor array. Don't return TRUE
10589         anytime a timeout exists, that led to lots of busy loop silliness
10590         in the tests.
10591
10592 2003-04-09  Havoc Pennington  <hp@redhat.com>
10593
10594         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10595         I'd checked this in earlier but hadn't.
10596
10597 2003-04-09  Havoc Pennington  <hp@redhat.com>
10598
10599         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10600         the activation test (man this is getting old!)
10601
10602 2003-04-09  Havoc Pennington  <hp@redhat.com>
10603
10604         * test/test-utils.c: use dispatch status function to fix this up
10605
10606         * bus/connection.c (connection_watch_callback): don't dispatch
10607         from here
10608         (connection_timeout_callback): don't dispatch from here
10609         (bus_connections_setup_connection): set the dispatch status function
10610         (bus_connection_disconnected): unset it
10611
10612         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10613         used to add a connection to be dispatched
10614         (_dbus_loop_iterate): do the dispatching at the end of each
10615         iteration
10616
10617         * dbus/dbus-connection.c
10618         (dbus_connection_set_dispatch_status_function): new function
10619         allowing us to fix up main loop usage
10620         (_dbus_connection_last_unref): free all the various function
10621         user data
10622         (dbus_connection_dispatch): call the DispatchStatusFunction
10623         whenever this function returns
10624         (dbus_connection_handle_watch): call DispatchStatusFunction
10625         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10626         (reply_handler_timeout): call DispatchStatusFunction
10627         (dbus_connection_flush): call DispatchStatusFunction
10628
10629 2003-04-09  Havoc Pennington  <hp@redhat.com>
10630
10631         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10632         a memory leak
10633
10634         * bus/dispatch.c (check_service_activated): fix bug in test
10635
10636         * dbus/dbus-mainloop.c (check_timeout): fix this up
10637
10638         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10639         verbose output so we can sort out output from different processes,
10640         e.g. in the activation case.
10641
10642 2003-04-08  Colin Walters  <walters@gnu.org>
10643
10644         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10645         the pid file.
10646         (bus_context_new): Set it.
10647         (bus_context_unref): Use it to delete the pid file.
10648
10649 2003-04-08  Havoc Pennington  <hp@redhat.com>
10650
10651         * test/data/invalid-messages/array-with-mixed-types.message:
10652         regression test that fails for the moment
10653
10654         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10655         tests for convenience
10656
10657         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10658         array of nil, it broke things.
10659
10660         * test/data/invalid-messages/array-of-nil.message: regression test
10661
10662         * test/data/valid-messages/array-of-array-of-uint32.message:
10663         happened to write this so added it to suite
10664
10665 2003-04-08  Havoc Pennington  <hp@redhat.com>
10666
10667         * bus/driver.c (bus_driver_handle_acquire_service): init
10668         retval/reply before checking name
10669
10670         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10671         recursion depth argument
10672
10673         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10674         in the public struct for future extension
10675
10676         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10677         typo
10678
10679         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10680         message
10681
10682         * doc/dbus-specification.sgml: fix typo
10683
10684 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10685
10686         Implemented recursive types, named types and new-style iters
10687
10688         * bus/driver.c:
10689         * glib/test-thread-client.c: (thread_func):
10690         * glib/test-thread-server.c: (handle_test_message):
10691         * test/test-service.c: (handle_echo):
10692         Update to new api
10693
10694         * dbus/Makefile.am:
10695         * dbus/dbus-dict.c:
10696         * dbus/dbus-dict.h:
10697         * dbus/dbus.h
10698         Remove DBusDict
10699
10700         * dbus/dbus-internals.c: (_dbus_type_to_string):
10701         Update for new types.
10702
10703         * dbus/dbus-marshal.[ch]:
10704         Implement recursive types and the new marshalling format.
10705         Remove hardcoded dict marshalling.
10706         Marshal named types.
10707
10708         * dbus/dbus-message-builder.c:
10709         Add BYTE_ARRAY.
10710         Remove references to old types
10711
10712         * dbus/dbus-message.[ch]:
10713         New non-refcounted iter API that supports recursive iters.
10714         Use iters for appending, including support for recursive
10715         iters.
10716         Add byte and named type support.
10717         Update everything to new marshalling formats.
10718         Add tests for new API.
10719
10720         * dbus/dbus-protocol.h:
10721         Remove old array types.
10722         Add types: BYTE, ARRAY, DICT, NAMED
10723
10724         * dbus/dbus-string.c:
10725         * dbus/dbus-sysdeps.c:
10726         Make parse_double locale safe.
10727
10728         * dbus/dbus-test-main.c:
10729         Call setlocale.
10730
10731         * dbus/dbus-test.c:
10732         Kill dict test
10733
10734         * doc/dbus-specification.sgml:
10735         Update spec
10736
10737         * test/data/incomplete-messages/missing-body.message:
10738         * test/data/invalid-messages/bad-boolean.message:
10739         * test/data/invalid-messages/bad-boolean-array.message:
10740         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10741         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10742         * test/data/invalid-messages/too-short-dict.message:
10743         * test/data/valid-messages/dict-simple.message:
10744         * test/data/valid-messages/dict.message:
10745         * test/data/valid-messages/emptiness.message:
10746         * test/data/valid-messages/lots-of-arguments.message:
10747         * test/data/valid-messages/no-padding.message:
10748         * test/data/valid-messages/recursive-types.message:
10749         Add missing NAME fields
10750         Fix up dicts & arrays
10751
10752         * test/data/invalid-messages/dict-with-nil-value.message:
10753         Removed, this is not invalid anymore.
10754
10755         * test/data/valid-messages/recursive-types.message:
10756         Add new test for deeply recursive types.
10757
10758 2003-04-07  Havoc Pennington  <hp@pobox.com>
10759
10760         * bus/driver.c (bus_driver_handle_acquire_service): return an
10761         error if you try to acquire a service that starts with ':'
10762
10763 2003-04-07  Havoc Pennington  <hp@redhat.com>
10764
10765         * doc/dbus-specification.sgml: require that base service names
10766         start with ':' and that the base service is created/deleted
10767         as first and last things a connection does on the bus
10768
10769         * bus/dispatch.c (check_existent_service_activation): lots more
10770         work on the activation test; it doesn't fully pass yet...
10771
10772         * test/test-service.c (main): fix so we don't memleak the
10773         connection to the message bus
10774         (filter_func): accept a message asking us to exit
10775
10776 2003-04-06  Havoc Pennington  <hp@pobox.com>
10777
10778         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10779         from Colin Walters
10780
10781         * configure.in: fixes to Qt detection from Colin Walters
10782
10783         * doc/Makefile.am: Only remove generated docbook dirs if they
10784         exist, from Colin Walters
10785
10786         * dbus/dbus-bus.c: change how we set well-known connections to
10787         NULL, so that it works if a single connection is stored in
10788         two well-known array slots.
10789
10790         * test/Makefile.am: remove a lot of stuff that isn't immediately
10791         useful, it's in CVS history if we want it.
10792
10793         * test/test-service.c: use dbus-mainloop instead of that
10794         watch.[hc] crack
10795
10796 2003-04-06  Havoc Pennington  <hp@pobox.com>
10797
10798         * dbus/Makefile.am: split lists of sources into stuff that goes in
10799         the library, util functions that go in the lib and are also used
10800         elsewhere, and util functions that are used in tests/daemon but
10801         don't go in the lib.
10802
10803         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10804         here so it can be used in test binaries also
10805
10806 2003-04-06  Havoc Pennington  <hp@pobox.com>
10807
10808         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10809         here in the parent process, so we can return an error if it
10810         fails. Also, move some of the code into the child so the parent
10811         is less hosed if we fail midway through.
10812
10813         * bus/bus.c (bus_context_new): move pidfile detection further up
10814         in the function, before we start overwriting sockets and such.
10815
10816         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10817
10818         * configure.in: add --with-system-pid-file and --with-system-socket
10819
10820 2003-04-06  Colin Walters  <walters@verbum.org>
10821
10822         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10823
10824         * bus/system.conf.in: Declare a pidfile.
10825
10826         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10827         create one (if appropriate).
10828
10829         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10830         (struct BusConfigParser) [pidfile]: New.
10831         (element_type_to_name, merge_included, start_busconfig_child)
10832         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10833         (bus_config_parser_unref): Free it.
10834         (bus_config_parser_get_pidfile): New function.
10835
10836         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10837
10838         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10839
10840         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10841
10842         * dbus/dbus-sysdeps.h: Prototype it.
10843
10844 2003-04-06  Havoc Pennington  <hp@pobox.com>
10845
10846         * bus/bus.c (bus_context_new): print the address in here, rather
10847         than in main(), because we need to do it before forking the daemon
10848
10849         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10850         on the service nonexistent error
10851
10852         * bus/driver.c (bus_driver_handle_acquire_service): set the
10853         sender on the AcquireService reply
10854
10855         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10856         server also listen on a UNIX socket so services can connect to it.
10857
10858 2003-04-06  Havoc Pennington  <hp@pobox.com>
10859
10860         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10861         so it detects deadlocks and also we actually init threads when
10862         debugging.
10863
10864 2003-04-06  Havoc Pennington  <hp@pobox.com>
10865
10866         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10867         save the domain socket name, and unlink it when we disconnect the
10868         server. Means that at least when we exit normally, we won't leave
10869         a bunch of junk in /tmp
10870
10871         * dbus/dbus-transport-unix.c
10872         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10873         memory management). (I was making a real change here but then
10874         didn't)
10875
10876 2003-04-06  Havoc Pennington  <hp@pobox.com>
10877
10878         * bus/bus.c (bus_context_new): fix wrong handling of
10879         server_data_slot_unref() in the error case.
10880
10881         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10882         "(condition) != 0" to _dbus_real_assert so that
10883         "_dbus_assert (pointer)" doesn't cause a warning
10884
10885         * bus/main.c (main): accept --print-address option to print out
10886         the message bus address
10887
10888         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10889
10890         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10891         "tmpdir" option to unix: address on client side
10892
10893         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10894         to unix: address
10895
10896         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10897         we can use to create sockets in the test suite.
10898
10899         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10900         cleanly. To be used for testing.
10901
10902         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10903
10904         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10905
10906         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10907         handle trying to call this when there's no servers active
10908
10909 2003-04-05  Havoc Pennington  <hp@pobox.com>
10910
10911         * NEWS: update
10912
10913         * configure.in: 0.8
10914
10915 2003-04-05  Havoc Pennington  <hp@pobox.com>
10916
10917         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10918         crash on startup. Need to get "try starting the daemon"
10919         in the test suite I guess. ;-)
10920
10921         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10922         tracked the number of open connections; it's better done in
10923         application-specific code as you want it to span all servers etc.
10924
10925 2003-04-05  Havoc Pennington  <hp@pobox.com>
10926
10927         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10928         patch from Colin Walters
10929
10930 2003-04-05  Havoc Pennington  <hp@pobox.com>
10931
10932         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10933         reality; in fact multiple mechanisms are allowed.
10934
10935         * dbus/dbus-internals.c (_dbus_real_assert)
10936         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10937         _dbus_assert_not_reached() into functions, so that they don't show
10938         up in basic block counts for test coverage, and don't use up as
10939         much disk space. Does mean slower execution speed though, so
10940         assumes --disable-asserts is the normal production case.
10941
10942 2003-04-05  Havoc Pennington  <hp@pobox.com>
10943
10944         * test/Makefile.am (dist-hook): also dist *.in files
10945
10946         * NEWS: update
10947
10948         * configure.in: 0.7
10949
10950 2003-04-05  Havoc Pennington  <hp@pobox.com>
10951
10952         * dbus/dbus-string.c: docs warning
10953
10954         * dbus/dbus-spawn.c: missing docs
10955
10956         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10957
10958 2003-04-05  Havoc Pennington  <hp@pobox.com>
10959
10960         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10961         magic from GLib
10962
10963         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10964         to -1 once we've reaped the babysitter
10965         (_dbus_babysitter_handle_watch): do as much work as we can, not
10966         just one go of it
10967
10968         * bus/activation.c: add code using DBusBabysitter so that we
10969         handle it when a service fails to start up properly.
10970         (bus_activation_service_created): don't remove the activation
10971         entries as we go, just let them get removed when we free the pending
10972         activation. Unref reply messages after sending them.
10973
10974 2003-04-05  Havoc Pennington  <hp@pobox.com>
10975
10976         * test/decode-gcov.c (main): print per-directory stats in the report
10977
10978         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10979
10980 2003-04-05  Havoc Pennington  <hp@pobox.com>
10981
10982         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10983
10984         * test/decode-gcov.c: hack up a little program to suck data
10985         out of gcov files. Yes this is sort of silly.
10986
10987         * configure.in: define something in config.h and do an
10988         AM_CONDITIONAL when gcov is enabled
10989
10990 2003-04-04  Havoc Pennington  <hp@redhat.com>
10991
10992         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10993         return a "babysitter" object that is used to monitor the status of
10994         the spawned process and reap it when required.
10995
10996         * test/test-segfault.c, test/test-exit.c,
10997         test/test-sleep-forever.c: binaries that do various lame things,
10998         used in the test suite.
10999
11000         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11001
11002 2003-04-03  Havoc Pennington  <hp@pobox.com>
11003
11004         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11005         in preparation for modifying it, dbus-sysdeps is getting
11006         a bit unmanageable.
11007
11008 2003-04-03  Havoc Pennington  <hp@redhat.com>
11009
11010         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11011         have multiple ones
11012
11013         * bus/*.[hc]: adapt to mainloop change
11014
11015 2003-04-03  Havoc Pennington  <hp@redhat.com>
11016
11017         * bus/activation.c (load_directory): fix up memleaks
11018         (bus_activation_entry_free): free the entry
11019
11020         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11021         we get one from the message bus; fix memleaks.
11022
11023         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11024
11025 2003-04-03  Havoc Pennington  <hp@pobox.com>
11026
11027         * bus/config-parser.c (bus_config_parser_unref): free
11028         list of mechanisms, bug discovered by test suite enhancements
11029         (putting system.conf and session.conf into suite)
11030
11031         * test/Makefile.am, test/test-service.c: add placeholder for a
11032         test service that we'll activate as part of test suite. Doesn't
11033         do anything yet.
11034
11035         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11036         setting NULL value, and use system malloc not dbus_malloc()
11037         when we have unavoidable memleakage.
11038
11039         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11040         didn't work, and support DBUS_BUS_ACTIVATION.
11041
11042         * bus/activation.c (child_setup): pass our well-known bus type to
11043         the child
11044
11045         * bus/config-parser.c: support <type> to specify well-known type
11046
11047         * doc/dbus-specification.sgml: document the env variables to
11048         locate well-known buses and find service activator
11049
11050 2003-04-02  Havoc Pennington  <hp@redhat.com>
11051
11052         * test/Makefile.am (all-local): add a rule to copy tests to
11053         builddir, so we can have generated tests. Use this to remove the
11054         silly hack for testing system.conf and session.conf. Will use this
11055         shortly to generate .service files pointing to test binaries.
11056
11057 2003-04-02  Havoc Pennington  <hp@redhat.com>
11058
11059         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11060         current alloc and needed new length, not max of the doubled
11061         allocation and needed new length. Also, when building tests,
11062         don't do the double-allocation stuff, just realloc every time.
11063
11064 2003-04-02  Havoc Pennington  <hp@redhat.com>
11065
11066         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11067         in error messages
11068         (_dbus_string_get_dirname): new
11069         (_dbus_sysdeps_test): new
11070         (_dbus_directory_open): include dirnames in error messages
11071
11072         * bus/config-parser.c: interpret <include> and <includedir> and
11073         <servicedir> relative to config file location if the given
11074         filename is not absolute.
11075
11076         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11077
11078 2003-04-02  Havoc Pennington  <hp@redhat.com>
11079
11080         * bus/connection.c (bus_transaction_send_error_reply): set sender
11081         service for the error, and unref the reply on success
11082
11083         * bus/activation.c: convert to use BusTransaction so OOM can be
11084         handled correctly
11085         (bus_activation_service_created): set sender of the message
11086
11087 2003-04-01  Havoc Pennington  <hp@redhat.com>
11088
11089         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11090         <includedir> (at least mostly)
11091
11092         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11093         first, then the user ID
11094
11095 2003-04-01  Havoc Pennington  <hp@pobox.com>
11096
11097         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11098         function
11099
11100         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11101
11102         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11103
11104         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11105         socket 0777, and unlink any existing socket.
11106
11107         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11108         the configuration file so specifies; set up auth mechanism
11109         restrictions
11110
11111         * bus/config-parser.c (bus_config_parser_content): add support
11112         for <fork> option and fill in code for <auth>
11113
11114         * bus/system.conf.in: add <fork/> to default configuration,
11115         and limit auth mechanisms to EXTERNAL
11116
11117         * doc/config-file.txt (Elements): add <fork>
11118
11119         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11120         (_dbus_change_identity): new function
11121
11122 2003-03-31  Havoc Pennington  <hp@redhat.com>
11123
11124         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11125         (_dbus_listen_unix_socket): fix off-by-one error in null
11126         termination spotted by Nalin
11127
11128 2003-03-31  Havoc Pennington  <hp@redhat.com>
11129
11130         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11131         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11132         having a real home directory available.
11133
11134 2003-03-31  Havoc Pennington  <hp@redhat.com>
11135
11136         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11137
11138         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11139
11140         * configure.in: add support for specifying a style of init script
11141         to install
11142
11143 2003-03-31  Havoc Pennington  <hp@redhat.com>
11144
11145         Fix some annoying DBusString API and fix all affected code.
11146
11147         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11148         max_length argument
11149         (_dbus_string_get_data): change to return string instead of using
11150         an out param
11151         (_dbus_string_get_const_data): ditto
11152         (_dbus_string_get_data_len): ditto
11153         (_dbus_string_get_const_data_len): ditto
11154
11155 2003-03-31  Havoc Pennington  <hp@redhat.com>
11156
11157         * bus/main.c (main): fix up the command line arguments to be nicer
11158
11159 2003-03-31  Havoc Pennington  <hp@redhat.com>
11160
11161         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11162         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11163         final location that lands in the config file
11164
11165         * bus/config-loader-expat.c (bus_config_load): fix type of
11166         XML_Parser variable
11167
11168         * doc/TODO: remove TODO item for dbus_bus_get()
11169
11170         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11171
11172 2003-03-31  Havoc Pennington  <hp@pobox.com>
11173
11174         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11175         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11176         argument since they are always client side
11177
11178         * dbus/dbus-server.c (dbus_server_get_address): new function
11179
11180         * bus/main.c (main): take the configuration file as an argument.
11181
11182         * test/data/valid-config-files/debug-allow-all.conf: new file to
11183         use with dispatch.c tests for example
11184
11185         * bus/test-main.c (main): require test data dir
11186
11187         * bus/bus.c (bus_context_new): change this to take a
11188         configuration file name as argument
11189
11190         * doc/config-file.txt (Elements): add <servicedir>
11191
11192         * bus/system.conf, bus/session.conf: new files
11193
11194         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11195         well-known socket if none set
11196
11197         * configure.in: create system.conf and session.conf
11198
11199 2003-03-30  Havoc Pennington  <hp@pobox.com>
11200
11201         * bus/config-parser.c: hacking
11202
11203         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11204         to shut down, since it could cause weirdness with the DBusList
11205         lock
11206
11207         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11208         link-oriented stack routines
11209         (alloc_link): free the mempool if the first alloc from it fails
11210
11211         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11212
11213         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11214         from GLib
11215         (_dbus_string_skip_white): new
11216
11217         * doc/config-file.txt (Elements): add <includedir>
11218
11219 2003-03-28  Havoc Pennington  <hp@pobox.com>
11220
11221         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11222         (_dbus_string_copy_data): new functions
11223
11224 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11225
11226         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11227         * dbus/dbus-bus.h:
11228         Add dbus_bus_get.
11229
11230         * dbus/dbus-memory.c:
11231         Fix a doc comment.
11232
11233 2003-03-28  Havoc Pennington  <hp@pobox.com>
11234
11235         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11236         I think it may have just been superstition. Not sure.
11237
11238         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11239         failures that were not being handled.
11240
11241         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11242
11243         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11244         row that will fail on out-of-memory.
11245
11246         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11247         function for testing out-of-memory handling.
11248
11249         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11250         allocation functions, they do map exactly to the expat ones.
11251
11252 2003-03-27  Havoc Pennington  <hp@redhat.com>
11253
11254         * bus/config-loader-libxml.c (bus_config_load): add another error
11255         check
11256
11257 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11258
11259         * doc/TODO:
11260         Add note about automatic service activation.
11261
11262         * doc/dbus-specification.sgml:
11263         Rename the specification and clarify a few things.
11264
11265 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11266
11267         * Doxyfile.in:
11268         * dbus/dbus-address.c:
11269         * dbus/dbus-dict.c:
11270         * dbus/dbus-marshal.c:
11271         * dbus/dbus-server-debug-pipe.c:
11272         * dbus/dbus-transport-unix.c:
11273         Fix documentation warnings.
11274
11275 2003-03-26  Havoc Pennington  <hp@pobox.com>
11276
11277         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11278         after every test so it's quick and easy to see which leaked, and
11279         so we test multiple dbus_shutdown() calls
11280
11281         * configure.in: change configure.in XML stuff to also support
11282         expat
11283
11284         * config-loader-libxml.c: some hacking
11285
11286         * config-loader-expat.c: some hacking
11287
11288         * config-parser.c: some hacking, plus tests
11289
11290 2003-03-25  Havoc Pennington  <hp@redhat.com>
11291
11292         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11293
11294         * configure.in: add --with-xml option to specify XML library,
11295         right now only libxml is supported.
11296
11297         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11298         nonworking code between home and work, still just stubs
11299
11300 2003-03-24  Havoc Pennington  <hp@redhat.com>
11301
11302         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11303         file
11304
11305         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11306         NULL argument for "message" if the error is a well-known one,
11307         fill in a generic message in this case.
11308
11309         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11310         favor of DBusError
11311
11312         * bus/test.c (bus_test_flush_bus): add
11313
11314         * bus/policy.c (bus_policy_test): test code stub
11315
11316 2003-03-24  Havoc Pennington  <hp@pobox.com>
11317
11318         * bus/connection.c (bus_connections_setup_connection): set up
11319         the "can this user connect" function, but it always returns
11320         TRUE until we have a config file parser so we can have a config
11321         file that allows connections.
11322
11323 2003-03-23  Havoc Pennington  <hp@pobox.com>
11324
11325         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11326         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11327         the mutex, so we can check for proper memory management
11328         and OOM handling.
11329
11330         * dbus/dbus-dataslot.c: remove the mutex from
11331         DBusDataSlotAllocator and lock it manually when using it,
11332         to simplify fitting it into the global slots framework.
11333
11334         * dbus/dbus-threads.c (init_static_locks): rework how we're
11335         handling global locks so they are easily shut down.
11336
11337         * bus/policy.c (bus_policy_append_rule): fix
11338
11339         * bus/test-main.c (main): check for memleaks
11340
11341         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11342         test suite check for memleaks
11343
11344         * dbus/dbus-memory.c: add support in test mode for tracking
11345         number of outstanding blocks
11346
11347 2003-03-23  Havoc Pennington  <hp@pobox.com>
11348
11349         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11350         policies code
11351
11352         * dbus/dbus-hash.h: add ULONG hash keys
11353
11354         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11355         (_dbus_get_group_id): new function
11356
11357 2003-03-20  Havoc Pennington  <hp@redhat.com>
11358
11359         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11360         new function
11361         (dbus_connection_get_unix_user): new function
11362
11363 2003-03-20  Havoc Pennington  <hp@pobox.com>
11364
11365         * bus/connection.c (bus_connection_send_oom_error): assert that
11366         message has a sender
11367         (connection_execute_transaction): ditto
11368         (bus_connection_preallocate_oom_error): fix to set the sender, and
11369         set recipient to the destination service, not the bus driver
11370
11371         * bus/policy.c: hacking
11372
11373         * dbus/dbus-message.c (dbus_message_service_is): new function
11374         (dbus_message_sender_is): new
11375
11376 2003-03-19  Havoc Pennington  <hp@redhat.com>
11377
11378         * bus/policy.c: start sketching code for policy restrictions on
11379         what connections can do.
11380
11381 2003-03-18  Havoc Pennington  <hp@redhat.com>
11382
11383         * doc/TODO: some notes on high-level todo items. Little nitpick
11384         stuff is all in @todo, so no need to add it here.
11385
11386         * doc/config-file.txt: some notes on how config file might look
11387
11388 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11389
11390         * configure.in: 0.6
11391
11392         * NEWS: Update.
11393
11394 2003-03-17  Havoc Pennington  <hp@redhat.com>
11395
11396         * dbus/dbus-internals.h: add gcc attributes so that
11397         our printf-style functions warn on bad arguments to
11398         format
11399
11400         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11401         format bug
11402
11403         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11404         printf format bug
11405
11406 2003-03-17  Havoc Pennington  <hp@redhat.com>
11407
11408         * bus/test-main.c (main): make it print something as it runs
11409         so make check doesn't look stuck
11410
11411         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11412         from CVS, now obsolete
11413
11414 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11415
11416         * bus/dispatch.c: (bus_dispatch):
11417         Refetch the service name since it may have been reallocated
11418         when dbus_message_set_sender was called.
11419
11420         * dbus/dbus-sysdeps.c: (_dbus_accept):
11421         Add address and address length variables and use them to stop
11422         valgrind from complaining.
11423
11424 2003-03-17  Havoc Pennington  <hp@pobox.com>
11425
11426         All tests pass, no memleaks, no valgrind complaints.
11427
11428         * bus/test.c: refcount handler_slot
11429
11430         * bus/connection.c (bus_connections_new): refcount
11431         connection_data_slot
11432
11433         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11434         bytes so that auth scripts pass.
11435
11436         * bus/dispatch.c: init message_handler_slot so it gets allocated
11437         properly
11438
11439         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11440
11441         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11442         dealloc server_pipe_hash when no longer used for benefit of
11443         leak checking
11444
11445         * dbus/dbus-auth.c (process_command): memleak fix
11446
11447         * bus/dispatch.c (check_hello_message): memleak fix
11448
11449 2003-03-16  Havoc Pennington  <hp@pobox.com>
11450
11451         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11452
11453 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11454
11455         * bus/activation.c (bus_activation_activate_service): Append
11456         the pending activation entry to the list of pending activations.
11457
11458 2003-03-16  Havoc Pennington  <hp@pobox.com>
11459
11460         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11461         connections
11462
11463         * dbus/dbus-address.c (create_entry): fix OOM handling when
11464         failing to alloc entry->method
11465
11466 2003-03-16  Havoc Pennington  <hp@pobox.com>
11467
11468         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11469         the watch
11470
11471         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11472         add some missing dbus_set_result
11473
11474         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11475         alloc the DBusMessageHandler
11476
11477         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11478         the transport here, since we call this from the finalizer; it
11479         resulted in a double-finalize.
11480
11481         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11482         where we tried to use transport->connection that was NULL,
11483         happened when transport was disconnected early on due to OOM
11484
11485         * bus/*.c: adapt to handle OOM for watches/timeouts
11486
11487         * dbus/dbus-transport-unix.c: port to handle OOM during
11488         watch handling
11489
11490         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11491         reference to unused bytes instead of a copy
11492
11493         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11494         out of memory
11495
11496         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11497         FALSE on OOM
11498
11499         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11500         of memory
11501
11502 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11503
11504         * doc/dbus-specification.sgml:
11505         Document reply message for ActivateService.
11506
11507 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11508
11509         * bus/activation.c: (bus_pending_activation_entry_free),
11510         (bus_pending_activation_free), (bus_activation_new),
11511         (bus_activation_unref), (bus_activation_service_created),
11512         (bus_activation_activate_service):
11513         * bus/activation.h:
11514         * bus/bus.c: (bus_context_new):
11515         * bus/desktop-file.c: (new_section):
11516         * bus/driver.c: (bus_driver_send_service_deleted),
11517         (bus_driver_handle_activate_service):
11518         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11519         * bus/services.h:
11520         * dbus/dbus-connection.c:
11521         (dbus_connection_send_with_reply_and_block):
11522         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11523         * dbus/dbus-protocol.h:
11524         Make activation work better. Now pending activations will be queued
11525         and the daemon won't try to activate services that are already registered.
11526
11527 2003-03-16  Havoc Pennington  <hp@pobox.com>
11528
11529         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11530         connection data
11531
11532         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11533         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11534
11535 2003-03-16  Havoc Pennington  <hp@pobox.com>
11536
11537         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11538         this. always run the test suite before commit...
11539
11540         * bus/*: adapt to DBusConnection API changes
11541
11542         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11543         requires renaming stuff to avoid dbus_connection_dispatch name
11544         conflict.
11545
11546         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11547         function
11548
11549         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11550         separate from _dbus_message_loader_return_buffer()
11551
11552         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11553         this, because it's now always broken to use; the number of
11554         messages in queue vs. the number still buffered by the message
11555         loader is undefined/meaningless. Should use
11556         dbus_connection_get_dispatch_state().
11557         (dbus_connection_dispatch): rename from
11558         dbus_connection_dispatch_message
11559
11560 2003-03-16  Havoc Pennington  <hp@pobox.com>
11561
11562         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11563         implementation
11564
11565 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11566
11567         * dbus/dbus-connection.c:
11568         (dbus_connection_send_with_reply_and_block):
11569         Decrease connection->n_incoming when removing an entry
11570         from the list.
11571         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11572         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11573         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11574         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11575         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11576         (dbus_dict_get_byte_array):
11577         Handle NULL arrays and strings. Also add support for byte arrays.
11578
11579         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11580         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11581         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11582         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11583         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11584         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11585         * dbus/dbus-marshal.h:
11586         Add support for marshalling and demarshalling empty arrays and strings.
11587
11588         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11589         (dbus_message_append_string_array),
11590         (dbus_message_iter_get_boolean),
11591         (dbus_message_iter_get_boolean_array),
11592         (dbus_message_iter_get_int32_array),
11593         (dbus_message_iter_get_uint32_array),
11594         (dbus_message_iter_get_double_array),
11595         (dbus_message_iter_get_byte_array),
11596         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11597         (check_message_handling):
11598         Add support for getting empty arrays and dicts.
11599
11600         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11601         Don't do any validation at all for now, that's better than just checking
11602         for ASCII.
11603
11604         * test/data/valid-messages/emptiness.message:
11605         New test message with lots of empty arrays.
11606
11607 2003-03-16  Havoc Pennington  <hp@pobox.com>
11608
11609         * dbus/dbus-connection.c
11610         (_dbus_connection_queue_received_message_link): new function that
11611         can't fail due to OOM
11612
11613         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11614         new function pops a message together with a list link
11615         containing it.
11616
11617         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11618         message queuing functions to avoid needing to alloc memory
11619
11620 2003-03-16  Havoc Pennington  <hp@pobox.com>
11621
11622         Oops - test code was only testing failure of around 30 of the
11623         mallocs in the test path, but it turns out there are 500+
11624         mallocs. I believe this was due to misguided linking setup such
11625         that there was one copy of dbus_malloc etc. in the daemon and one
11626         in the shared lib, and only daemon mallocs were tested. In any
11627         case, the test case now tests all 500+ mallocs, and doesn't pass
11628         yet, though there are lots of fixes in this patch.
11629
11630         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11631         this so that it doesn't need to allocate memory, since it
11632         has no way of indicating failure due to OOM (and would be
11633         annoying if it did).
11634
11635         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11636
11637         * bus/Makefile.am: rearrange to create two self-contained
11638         libraries, to avoid having libraries with overlapping symbols.
11639         that was resulting in weirdness, e.g. I'm pretty sure there
11640         were two copies of global static variables.
11641
11642         * dbus/dbus-internals.c: move the malloc debug stuff to
11643         dbus-memory.c
11644
11645         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11646         empty.
11647
11648         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11649
11650         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11651         on failure.
11652
11653         * bus/dispatch.c (bus_dispatch_add_connection): free
11654         message_handler_slot when no longer using it, so
11655         memory leak checkers are happy for the test suite.
11656
11657         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11658
11659         * bus/bus.c (new_connection_callback): disconnect in here if
11660         bus_connections_setup_connection fails.
11661
11662         * bus/connection.c (bus_connections_unref): fix to free the
11663         connections
11664         (bus_connections_setup_connection): if this fails, don't
11665         disconnect the connection, just be sure there are no side
11666         effects.
11667
11668         * dbus/dbus-string.c (undo_alignment): unbreak this
11669
11670         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11671         leaking
11672         (_dbus_auth_new): fix the order in which we free strings
11673         on OOM failure
11674
11675         * bus/connection.c (bus_connection_disconnected): fix to
11676         not send ServiceDeleted multiple times in case of memory
11677         allocation failure
11678
11679         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11680         get the base service name
11681         (dbus_bus_register_client): don't return base service name,
11682         instead store it on the DBusConnection and have an accessor
11683         function for it.
11684         (dbus_bus_register_client): rename dbus_bus_register()
11685
11686         * bus/dispatch.c (check_hello_message): verify that other
11687         connections on the bus also got the correct results, not
11688         just the one sending hello
11689
11690 2003-03-15  Havoc Pennington  <hp@pobox.com>
11691
11692         Make it pass the Hello handling test including all OOM codepaths.
11693         Now to do other messages...
11694
11695         * bus/services.c (bus_service_remove_owner): fix crash when
11696         removing owner from an empty list of owners
11697         (bus_registry_ensure): don't leave service in the list of
11698         a connection's owned services if we fail to put the service
11699         in the hash table.
11700
11701         * bus/connection.c (bus_connection_preallocate_oom_error): set
11702         error flag on the OOM error.
11703
11704         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11705         handle _dbus_transport_set_connection failure
11706
11707         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11708         to create watches up front and simply enable/disable them as
11709         needed.
11710         (unix_connection_set): this can now fail on OOM
11711
11712         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11713         of enabling/disabling a watch or timeout.
11714
11715         * bus/loop.c (bus_loop_iterate): don't touch disabled
11716         watches/timeouts
11717
11718         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11719
11720 2003-03-15  Havoc Pennington  <hp@pobox.com>
11721
11722         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11723         write useful test code, after all that futzing around ;-)
11724
11725         Test does not yet pass because we can't handle OOM in
11726         _dbus_transport_messages_pending (basically,
11727         dbus_connection_preallocate_send() does not prealloc the write
11728         watch). To fix this, I think we need to add new stuff to
11729         set_watch_functions, namely a SetEnabled function so we can alloc
11730         the watch earlier, then enable it later.
11731
11732         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11733         dbus-memory.c to the convenience lib
11734
11735         * bus/test.c: rename some static functions to keep them clearly
11736         distinct from stuff in connection.c. Handle client disconnection.
11737
11738 2003-03-14  Havoc Pennington  <hp@pobox.com>
11739
11740         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11741         transport, tests more of the real codepath. Set up clients
11742         with bus_setup_debug_client.
11743
11744         * bus/test.c (bus_setup_debug_client): function to set up debug
11745         "clients" on the main loop
11746
11747         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11748         support
11749
11750         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11751         server type
11752
11753         * dbus/dbus-server-debug.c: support a debug server based on pipes
11754
11755         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11756         (_dbus_close): new function
11757
11758         * configure.in: check for socketpair
11759
11760 2003-03-14  Havoc Pennington  <hp@redhat.com>
11761
11762         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11763         cheesy hack
11764
11765         * dbus/dbus-transport-debug.c: rework this a good bit to be
11766         less complicated. hopefully still works.
11767
11768         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11769         manually
11770
11771         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11772         after running it
11773
11774         * dbus/dbus-message.c (dbus_message_copy): rename from
11775         dbus_message_new_from_message, fix it up to copy
11776         all the message fields, add test case
11777
11778         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11779         not quite passing yet
11780
11781 2003-03-14  Havoc Pennington  <hp@pobox.com>
11782
11783         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11784         until no work remains" in test code. (the large diff here
11785         is just code movement, no actual changes)
11786
11787         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11788         1, no point waiting around for test code.
11789         (_dbus_server_debug_accept_transport): unref the timeout
11790         after adding it (right?)
11791
11792         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11793
11794 2003-03-13  Havoc Pennington  <hp@redhat.com>
11795
11796         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11797         out of memory
11798
11799         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11800         of memory
11801
11802         * dbus/dbus-connection.h: Make AddWatchFunction and
11803         AddTimeoutFunction return a bool so they can fail on out-of-memory
11804
11805         * bus/bus.c (bus_context_new): set up timeout handlers
11806
11807         * bus/connection.c (bus_connections_setup_connection): set up
11808         timeout handlers
11809
11810         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11811         can fail
11812
11813         * bus/bus.c (bus_context_new): adapt to changes
11814
11815         * bus/connection.c: adapt to changes
11816
11817         * test/watch.c: adapt to DBusWatch changes
11818
11819         * bus/dispatch.c (bus_dispatch_test): started adding this but
11820         didn't finish
11821
11822 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11823
11824         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11825
11826 2003-03-13  Havoc Pennington  <hp@pobox.com>
11827
11828         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11829         set up a test framework as for the library
11830
11831 2003-03-12  Havoc Pennington  <hp@pobox.com>
11832
11833         Throughout: purge global variables, introduce BusActivation,
11834         BusConnections, BusRegistry, etc. objects instead.
11835
11836         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11837         message bus object
11838
11839         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11840         going to redo this a bit differently I think
11841
11842 2003-03-12  Havoc Pennington  <hp@redhat.com>
11843
11844         Mega-patch that gets the message bus daemon initially handling
11845         out-of-memory. Work still needed. Also lots of random
11846         moving stuff to DBusError instead of ResultCode.
11847
11848         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11849
11850         * dbus/dbus-connection.c
11851         (dbus_connection_send_with_reply_and_block): use DBusError
11852
11853         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11854         DBusResultCode
11855
11856         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11857         code here, as the only failure possible is OOM.
11858
11859         * bus/connection.c (bus_connection_disconnect):
11860         rename bus_connection_disconnected as it's a notification only
11861
11862         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11863         "name" on get_args failure, should be done by get_args;
11864         don't disconnect client for bad args, just return an error.
11865         (bus_driver_handle_service_exists): ditto
11866
11867         * bus/services.c (bus_services_list): NULL-terminate returned array
11868
11869         * bus/driver.c (bus_driver_send_service_lost)
11870         (bus_driver_send_service_acquired): send messages from driver to a
11871         specific client to the client's unique name, not to the broadcast
11872         service.
11873
11874         * dbus/dbus-message.c (decode_header_data): reject messages that
11875         contain no name field
11876         (_dbus_message_get_client_serial): rename to
11877         dbus_message_get_serial and make public
11878         (_dbus_message_set_serial): rename from set_client_serial
11879         (_dbus_message_set_reply_serial): make public
11880         (_dbus_message_get_reply_serial): make public
11881
11882         * bus/connection.c (bus_connection_foreach): allow stopping
11883         iteration by returning FALSE from foreach function.
11884
11885         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11886         (dbus_connection_free_preallocated_send)
11887         (dbus_connection_preallocate_send): new API for sending a message
11888         without possibility of malloc failure.
11889         (dbus_connection_send_message): rename to just
11890         dbus_connection_send (and same for whole function family)
11891
11892         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11893
11894         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11895
11896         * bus/activation.c: handle/return errors
11897
11898         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11899
11900         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11901         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11902         (_dbus_result_from_errno): move to this file
11903
11904 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11905
11906         * dbus/dbus-marshal.c:
11907         (_dbus_marshal_set_string):
11908         Take a length argument so we can marshal the correct string
11909         length.
11910
11911         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11912         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11913         (_dbus_marshal_test):
11914         * dbus/dbus-marshal.h:
11915         Add support for marshalling and demarshalling dicts.
11916
11917         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11918         Add support for TYPE DICT.
11919
11920         * dbus/dbus-message.c: (set_string_field):
11921         Adjust header padding.
11922
11923         (dbus_message_append_args_valist), (dbus_message_append_dict),
11924         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11925         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11926         (check_message_handling), (check_have_valid_message):
11927         * dbus/dbus-message.h:
11928         Add functions for setting and getting dicts.
11929
11930         * dbus/dbus-protocol.h:
11931         Add DBUS_TYPE_DICT.
11932
11933         * dbus/dbus.h:
11934         Add dbus-dict.h
11935
11936         * doc/dbus-specification.sgml:
11937         Add information about how dicts are marshalled.
11938
11939         * test/data/invalid-messages/dict-with-nil-value.message:
11940         * test/data/invalid-messages/too-short-dict.message:
11941         * test/data/valid-messages/dict-simple.message:
11942         * test/data/valid-messages/dict.message:
11943         Add sample messages containing dicts.
11944
11945 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11946
11947         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11948
11949 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11950
11951         * dbus/Makefile.am:
11952         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11953         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11954         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11955         (dbus_dict_set_double), (dbus_dict_set_string),
11956         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11957         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11958         (dbus_dict_set_string_array), (_dbus_dict_test):
11959         * dbus/dbus-dict.h:
11960         Fix according to comments from Havoc.
11961
11962 2003-03-06  Michael Meeks  <michael@server.home>
11963
11964         * configure.in: if we don't have kde-config, disable have_qt.
11965
11966 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11967
11968         * dbus/Makefile.am:
11969         Add dbus-dict.[ch]
11970
11971         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11972         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11973         (dbus_dict_remove), (dbus_dict_get_value_type),
11974         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11975         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11976         (dbus_dict_put_double), (dbus_dict_put_string),
11977         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11978         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11979         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11980         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11981         (dbus_dict_get_double), (dbus_dict_get_string),
11982         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11983         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11984         (dbus_dict_get_string_array), (_dbus_dict_test):
11985         * dbus/dbus-dict.h:
11986         Add DBusDict implementation
11987
11988         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11989         * dbus/dbus-test.h:
11990         Add _dbus_dict_test
11991
11992 2003-03-04  Havoc Pennington  <hp@pobox.com>
11993
11994         * test/data/auth/*: adapt to changes
11995
11996         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11997         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11998         userid
11999
12000         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12001         more stuff from being in a context name, to make the protocol
12002         simpler to deal with
12003
12004         * dbus/dbus-errors.c (dbus_error_has_name): new function
12005         (dbus_error_is_set): new function
12006
12007         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12008         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12009
12010         * dbus/dbus-connection.c (dbus_connection_flush): also read
12011         messages during a flush operation
12012
12013         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12014
12015 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12016
12017         * configure.in: Check for gethostbyname on Solaris.
12018
12019         * dbus/dbus-transport.c: (_dbus_transport_open):
12020         Remove duplicate "tcp" entry.
12021
12022         * doc/dbus-specification.sgml:
12023         Clarify some things.
12024
12025 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12026
12027         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12028         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12029         (_dbus_keyring_test):
12030         * dbus/dbus-md5.c: (_dbus_md5_compute):
12031         * dbus/dbus-sha.c: (_dbus_sha_compute):
12032         Plug memory leaks.
12033
12034 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12035
12036         * README: Add some things.
12037
12038 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12039
12040         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12041         after case DBUS_TYPE_BOOELAN.
12042
12043 2003-03-02  Havoc Pennington  <hp@pobox.com>
12044
12045         * test/break-loader.c (randomly_set_extreme_ints): add test that
12046         sets really huge and small integers
12047
12048         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12049         that length of boolean array fits in the string, and that
12050         string has room for boolean value in single-bool case.
12051
12052         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12053         optional value to "ALIGN" command which is what to fill the
12054         alignment with.
12055
12056         * test/data/valid-messages/no-padding.message: add regression
12057         test for the message padding problem
12058
12059 2003-03-02  Havoc Pennington  <hp@pobox.com>
12060
12061         * dbus/dbus-message.c (decode_header_data): fix to always init
12062         message_padding, from Benjamin Dauvergne
12063
12064 2003-03-02  Havoc Pennington  <hp@pobox.com>
12065
12066         * configure.in: 0.5
12067
12068         * NEWS: Update.
12069
12070 2003-03-01  Joe Shaw  <joe@assbarn.com>
12071
12072         * configure.in: Check for "struct cmsgcred" and try to access its
12073         members for BSD-like unices.
12074
12075         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12076         _dbus_read_credentials_unix_socket().
12077         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12078         read() for reading the credential byte off the unix socket.  Use
12079         struct cmsgcred on systems that support it.
12080
12081 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12082
12083         * glib/Makefile.am:
12084         * configure.in:
12085         Make gthreads-2.0 dependency optional. Don't build thread test if
12086         its not found.
12087
12088 2003-02-27  Havoc Pennington  <hp@pobox.com>
12089
12090         * dbus/dbus-connection.c
12091         (dbus_connection_send_message_with_reply_and_block): fix doh!
12092         doh! doh! bug that resulted in never removing a reply from the
12093         queue, no wonder we called get_reply_serial so much ;-)
12094
12095         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12096         and client serial instead of demarshaling them every time
12097
12098 2003-02-27  Havoc Pennington  <hp@pobox.com>
12099
12100         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12101         more inlined, using dbus-string-private.h, speeds things up
12102         substantially
12103
12104         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12105         when freeing the string
12106         (_dbus_string_steal_data): fix for align offset
12107         (undo_alignment): new function
12108
12109 2003-02-26  Havoc Pennington  <hp@redhat.com>
12110
12111         All kinds of audit fixes from Owen, plus initial attempt to
12112         handle unaligned memory returned from malloc.
12113
12114         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12115         leave room for align_offset and nul byte
12116         (fixup_alignment): function to track an align_offset and
12117         ensure real->str is aligned
12118         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12119         to allow a nul byte plus align offset
12120         (_dbus_string_lock): fix overflow issue
12121         (_dbus_string_init_const_len): add assertions on sanity of len,
12122         assign allocated to be ALLOCATION_PADDING larger than len
12123         (set_length): fixup the overflow handling
12124         (_dbus_string_get_data_len): fix overflow in assertion
12125         (open_gap): detect overflow in size of gap to be opened
12126         (_dbus_string_lengthen): add overflow check
12127         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12128         (_dbus_string_append): add overflow check
12129         (_dbus_string_append_unichar): overflow
12130         (_dbus_string_delete): fix overflow in assertion
12131         (_dbus_string_copy_len): overflow in assertion
12132         (_dbus_string_replace_len): overflows in assertions
12133         (_dbus_string_find): change to implement in terms of
12134         _dbus_string_find_to
12135         (_dbus_string_find_to): assorted fixage
12136         (_dbus_string_equal_c_str): assert c_str != NULL,
12137         fix logic so the function works
12138         (_dbus_string_ends_with_c_str): fix overflow thingy
12139         (_dbus_string_base64_encode): overflow fix
12140         (_dbus_string_validate_ascii): overflow
12141         (_dbus_string_validate_nul): overflow
12142
12143 2003-02-26  Havoc Pennington  <hp@redhat.com>
12144
12145         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12146
12147 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12148
12149         * configure.in:
12150         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12151
12152         * dbus/dbus-connection.c:
12153         * dbus/dbus-connection.h:
12154         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12155         Add dbus_connection_set_wakeup_main_function and use it when queueing
12156         incoming and outgoing messages.
12157
12158
12159         * dbus/dbus-dataslot.c:
12160         Threadsafe usage of DBusDataSlotAllocator
12161
12162         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12163         dbus_new can fail.
12164
12165         * dbus/dbus-server-unix.c:
12166         Add todo comment
12167
12168         * glib/dbus-gmain.c:
12169         Implement the new wakeup functions for glib.
12170
12171         * glib/Makefile.am:
12172         * glib/test-thread-client.c:
12173         * glib/test-thread-server.c:
12174         * glib/test-thread.h:
12175         Initial cut at some thread test code. Not really done yet.
12176
12177 2003-02-26  Havoc Pennington  <hp@pobox.com>
12178
12179         * dbus/dbus-connection.c
12180         (dbus_connection_send_message_with_reply_and_block): fix crash
12181         where we ref'd the outgoing message instead of the returned reply
12182
12183         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12184         at the end of this function, so if we didn't need to read for
12185         authentication, we reinstall it for receiving messages
12186
12187         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12188         a NULL sender for peer-to-peer case
12189
12190         * dbus/dbus-transport-unix.c (check_read_watch): handle
12191         !authenticated case correctly
12192
12193         * glib/dbus-gmain.c: add support for DBusServer
12194
12195         * dbus/dbus-server.c: add data slot support
12196
12197         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12198         return values and handle errors
12199
12200         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12201         DBusConnection
12202
12203         * Doxyfile.in (INPUT): add glib subdir
12204
12205         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12206         setup_with_g_main instead of hookup_with_g_main; write docs
12207
12208 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12209
12210         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12211         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12212         * dbus/dbus-message.c: (dbus_message_append_boolean),
12213         (dbus_message_append_boolean_array),
12214         (dbus_message_get_args_valist), (_dbus_message_test):
12215         * dbus/dbus-message.h:
12216         * doc/dbus-specification.sgml:
12217         Various fixes as pointed out by Havoc.
12218
12219         * test/data/invalid-messages/bad-boolean-array.message:
12220         * test/data/invalid-messages/bad-boolean.message:
12221         Add invalid boolean value test cases.
12222
12223 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12224
12225         * dbus/dbus-internals.c: (_dbus_type_to_string):
12226         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12227         (_dbus_marshal_validate_arg):
12228         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12229         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12230         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12231         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12232         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12233         (dbus_message_iter_get_double),
12234         (dbus_message_iter_get_boolean_array), (message_iter_test):
12235         * dbus/dbus-message.h:
12236         * dbus/dbus-protocol.h:
12237         * doc/dbus-specification.sgml:
12238         * test/data/valid-messages/lots-of-arguments.message:
12239         Add support for boolean and boolean array types.
12240
12241 2003-02-23  Havoc Pennington  <hp@pobox.com>
12242
12243         * dbus/dbus-keyring.c: finish most of this implementation and
12244         simple unit test
12245
12246         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12247         these barf if the error isn't cleared to NULL
12248
12249         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12250         (_dbus_create_directory): new function
12251
12252         * dbus/dbus-errors.c (dbus_set_error): fix warning
12253
12254         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12255         (_dbus_string_hex_decode): new function
12256         (test_hex_roundtrip): test code
12257
12258         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12259
12260         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12261
12262         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12263         the save-to-temp/rename trick to atomically write the new file
12264         (_dbus_string_parse_uint): new function
12265
12266 2003-02-22  Havoc Pennington  <hp@pobox.com>
12267
12268         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12269
12270 2003-02-22  Havoc Pennington  <hp@pobox.com>
12271
12272         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12273         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12274
12275         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12276
12277         * dbus/test/data/sha-1: add US government test suite for SHA-1
12278
12279 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12280
12281         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12282         Make string arrays NULL-terminated.
12283
12284         * dbus/dbus-memory.c: (dbus_free_string_array):
12285         * dbus/dbus-memory.h:
12286         New function for freeing NULL-terminated string arrays.
12287
12288         * dbus/dbus-message-builder.c: (append_quoted_string),
12289         (_dbus_message_data_load):
12290         Add support for array types.
12291
12292         * dbus/dbus-message.c: (check_message_handling):
12293         Add more types as test cases.
12294
12295         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12296         (_dbus_string_parse_double):
12297         Add the start offset to the end offset.
12298
12299         * test/data/valid-messages/lots-of-arguments.message:
12300         New test message with lots of arguments.
12301
12302 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12303
12304         * dbus/dbus-message.c: (dbus_message_append_nil),
12305         (dbus_message_append_int32), (dbus_message_append_uint32),
12306         (dbus_message_append_double), (dbus_message_append_string),
12307         (dbus_message_append_int32_array),
12308         (dbus_message_append_uint32_array),
12309         (dbus_message_append_double_array),
12310         (dbus_message_append_byte_array),
12311         (dbus_message_append_string_array):
12312         Fix all out-of-memory handling in these functions.
12313
12314 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12315
12316         * dbus/dbus-message.c: (dbus_message_append_nil):
12317         Fix a silly.
12318
12319 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12320
12321         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12322         (dbus_message_append_nil), (dbus_message_append_int32_array),
12323         (dbus_message_append_uint32_array),
12324         (dbus_message_append_double_array),
12325         (dbus_message_append_byte_array),
12326         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12327         (dbus_message_iter_get_int32_array),
12328         (dbus_message_iter_get_uint32_array),
12329         (dbus_message_iter_get_double_array),
12330         (dbus_message_iter_get_byte_array),
12331         (dbus_message_iter_get_string_array):
12332
12333         * dbus/dbus-message.h:
12334         Add functions for appending and getting arrays.
12335
12336 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12337
12338         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12339         element size at least 8 bytes, fixes mempool tests on
12340         64-bit machines.
12341
12342 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12343
12344         * dbus/dbus-transport-unix.c (unix_do_iteration):
12345         Unlock the connection mutex during a blocking select call.
12346         Add todo about how we need a way to wake up the select.
12347
12348         * dbus/dbus-connection-internal.h:
12349         * dbus/dbus-connection.c:
12350         Add _dbus_connection_lock and _dbus_connection_unlock.
12351
12352 2003-02-19  Havoc Pennington  <hp@pobox.com>
12353
12354         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12355         Doxyfile.in, not Doxyfile
12356
12357         * dbus/dbus-keyring.c: do some hacking on this
12358
12359         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12360
12361         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12362         dbus_error_init
12363         (dbus_set_error): remove dbus_error_init, check for message ==
12364         NULL *before* we sprintf into it, and add @todo about including
12365         system headers in this file
12366
12367         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12368
12369         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12370
12371         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12372         get various bits of user information based on either username
12373         or user ID
12374         (_dbus_homedir_from_username): new function
12375
12376 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12377
12378         * configure.in:
12379         Add check for nonposix getpwnam_r
12380
12381         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12382         Align the pool element size to a sizeof (void *) boundary.
12383
12384         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12385         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12386         General Solaris fixes.
12387
12388         * test/data/valid-messages/simplest-manual.message:
12389         Explicitly state that we want little-endian packing.
12390
12391 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12392
12393         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12394
12395         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12396         Added to create a transport connecting using a tcp/ip socket.
12397
12398         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12399         to a tcp socket at given host and port.
12400         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12401         hostname and port.
12402
12403         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12404
12405         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12406         Added to create a server listening on a TCP/IP socket.
12407
12408 2003-02-19  Havoc Pennington  <hp@pobox.com>
12409
12410         Throughout: mop up all the Doxygen warnings and undocumented
12411         stuff.
12412
12413         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12414         to search any paths.
12415
12416         * dbus/dbus-threads.c: move global mutex initializers to
12417         dbus-internals.h, multiple prototypes was confusing doxygen
12418         besides being kind of ugly
12419
12420         * Doxyfile (PREDEFINED): have Doxygen define
12421         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12422         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12423         (do not abuse the feature! it's for stuff like the autogenerated
12424         macros in dbus-md5.c, not just for things you don't feel like
12425         documenting...)
12426
12427 2003-02-18  Havoc Pennington  <hp@pobox.com>
12428
12429         * dbus/dbus-string.c (_dbus_string_zero): new function
12430
12431         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12432         wrap it in some dbus-friendly API
12433
12434         * dbus/dbus-types.h: add 16-bit types
12435
12436 2003-02-18  Joe Shaw  <joe@assbarn.com>
12437
12438         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12439         credentials from our currently running process.
12440         (get_word): Fix a buglet where we were copying the entire length
12441         instead of relative to our position.
12442
12443         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12444         keys on the stack... it's 640k of data.
12445
12446         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12447         read the credentials byte off the socket, even if we don't have
12448         SO_PEERCRED.
12449         (_dbus_poll): Implement poll() using select() for systems which
12450         don't have it.
12451
12452         * glib/test-dbus-glib.c (main): Print out an error if no
12453         parameters are given.
12454
12455         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12456         can fallback to a secondary auth mechanism if the first fails.
12457
12458 2003-02-18  Havoc Pennington  <hp@pobox.com>
12459
12460         * AUTHORS: add Alex
12461
12462 2003-02-17  Havoc Pennington  <hp@pobox.com>
12463
12464         * doc/dbus-specification.sgml: lots of cosmetic
12465         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12466         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12467         s/server/bus/ (except in authentication section). Add a section
12468         "Message Bus Message Routing"
12469
12470 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12471
12472         Release 0.4
12473
12474         * NEWS: Update
12475
12476 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12477
12478         * doc/dbus-specification.sgml:
12479         Specification updates.
12480
12481 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12482
12483         * bus/activation.c: (bus_activation_init), (child_setup),
12484         (bus_activation_activate_service):
12485         * bus/activation.h:
12486         * bus/main.c: (main):
12487         Set DBUS_ADDRESS environment variable.
12488
12489         * dbus/dbus-errors.c: (dbus_set_error):
12490         Don't use va_copy since that's a C99 feature.
12491
12492         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12493         (_dbus_spawn_async):
12494         * dbus/dbus-sysdeps.h:
12495         Add child_setup_func to _dbus_spawn_async.
12496
12497         * doc/dbus-specification.sgml:
12498         Update specification.
12499
12500         * test/spawn-test.c: (setup_func), (main):
12501         Fix test.
12502
12503 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12504
12505         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12506         Added todo.
12507
12508 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12509
12510         * doc/.cvsignore:
12511         * doc/Makefile.am:
12512         * doc/dbus-test-plan.sgml:
12513         Add test plan document.
12514
12515         * test/Makefile.am:
12516         Fix distcheck.
12517
12518 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12519
12520         * dbus/dbus-message.c: (decode_header_data),
12521         (_dbus_message_loader_return_buffer):
12522         Set the header padding amount when loading a message.
12523
12524 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12525
12526         * bus/dispatch.c: (send_one_message):
12527         Only send broadcast messages to registered connections.
12528
12529         * dbus/dbus-message.c: (dbus_message_name_is):
12530         * dbus/dbus-message.h:
12531         New convenience function.
12532
12533         * dbus/dbus-transport-debug.c: (do_reading):
12534         Only dispatch one message per run.
12535
12536         * test/Makefile.am:
12537         * test/bus-test.c: (new_connection_callback), (die),
12538         (test_hello_client1_handler), (test_hello_client2_handler),
12539         (test_hello_replies), (main):
12540
12541         * test/bus-test-loop.[ch]:
12542         Add these.
12543
12544 2003-02-16  Havoc Pennington  <hp@pobox.com>
12545
12546         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12547         backward conditional
12548
12549 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12550
12551         * dbus/dbus-connection.c:
12552         Implement sent_message_with_reply. (with_reply_and block is still
12553         busted).
12554         Made dispatch_message not lose message if OOM.
12555
12556         * dbus/dbus-errors.h:
12557         Add NoReply error (for reply timeouts).
12558
12559 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12560
12561         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12562         Actually free keys and values when destroying hashtable.
12563
12564 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12565
12566         * dbus/dbus-auth.c: (client_try_next_mechanism):
12567         Plug a leak.
12568
12569         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12570         Return TRUE if there's no thread implementation around.
12571
12572         * glib/dbus-gmain.c: (free_source),
12573         (dbus_connection_hookup_with_g_main):
12574         Make sure to remove the GSource when the connection is finalized.
12575
12576 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12577
12578         * bus/dispatch.c: (bus_dispatch_message_handler):
12579         * dbus/dbus-errors.h:
12580         Return an error if someone tries to send a message to a service
12581         that doesn't exist.
12582
12583 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12584
12585         * bus/activation.c: (load_directory), (bus_activation_init),
12586         (bus_activation_activate_service):
12587         * bus/activation.h:
12588         * bus/driver.c:
12589         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12590         More work on the activation handling.
12591
12592         * dbus/dbus-errors.h:
12593         Add some error messages
12594
12595         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12596         * dbus/dbus-message.h:
12597         New function that creates an error message.
12598
12599         * dbus/dbus-protocol.h:
12600         Add ACTIVATE_SERVER message.
12601
12602         * dbus/dbus-server-unix.c: (unix_handle_watch),
12603         (_dbus_server_new_for_domain_socket):
12604         Call _dbus_fd_set_close_on_exec.
12605
12606         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12607         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12608         (_dbus_fd_set_close_on_exec):
12609         * dbus/dbus-sysdeps.h:
12610         Add _dbus_fd_set_close_on exec function. Also add function that checks
12611         that all open fds are set to close-on-exec and warns otherwise.
12612
12613         * dbus/dbus-transport-unix.c:
12614         (_dbus_transport_new_for_domain_socket):
12615         Call _dbus_fd_set_close_on_exec.
12616
12617 2003-02-16  Havoc Pennington  <hp@pobox.com>
12618
12619         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12620         allow people to avoid setting SIGPIPE to SIG_IGN
12621         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12622         we've been asked not to
12623
12624 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12625
12626         * dbus/dbus-list.c: (_dbus_list_append_link),
12627         (_dbus_list_prepend_link):
12628         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12629         (dbus_realloc):
12630         Warning fixes.
12631
12632 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12633
12634         * bus/Makefile.am:
12635         * bus/activation.c: (bus_activation_entry_free),
12636         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12637         * bus/activation.h:
12638         * bus/main.c: (main):
12639         Add simple activation support, doesn't work yet though.
12640
12641 2003-02-15   Zack Rusin  <zack@kde.org>
12642
12643         * qt/dbus-qthread.cpp:  small casting fix
12644
12645 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12646
12647         * dbus/dbus-errors.c: (dbus_set_error):
12648         * dbus/dbus-errors.h:
12649         Add a few errors and make dbus_set_error void.
12650
12651         * dbus/dbus-sysdeps.c:
12652         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12653         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12654         * dbus/dbus-sysdeps.h:
12655         Add _dbus_spawn_async.
12656
12657         * test/spawn-test.c: (main):
12658         Test for _dbus_spawn_async.
12659
12660 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12661
12662         * dbus/dbus-internals.h:
12663         Fix build without tests.
12664
12665         * dbus/dbus-list.c: (alloc_link):
12666         Fix a segfault when a malloc fails.
12667
12668         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12669         (dbus_malloc0), (dbus_realloc):
12670         Add support for malloc debugging.
12671
12672 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12673
12674         * dbus/dbus-threads.c:
12675         * dbus/dbus-threads.h:
12676         Add condvars. Remove static mutext from API.
12677         Implement static mutexes by initializing them from threads_init.
12678
12679         * glib/dbus-gthread.c:
12680         * qt/dbus-qthread.cpp:
12681         Update with the thread api changes.
12682
12683
12684         * dbus/dbus-list.c:
12685         * dbus/dbus-list.h:
12686         Turn StaticMutex into normal mutex + init function.
12687         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12688         _dbus_list_append_link, _dbus_list_prepend_link
12689
12690
12691         * dbus/dbus-sysdeps.c:
12692         * dbus/dbus-sysdeps.h:
12693         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12694         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12695
12696         * dbus/dbus-protocol.h:
12697         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12698
12699         * dbus/dbus-message.c:
12700         Make ref/unref atomic.
12701         Fix some docs.
12702
12703         * dbus/dbus-connection-internal.h:
12704         * dbus/dbus-connection.c:
12705         * dbus/dbus-connection.h:
12706         Make threadsafe.
12707         Change _peek to _borrow,_return & _steal_borrowed.
12708         Change disconnect callback to event.
12709         Make dbus_connection_dispatch_messages reentrant.
12710
12711         * dbus/dbus-transport.c:
12712         Don't ref the connection on calls to the transport
12713         implementation.
12714
12715         * dbus/dbus-message-handler.c:
12716         Make threadsafe.
12717
12718         * glib/dbus-gmain.c:
12719         Don't use peek_message anymore
12720
12721         * test/Makefile.am:
12722         * test/debug-thread.c:
12723         * test/debug-thread.h:
12724         Simple thread implementation that asserts() on deadlocks in
12725         single-threaded code.
12726
12727         * test/bus-test.c:
12728         (main) Call debug_threads_init.
12729
12730         * test/watch.c:
12731         Use disconnect message instead of disconnect callback.
12732
12733         * bus/connection.c:
12734         * bus/connection.h:
12735         Don't call dbus_connection_set_disconnect_function. Instead export
12736         bus_connection_disconnect.
12737
12738         * bus/dispatch.c:
12739         Call bus_connection_disconnect when we get a disconnected message.
12740
12741 2003-02-15  Havoc Pennington  <hp@pobox.com>
12742
12743         * dbus/dbus-message.c (dbus_message_new): fool around with the
12744         docs
12745
12746 2003-02-14  Havoc Pennington  <hp@pobox.com>
12747
12748         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12749
12750         * dbus/dbus-memory.c: fail if the debug functions indicate we
12751         should
12752
12753         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12754         (_dbus_decrement_fail_alloc_counter): debug functions to
12755         simulate memory allocation failures
12756
12757 2003-02-14  Havoc Pennington  <hp@pobox.com>
12758
12759         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12760         to DBusError
12761
12762 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12763
12764         * bus/driver.c: (bus_driver_handle_hello):
12765         * bus/driver.h:
12766         * bus/services.c: (bus_service_lookup):
12767         Reorder message sending so we get a more sane order.
12768
12769         * test/bus-test.c: (message_handler):
12770         Fix tyop.
12771
12772 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12773
12774         * bus/driver.c: (bus_driver_send_service_deleted),
12775         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12776         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12777         (bus_driver_send_welcome_message),
12778         (bus_driver_handle_list_services),
12779         (bus_driver_handle_acquire_service),
12780         (bus_driver_handle_service_exists):
12781         * dbus/dbus-bus.c: (dbus_bus_register_client),
12782         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12783         * dbus/dbus-errors.c: (dbus_result_to_string):
12784         * dbus/dbus-errors.h:
12785         * dbus/dbus-message.c: (dbus_message_append_args),
12786         (dbus_message_append_args_valist), (dbus_message_get_args),
12787         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12788         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12789         (dbus_message_iter_get_byte_array),
12790         (dbus_message_iter_get_string_array), (message_iter_test),
12791         (check_message_handling), (_dbus_message_test):
12792         * dbus/dbus-message.h:
12793         * test/bus-test.c: (main):
12794         Change fields to arguments in messages, so that they won't be
12795         confused with header fields.
12796
12797         * glib/test-dbus-glib.c: (main):
12798         Remove append_fields from hello message.
12799
12800 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12801
12802         * dbus/dbus-errors.c:
12803         * dbus/dbus-message.c:
12804         * dbus/dbus-string.c:
12805         Documentation fixes.
12806
12807 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12808
12809         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12810         (remove_timeout):
12811         Implement support for timeouts in dbus-glib.
12812
12813 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12814
12815         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12816         * dbus/dbus-message.c: (process_test_subdir):
12817         * test/break-loader.c: (find_breaks_based_on):
12818         Plug some memory leaks.
12819
12820 2003-02-13  Richard Hult  <rhult@codefactory.se>
12821
12822         * bus/main.c: Fix build.
12823
12824         * dbus/dbus-errors.h:
12825         * dbus/dbus-errors.c: Fix copyright for Anders.
12826
12827 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12828
12829         * bus/Makefile.am:
12830         Add utils.[ch]
12831
12832         * bus/connection.c: (bus_connection_foreach):
12833         Fix a warning.
12834
12835         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12836         (unescape_string), (new_section), (parse_section_start),
12837         (parse_key_value), (report_error), (bus_desktop_file_load),
12838         (bus_desktop_file_get_string):
12839         * bus/desktop-file.h:
12840         Use DBusError for error reporting.
12841
12842         * bus/dispatch.c: (send_one_message),
12843         (bus_dispatch_message_handler):
12844         * bus/driver.c: (bus_driver_send_service_deleted),
12845         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12846         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12847         (bus_driver_send_welcome_message),
12848         (bus_driver_handle_list_services),
12849         (bus_driver_handle_acquire_service),
12850         (bus_driver_handle_service_exists):
12851         * bus/loop.c: (bus_loop_run):
12852         * bus/main.c:
12853         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12854
12855         * bus/utils.c: (bus_wait_for_memory):
12856         * bus/utils.h:
12857         New files with general utility functions.
12858
12859         * dbus/dbus-internals.h:
12860         Remove _DBUS_HANDLE_OOM.
12861
12862 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12863
12864         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12865         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12866         * dbus/dbus-errors.h:
12867         Add DBusError structure.
12868
12869 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12870
12871         * test/data/valid-messages/standard-acquire-service.message:
12872         * test/data/valid-messages/standard-hello.message:
12873         * test/data/valid-messages/standard-list-services.message:
12874         * test/data/valid-messages/standard-service-exists.message:
12875         Add some standard messages.
12876
12877 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12878
12879         * bus/driver.c: (bus_driver_send_welcome_message),
12880         (bus_driver_handle_list_services),
12881         (bus_driver_handle_acquire_service),
12882         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12883         Update for API changes in libdbus.
12884
12885         * dbus/dbus-message.c: (dbus_message_new_reply):
12886         * dbus/dbus-message.h:
12887         Remove the name argument. The spec states that replies shouldn't
12888         have a name.
12889
12890 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12891
12892         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12893         (report_error), (bus_desktop_file_load), (lookup_section),
12894         (lookup_line), (bus_desktop_file_get_raw),
12895         (bus_desktop_file_get_string):
12896         * bus/desktop-file.h:
12897         Some fixes, and new functions for getting a key value from a section.
12898
12899 2003-02-13  Havoc Pennington  <hp@pobox.com>
12900
12901         * test/data/auth/fail-after-n-attempts.auth-script: new test
12902
12903         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12904         reject the client.
12905
12906 2003-02-13  Havoc Pennington  <hp@pobox.com>
12907
12908         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12909         dbus_credentials_match were backward
12910
12911         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12912         NO_CREDENTIALS and ROOT_CREDENTIALS
12913
12914         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12915         into here. Never process more commands after we've reached an
12916         end state; store further data as unused bytes.
12917
12918         * test/data/auth/*: add more auth tests
12919
12920         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12921         command to match exact string and EXPECT_UNUSED to match unused
12922         bytes
12923
12924         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12925
12926 2003-02-12  Havoc Pennington  <hp@pobox.com>
12927
12928         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12929         \r off of popped lines
12930
12931         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12932         scripts
12933
12934         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12935         SEND, append \r\n
12936
12937 2003-02-12  Havoc Pennington  <hp@pobox.com>
12938
12939         * dbus/Makefile.am: remove break-loader from the build, since it
12940         moved.
12941
12942         * configure.in: add --enable-gcov to turn on coverage profiling
12943         flags and disable optimization
12944
12945 2003-02-10  Havoc Pennington  <hp@pobox.com>
12946
12947         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12948         initial cut at test framework for DBusAuth from laptop.
12949         Doesn't quite work yet but it compiles and I need to get
12950         it off the 266mhz laptop. ;-)
12951
12952         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12953         fix a memleak in error case
12954
12955 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12956
12957         * bus/Makefile.am:
12958         * bus/desktop-file.c:
12959         * bus/desktop-file.h:
12960         Add a desktop file parser.
12961
12962 2003-02-11  Zack Rusin  <zack@kde.org>
12963
12964         * qt/message.[h|cpp]: sample implementation
12965         of the KDE wrapper for DBusMessage
12966
12967 2003-02-09  Zack Rusin  <zack@kde.org>
12968
12969         * test/bus-test.c: make_it_compile
12970         * doc/dbus-specification.sgml: minimal semantic fix
12971
12972 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12973
12974         Release 0.3
12975
12976         * NEWS: Update
12977
12978 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12979
12980         * dbus/Makefile.am:
12981         * dbus/dbus-break-loader.c:
12982         * test/Makefile.am:
12983         * test/break-loader.c:
12984         Move dbus-break-loader to test/ and rename it to break-loader.
12985
12986 2003-02-02  Havoc Pennington  <hp@pobox.com>
12987
12988         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12989         for code to manage cookies in your home directory
12990
12991         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12992
12993         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12994         to authenticate, then disconnect the client.
12995
12996 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12997
12998         * dbus/dbus-message.c (dbus_message_append_fields):
12999         Correct docs.
13000
13001 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13002
13003         * doc/dbus-specification.sgml:
13004         Update address format section.
13005
13006 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13007
13008         * test/Makefile.am:
13009         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13010         (message_handler), (new_connection_callback), (loop_quit),
13011         (loop_run), (main):
13012         Add bus test.
13013
13014 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13015
13016         * bus/driver.c: (bus_driver_handle_service_exists):
13017         Simplify the code a bit.
13018
13019         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13020         Fix a silly.
13021
13022 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13023
13024         * bus/Makefile.am:
13025         Add libdbus-daemon.la and link to it.
13026
13027 2003-02-01  James Willcox  <jwillcox@gnome.org>
13028
13029         * bus/driver.c: (bus_driver_handle_own_service):
13030         Actually include the service reply code in the message.
13031
13032 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13033
13034         * bus/driver.c: (bus_driver_handle_service_exists):
13035         Don't unref the incoming message.
13036
13037 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13038
13039         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13040
13041 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13042
13043         * dbus/dbus-server.c: (dbus_server_listen):
13044         * dbus/dbus-transport.c: (_dbus_transport_open):
13045         ifdef out the calls to the debug transport and server.
13046
13047 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13048
13049         * dbus/dbus-watch.c (dbus_watch_get_flags):
13050         Add note in the docs that ERROR or HANGUP won't be returned
13051         and are assumed always on.
13052
13053         * glib/dbus-gmain.c (add_watch):
13054         Always add IO_ERR | IO_HUP
13055
13056         * dbus/dbus-message.h:
13057         Add semicolon after dbus_message_iter_get_string_array().
13058         Makes qt code build again
13059
13060 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13061
13062         * bus/driver.c: (create_unique_client_name),
13063         (bus_driver_handle_hello):
13064         Don't take a name, just use a numeric id to identify
13065         each client.
13066
13067         * dbus/Makefile.am:
13068         * dbus/dbus-bus.c: (dbus_bus_register_client),
13069         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13070         * dbus/dbus-bus.h:
13071         Add new convenience functions for communicating with the bus.
13072
13073         * dbus/dbus-message.h:
13074
13075         * dbus/dbus-protocol.h:
13076         Fix a typo.
13077
13078 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13079
13080         * dbus/dbus-message.c (dbus_message_append_fields):
13081         Add some more doc comments.
13082
13083 2003-02-01  Havoc Pennington  <hp@pobox.com>
13084
13085         * dbus/dbus-break-loader.c (randomly_modify_length): change
13086         a 4-byte value in the message as if it were a length
13087
13088         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13089         execute bit on saved files
13090
13091 2003-02-01  Havoc Pennington  <hp@pobox.com>
13092
13093         * dbus/dbus-break-loader.c (main): new program to find messages
13094         that break the loader.
13095
13096         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13097         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13098
13099         * dbus/dbus-string.c (_dbus_string_set_byte): new
13100
13101 2003-01-31  Havoc Pennington  <hp@pobox.com>
13102
13103         * dbus/dbus-message.c: refactor the test code to be more general,
13104         in preparation for writing a "randomly permute test cases to
13105         try to break the loader" program.
13106
13107 2003-01-31  Havoc Pennington  <hp@pobox.com>
13108
13109         * doc/dbus-specification.sgml: work on the specification
13110
13111         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13112         the protocol version of the message.
13113
13114         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13115         no longer specifies that.
13116         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13117         1/2/3/4)
13118
13119         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13120         "break" for DBUS_TYPE_NIL, remove @todo
13121
13122 2003-01-31  Havoc Pennington  <hp@pobox.com>
13123
13124         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13125         just set_is_error/get_is_error as this is a commonly-used
13126         function, and write docs.
13127
13128 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13129
13130         * dbus/dbus-address.c: (dbus_address_entry_free):
13131         Free key and value lists.
13132
13133         * dbus/dbus-internals.c: (_dbus_type_to_string):
13134         Add the types we didn't have.
13135
13136         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13137         (_dbus_marshal_validate_arg):
13138         Add NIL types.
13139
13140         * dbus/dbus-message.c: (dbus_message_set_sender):
13141         Remove todo about being able to set sender to NULL.
13142
13143         (dbus_message_set_is_error_reply),
13144         (dbus_message_get_is_error_reply):
13145         * dbus/dbus-message.h:
13146         New functions.
13147
13148         * dbus/dbus-protocol.h:
13149         Add error reply flag.
13150
13151         * test/data/valid-messages/opposite-endian.message:
13152         Add NIL type to test.
13153
13154 2003-01-31  Havoc Pennington  <hp@pobox.com>
13155
13156         * doc/dbus-specification.sgml: fully specify the header.  Add
13157         flags and major protocol version, and change header/body len to
13158         unsigned.
13159
13160         * dbus/dbus-message-builder.c (append_saved_length): append length
13161         as uint32
13162
13163         * dbus/dbus-message.c (dbus_message_create_header): change header
13164         length and body length to unsigned. Add the new fields from the
13165         spec
13166         (_dbus_message_loader_return_buffer): unsigned header/body len
13167
13168 2003-01-30  Havoc Pennington  <hp@pobox.com>
13169
13170         * dbus/dbus-auth.c: rework to use only REJECTED, no
13171         MECHANISMS
13172
13173         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13174         use REJECTED, suggested by Mark McLoughlin
13175
13176 2003-01-30  Havoc Pennington  <hp@pobox.com>
13177
13178         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13179         a better way to report errors here. e.g.  "unix address lacks
13180         path" or something. also "no such file" when the path doesn't
13181         exist, etc.
13182
13183         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13184         leaking list nodes
13185         (dbus_parse_address): add @todo about documenting address format,
13186         and allowing , and ; to be escaped
13187
13188 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13189
13190         * dbus/Makefile.am:
13191         Add dbus-address.[ch]
13192
13193         * dbus/dbus-address.c: (dbus_address_entry_free),
13194         (dbus_address_entries_free), (create_entry),
13195         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13196         (dbus_parse_address), (_dbus_address_test):
13197         * dbus/dbus-address.h:
13198         New files for dealing with address parsing.
13199
13200         * dbus/dbus-connection.c:
13201         Document timeout functions.
13202
13203         * dbus/dbus-message.c:
13204         Document dbus_message_new_from_message.
13205
13206         * dbus/dbus-server-debug.c:
13207         Document.
13208
13209         * dbus/dbus-server.c: (dbus_server_listen):
13210         Parse address and use correct server implementation.
13211
13212         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13213         * dbus/dbus-string.h:
13214         New function with test.
13215
13216         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13217         * dbus/dbus-test.h:
13218         Add address tests.
13219
13220         * dbus/dbus-transport-debug.c:
13221         Document.
13222
13223         * dbus/dbus-transport.c: (_dbus_transport_open):
13224         Parse address and use correct transport implementation.
13225
13226 2003-01-30  Havoc Pennington  <hp@pobox.com>
13227
13228         * dbus/dbus-message.c: use message->byte_order instead of
13229         DBUS_COMPILER_BYTE_ORDER throughout.
13230         (dbus_message_create_header): pad header to align the
13231         start of the body of the message to 8-byte boundary
13232
13233         * dbus/dbus-marshal.h: make all the demarshalers take const
13234         DBusString arguments.
13235
13236         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13237         validate message args here, so we don't have to do slow validation
13238         later, and so we catch bad messages as they are incoming. Also add
13239         better checks on header_len and body_len. Also fill in
13240         message->byte_order
13241
13242         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13243         implemented properly)
13244         (_dbus_string_validate_nul): new function to check all-nul
13245
13246         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13247         get_arg_end_pos and remove all validation
13248         (_dbus_marshal_validate_arg): actually do validation here.
13249
13250 2003-01-29  Havoc Pennington  <hp@pobox.com>
13251
13252         * dbus/dbus-message.c (check_message_handling): fix assertion
13253         failure on set_client_serial
13254
13255 2003-01-28  Havoc Pennington  <hp@pobox.com>
13256
13257         * dbus/dbus-server-debug.c: Add doc section comments
13258
13259         * dbus/dbus-transport-debug.c: add doc section comments
13260
13261 2003-01-28  Havoc Pennington  <hp@redhat.com>
13262
13263         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13264         the reverse order from how I had it
13265         (_dbus_string_base64_encode): reverse encoding order. I was
13266         basically byteswapping everything during encoding.
13267
13268 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13269
13270         * dbus/dbus-connection-internal.h:
13271         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13272         (_dbus_connection_remove_timeout):
13273         Add functions for adding and removing timeouts.
13274
13275         * dbus/dbus-message.c: (dbus_message_new_from_message):
13276         Add new function that takes a message and creates an exact
13277         copy of it, but with the refcount set to 1.
13278         (check_message_handling):
13279         Fix build error.
13280
13281         * dbus/dbus-server-protected.h:
13282         * dbus/dbus-server.c: (_dbus_server_init_base),
13283         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13284         (dbus_server_set_timeout_functions):
13285         (_dbus_server_remove_timeout):
13286         New functions so that a server can add and remove timeouts.
13287
13288         (dbus_server_listen):
13289         Add commented out call to dbus_server_debug_new.
13290
13291         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13292         Actually set the handler, doh.
13293
13294         * dbus/dbus-transport.c: (_dbus_transport_open):
13295         Add commented out call to dbus_transport_debug_client_new.
13296
13297         * dbus/Makefile.am:
13298         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13299
13300 2003-01-28  Havoc Pennington  <hp@pobox.com>
13301
13302         * dbus/dbus-message.c (check_message_handling): function to check
13303         on the loaded message, iterates over it etc.
13304
13305 2003-01-28  Havoc Pennington  <hp@pobox.com>
13306
13307         * test/Makefile.am (dist-hook): fix make distdir
13308
13309         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13310
13311 2003-01-27  Havoc Pennington  <hp@pobox.com>
13312
13313         * dbus/dbus-mempool.c (time_for_size): replace printf with
13314         _dbus_verbose
13315
13316         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13317         empty lines; fix the SAVE_LENGTH stuff to be
13318         START_LENGTH/END_LENGTH so it actually works; couple other
13319         bugfixes
13320
13321         * test/Makefile.am (dist-hook): add dist-hook for .message files
13322
13323         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13324         can be constant or locked.
13325         (_dbus_string_free): allow freeing a const string as
13326         documented/intended
13327
13328         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13329
13330         * dbus/dbus-test-main.c (main): take an argument which is the
13331         directory containing test data
13332
13333         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13334         argument to this and load all the messages in test/data/
13335         checking that they can be loaded or not loaded as appropriate.
13336
13337 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13338
13339         * bus/dispatch.c: (bus_dispatch_message_handler):
13340         Dispatch messages sent to services.
13341
13342         * bus/driver.c: (bus_driver_send_service_deleted),
13343         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13344         (bus_driver_send_service_acquired):
13345         Add helper functions for sending service related messages.
13346
13347         (bus_driver_send_welcome_message):
13348         Send HELLO_REPLY instead of WELCOME.
13349
13350         (bus_driver_handle_list_services):
13351         Send LIST_SERVICES_REPLY instead of SERVICES.
13352
13353         (bus_driver_handle_own_service),
13354         (bus_driver_handle_service_exists):
13355         New message handlers.
13356
13357         (bus_driver_handle_message):
13358         Invoke new message handlers.
13359
13360         (bus_driver_remove_connection):
13361         Don't remove any services here since that's done automatically
13362         by bus_service_remove_owner now.
13363
13364         * bus/driver.h:
13365         New function signatures.
13366
13367         * bus/services.c: (bus_service_add_owner):
13368         Send ServiceAcquired message if we're the only primary owner.
13369
13370         (bus_service_remove_owner):
13371         Send ServiceAcquired/ServiceLost messages.
13372
13373         (bus_service_set_prohibit_replacement),
13374         (bus_service_get_prohibit_replacement):
13375         Functions for setting prohibit replacement.
13376
13377         (bus_service_has_owner):
13378         New function that checks if a connection is in the owner queue of
13379         a certain service.
13380
13381         * bus/services.h:
13382         Add new function signatures.
13383
13384         * dbus/dbus-list.c: (_dbus_list_test):
13385         Add tests for _dbus_list_remove_last and traversing the list backwards.
13386
13387         * dbus/dbus-list.h:
13388         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13389         go any further, so return NULL then.
13390
13391         * dbus/dbus-protocol.h:
13392         Add new messages, service flags and service replies.
13393
13394 2003-01-26  Havoc Pennington  <hp@pobox.com>
13395
13396         * dbus/dbus-message-builder.c: implement, completely untested.
13397
13398         * test/data/*: add data to be used in testing.
13399         ".message" files are our simple loadable text format.
13400         ".message-raw" will be binary dumps of messages.
13401
13402         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13403
13404 2003-01-26  Havoc Pennington  <hp@pobox.com>
13405
13406         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13407
13408         * dbus/dbus-errors.c (dbus_result_to_string): add
13409         file errors
13410
13411         * dbus/dbus-message-builder.c: new file, will contain code to load
13412         up messages from files. Not implemented yet.
13413
13414 2003-01-26  Havoc Pennington  <hp@pobox.com>
13415
13416         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13417         the sender by setting to NULL
13418
13419 2003-01-26  Havoc Pennington  <hp@pobox.com>
13420
13421         The unit tests pass, but otherwise untested.  If it breaks, the
13422         tests should have been better. ;-)
13423
13424         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13425         the connection.
13426
13427         * dbus/dbus-message.c: redo everything so we maintain
13428         message->header as the only copy of the various fields.
13429         This avoids the possibility of out-of-memory in some cases,
13430         for example dbus_message_lock() can't run out of memory anymore,
13431         and avoids extra copying. Figured I may as well go ahead and do
13432         this since it was busted for dbus_message_lock to not return
13433         failure on OOM, and dbus_message_write_header was totally
13434         unchecked for OOM. Also fixed some random other bugs.
13435
13436         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13437         that strings are nul-terminated. Also, end_pos can be equal
13438         to string length just not greater than, I think.
13439         (_dbus_marshal_set_int32): new function
13440         (_dbus_marshal_set_uint32): new function
13441         (_dbus_marshal_set_string): new function
13442
13443         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13444         a warning, init timeout_list to NULL
13445         (dbus_connection_send_message): don't use uninitialized variable
13446         "serial"
13447
13448         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13449
13450 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13451
13452         * bus/driver.c: (bus_driver_handle_hello),
13453         (bus_driver_send_welcome_message):
13454         Plug leaks
13455
13456 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13457
13458         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13459         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13460         (dbus_connection_unref):
13461         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13462         * dbus/dbus-message.c: (dbus_message_unref),
13463         Plug memory leaks.
13464
13465         (dbus_message_get_fields):
13466         Remove debugging printout.
13467
13468         (_dbus_message_loader_return_buffer):
13469         Don't store the header string.
13470
13471         (_dbus_message_test):
13472         Plug leaks.
13473
13474 2003-01-26  Richard Hult  <rhult@codefactory.se>
13475
13476         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13477         the file descriptor list, since it can change under us.
13478
13479 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13480
13481         * glib/dbus-gmain.c: (dbus_connection_prepare),
13482         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13483         (remove_watch), (dbus_connection_hookup_with_g_main):
13484         Rewrite the glib handling to use its own GSource instead of a
13485         GIOChannel so we can catch messages put in the queue while waiting
13486         for a reply.
13487
13488 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13489
13490         * bus/Makefile.am:
13491         * bus/connection.c: (connection_disconnect_handler),
13492         (connection_watch_callback), (bus_connection_setup):
13493         * bus/dispatch.c: (send_one_message),
13494         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13495         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13496         * bus/dispatch.h:
13497         * bus/driver.c: (bus_driver_send_service_deleted),
13498         (bus_driver_send_service_created), (bus_driver_handle_hello),
13499         (bus_driver_send_welcome_message),
13500         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13501         (bus_driver_handle_message):
13502         * bus/driver.h:
13503         Refactor code, put the message dispatching in its own file. Use
13504         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13505         is disconnected.
13506
13507 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13508
13509         * dbus/dbus-internals.h:
13510         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13511
13512         * dbus/dbus-message.c: (dbus_message_get_sender):
13513         * dbus/dbus-message.h:
13514         Implement dbus_message_get_sender.
13515
13516         * dbus/dbus-protocol.h:
13517         Add message and service defines.
13518
13519 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13520
13521         * dbus/dbus-connection.c: (dbus_connection_send_message):
13522         * dbus/dbus-message-internal.h:
13523         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13524         (dbus_message_write_header):
13525         Remove _dbus_messag_unlock and don't set the client serial on a
13526         message if one already exists.
13527
13528 2003-01-24  Havoc Pennington  <hp@pobox.com>
13529
13530         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13531         list_pool
13532
13533         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13534         on OOM
13535
13536 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13537
13538         * dbus/dbus-list.c: (alloc_link), (free_link):
13539         Use a memory pool for the links.
13540
13541 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13542
13543         * bus/connection.c: (bus_connection_foreach):
13544         * bus/connection.h:
13545         Add new bus_connection_foreach function.
13546
13547         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13548         Add function that broadcasts a message to all clients.
13549
13550         (bus_driver_send_service_created), (bus_driver_handle_hello),
13551         (bus_driver_send_welcome_message),
13552         (bus_driver_handle_list_services), (bus_driver_message_handler):
13553         Implement functions that take care of listing services, and notifying
13554         clients when new services are created.
13555
13556         * bus/services.c: (bus_services_list):
13557         * bus/services.h:
13558         Add new function that returns an array of strings with the currently
13559         registered services.
13560
13561         * glib/dbus-glib.h:
13562         * glib/dbus-gmain.c:
13563         Update copyright year.
13564
13565 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13566
13567         * dbus/dbus-connection.c: (dbus_connection_send_message):
13568         Unlock the message in case it was sent earlier.
13569
13570         (dbus_connection_send_message_with_reply_and_block):
13571         Remove the reply message from the list.
13572
13573         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13574         Set array_len and new_pos correctly.
13575
13576         (_dbus_marshal_test):
13577         Remove debug output.
13578
13579         * dbus/dbus-message-internal.h:
13580         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13581         New function that returns the reply serial.
13582
13583         (_dbus_message_unlock):
13584         New function that unlocks a message and resets its header.
13585
13586         (dbus_message_append_string_array),
13587         (dbus_message_get_fields_valist),
13588         (dbus_message_iter_get_field_type),
13589         (dbus_message_iter_get_string_array),
13590         (dbus_message_get_fields),
13591         (dbus_message_append_fields_valist):
13592         Handle string arrays.
13593
13594         (dbus_message_set_sender):
13595         Make this function public since the bus daemon needs it.
13596
13597         (decode_header_data):
13598         Set the reply serial to -1 initially.
13599
13600         * dbus/dbus-message.h:
13601         Add dbus_message_set_sender.
13602
13603 2003-01-24  Havoc Pennington  <hp@pobox.com>
13604
13605         * doc/dbus-specification.sgml: add some stuff
13606
13607 2003-01-22  Havoc Pennington  <hp@pobox.com>
13608
13609         * doc/dbus-specification.sgml: Start to document the protocol.
13610
13611 2003-01-22  Havoc Pennington  <hp@pobox.com>
13612
13613         * dbus/dbus-connection.c
13614         (dbus_connection_send_message_with_reply_and_block): add some @todo
13615
13616         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13617
13618 2003-01-21  Havoc Pennington  <hp@pobox.com>
13619
13620         (patch untested because can't compile)
13621
13622         * bus/driver.c (create_unique_client_name): make this function
13623         never recycle client names. Also, caller should initialize
13624         the DBusString.
13625
13626         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13627
13628 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13629
13630         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13631         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13632         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13633         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13634         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13635         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13636         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13637         * dbus/dbus-marshal.h:
13638         * dbus/dbus-protocol.h:
13639         Add support for marshalling and demarshalling integer, double
13640         and string arrays.
13641
13642 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13643
13644         * bus/Makefile.am:
13645         Add driver.[ch]
13646
13647         * bus/connection.c: (connection_disconnect_handler):
13648         Remove the connection from the bus driver's list.
13649
13650         (connection_watch_callback): Dispatch messages.
13651
13652         (free_connection_data): Free connection name.
13653
13654         (bus_connection_setup): Add connection to the bus driver's list.
13655         (bus_connection_remove_owned_service):
13656         (bus_connection_set_name), (bus_connection_get_name):
13657         Add functions for setting and getting the connection's name.
13658
13659         * bus/connection.h:
13660         Add function headers.
13661
13662         * bus/driver.c: (create_unique_client_name),
13663         (bus_driver_handle_hello_message),
13664         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13665         (bus_driver_add_connection), (bus_driver_remove_connection):
13666         * bus/driver.h:
13667         * bus/main.c:
13668         * bus/services.c: (bus_service_free):
13669         * bus/services.h:
13670         New file that handles communication and registreation with the bus
13671         itself.
13672
13673 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13674
13675         * dbus/dbus-connection.c: (dbus_connection_send_message):
13676         Add a new client_serial parameter.
13677
13678         (dbus_connection_send_message_with_reply):
13679         Remove a @todo since we've implemented the blocking function.
13680
13681         (dbus_connection_send_message_with_reply_and_block):
13682         New function that sends a message and waits for a reply and
13683         then returns the reply.
13684
13685         * dbus/dbus-connection.h:
13686         Add new functions.
13687
13688         * dbus/dbus-errors.c: (dbus_result_to_string):
13689         * dbus/dbus-errors.h:
13690         Add new DBUS_RESULT.
13691
13692         * dbus/dbus-message-internal.h:
13693         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13694         (_dbus_message_set_sender), (dbus_message_write_header),
13695         (dbus_message_new_reply), (decode_header_data),
13696         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13697         * dbus/dbus-message.h:
13698         Add new functions that set the reply serial and sender.
13699         Also marshal and demarshal them correctly and add test.
13700
13701         * dbus/dbus-protocol.h:
13702         Add new DBUS_MESSAGE_TYPE_SENDER.
13703
13704         * glib/dbus-glib.h:
13705         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13706         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13707         (dbus_connection_hookup_with_g_main):
13708         * glib/test-dbus-glib.c: (main):
13709         Rewrite to use GIOChannel and remove the GSource crack.
13710
13711         * test/echo-client.c: (main):
13712         * test/watch.c: (check_messages):
13713         Update for changed APIs
13714
13715 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13716
13717         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13718
13719         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13720         Create a DBusTimeoutList.
13721         (dbus_connection_set_timeout_functions): Add new function to
13722         set timeout callbacks
13723
13724         * dbus/dbus-connection.h: Add public DBusTimeout API.
13725
13726         * dbus/dbus-message.c: (dbus_message_get_service):
13727         * dbus/dbus-message.h:  New function.
13728
13729         * dbus/dbus-server.c: Fix small doc typo.
13730
13731         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13732
13733 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13734
13735         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13736         of the string, just as long as specified.
13737
13738 2003-01-19  Havoc Pennington  <hp@pobox.com>
13739
13740         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13741         new function
13742
13743         * dbus/dbus-server.c (dbus_server_set_max_connections)
13744         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13745         keep track of current number of connections, and add API for
13746         setting a max (but haven't implemented enforcing the max yet)
13747
13748 2003-01-18  Havoc Pennington  <hp@pobox.com>
13749
13750         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13751         reading/writing if read_watch != NULL or write_watch != NULL.
13752
13753         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13754         the message loader code to actually load message->header and
13755         message->body into the newly-created message.
13756
13757         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13758         in OOM case
13759
13760         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13761         (dbus_connection_get_max_message_size)
13762         (dbus_connection_set_max_live_messages_size)
13763         (dbus_connection_get_max_live_messages_size): implement some
13764         resource limitation functions
13765
13766         * dbus/dbus-resources.c: new file implementing some of the
13767         resource limits stuff
13768
13769         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13770         missing docs, add @todo to handle OOM etc.
13771
13772         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13773         docs
13774
13775 2003-01-18  Havoc Pennington  <hp@pobox.com>
13776
13777         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13778         connection if it hasn't been already.
13779
13780         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13781         replace with DisconnectFunction.
13782
13783 2003-01-18  Havoc Pennington  <hp@pobox.com>
13784
13785         Building --disable-verbose-mode --disable-asserts --disable-tests
13786         cuts the library from 112K to 45K or so
13787
13788         * configure.in: check for varargs macro support,
13789         add --enable-verbose-mode, --enable-asserts.
13790
13791         * dbus/dbus-internals.h (_dbus_assert): support
13792         DBUS_DISABLE_ASSERT
13793         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13794
13795 2003-01-18  Havoc Pennington  <hp@pobox.com>
13796
13797         * dbus/dbus-test.c: include config.h so that tests actually run
13798
13799         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13800         so the failure mode when that assumption fails will be plenty
13801         obvious.
13802
13803 2003-01-18  Havoc Pennington  <hp@pobox.com>
13804
13805         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13806
13807         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13808         the distribution
13809
13810         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13811         since we don't want to use those in make check
13812
13813 2003-01-15  Havoc Pennington  <hp@redhat.com>
13814
13815         Release 0.2
13816
13817         * NEWS: update
13818
13819 2003-01-15  Havoc Pennington  <hp@redhat.com>
13820
13821         * test/Makefile.am: fix so that test source code ends up in the
13822         distribution on make distcheck
13823
13824 2003-01-15  Havoc Pennington  <hp@redhat.com>
13825
13826         Release 0.1.
13827
13828         * NEWS: update
13829
13830 2003-01-15  Havoc Pennington  <hp@redhat.com>
13831
13832         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13833         fix build when --disable-tests
13834
13835         * Makefile.am (EXTRA_DIST): put HACKING in here
13836
13837         * HACKING: document procedure for making a tarball release.
13838
13839 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13840
13841         * bus/connection.c: (connection_error_handler),
13842         (bus_connection_setup):
13843         * bus/main.c: (main):
13844         Make sure that the DBusConnectionData struct is NULLed
13845         out to prevent a segfault.
13846
13847         * dbus/dbus-errors.c: (dbus_result_to_string):
13848         * dbus/dbus-errors.h:
13849         * dbus/dbus-message.c: (dbus_message_get_fields),
13850         (dbus_message_get_fields_valist), (_dbus_message_test):
13851         * dbus/dbus-message.h:
13852         Make dbus_message_get_fields return a result code so we can
13853         track invalid fields as well as oom.
13854
13855 2003-01-11  Havoc Pennington  <hp@pobox.com>
13856
13857         * configure.in: change --enable-test/--enable-ansi action-if-given
13858         to enable_foo=$enableval instead of enable_foo=yes
13859
13860 2003-01-08  Havoc Pennington  <hp@pobox.com>
13861
13862         * dbus/dbus-string.c (_dbus_string_align_length): new function
13863
13864         * dbus/dbus-test-main.c: move main() for test app here
13865         * dbus/dbus-test.c
13866         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13867         symbol to run tests, because dbus-test isn't in the main
13868         library
13869
13870         Code review nitpicks.
13871
13872         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13873         for people with narrow emacs ;-). Assert client_serial was filled
13874         in. Assert message->name != NULL.
13875         (dbus_message_append_fields): have "first_field_type" arg separate
13876         from va list, needed for C++ binding that also uses varargs IIRC
13877         and helps with type safety
13878         (dbus_message_new): add @todo about using DBusString to store
13879         service/name internally
13880         (dbus_message_new): don't leak ->service and ->name on OOM later
13881         in the function
13882         (dbus_message_unref): free the service name
13883         (dbus_message_get_fields): same change to varargs
13884         i.e. first_field_type
13885         (_dbus_message_loader_return_buffer): assert that the message data
13886         is aligned (if not it's a bug in our code). Put in verbose griping
13887         about why we set corrupted = TRUE.
13888         (decode_header_data): add FIXME that char* is evil.  Was going to
13889         add FIXME about evil locale-specific string.h strncmp, but just
13890         switched to wacky string-as-uint32 optimization. Move check for
13891         "no room for field name" above get_const_data_len() to avoid
13892         assertion failure in get_const_data_len if we have trailing 2
13893         bytes or the like. Check for service and name fields being
13894         provided twice. Don't leak service/name on error. Require field
13895         names to be aligned to 4 bytes.
13896
13897         * dbus/dbus-marshal.c: move byte swap stuff to header
13898         (_dbus_pack_int32): uscore-prefix
13899         (_dbus_unpack_int32): uscore-prefix
13900         (_dbus_unpack_uint32): export
13901         (_dbus_demarshal_string): add @todo complaining about use of
13902         memcpy()
13903         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13904         handling allowing corrupt data to go unchecked
13905
13906 2003-01-08  Havoc Pennington  <hp@redhat.com>
13907
13908         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13909         to the select() as needed for authentication. (should be using
13910         _dbus_poll() not select, but for another day)
13911
13912         * dbus/dbus.h: include dbus/dbus-protocol.h
13913
13914 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13915
13916         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13917         dbus-connection.h
13918
13919 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13920
13921         * dbus/dbus-internals.c: (_dbus_type_to_string):
13922         New function that returns a string describing a type.
13923
13924         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13925         * dbus/dbus-marshal.h:
13926         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13927         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13928         (dbus_message_iter_get_byte_array):
13929         * dbus/dbus-message.h:
13930         Add new convenience functions for appending and getting message fields.
13931         Also add demarshalling routines for byte arrays.
13932
13933 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13934
13935         * dbus/dbus-connection-internal.h:
13936         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13937         (_dbus_connection_get_next_client_serial),
13938         (dbus_connection_send_message):
13939         * dbus/dbus-internals.h:
13940         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13941         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13942         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13943         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13944         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13945         (_dbus_verbose_bytes), (_dbus_marshal_test):
13946         * dbus/dbus-marshal.h:
13947         * dbus/dbus-message-internal.h:
13948         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13949         (dbus_message_write_header), (_dbus_message_lock),
13950         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13951         (dbus_message_get_name), (dbus_message_append_int32),
13952         (dbus_message_append_uint32), (dbus_message_append_double),
13953         (dbus_message_append_string), (dbus_message_append_byte_array),
13954         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13955         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13956         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13957         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13958         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13959         (decode_header_data), (_dbus_message_loader_return_buffer),
13960         (message_iter_test), (_dbus_message_test):
13961         * dbus/dbus-message.h:
13962         * dbus/dbus-protocol.h:
13963         * dbus/dbus-test.c: (main):
13964         * dbus/dbus-test.h:
13965         * glib/test-dbus-glib.c: (message_handler), (main):
13966         * test/echo-client.c: (main):
13967         * test/watch.c: (check_messages):
13968         Make messages sendable and receivable for real.
13969
13970 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13971
13972         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13973         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13974         * dbus/dbus-message.c: (dbus_message_append_int32),
13975         (dbus_message_append_uint32), (dbus_message_append_double),
13976         (dbus_message_append_string), (dbus_message_append_byte_array):
13977         Handle OOM restoration.
13978
13979 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13980
13981         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13982         (_dbus_demarshal_string), (_dbus_marshal_test):
13983         * dbus/dbus-marshal.h:
13984         * dbus/dbus-message.c: (dbus_message_get_name),
13985         Document these functions.
13986
13987         (dbus_message_append_int32), (dbus_message_append_uint32),
13988         (dbus_message_append_double), (dbus_message_append_string),
13989         (dbus_message_append_byte_array):
13990         * dbus/dbus-message.h:
13991         Add functions for adding message fields of different types.
13992
13993         * dbus/dbus-protocol.h:
13994         Add the different types.
13995
13996 2003-01-05  Havoc Pennington  <hp@pobox.com>
13997
13998         * bus/connection.c: implement routines for handling connections,
13999         first thing is keeping a list of owned services on each connection
14000         and setting up watches etc.
14001
14002         * bus/services.c: implement a mapping from service names to lists
14003         of connections
14004
14005         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14006
14007         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14008         to use static mutexes for global data
14009
14010         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14011         collection of functions to set/get application-specific data
14012         on the DBusConnection.
14013
14014 2003-01-04  Havoc Pennington  <hp@pobox.com>
14015
14016         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14017         (_dbus_poll): new function
14018
14019         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14020         copied from GLib
14021
14022         * bus/loop.c: initial code for the daemon main loop
14023
14024 2003-01-04  Havoc Pennington  <hp@pobox.com>
14025
14026         * test/watch.c (error_handler): make it safe if the error handler
14027         is called multiple times (if we s/error handler/disconnect
14028         handler/ we should just guarantee it's called only once)
14029
14030         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14031         error handler on disconnect (it's quite possible we should
14032         just change the error handler to a "disconnect handler," I'm
14033         not sure we have any other meaningful errors)
14034
14035         * configure.in: check for getpwnam_r
14036
14037         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14038         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14039         mechanism as in SASL spec, using socket credentials
14040
14041         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14042         (_dbus_send_credentials_unix_socket): new function
14043
14044         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14045         dbus_accept()
14046         (_dbus_write): only check errno if <0 returned
14047         (_dbus_write_two): ditto
14048
14049 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14050
14051         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14052         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14053         (_dbus_marshal_test):
14054         * dbus/dbus-marshal.h:
14055         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14056         to _dbus_marshal_utf8_string. Also fix some tests.
14057
14058 2002-12-28  Harri Porten  <porten@kde.org>
14059
14060         * configure.in: added check for C++ compiler and a very cheesy
14061         check for the Qt integration
14062
14063         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14064
14065         * qt/Makefile.am: added
14066
14067         * qt/.cvsignore: added
14068
14069         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14070         latter, added #ifdef QT_THREAD_SUPPORT guard.
14071
14072         * dbus/Makefile.am: added missing headers for make dist
14073
14074 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14075
14076         * dbus/Makefile.am: fixup export-symbols-regex.
14077
14078 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14079
14080         * acinclude.m4: Add this file and put the
14081         PKG_CHECK_MODULE macro in it.
14082
14083 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14084
14085         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14086         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14087         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14088         (_dbus_marshal_test):
14089         Make the demarshalling routines align the pos argument.
14090         Add string marshalling tests and fix the obvious bugs
14091         discovered.
14092
14093 2002-12-26  Havoc Pennington  <hp@pobox.com>
14094
14095         * dbus/dbus-auth.c: fixes fixes fixes
14096
14097         * dbus/dbus-transport-unix.c: wire up support for
14098         encoding/decoding data on the wire
14099
14100         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14101         (_dbus_auth_decode_data): append to target string
14102         instead of nuking it.
14103
14104 2002-12-26  Havoc Pennington  <hp@pobox.com>
14105
14106         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14107         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14108         doh
14109
14110         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14111         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14112         now). Main point is because I wanted unpack_uint32 to implement
14113         _dbus_verbose_bytes
14114         (_dbus_verbose_bytes): new function
14115
14116         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14117
14118         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14119         mechanism to handle a corrupt message stream
14120         (_dbus_message_loader_new): fix preallocation to only prealloc,
14121         not prelengthen
14122
14123         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14124         (_dbus_string_test): enhance tests for copy/move and fix the
14125         functions
14126
14127         * dbus/dbus-transport-unix.c: Hold references in more places to
14128         avoid reentrancy problems
14129
14130         * dbus/dbus-transport.c: ditto
14131
14132         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14133         leak reference count in no-message case
14134
14135         * test/watch.c (do_mainloop): handle adding/removing watches
14136         during iteration over the watches. Also, ref the connection/server
14137         stored on a watch, so we don't try to mangle a destroyed one.
14138
14139         * dbus/dbus-transport-unix.c (do_authentication): perform
14140         authentication
14141
14142         * dbus/dbus-auth.c (get_state): add a state
14143         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14144         (_dbus_auth_get_unused_bytes): append the unused bytes
14145         to the passed in string, rather than prepend
14146
14147         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14148         the auth conversation DBusAuth
14149
14150         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14151         (_dbus_transport_new_for_domain_socket): when creating a
14152         transport, pass in whether it's a client-side or server-side
14153         transport so we know which DBusAuth to create
14154
14155 2002-12-03  Havoc Pennington  <hp@pobox.com>
14156
14157         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14158         _after_ finalizing the derived members
14159         (unix_connection_set): unref watch if we fail to add it
14160
14161         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14162         transport first, so that the connection owned by the
14163         transport will be valid as the transport finalizes.
14164
14165         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14166         if necessary, and remove watches from the connection.
14167
14168         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14169
14170 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14171
14172         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14173         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14174         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14175         (_dbus_marshal_test):
14176         * dbus/dbus-marshal.h:
14177         Add string marshal functions and have the demarshal functions
14178         return the new position.
14179
14180 2002-12-25  Havoc Pennington  <hp@pobox.com>
14181
14182         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14183         it is a simple protocol that just maps directly to SASL.
14184
14185         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14186         initial implementation, not actually used yet.
14187
14188         * dbus/dbus-string.c (_dbus_string_find): new function
14189         (_dbus_string_equal): new function
14190         (_dbus_string_base64_encode): new function
14191         (_dbus_string_base64_decode): new function
14192
14193 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14194
14195         * dbus/Makefile.am:
14196         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14197         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14198         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14199         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14200         * dbus/dbus-marshal.h:
14201         * dbus/dbus-protocol.h:
14202         * dbus/dbus-test.c: (main):
14203         * dbus/dbus-test.h:
14204         Add un-optimized marshalling/demarshalling routines.
14205
14206 2002-12-25  Harri Porten  <porten@kde.org>
14207
14208         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14209
14210 2002-12-24  Zack Rusin  <zack@kde.org>
14211
14212         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14213         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14214         main loop stuff
14215
14216 2002-12-24  Havoc Pennington  <hp@pobox.com>
14217
14218         * glib/dbus-gthread.c: fix include
14219
14220         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14221         I think glib API needs to change, though, as you don't
14222         want to use DBusMessageFunction, you want to use the
14223         DBusMessageHandler object. Probably
14224         dbus_connection_open_with_g_main_loop()
14225         and dbus_connection_setup_g_main_loop() or something like that
14226         (but think of better names...) that just create a connection
14227         that has watch/timeout functions etc. already set up.
14228
14229         * dbus/dbus-connection.c
14230         (dbus_connection_send_message_with_reply): new function just to
14231         show how the message handler helps us deal with replies.
14232
14233         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14234
14235         * dbus/dbus-string.c (_dbus_string_test): free a string that
14236         wasn't
14237
14238         * dbus/dbus-hash.c: use memory pools for the hash entries
14239         (rebuild_table): be more paranoid about overflow, and
14240         shrink table when we can
14241         (_dbus_hash_test): reduce number of sprintfs and write
14242         valid C89. Add tests for case where we grow and then
14243         shrink the hash table.
14244
14245         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14246
14247         * dbus/dbus-connection.c (dbus_connection_register_handler)
14248         (dbus_connection_unregister_handler): new functions
14249
14250         * dbus/dbus-message.c (dbus_message_get_name): new
14251
14252         * dbus/dbus-list.c: fix docs typo
14253
14254         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14255         an object representing a handler for messages.
14256
14257 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14258
14259         * glib/dbus-glib.h:
14260         * glib/dbus-gthread.c: (dbus_gthread_init):
14261         Don't use the gdbus prefix for public functions.
14262
14263 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14264
14265         * Makefile.am:
14266         * configure.in:
14267         Add GLib checks and fixup .pc files
14268
14269         * glib/Makefile.am:
14270         * glib/dbus-glib.h:
14271         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14272         (gdbus_connection_check), (gdbus_connection_dispatch),
14273         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14274         (dbus_connection_gsource_new):
14275         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14276         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14277         * glib/test-dbus-glib.c: (message_handler), (main):
14278         Add GLib support.
14279
14280 2002-12-15  Harri Porten  <porten@kde.org>
14281
14282         * autogen.sh: check for libtoolize before attempting to use it
14283
14284         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14285         struct.
14286
14287         * .cvsignore: ignore more stamp files
14288
14289         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14290
14291         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14292         without make install.
14293
14294 2002-12-15  Havoc Pennington  <hp@pobox.com>
14295
14296         * dbus/dbus-threads.c: add thread stubs that a higher library
14297         layer can fill in. e.g. the GLib wrapper might fill them in with
14298         GThread stuff. We still need to use this thread API to
14299         thread-safe-ize the library.
14300
14301 2002-12-12  Havoc Pennington  <hp@pobox.com>
14302
14303         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14304         below new interfaces and include fewer system headers.
14305
14306         * dbus/dbus-sysdeps.c (_dbus_read): new function
14307         (_dbus_write): new function
14308         (_dbus_write_two): new function
14309         (_dbus_connect_unix_socket): new function
14310         (_dbus_listen_unix_socket): new function
14311
14312         * dbus/dbus-message-internal.h: change interfaces to use
14313         DBusString
14314
14315 2002-12-11  Havoc Pennington  <hp@pobox.com>
14316
14317         * dbus/dbus-types.h: add dbus_unichar
14318
14319         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14320
14321         * dbus/dbus-connection.c (dbus_connection_send_message): return
14322         TRUE on success
14323
14324         * dbus/dbus-transport.c: include dbus-watch.h
14325
14326         * dbus/dbus-connection.c: include dbus-message-internal.h
14327
14328         * HACKING: add file with coding guidelines stuff.
14329
14330         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14331         handling here, for security purposes (as in vsftpd). Not actually
14332         using this class yet.
14333
14334         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14335         system/libc usage here, as in vsftpd, for ease of auditing (and
14336         should also simplify portability). Haven't actually moved all the
14337         system/libc usage into here yet.
14338
14339 2002-11-25  Havoc Pennington  <hp@pobox.com>
14340
14341         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14342         always print the first verbose message.
14343
14344 2002-11-24  Havoc Pennington  <hp@pobox.com>
14345
14346         * test/echo-client.c, test/echo-server.c: cheesy test
14347         clients.
14348
14349         * configure.in (AC_CHECK_FUNCS): check for writev
14350
14351         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14352         function
14353
14354         * dbus/dbus-list.c (_dbus_list_foreach): new function
14355
14356         * dbus/dbus-internals.c (_dbus_verbose): new function
14357
14358         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14359         representing a server that listens for connections.
14360
14361         * dbus/.cvsignore: create
14362
14363         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14364         public API for reporting errors
14365
14366         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14367         public object representing a connection that
14368         sends/receives messages. (Same object used for
14369         both client and server.)
14370
14371         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14372         Basic abstraction for different kinds of stream
14373         that we might read/write messages from.
14374
14375 2002-11-23  Havoc Pennington  <hp@pobox.com>
14376
14377         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14378         _DBUS_INT_MAX
14379
14380         * dbus/dbus-test.c (main): add list test, and include
14381         dbus-test.h as intended
14382
14383         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14384         (_dbus_hash_table_remove_int): return value indicates
14385         whether the entry existed to remove
14386
14387         * dbus/dbus-list.c: add linked list utility class,
14388         with docs and tests
14389
14390         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14391         array sometimes.
14392
14393 2002-11-23  Havoc Pennington  <hp@pobox.com>
14394
14395         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14396         DBUS_END_DECLS to nothing, that should fix this once and for all
14397
14398         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14399
14400         * dbus/dbus-message.c, dbus/dbus-hash.c:
14401         add some missing @brief
14402
14403 2002-11-23  Havoc Pennington  <hp@pobox.com>
14404
14405         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14406         to avoid confusing Doxygen
14407
14408         * dbus/dbus-hash.c: @} not }@
14409
14410         * dbus/dbus-message.c (struct DBusMessage): split out
14411         internals docs
14412
14413 2002-11-23  Havoc Pennington  <hp@pobox.com>
14414
14415         * configure.in: pile on more warning flags if using gcc
14416
14417         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14418         to document static functions
14419
14420         * configure.in: add summary to end of configure so it
14421         looks nice and attractive
14422
14423         * dbus/dbus-hash.c: finish implementation and write unit
14424         tests and docs
14425
14426         * configure.in: add --enable-tests to enable unit tests
14427
14428         * dbus/dbus-test.c: test program to run unit tests
14429         for all files in dbus/*, initially runs a test for
14430         dbus-hash.c
14431
14432         * dbus/dbus-internals.h: file to hold some internal utility stuff
14433
14434 2002-11-22  Havoc Pennington  <hp@redhat.com>
14435
14436         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14437         "ported" away from Tcl
14438
14439         * dbus/dbus-types.h: header for types such as dbus_bool_t
14440
14441 2002-11-22  Havoc Pennington  <hp@redhat.com>
14442
14443         * dbus/dbus.h: fixups for doc warnings
14444
14445         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14446         macros
14447         (QUIET): make it quiet so we can see warnings
14448
14449         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14450
14451 2002-11-22  Havoc Pennington  <hp@redhat.com>
14452
14453         * Makefile.am: include "Doxyfile" target in all-local
14454
14455         * configure.in: generate the Doxyfile
14456
14457         * Doxyfile.in: move Doxyfile here, so we can use
14458         configure to generate a Doxyfile with the right
14459         version number etc.
14460
14461 2002-11-22  Havoc Pennington  <hp@redhat.com>
14462
14463         * dbus/dbus-message.c: move inline docs into .c file
14464
14465         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14466         so all docs are under doc/
14467         (MAN_EXTENSION): generate man pages. Use extension
14468         ".3dbus" which matches ".3qt" on my system,
14469         I guess this is OK, I don't know really.
14470         (FILE_PATTERNS): look for .c files not .h, makes sense
14471         for plain C I think
14472
14473 2002-11-22  Havoc Pennington  <hp@pobox.com>
14474
14475         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14476         because any app can be a server, and any app can be a client,
14477         the bus is a special kind of server.
14478
14479 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14480
14481         * Doxyfile : adding. Still needs Makefile rules to be generated
14482         automatically (just run "doxygen" in the toplevel dir for now to
14483         generate docs)
14484
14485         * dbus/dbus-message.h : Adding sample docs (javadoc since
14486         resembles gtk-doc a little more)
14487
14488         * dbus/dbus.h : Adding sample docs
14489
14490 2002-11-21  Havoc Pennington  <hp@redhat.com>
14491
14492         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14493         so we can allow ourselves to include files directly,
14494         instead of having to use dbus.h
14495
14496         * dbus/dbus.h: fill in
14497
14498         * dbus/dbus-message.h: sketch out a sample header file.
14499         Include griping if you include it directly instead of
14500         via dbus.h
14501
14502         * dbus/dbus-macros.h: new file with macros for extern "C",
14503         TRUE/FALSE, NULL, etc.
14504
14505         * doc/file-boilerplate.c: put include guards in here
14506
14507 2002-11-21  Havoc Pennington  <hp@redhat.com>
14508
14509         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14510
14511         * COPYING: include the GPL as well, and license code
14512         under both AFL and GPL.
14513
14514 2002-11-21  Havoc Pennington  <hp@redhat.com>
14515
14516         * acconfig.h: get rid of this
14517
14518         * autogen.sh (run_configure): add --no-configure option
14519
14520         * configure.in: remove AC_ARG_PROGRAM to make
14521         autoconf complain less. add AC_PREREQ.
14522         add AC_DEFINE third arg.
14523
14524 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14525
14526         * doc/Makefile.am:
14527         Fix references so we can distcheck.
14528
14529 2002-11-21  Havoc Pennington  <hp@redhat.com>
14530
14531         * Initial module creation
14532