2006-09-30 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-30  Havoc Pennington  <hp@redhat.com>
2
3         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
4         reflect addition of interfaces.
5
6         * doc/dbus-specification.xml: describe a new
7         org.freedesktop.DBus.Peer.GetMachineId method
8
9         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
10         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
11         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
12         at end of skip_white
13         (_dbus_string_chop_white): new function
14
15         * bus/connection.c (bus_connections_setup_connection): call
16         dbus_connection_set_route_peer_messages.
17
18         * dbus/dbus-connection.c
19         (_dbus_connection_peer_filter_unlocked_no_update): modify to
20         support a GetMachineId method.
21
22         Also, support a new flag to let the bus pass peer methods through
23         to apps on the bus, which can be set with
24         dbus_connection_set_route_peer_messages.
25
26         Finally, handle and return an error for anything unknown on the
27         Peer interface, which will allow us to extend the Peer interface
28         in the future without fear that we're now intercepting something
29         apps were wanting to see.
30         
31         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
32         dbus/dbus-uuidgen.c
33
34         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
35         binary here, since most of the code is already in libdbus
36
37         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
38         uuid from the system config file
39
40         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
41         (_dbus_read_uuid_file_without_creating) 
42         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
43         uuid-related functions, partly factored out from dbus-server.c
44
45         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
46         DBUS_ERROR_FILE_EXISTS instead of EEXIST
47
48         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
49
50         * tools/dbus-cleanup-sockets.1: explain what the point of this
51         thing is a bit more
52
53         * autogen.sh (run_configure): add --config-cache to default
54         configure args
55
56         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
57         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
58
59         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
60         don't try to save address, fixes crash in make check
61         
62 2006-09-30  Thiago Macieira  <thiago@kde.org>
63
64         * configure.in: add DBUS_BINDIR as a #define to C source code.
65
66         * tools/dbus-launch.c
67         * tools/dbus-launch.h
68         * tools/dbus-launch-x11.c:
69         * tools/dbus-launch.1: Add the --autolaunch option to
70         dbus-launch, which makes it scan for an existing session
71         started with --autolaunch. With that option, it also creates
72         an X11 window and saves the bus address and PID to it.
73
74         * dbus/dbus-sysdeps.h:
75         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
76         a function that runs "dbus-launch --autolaunch" to retrieve
77         the running D-Bus session address (or start one if none was running)
78
79         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
80         address protocol, which tries to get the running session from
81         dbus-launch.
82
83         * dbus/dbus-bus.c:
84         * dbus/dbus-internals.h: Make "autolaunch:" be the default
85         D-Bus session bus address.
86
87         * dbus/dbus-connection.c: Fix horrible typo in error message.
88
89 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
90
91         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
92
93 2006-09-17  Havoc Pennington  <hp@redhat.com>
94
95         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
96         fix so that if unix_user_function is set on windows, we still
97         do the default check that the auth identity matches the bus identity
98
99 2006-09-16  Havoc Pennington  <hp@redhat.com>
100
101         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
102         to _dbus_transport_open_platform_specific,
103         _dbus_transport_open_socket,
104         and _dbus_transport_open_debug_pipe
105
106         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
107
108 2006-09-16  Havoc Pennington  <hp@redhat.com>
109
110         Attempt auditing public API to remove all cases where a Unix
111         function returns weird emulated goo to Windows. This probably 
112         breaks the bus daemon on Windows, to fix it again we may 
113         need to stop processing unix-specific config options on Windows,
114         and may need to add Windows-specific public API or config options.
115         
116         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
117         to reflect added interfaces; should not break soname.
118         
119         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
120         not invoke unix user function on Windows. Kind of a hacky fix, but 
121         we don't want a "unix uid" leaking out on Windows.
122
123         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
124         to get the socket fd on Windows or UNIX
125         (dbus_connection_get_unix_fd): make this always fail on Windows
126
127 2006-09-16  Havoc Pennington  <hp@redhat.com>
128
129         * dbus/dbus-server.c (dbus_server_listen): change how this works
130         to be able to delegate to a set of handlers that can succeed,
131         fail, or choose not to handle. Allows us to have 
132         dbus_server_listen_platform_specific.
133
134         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
135         factor out the tcp socket stuff to be used on windows, leaving
136         unix domain socket only in dbus-socket-unix.c
137
138         * dbus/dbus-transport-socket.c
139         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
140         stuff to be used on windows, leaving unix domain socket only 
141         in dbus-transport-unix.c
142
143         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
144         temporary hack to be sure this fails on windows
145         (dbus_connection_get_unix_process_id): ditto
146
147 2006-09-16  Havoc Pennington  <hp@redhat.com>
148
149         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
150         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
151         _dbus_open_socket so the domain/type/protocol from system headers
152         are not required. This is kind of pointless though unless we move
153         part of _dbus_connect_tcp_socket into sysdeps.c instead of
154         sysdeps-unix.c, which would mean adding a wrapper around
155         bind/listen/etc.
156         Also, add DBusError to the socket-opening functions so they 
157         don't require use of errno.
158
159 2006-09-16  Havoc Pennington  <hp@redhat.com>
160
161         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
162         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
163
164         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
165         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
166         functions specifically for sockets only, and move generic 
167         read/write/open/close into unix-specific code.
168
169 2006-09-14  Havoc Pennington  <hp@redhat.com>
170
171         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
172         complaint about accessing revents when poll returns 0, from Julian Seward.
173
174 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
175
176         * Released 1.0 RC 1 (0.93) 
177
178 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
179
180         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
181         use _dbus_close instead of close
182
183 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
184
185         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
186         credentials.  Fixes "external" authentication under e.g. NetBSD
187         which does not support any other socket credentials mechanism.
188         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
189
190 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
191
192         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
193         dbus_threads_init and be used by the dbus mutex functions to
194         avoid deadlocks.
195
196         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
197
198 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
199
200         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
201         use threadsafe readdir_r instead of readdir
202
203 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
204
205         * dbus-threads.c (dbus_threads_init_default): New method for
206         initializing the internal thread implementation (Patch from
207         Alexander Larsson <alexl at redhat dot com>)
208
209 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
210
211         * remove a bunch of todo items from the 1.0 list
212
213 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
214
215         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
216         key not found
217
218 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
219
220         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
221         complex debugging code
222
223         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
224         between the test suite ifdefs
225         (_dbus_verbose_bytes): return if verbosity is not enabled 
226
227 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
228
229         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
230         remove DBusMark
231
232 2006-09-10  Havoc Pennington  <hp@redhat.com>
233
234        patch mostly by Peter Kümmel, bug #8211
235         
236         * dbus/dbus-sysdeps-unix.c: new file, which splits out
237         unix-specific stuff in dbus-sysdeps.c
238
239         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
240         and move unix-specific stuff to dbus-sysdeps-unix.c
241
242         * configure.in: check HAVE_ERRNO_H
243         
244 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
245
246         * bus/test-main.c (main): Initialize threading during tests
247
248         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
249         Unlock connection on error
250         (generate_local_error_message): static method for generating
251         an error message when we don't have a message to reply to
252         (_dbus_connection_block_pending_call): Send a disconnect error
253         instead of just a timeout (NULL) when the bus gets disconnected
254         while blocking for a reply.
255         
256 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
257
258         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
259         filters (Patch from Kimmo Hämäläinen 
260         <kimmo dot hamalainen at nokia dot com>)
261
262 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
263
264         * dbus/dbus-connection-internal.h: Add prototype for 
265         _dbus_connection_test_get_locks to remove warning
266
267 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
268
269         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
270         close child_err_report_pipe[WRITE_END] on exec (Patch from 
271         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
272
273 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
274
275         * Clean up close calls to use _dbus_close (Patch from 
276         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
277
278 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
279
280         * doc/TODO:
281         - Remove pending call locking todo item
282         - dbus_connection_open now holds hard ref.  Remove todo item
283         - do proper locking on _dbus_bus_check_connection_and_unref
284           and handle DBUS_BUS_STARTER. Remove todo item
285         - Warn on closing of a shared connection.  Remove todo item
286
287         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
288         dbus/dbus-connection.c: Use the dbus_connection_close_internal
289         so we don't get the warning when closing shared connections
290
291         * test/test-service.c, test/test-shell-service.c: Applications
292         don't close shared connections themselves so we unref instead of
293         close
294
295         * test/test-utils.c (test_connection_shutdown): Close the connection
296
297         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
298         _dbus_bus_check_connection_and_unref_unlocked since we only call this
299         method on a locked connection.  
300         Make sure we call _dbus_connection_unref_unlocked instead of 
301         dbus_connection_unref also.
302         Handle DBUS_BUS_STARTER correctly
303
304         * dbus/dbus-connection.c (connection_record_shared_unlocked):
305         Mark as shared and hard ref the connection
306         (connection_forget_shared_unlocked): Remove the hard ref from the 
307         connection
308         (_dbus_connection_close_internal_and_unlock):  New internal function
309         which takes a locked connection and unlocks it after closing it
310         (_dbus_connection_close_internal): New internal function which acts
311         like the origonal dbus_connection_close method by grabbing a connection
312         lock and calling _dbus_connection_close_internal_and_unlock
313         (dbus_connection_close): Public close method, warns when the app
314         trys to close a shared connection
315
316 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
317
318         * bus/driver.c:
319         (bus_driver_generate_introspect_string): New method for populating
320         a DBusString with the introspect data
321         (bus_driver_handle_introspect): Move introspect generation code to 
322         bus_driver_generate_introspect_string
323
324         * bus/main.c:
325         (introspect): New function which prints out the intropect data and
326         exits
327         (main): Add a --introspect switch
328
329 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
330
331         * doc/TODO: Removed dtd publishing item.  
332         It seems the dtd has already been added at
333         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
334
335 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
336
337         * doc/TODO, various source files: Audited todo's and FIXME's and
338         prepended the ones we should be looking at with 1.0.  Those
339         prepended with 1.0? need clerification or might not be needed
340         for 1.0
341
342 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
343
344         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
345         NULL in the public API (Patch from Kimmo Hämäläinen 
346         <kimmo dot hamalainen at nokia dot com>)
347
348 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
349
350         * configure.in: Fix for OS-X compile time endian issues (patch from
351         Benjamin Reed <ranger at befunk dot com>)
352
353 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
354
355         * configure.in: Check for no-common compiler flag (OS-X fix from
356         Benjamin Reed <ranger at befunk dot com>)
357
358 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
359
360         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
361         <fcrozat at mandriva dot com>)
362
363 2006-08-29  Havoc Pennington  <hp@redhat.com>
364
365         * test/test-service.c (path_message_func): fix lack of return value
366
367         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
368         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
369         any more sense than on anything else in this file.
370         (_dbus_get_tmpdir): add const to return value, and keep the
371         results of the various getenv around in a static variable.
372
373 2006-08-29  Havoc Pennington  <hp@redhat.com>
374
375         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
376         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
377
378 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
379
380         * test/Makefile.am: change find to use syntax that works with non
381         gnu versions of find
382
383 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
384
385         * dbus/dbus-transport.c: fix invalid deref when checking if
386         a vtable method exists (Patch from Christian Ehrlicher 
387         <ch dot ehrlicher at gmx dot de>)
388
389 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
390
391         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
392         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
393         to build with builddir != srcdir (Taken from a patch by Bernard Leak
394         <bernard at brenda-arkle dot demon dot co dot uk>)
395
396 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
397
398         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
399         default case
400
401 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
402
403         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
404         it works on any system providing this interface, not only FreeBSD.
405         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
406
407 2006-08-20  Havoc Pennington  <hp@redhat.com>
408
409         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
410         the docs
411
412 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
413
414         * Released 0.92 
415
416 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
417
418         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
419         to reflect the init late change
420
421         * bus/bus.c (bus_context_new): Check user before we fork so we can
422         print out an error message a user will be able to see
423
424 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
425
426         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
427
428         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
429         Add two more global locks for use on windows platforms.  These are
430         unused on non-windows platforms but are not ifdefed out to avoid
431         potential bugs (i.e. the few bytes lost does not warrent the extra
432         maintanence and complexity that having seperate sets of locks would
433         cause)
434
435 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
436
437         * bus/services.c (bus_registry_acquire_service): Return an error
438         when an application tries to register the org.freedesktop.DBus Bus Name
439
440         * bus/services.c (bus_registry_release_service): Return an error
441         when an application tries to release the org.freedesktop.DBus Bus Name
442
443 2006-08-17  Alp Toker  <alp@atoker.com>
444
445         * doc/dbus-specification.xml: Fix some minor typos.
446
447 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
448
449         * configure.in: use $with_init_scripts instead of $operating_system
450         to determine where to store the pid since the init scripts manipulate 
451         the pid file (patch from Marcelo Ricardo Leitner 
452         <marcelo dot leitner at terra dot com dot br>.  
453
454 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
455
456         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
457         static DBusList *uninitialized_condvar_list to support new late 
458         initialization threading model.  In this model threads can be initialized
459         even after the D-Bus API has been used but still needs to be initialized 
460         before the second thread has been started.  Mutexes and condvar addresses
461         are stored in the two static lists and are replaced with actuall locks
462         when threads are initalized.
463         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
464         the location into the static list
465         (_dbus_mutex_free_at_location): New method for removing a mutex location 
466         from the static list and freeing the mutex
467         (_dbus_condvar_new_at_location): New method for creating a conditional 
468         variable and placing the location into the static list
469         (_dbus_condvar_free_at_location): New method for removing a conditional
470         variable location from the static list and freeing the conditional variable 
471         (init_uninitialized_locks): Atomic method which goes through the static 
472         lists of mutex and condvar location and updates them with actuall locks
473         (init_global_locks): changed to init_locks
474         
475         * dbus/dbus-connection.c:
476         (_dbus_connection_test_get_locks): New method for tests to check connections
477         (_dbus_connection_new_for_transport): Use the new at_location mutex and
478         condvar API
479         (dbus_connection_allocate_data_slot): Pass in the global lock address
480         to _dbus_data_slot_allocator_alloc
481
482         * dbus/dbus-dataslot.c:
483         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
484         instead of the mutex itself
485
486         * dbus/dbus-message.c:
487         (dbus_message_allocate_data_slot): Pass in the global lock address
488         to _dbus_data_slot_allocator_alloc
489
490         * dbus/dbus-pending-call.c:
491         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
492         to _dbus_data_slot_allocator_alloc
493
494         * dbus/dbus-server.c:
495         (_dbus_server_init_base): Use the new at_location mutex API
496         (dbus_server_allocate_data_slot): Pass in the global lock address
497         to _dbus_data_slot_allocator_alloc
498
499         * test/name-test/test-threads-init.c: New test case for late thread
500         initialization
501
502 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
503
504         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
505         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
506         causes compile problems when asserts are turned off
507         Keeping _dbus_warn for printing out the message so even if
508         asserts are turned off the user gets the messages that something is 
509         wrong 
510
511 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
512
513         Patches by Kjartan Maraas <kmaraas at gnome dot org>
514
515         * bus/services.c (bus_service_list_queued_owners):
516         Add a pointer cast to fix compiler warning
517
518         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
519         return a NULL instead of FALSE since the return type
520         is not expecting a boolean
521
522         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
523         Remove unused variable
524
525         * dbus/dbus-marshal-recursive-util.c (node_new):
526         return a NULL instead of FALSE since the return type
527         is not expecting a boolean
528
529         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
530         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
531         because we are expecting a pointer not a boolean
532
533         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
534         add void as the parameter so some compilers
535         don't complain
536
537         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
538           _dbus_transport_new_for_tcp_socket):
539         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
540         because we are expecting a pointer not a boolean
541
542         * test/shell-test.c (test_command_line):
543         cast the second argument to _dbus_list_append to avoid compiler
544         warnings
545
546         * test/test-names.c (main): remove unused variable
547
548         * test/test-service.c (check_hello_from_self_reply):
549         Initialize echo_message and echo_reply to NULL
550         
551         * test/test-shell-service.c (handle_echo):
552         Remove unused variable and cast the third parameter passed to
553         dbus_connection_get_object_path_data to avoid compiler warrnings
554
555         * test/name-test/test-names.c (clear_message_queue):
556         Remove unused function
557
558         * test/name-test/test-pending-call-dispatch.c:
559         Fix format string in printf
560
561
562 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
563
564         * dbus/dbus-bus.c:
565         * test/name-test/test-names.c:
566         Remove test method dbus_bus_connection_get_unique_name because 
567         we already have public method dbus_bus_get_unique_name that 
568         does the exact same thing
569
570 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
571
572         * dbus/dbus-signature.c:
573         fix typos in Julio's previous patch which cause make check to fail
574
575 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
576
577         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
578         In any case it was wrong since this is a test checking to see if
579         address parsing is correct.  There was no need to get the true
580         tmp directory.  
581
582 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
583
584         * dbus/dbus-macros.h: Revert the addition of stddef.h
585         as we should not be adding it to library headers 
586
587 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
588
589         * dbus/dbus-signature.c:
590         Fix the unit tests so that they work if assertions are not enabled.
591         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
592
593 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
594
595         * tools/run-with-tmp-session-bus.sh:
596         * test/name-test/run-test.sh:
597         Remove bashisms (patch from Julio M. Merino Vidal
598         <jmmv at NetBSD dot org>)
599
600 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
601
602         * configure.in: add a version (>= 2.6.0) check for libxml2
603
604 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
605
606         * configure.in: make sure the compiler supports -Wfloat-equal
607         
608         * bus/dir-watch-dnotify.c: move functional code after 
609         variable declerations (C99 fix)  (patches from Jens Granseuer
610         <jensgr at gmx dot net>
611
612 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
613
614         * dbus/dbus-macros.h:
615         add #include <stddef.h> so that Sun compilers don't complain about
616         the defining NULL
617
618 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
619
620         * dbus/dbus-sysdeps.c:
621         * dbus/dbus-address.c:
622         * bus/activation.c:
623         * test/shell-test.c:
624         don't hardcode tmp directory (patch from Dave Meikle 
625         <dmk at davemeikle dot co dot uk>)
626
627 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
628
629         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
630         Change an assert to a detailed warning and abort.  
631         When allocator->lock != mutex it indicates that the user has failed
632         to initalize threads before using the D-Bus library.  This warning
633         helps the user identify the issue and fix their app.
634
635 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
636
637         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
638         with cleanups of bugs found from Coverity reports:
639
640         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
641         close the file on error to avoid a leak
642
643         * bus/expirelist.c (bus_expire_list_test):
644         Check for NULL on dbus_new0
645
646         * bus/activation.c (update_directory):
647         remove dead code
648
649         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
650         Fix some leaks
651
652         * bus/bus.c (process_config_every_time):
653         Fixed a leak
654
655         * bus/desktop-file.c (parse_key_value):
656         Fixed leak
657
658         * bus/selinux.c (bus_selinux_id_table_insert):
659         Fixed leak
660
661 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
662
663         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
664         remove dead code
665
666 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
667
668         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
669         #!/bin/bash
670
671 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
672
673         * Doxyfile.in: fix the INPUT line so we can generate docs 
674         when sourcedir != builddir (patch from Cygwin Ports maintainer
675         <yselkowitz at users dot sourceforge dot net>
676
677 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
678
679         * dbus/dbus-sysdeps.h:
680         * dbus/dbus-sysdeps.c: 
681         * dbus/dbus-string.c: 
682         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
683         GLib's function which does the same thing
684
685         * configure.in:
686         * bus/Makefile.am:
687         * bus/dir-watch-default.c:
688         * bus/dir-watch-dnotify.c:
689         * bus/dir-watch-kqueue.c:
690         Add kqueue directory watching for freebsd and split the directory
691         watching code into seperate files per method/arch
692         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
693
694 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
695
696         * configure.in:
697         * tools/Makefile.am:
698         * tools/dbus-launch.c:
699         * bus/Makefile.am:
700         allow --with-dbus-daemondir switch to be used to make the
701         daemon install to a seperate bindir like /usr/libexec
702         (patch from Brian Cameron <brian dot cameron at sun dot com)
703
704 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
705
706         * bus/Makefile.am (install-data-hook): removed the slash after 
707         $(DESTDIR) so we don't get the double slash which does not work
708         in windows (patch from Andras Porjesz 
709         <andras dot porjesz at siemens dot com>)
710
711 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
712
713         * dbus/dbus-sysdeps.h:
714         * dbus/dbus-sysdeps.c: 
715           add _dbus_printf_length (patch from Peter Kümmel 
716           <syntheticpp at gmx dot net>)
717
718 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
719
720         * dbus/dbus-internals.c: unistd.h is not used 
721         (_dbus_verbose_real): only enable verbose printing 
722         if DBUS_VERBOSE environment var is set to '1'
723         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
724
725 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
726
727         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
728         so we still compile on older gcc (patch from Frederic Peters 
729         <fpeters at 0d dot be>
730
731 2006-08-04  Havoc Pennington  <hp@redhat.com>
732
733         * configure.in: add -Wdeclaration-after-statement
734
735         * dbus/dbus-connection.c: change all the pending call stuff to
736         reflect the fact that pending call operations use the connection
737         lock
738
739         * dbus/dbus-pending-call.c: add locking here
740
741         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
742         field const consistent with how message field is done
743
744 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
745
746         * s/D-BUS/D-Bus/g
747
748 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
749
750         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
751         <in7y118 at public.uni-hamburg dot de> - fix invalid
752         read/write reported by valgrind
753
754 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
755
756         * Released 0.91
757
758 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
759
760         * dbus/dbus-connection.c:
761         (_dbus_connection_attach_pending_call_unlocked):
762         (connection_timeout_and_complete_all_pending_calls_unlocked):
763         Make sure we set timeout_added on pending calls to FALSE when
764         we remove the timeout from the connection
765
766 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
767
768         * Removed some extra bindings stuff lingering around (thanks timo)
769         * dbus-pendingcall.c (_dbus_pending_call_new): 
770         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
771         when we tried to take a lock on an already locked connection
772
773 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
774
775         * Released 0.90
776
777 2006-07-17  Havoc Pennington  <hp@redhat.com>
778
779         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
780         ints, reported by Owen Taylor
781
782 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
783
784         * doc/TODO:
785         * dbus/dbus-bus.c:
786         * dbus-errors.c:
787         * dbus/dbus-marshal-validate.c:
788           Removed TODO items which were fixed or are no longer relevent
789
790 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
791
792         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
793         Remove stray files from the stripped bindings
794
795 2006-07-16  Havoc Pennington  <hp@redhat.com>
796
797         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
798         Improve the error message on reply timeout
799
800 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
801
802         * Remove all bindings
803
804 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
805
806         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
807         and set pending_reply out arg to NULL is connection is disconnected
808         (connection_timeout_and_complete_all_pending_calls_unlocked): New
809         static method for cleaning up pending calls on disconnect
810         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
811         calls queued timeouts on disconnect 
812
813          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
814         Remove 
815
816 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
817
818         * bus/activation.[ch] (bus_activation_list_services): new function to 
819         get the list of services that can be activated
820
821         * bus/dispatch.c: test coverage for the new bus method
822         ListActivatableNames
823
824         * bus/driver.c: new bus method ListActivatableNames to get the list of
825         services that can be activated
826
827         * doc/dbus-specification.xml: ListActivatableNames method documentation
828
829 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
830         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
831         source files
832
833 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
834         * dbus/dbus-message-factory.c:
835         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
836
837 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
838         * dbus/dbus-connection-internal.h:
839         * dbus/dbus-connection.c:
840         * file dbus/dbus-pending-call.c:
841         * dbus/dbus-pending-call.h:
842         Make DBusPendingCall an opaque type even to D-Bus internals
843
844 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
845
846         * dbus/dbus-connection.h: remove connection_disconnect and replace with
847         connection_close
848
849         * dbus/dbus-connection.c: include dbus-bus.h
850         (_dbus_connection_read_write_dispatch): make static
851
852 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
853
854         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
855         function
856         (dbus_connection_dispatch): On disconnect unref any shared connections
857
858         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
859         for cleaning up shared connections on disconnect
860         (internal_bus_get): get a hard refrence to shared connections when
861         they are created
862         
863         * doc/TODO: Remove items which are no longer relevent or have been fixed
864         Split 1.0 todo items with a 0.90 freeze todo list
865  
866 2006-06-14  Ross Burton  <ross@openedhand.com>
867
868         * glib/dbus-gobject.c:
869         Free a leaking GArray (surely not!) in dbus_g_method_return.
870
871 2006-06-14  Ross Burton  <ross@openedhand.com>
872
873         * tools/Makefile.am:
874         * tools/dbus-monitor.c:
875         Don't use the GLib bindings in dbus-monitor (patch from Ralf
876         Habacker).
877         
878 2006-06-14  Ross Burton  <ross@openedhand.com>
879
880         * tools/dbus-print-message.c:
881         Also print the object path when outputting signals or method calls.
882
883 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
884
885         * qt/src/Makefile.am: install the qdbus.h header.
886         This allows people to actually use the installed code.
887
888 2006-06-12  Ross Burton  <ross@openedhand.com>
889
890         * glib/dbus-gproxy.c:
891         Don't leak a GArray when firing signals (thank Rob Taylor for review).
892
893 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
894
895         * Released 0.62
896
897 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
898
899         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
900         break pedantic builds. Closes bug 6043 (patch approved by
901         Havoc back in February).
902
903 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
904
905         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
906         that took a QDBusMessage parameter.
907         * qt/src/qdbusbus.h: Add a default flag for RequestName.
908         * qt/tools/dbus.cpp: Don't use automatic call because we might
909         be calling an async method: request a reply.
910
911 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
912
913         * test/qt/*: Update the testcases, including testing the new
914         functionality of sending null QByteArray and QString over the
915         bus. Add new headertest test and restore the old
916         qdbusxmlparser test.
917
918 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
919
920         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
921         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
922
923         * qt/examples/Makefile.am:
924         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
925         form.
926
927         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
928         QByteArray() (nulls) over the bus.
929         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
930         the one that has the signature suffix stripped.
931         * qt/src/qdbusreply.h: Make some methods const.
932
933 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
934
935         Patch from Timo Hoenig <thoenig@suse.de>.
936
937         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
938         required during build to EXTRA_DIST.
939         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
940         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
941         * configure.in: Fix "make dist", take care that the Makefile for
942         qt/dbus is being generated.
943
944 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
945
946         * bus/bus.c: Fix eavesdropping on method calls
947
948 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
949
950         * configure.in:
951         * dbus/dbus-userdb-util.c:
952         Add Solaris console owner patch from Artem Kachitchkine
953
954 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
955
956         * qt/Makfile.am:
957         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
958         reorganisation. Thanks to Timo Hoenig for pointing this out.
959
960 2006-06-06  Robert McQueen  <robot101@debian.org>
961
962         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
963           call to dbus_g_type_get_struct.
964
965 2006-06-06  Robert McQueen  <robot101@debian.org>
966
967         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
968           pointers were put into a GPtrArray-based specialised collection, and
969           then freed along with the array. GValues which you add into
970           collections or maps which have the NOCOPY flag set are assumed to not
971           belong to the caller, so rather than the existing pointer-stealing
972           semantics, they are copied instead. Given that the main consumers of
973           this abstraction are the bindings themselves, I don't think this is
974           too bad, but others should watch their choice of take vs set_static.
975
976 2006-06-06  Robert McQueen  <robot101@debian.org>
977
978         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
979           of g_slist_prepend not being used. Fixed copying of slist-based
980           specialised collections, then wrote a test case and found that it was
981           all broken. Went on to fix iterating and appending too. Good thing
982           nobody uses this code yet.
983
984 2006-06-06  Robert McQueen  <robot101@debian.org>
985
986         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
987           the iterators use gvalue_take_ptrarray_value (the GValues themselves
988           are discarded without unsetting, so it makes no difference whether
989           we take or set_static). Remove cases for G_TYPE_POINTER because
990           there really is nothing useful we can do with them in our
991           specialised types - we *need* boxed copy/free functions at the very
992           least.
993
994 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
995
996         * qt/dbus: Add directory. I had forgotten to add this
997         yesterday after the move...
998
999         * qt/examples/Makefile.am:
1000         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1001
1002         * qt/tools/Makefile.am:
1003         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1004         Added feature to get and set properties.
1005         Added validation of service, object path and interface names.
1006
1007         * qt/tools/dbusidl2cpp.cpp: Two new features:
1008         1) Allow specifying both the header and the source file names,
1009         by separating them with a colon.
1010         2) Don't write an interface output if the -p switch wasn't
1011         given, but the -a was.
1012
1013         * qt/src/*: Fix usage of Iterators and ConstIterators.
1014         Fix shadowing of variables by other variables (-Wshadow).
1015         Fix keyword-cleanliness in headers.
1016         Fix ASCII-cast (QLatin1String, QLatin1Char).
1017         Fix validation of member names.
1018         Add extra checking of introspection data during XML parsing.
1019         Various bug fixes.
1020
1021 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1022
1023         * dbus/Makefile.am:
1024         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1025         qt/dbus/qdbus.h now.
1026
1027 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1028
1029         * configure.in: Make --disable-qt actually do
1030           something. Patch inspired by Zack Rusin.
1031
1032 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1033
1034         * qt/: Update to Subversion r548032.
1035         This includes a big reorganisation of the files inside the
1036         subdir.
1037
1038 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1039
1040         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1041         clear:  
1042         "Failed to connect to socket <host>:<port> <error>" instead of
1043         "Failed to connect to socket <host>: <error>:<port>"
1044
1045         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1046         for a tcp transport. 
1047
1048 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1049
1050         * qt/*: Update the QtDBus bindings up to revision 546310 in
1051         Subversion.
1052         This adds the dbuscpp2xml tool, that parses a C++ header and
1053         outputs a D-BUS Introspection XML.
1054
1055 2006-05-21  Havoc Pennington  <hp@redhat.com>
1056
1057         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1058         is not NULL when it shouldn't be. Also a couple of possible fixes
1059         for #4637 though I don't understand why the bug happens, to be
1060         honest... also the object constructor has an assert name != NULL
1061         and the name is only currently NULL for peer-to-peer proxies that 
1062         I don't think anyone uses? So it should be asserting.
1063         Anyway, for now at least see if we get an earlier assertion failure.
1064
1065         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1066         apparently broken code to be sure the tests fail and someone 
1067         will fix them...
1068
1069 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1070
1071         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1072         and arrays when they had a single element: has_next returns
1073         false, even before you read the element. So, instead, check
1074         the array length.
1075
1076 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1077
1078         * qt/qdbusmessage.cpp:
1079         * qt/qdbustypehelper_p.h:
1080         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1081         the list is a const-reference
1082
1083 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1084
1085         * Adding old doc patch that never got applied
1086         
1087         * dbus/bus.c (dbus_bus_add_match): Add documentation
1088
1089         * doc/dbus-specification.xml: Add documentation for the match rules
1090           and the AddMatch and RemoveMatch methods
1091
1092 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1093
1094         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1095         call (r535506)
1096
1097         * qt/dbusidl2cpp.cpp:
1098         * qt/qdbusabstractadaptor.cpp:
1099         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1100         sibling of the QDBusAbstractAdaptor objects instead of the
1101         parent. (r535848)
1102
1103         * qt/dbusidl2cpp.cpp:
1104         * qt/qdbusabstractinterface.cpp:
1105         * qt/qdbusabstractinterface.h:
1106         * qt/qdbusabstractinterface_p.h:
1107         * qt/qdbusinterface.cpp: Make properties in interfaces
1108         actually work. The code that was generated would not compile,
1109         due to moc calls to functions that did not exist. They now
1110         shall. (r536571)
1111
1112 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1113
1114         * Makefile.am:
1115         * configure.in:
1116         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1117         Thanks to Brad Hards for providing the patch
1118
1119 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1120
1121         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1122         call. (r535506)
1123
1124 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1125
1126         * qt/examples/dbus.cpp: Enhance error messages and use
1127         QDBusInterfacePtr.
1128
1129 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1130
1131         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1132         and disable the copy operators. (r533772, r534746)
1133
1134         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1135
1136         * qt/qdbusabstractinterface.cpp:
1137         * qt/qdbusabstractinterface.h: Change the default call mode to
1138         not use the event loop. Add convenience call() methods that
1139         take a CallMode parameter. (r534042)
1140
1141         * qt/qdbusconnection.h: Change the default call mode to not
1142         use the event loop. (r534042)
1143
1144         * qt/qdbusinterface.cpp:
1145         * qt/qdbusinterface.h: Add a method to tell us if the
1146         interface is valid (since we don't return a null pointer
1147         anymore) (r534099)
1148
1149         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1150         (r534101)
1151
1152         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1153         function in two so taht we get the chance to introspect
1154         without having a QDBusMessage (r534102)
1155
1156         * qt/qdbusbus.h:
1157         * qt/qdbusconnection.cpp:
1158         * qt/qdbusconnection_p.h:
1159         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1160         avoid a round-trip to the server when attempting to introspect
1161         one of our own objects. Also make sure the filter functions
1162         match the empty interface as well. (r534108)
1163         Don't keep the connection names. Instead, trust the unique
1164         connection name (r534111)
1165         Remove event loop usage (r534112)
1166
1167 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1168
1169         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1170         Brad Hards.
1171
1172 2006-04-28  Robert McQueen  <robot101@debian.org>
1173
1174         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1175         any order, making it easier for people who inherit from this
1176         object.
1177
1178 2006-04-28  Robert McQueen  <robot101@debian.org>
1179
1180         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1181         of memory from within pointer arrays and lists. Fixes bug #6300.
1182
1183 2006-04-28  Robert McQueen  <robot101@debian.org>
1184
1185         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1186         generating struct signatures. Fixes bug #6083.
1187
1188 2006-04-28  Robert McQueen  <robot101@debian.org>
1189
1190         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1191         to qdbusconnection_p.moc.
1192
1193 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1194
1195         * README, INSTALL: Doc fixes
1196         Patch from Brad Hards <bradh at frogmouth.net>
1197
1198 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1199
1200         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1201         the dynamic meta object. No need to guess which interface to
1202         call.
1203
1204 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1205
1206         * qt/qdbusconnection_p.h:
1207         * qt/qdbusmetaobject.cpp:
1208         * qt/qdbusmetaobject_p.h:
1209         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1210         for the dynamic meta object. No need to guess which
1211         interface to call.
1212         * qt/qdbusabstractinterface_p.h:
1213         * qt/qdbusconnection.cpp:
1214         * qt/qdbusintegrator.cpp:
1215         * qt/qdbusinterface.cpp:
1216         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1217         Add a QDBusRef that looks and behaves like DCOPRef.
1218
1219 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1220
1221         * dbus/dbus-connection.c: Interfaces are optional in method
1222         calls, so don't give up if the interface parameter is NULL.
1223         Patch reviewed by Havoc Pennington.
1224
1225 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1226
1227         * qt/qdbusreply.h: Add default constructor and operator=
1228           (r532625)
1229         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1230           in public headers (r532952)
1231         * qt/qdbusabstractinterface.cpp:
1232         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1233           make it the default (r532951)
1234
1235 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1236
1237         * dbus/dbus-connection.c: Fix asserts
1238         Patch from Tim Moloney <t.moloney at verizon.net>
1239
1240 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1241
1242         * mono/Connection.cs, mono/Message.cs: Check Target type
1243         Patch from Aaron Bockover (abockover at novell.com)
1244
1245 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1246
1247         * INSTALL: fine-tune the requirements for the Qt4 binding.
1248
1249 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1250
1251         * tools/dbus-print-message.c: Added support for printing of all 
1252           remaining data types. Fixed logic for indentation of compound
1253           data types.
1254         
1255 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1256
1257         * INSTALL: fill out content of file providing DBus specific
1258           build installations, followed by generic Auto* INSTALL file
1259           content
1260         
1261 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1262
1263         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1264           Patch by Stefan Eilers. (r529537)
1265
1266 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1267
1268         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1269           contents (r528208)
1270
1271 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1272
1273         * qt/Makefile.am: fix the dependency for
1274           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1275           not in qdbusconnection.cpp.
1276           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1277           spotting this.
1278
1279 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1280
1281         * qt/examples/listnames.cpp:
1282         * qt/examples/Makefile.am: Three ways to list the names on the
1283           bus.
1284
1285 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1286
1287         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1288           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1289
1290 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1291
1292         Merge from Subversion:
1293         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1294           something that exists (r526315)
1295         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1296           slots/signals (r526316)
1297         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1298           also return an unknown-method error if the parameters don't
1299           match for org.freedesktop.DBus.Properties. (r526842)
1300         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1301         * qt/qdbusintegrator.cpp: Restore the proper order of
1302           delivery: don't make method returns be delivered on priority
1303           (r528150)
1304
1305 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1306
1307         * configure.in qt/Makefile.am: add qt/examples
1308         * qt/examples: Add QtDBus example programs:
1309           - hello: Hello, World
1310           - ping: Simple method-calling program
1311           - pong: Simple object-exporting program (not using adaptors)
1312           - complexping: Interactive method-calling program 
1313                 (also gets and sets properties).
1314           - complexpong: Sample program exporting methods, signals and
1315                 properties, using adaptors.
1316           - dbus: Simple implementation of a generic method-calling
1317                 program, similar to 'dbus-send', but with semantics
1318                 similar to 'dcop'.
1319           - chat: Simplistic chat program, implemented using signals
1320                 and the system bus. Looks like IRC.
1321
1322 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1323
1324         * configure.in: Detect QtGui (necessary for one of the
1325           example programs). Note: this increases the minimum required
1326           version of Qt to 4.1.3.
1327
1328 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1329
1330         * test/qt/*: Sync with KDE Subversion revision 523647.
1331         Update the testcases to the new API. Remove testcases for
1332         classes that are no longer public or have been removed.
1333
1334 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1335
1336         * qt/*: 
1337         * dbus/qdbus.h: Sync with KDE Subversion revision
1338         523647. Hopefully, this will be the last of the
1339         source-incompatible changes. Documentation has been improved;
1340         support for QList<basic-types> has been added; QDBusObject is
1341         gone; QDBus(Abstract)Interface is now a QObject with
1342         auto-generated meta-object; QDBusIntrospection is marked
1343         private, since QMetaObject can be used now; lots of bugfixes.
1344
1345 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1346
1347         Patch from Milosz Derezynski <internalerror at gmail.com>
1348         
1349         * configure.in:
1350         Output the service directory in the configure summary
1351
1352         * dbus-1.pc.in:
1353         Add session_bus_services_dir
1354
1355 2006-03-10  Ross Burton  <ross@openedhand.com>
1356
1357         * tools/dbus-print-message.c:
1358         Add support for object paths and signatures.
1359
1360 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1361
1362         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1363         config reload.
1364         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1365         information caches
1366         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1367         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1368         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1369         * dbus/dbus-userdb.h: Add function to flush all user/group information
1370         caches.
1371
1372 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1373
1374         * qt/dbusidl2cpp.cpp:
1375         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1376         for dcopidl2cpp, found in the KDE installations (or the more
1377         modern kalyptus): generate Qt4 C++ code for the input XML
1378         introspection. Currently no IDL parsing.
1379
1380 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1381
1382         * test/qt/*: Update the self-tests.
1383
1384 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1385
1386         * qt/*: 
1387         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1388         represents the first feature-complete version of the Qt4
1389         bindings since I took ove maintainership.
1390
1391 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1392
1393         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1394         dir. This is C++, so we can't use the DBus ones.
1395
1396 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1397
1398         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1399         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1400
1401 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1402
1403         * dbus/dbus-connection.c: 
1404         (_dbus_connection_block_pending_call):
1405         Check to see if our data has already been read off the connection
1406         by another blocking pending call before we block in poll.
1407         (check_for_reply_and_update_dispatch_unlocked):
1408         Code taken from _dbus_connection_block_pending_call - checks for
1409         an already read reply and updates the dispatch if there is one.
1410
1411         * test/name-test/test-pending-call-dispatch.c:
1412         New test for making sure we don't get stuck polling a 
1413         dbus connection which has no data on the socket when
1414         blocking out of order on two or more pending calls.
1415
1416 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1417
1418         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1419         make/automake don't detect that we're talking about the same
1420         .lo file if I specify the full path to the source files.
1421
1422 2006-02-26  Havoc Pennington  <hp@redhat.com>
1423
1424         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1425
1426         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1427         session bus variable is unset, suggest "man dbus-launch" and "man
1428         dbus-daemon" to figure out how to fix the problem
1429
1430 2006-02-25  Havoc Pennington  <hp@redhat.com>
1431
1432         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1433         should make this thing use the new glib options parser
1434
1435 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1436
1437         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1438         .lo files taking moc sources.
1439
1440 2006-02-25  Havoc Pennington  <hp@redhat.com>
1441
1442         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1443         and install it as a public header
1444
1445 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1446
1447         * Released 0.61
1448
1449 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1450         
1451         * proxies.py: Fix the callchain
1452
1453 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1454         
1455         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1456
1457         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1458         dbus/dbus-sysdeps.c
1459
1460         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1461         call _dbus_group_info_free_allocated which causes infinite loop,
1462         correctly call _dbus_group_info_free
1463
1464 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1465
1466         * qt/qdbusinterface_p.h:
1467         * qt/qdbusinterface.cpp: Use the standard
1468         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1469         calls instead of creating one for us.
1470
1471         * qt/qdbusconnection_p.h:
1472         * qt/qdbusintegrator.cpp: Remove debugging code.
1473
1474         * qt/qdbusintegrator.cpp:
1475         * qt/qdbusmessage.cpp:
1476         * qt/qdbusmessage_p.h:
1477         * qt/qdbusmessage.h: Change the behaviour of automatic
1478         reply-sending: now a reply is always sent, unless the caller
1479         didn't request one or if the user slot has already sent one.
1480
1481 2006-02-16  Robert McQueen  <robot101@debian.org>
1482
1483         * configure.in: Patch from Debian packages by Sjoerd Simons
1484         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1485         arguments so it's possible to build both bindings in the
1486         same tree.
1487
1488         * qt/Makefile.am: Fix truncated value so that make dist works.
1489
1490 2006-02-16  Robert McQueen  <robot101@debian.org>
1491
1492         * acinclude.m4, configure.in: Patch from Brad Hards
1493         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1494         improving quoting, re-ordering a few checks, and a few other
1495         aesthetic tidy-ups.
1496
1497 2006-02-16  Robert McQueen  <robot101@debian.org>
1498
1499         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1500         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1501         assertion that the next element to read from the iter is fixed in
1502         size. This is not the case when you are at the end of the iter,
1503         because the next element type is INVALID.
1504
1505         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1506         a bogus assert which means that you may not initialise a 0-length
1507         string unless you provide a non-NULL pointer. This prevented
1508         you from marshalling messages containing zero-length arrays in
1509         some cases.
1510
1511         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1512         from Rob to correct bogus asserts when trying to demarshal an
1513         array and get_fixed_array got you 0 elements. Append nothing to
1514         the GArray in this case.
1515
1516         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1517         an empty array via the glib bindings. Without all of the above
1518         patches, this new test fails.
1519
1520 2006-02-16  Robert McQueen  <robot101@debian.org>
1521
1522         * glib/dbus-gmain.c: Make the previous commit compile.
1523
1524         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1525         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1526         specify sender_keyword="foo", path_keyword="bar" when adding
1527         a signal listener, so that you can bind to signals generically
1528         but still do something useful in your callback.
1529
1530         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1531         chars so that they're not cast to chars and made negative. Thanks
1532         to Jakub Stachowski for reporting this and testing the fix.
1533
1534 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1535
1536         * dbus/dbus-glib.h:
1537         * glib/dbus-gmain.h:
1538         (dbus_g_connection_open): new method for openning
1539         a connection to an arbitrary address in the glib bindings
1540
1541         * ChangeLog: checkin last entry which doesn't seem to be commited
1542
1543 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1544
1545         * tools/dbus-launch.c: Fixed sh syntax output
1546
1547 2006-02-13  Robert McQueen  <robot101@debian.org>
1548
1549         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1550         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1551         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1552         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1553         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1554         missing piece of the glib bindings jigsaw puzzle. This modifies
1555         the existing specialised types to have N type parameters (rather
1556         than the current 1 or 2 for arrays and dictionaries respectively).
1557         You can then use this to get a glib type to represent any arbitrary
1558         D-Bus struct type using dbus_g_type_get_struct. The only
1559         implementation of these types is with GValueArrays as before,
1560         but it's now possible to store these in arrays, emit them in
1561         signals, etc.
1562
1563 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1564
1565         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1566         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1567         <thiago.macieira at trolltech.com>
1568
1569 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1570
1571         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1572         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1573
1574 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1575
1576         * bus/connection.c (bus_connections_expect_reply): Make
1577         pending reply limit not common to all connections (Bug #5416)
1578         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1579
1580 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1581
1582         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1583
1584 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1585
1586         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1587         patch from Doug Goldstein <cardoe at gentoo.org>
1588
1589 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1590
1591         * mono/Arguments.cs: Fix a magic number in the mono bindings
1592         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1593
1594 2006-01-27  Robert McQueen  <robot101@debian.org>
1595
1596         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1597         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1598         when generating the client-side methods, instead of overloading
1599         CSymbol which broke everything horribly. My apologies.
1600
1601 2006-01-27  Robert McQueen  <robot101@debian.org>
1602
1603         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1604         by me and Rob Taylor to add a simple_free function to D-Bus map
1605         and collection types, which allows those types which can be freed
1606         with a GDestroyNotify (such as GHashTables and GArrays, but not
1607         GPtrArrays) to be stored as the values in hashtables.
1608
1609         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1610         Patch by Rob Taylor to add nested dicts to the glib tests to check
1611         the above code works, and appears not to leak when called repeatedly.
1612
1613 2006-01-27  Robert McQueen  <robot101@debian.org>
1614
1615         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1616         to free a D-Bus allocated string with dbus_free () instead of
1617         g_free ().
1618
1619 2006-01-27  Iain Holmes  <iain@openedhand.com>
1620
1621         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1622         method from being called multiple times.
1623
1624 2006-01-19  Robert McQueen  <robot101@debian.org>
1625
1626         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1627         <rob.taylor@collabora.co.uk> to add support for generating bindings
1628         to arrays that are represented as GPtrArrays rather than GArrays (ie
1629         size-variable things, such as strings, objects, structs, etc).
1630
1631 2006-01-05  Robert McQueen  <robot101@debian.org>
1632
1633         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1634         <ricardo.kekki@movial.fi> to make it possible to inherit from
1635         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1636         a private part, and moving the setting of the DBusGProxyManager into a
1637         connection property, allowing proper GObject construction.
1638
1639 2006-01-05  Robert McQueen  <robot101@debian.org>
1640
1641         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1642         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1643         annotations when generating glib client bindings.
1644
1645 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1646
1647         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1648
1649         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1650
1651 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1652
1653         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1654
1655 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1656
1657         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1658
1659 2005-12-19  Ross Burton  <ross@openedhand.com>
1660
1661         * doc/dbus-tutorial.xml:
1662         Document the Glib client-side bindings, and list all possible annotations.
1663
1664 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1665
1666         * dbus/bus.c (dbus_bus_release_name): Add documentation
1667
1668 2005-12-06  Robert McQueen  <robot101@debian.org>
1669
1670         * python/service.py: s/sucessful/successful/ so we're allocating to
1671         and reading from the same variable. Oops.
1672
1673 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1674
1675         * Released 0.60
1676
1677 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1678
1679         * test/qt/Makefile.am: build from srcdir
1680
1681         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1682         Note - this code is wrong and needs to be fixed by the Qt binding
1683         developers.  The flags should be treated as bitfields and not enums.
1684
1685         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1686
1687 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1688
1689         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1690           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1691           in production code
1692
1693 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1694
1695         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1696         method for getting messages off the bus in the absence of a
1697         mainloop.  This method is much like 
1698         dbus_connection_read_write_dispatch except it does not dispatch
1699         the messages to a registered filter function.  Instead it
1700         allows a developer to process messages by directly popping
1701         them off the bus.
1702
1703 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1704
1705         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1706         the parser to continue instead of returning error
1707         (bus_desktop_file_load): Do not free parser data when
1708         parse_section_start or parse_key_value fails because it was 
1709         already freed by parser_free (patch from Carlos Garcia Campos  
1710         <carlosgc at gnome.org>)
1711
1712 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1713
1714         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1715         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1716         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1717         test/test-segfault.c, test/test-utils.c,
1718         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1719         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1720         Various cleanup of dead code and compiler warnings (patch from
1721         Kjartan Maraas <kmaraas at gnome.org>) 
1722
1723 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1724
1725         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1726         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1727
1728 2005-11-27  Robert McQueen  <robot101@debian.org>
1729
1730         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1731         part of the preceding one. Oops. Merge patch by Johan Hedberg
1732         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1733         on big-endian platforms.
1734
1735         * test/python/test-client.py: Add some 16-bit integers to the test
1736         values.
1737
1738 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1739
1740         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1741         method return message for property getters
1742
1743 2005-11-27  Robert McQueen  <robot101@debian.org>
1744
1745         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1746         with type v of an instance of dbus.Variant(foo, type='x') caused
1747         it to be boxed twice before sending over the bus.
1748
1749         * python/dbus_bindings.pyx, python/service.py,
1750         test/python/test-client.py: Update the constants for the new
1751         request_name flags, and update comments/test cases now that queueing
1752         is the default action.
1753
1754 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1755
1756         * configure.in:
1757         - Change version to 0.60 for impending release
1758         - upped the sonames because of ABI and API breakage
1759
1760 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1761
1762         * configure.in: Add test/name-test/Makefile to the generated
1763         Makefile list
1764
1765         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1766         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1767         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1768         not to queue an ower if it can't be the primary owner
1769
1770         * bus/bus.h: Add new internal BusOwner struct
1771
1772         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1773         to bus_registry_ensure and don't set the prohibit_replacement flag
1774         since they are now set per BusOwner and not per name.
1775         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1776         that returns the list of connections in a name's connection queue
1777         
1778         * bus/services.c (struct BusService): remove prohibit_replacement field
1779         (struct BusOwner): new struct for keeping track of queued connections
1780         and their associated flags for the queue
1781         (struct BusRegistry): add a BusOwner memory pool
1782         (bus_registry_new): initialize the BusOwner memory pool
1783         (bus_registry_unref): free the BusOwner memory pool
1784         (_bus_service_find_owner_link): new internal method for
1785         searching the queue for a specific connection
1786         (bus_owner_set_flags): new method for adding setting the flags on a
1787         bus owner
1788         (bus_owner_new): new method that creates a BusOwner object from the
1789         pool and sets its flags
1790         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1791         (bus_registry_ensure): Add the flags parameter
1792         (bus_registry_acquire_service): Switch from using raw connections to
1793         using the BusOwner struct
1794         Add new state machine for dealing with the new set of flags
1795         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1796         cancel_ownership, free_ownership_cancel_data, 
1797         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1798         restore_ownership, free_ownership_restore_data, 
1799         add_restore_ownership_to_transaction): Switch to using BusOwner 
1800         instead of raw connections
1801         (bus_service_add_owner): Add flags parameter
1802         Switch to using BusOwner instead of raw connections
1803         Add state machine for dealing with the new set of flags
1804         (bus_service_swap_owner): Swaps the first and second owners in the
1805         queue.  Used to make sure proper signals are sent when a service looses 
1806         or gains primary ownership.  We never insert an owner at the top of the
1807         queue.  Instead we insert it in the second position and then swap.
1808         (bus_service_remove_owner): Remove the owner from the queue sending
1809         out the NameLost and NameOwnerChanged signals if the we were the 
1810         primary owner
1811         (bus_service_get_primary_owners_connection): New method that extracts
1812         the connection from the primary owner
1813         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1814         connection
1815         (bus_service_get_allow_replacement): Changed from the old 
1816         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1817         primary owner and returns if it can be replaced or not
1818         (bus_service_set_prohibit_replacement): removed
1819         (bus_service_has_owner): returns TRUE if and owner with
1820         the specified connection exists in the queue
1821         
1822         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1823         method that only compiles if tests are enabled.  Allows us to get the 
1824         unique name of a connection so we can check it against the queue when
1825         doing regression tests
1826
1827         * bus/activation.c (bus_activation_send_pending_auto_activate),
1828         bus/dispatch.c (bus_dispatch),  
1829         bus/driver.c (bus_driver_handle_get_service_owner, 
1830         bus_driver_handle_get_connection_unix_user, 
1831         bus_driver_handle_get_connection_unix_process_id,
1832         bus_driver_handle_get_connection_selinux_security_context),
1833         bus/signals.c (connection_is_primary_owner): 
1834         use bus_service_get_primary_owners_connection instead of
1835         bus_service_get_primary_owner
1836
1837         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1838         _dbus_listen_unix_socket): Calculate the length of the socket
1839         path and use that instead of using a fixed length which was
1840         causing socket names to contain many trailing Nul bytes.
1841
1842         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1843         (dbus_g_method_get_sender): New method for extracting the sender 
1844         from a DBusGMethodInvocation
1845         (dbus_g_method_return_get_reply): changed name to 
1846         dbus_g_method_get_reply
1847         (dbus_g_method_return_send_reply): changed name to
1848         dbus_g_method_send reply
1849
1850         * doc/dbus-specification.xml: New docs that describe how the new
1851         queueing system works and talks about the changes to the how
1852         we specify socket names
1853
1854         * glib/examples/example-service.c, 
1855         glib/examples/example-signal-emitter.c,
1856         glib/examples/statemachine/statemachine-server.c:
1857         Changed the RequestName flags to the new system
1858
1859         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1860         regression test suite for testing various states of the new
1861         queueing system
1862         
1863 2005-11-15  Robert McQueen  <robot101@debian.org>
1864
1865         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1866         Taylor to add two methods, dbus_g_method_return_get_reply and
1867         dbus_g_method_return_send_reply, to allow you to get the reply
1868         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1869         and send it. The GLib bindings can't marshal a return value of
1870         something like a(s) if the array is empty - ultimately they should be
1871         made to heed the signature of the out arguments as the Python bindings
1872         now can, but this is a workable interim solution which might have
1873         other applications.
1874
1875 2005-11-15  Robert McQueen  <robot101@debian.org>
1876
1877         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1878         method to org.freedesktop.DBus to release a bus name or give up
1879         waiting in the queue for it.
1880
1881         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1882         dbus_bus_release_name method to send the ReleaseName method calls.
1883         Add constants for the return values to dbus/dbus-shared.h.
1884
1885         * doc/dbus-specification.xml: Document the new ReleaseName method
1886         in the specification.
1887
1888         * python/dbus_bindings.pyx: Add a low-level python binding for the
1889         release name method.
1890
1891         * python/exceptions.py, python/service.py: Make freeing BusName
1892         objects release the name. Add a NameExistsException, and fix a
1893         bug with creating UnknownMethodException.
1894
1895         * test/python/test-client.py: Add tests for freeing BusName
1896         objects causing names to be released.
1897
1898 2005-11-14  Robert McQueen  <robot101@debian.org>
1899
1900         * python/service.py: Include the traceback in the error reply when we
1901         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1902
1903 2005-11-14  David Zeuthen  <davidz@redhat.com>
1904
1905         Patch from Timo Hoenig <thoenig@suse.de>.
1906
1907         * bus/bus.c: I've recently investigated why the automatic reload
1908         of configuration files does not work as expected.
1909
1910         Currently, reloading configuration files does only work when
1911         running dbus-daemon with --nodaemon.  If we are running as daemon
1912         we're hitting a dnotify bug once we fork the process.
1913
1914         We're initializing the dnotify fds before calling fork().  Once
1915         the child process forked it does still have the fds (and they
1916         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1917         getting SIGIO as changes are made to the configuration files.
1918
1919         The attached patch moves the initialization of the dnotify fds to
1920         process_config_postinit().  This is safe for all current code
1921         paths and solves the dnotify disfunction.  If we're running
1922         dbus-daemon as daemon the fds for dnotify are now being
1923         initialized after fork() for the child process.
1924
1925         * configure.in: The current configure.in check for dnotify probes
1926         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1927         match for 'xlinux', too. Additionally I have adapted the configure
1928         option's style to match with the others.
1929
1930 2005-11-14  Robert McQueen  <robot101@debian.org>
1931
1932         * python/decorators.py, python/service.py: Add a new argument to the
1933         dbus.service.method decorator called sender_keyword, which if set,
1934         specifies the name of an argument which will be provided the bus
1935         name of the method caller.
1936
1937         * test/python/test-client.py, test/python/test-service.py: Add a
1938         method and test to check the sender_keyword functionality.
1939
1940 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1941
1942         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1943         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1944         Simons <sjoerd at luon.net>)
1945
1946         * AUTHORS: Add Robert McQueen for his work on the Python
1947         Bindings and other parts of D-Bus
1948
1949 2005-11-07  Robert McQueen  <robot101@debian.org>
1950
1951         * python/decorators.py: Change emit_signal function to use the
1952         signature annotation of the signal when marhsalling the arguments from
1953         the service. Fix a bug where the code checking signature length
1954         against argument length referenced the wrong variable.
1955
1956         * python/introspect_parser.py: Avoid adding the type signature of
1957         signal arguments to any methods which occur after them in the
1958         introspection data (!) by making the parser a little more careful
1959         about its current state.
1960
1961         * python/service.py: Remove debug prints from last commit (again :D).
1962
1963         * test/python/test-client.py, test/python/test-service.py: Add test
1964         signals with signature decorators to test the strict marshalling code
1965         gives errors at the right time. Could do with checking the signals
1966         actually get emitted too, given that the test does nothing with
1967         signals at the moment...
1968
1969 2005-11-07  Robert McQueen  <robot101@debian.org>
1970
1971         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1972         instances to stop madness of creating new instances representing
1973         the same bus connection all the time, rendering any tracking of
1974         match rules and bus names quite meaningless. Caught a bug where
1975         the private argument to SessionBus() and friends was being passed
1976         in as use_default_mainloop by mistake. Still some problems with
1977         multiple dbus_binding.Connection instances representing the same
1978         low-level connection (eg when you use both SessionBus() and
1979         StarterBus() in same process), but it's a lot better now than it
1980         was.
1981
1982         * python/dbus_bindings.pyx: Add constants with the return values
1983         for bus_request_name().
1984
1985         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1986         and retrieve the same instances for the same name, so deletion can be
1987         done with refcounting. Also now throws some kind of error if you
1988         don't actually get the name you requested, unlike previously...
1989
1990         * test/python/test-client.py: Add tests for instance caching of buses
1991         and bus name objects.
1992
1993 2005-11-04  Robert McQueen  <robot101@debian.org>
1994
1995         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1996         marshalling of boolean values. Add some booleans to the values in
1997         the test client.
1998
1999         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2000         argument to the dbus.service.method decorator, which allows you to
2001         name arguments to take two callback functions for replying with
2002         return values or an exception.
2003
2004         * test/python/test-client.py, test/python/test-service.py: Add test
2005         case using asynchronous method reply functions, both return values and
2006         errors, and from within both the function itself and from a mainloop
2007         callback.
2008
2009         * python/decorators.py, python/service.py: Perform checking that the
2010         number of method/signal arguments matches the number of types in the
2011         signature at class loading time, not when you first introspect the
2012         class.
2013
2014         * python/service.py: Remove debug print left by the last commit.
2015
2016 2005-11-03  Robert McQueen  <robot101@debian.org>
2017
2018         * python/service.py: Heavy refactoring of method invocation, with
2019         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2020         in favour of a new _message_cb that uses seperate functions for
2021         looking up the method to call, marshalling the return values, and
2022         sending exceptions as errors, and is easier to follow as a
2023         consequence.  Fixes some corner cases about returning things that
2024         don't match your declared out_signature, allows exceptions to define
2025         _dbus_error_name and have it be sent over the bus as the error name,
2026         and paves the way for cool stuff like heeding the message no reply
2027         flag, asynchronous method implementations, informing the method of the
2028         sender, and including backtraces in the error messages.
2029
2030         * test/python/test-client.py: Catch and print exceptions thrown in the
2031         async callback tests, rather than passing them to the low-level
2032         bindings to be ignored in a noisy and frustrating manner.
2033
2034 2005-11-03  Robert McQueen  <robot101@debian.org>
2035
2036         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2037         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2038         tweak others to be consistent.
2039
2040         * test/python/test-client.py: Tweak output of testInheritance.
2041
2042 2005-10-29  Robert McQueen  <robot101@debian.org>
2043
2044         * python/service.py: Major changes to allow multiple inheritance
2045         from classes that define D-Bus interfaces:
2046         
2047          1. Create a new Interface class which is the parent class of
2048             Object, and make the ObjectType metaclass into InterfaceType.
2049         
2050          2. Patch written with Rob Taylor to replace use of method_vtable
2051             with code that walks the class's __MRO__ (method resolution order)
2052             to behave like Python does when invoking methods and allow
2053             overriding as you'd expect. Code is quite tricky because
2054             we have to find two methods, the one to invoke which has the
2055             right name and isn't decorated with the /wrong/ interface,
2056             and the one to pick up the signatures from which is decorated
2057             with the right interface.
2058         
2059             The same caveats apply as to normal multiple inheritance -
2060             this has undefined behaviour if you try and inherit from two
2061             classes that define a method with the same name but are
2062             decorated with different interfaces. You should decorate
2063             your overriding method with the interface you want.
2064         
2065          3. Replace grungy introspection XML generation code in the metaclass
2066             with dictionaries that cope correctly with multiple inheritance
2067             and the overriding of methods. This also uses the signature
2068             decorations to provide correct introspection data, including
2069             the debut appearance of the types of your return values. :D
2070
2071         * test/python/test-client.py, test/python/test-service.py: Add a test
2072         case to try invoking an method that overrides one inherited from a
2073         D-Bus interface class.
2074
2075 2005-10-29  Robert McQueen  <robot101@debian.org>
2076
2077         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2078         Add checking for the end of struct character when marshalling a
2079         struct in MessageIter.append_strict.
2080
2081         * python/examples/example-service.py,
2082         python/examples/gconf-proxy-service.py,
2083         python/examples/gconf-proxy-service2.py: Update to use gobject
2084         mainloop directly rather than appearing to depend on gtk.
2085
2086         * python/test/test-client.py, python/test/test-server.py: Remove
2087         obsolete and broken test scripts for old bindings. We have up to date
2088         and working tests in test/python/.
2089
2090 2005-10-29  Robert McQueen  <robot101@debian.org>
2091
2092         * python/decorators.py: Add optional arguments to the method and
2093         signal decorators to allow you to specify the signature of arguments
2094         and return values. Preserve the doc strings of signal functions in the
2095         decorated version, for pydoc and friends.
2096
2097         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2098         parse_signature_block function with an iterable dbus.Signature()
2099         type. Fix a bug in MessageIter.append_strict where you could append
2100         anything by claiming it was a string.
2101
2102         * python/service.py: Use the out_signature decoration on methods to
2103         marshal return values, meaning you no longer require dbus.Array()
2104         or dbus.Dictionary() to indicate the type when returning empty
2105         arrays or dictionaries. Fix a bug where exceptions which are defined
2106         in __main__ are not turned into error replies.
2107
2108         * test/python/test-client.py, test/python/test-service.py: Add test
2109         for correct marshalling of return values according to out_signature.
2110         Fix a bug in the async call test where the error_handler is missing a
2111         self argument.
2112
2113 2005-10-29  Robert McQueen  <robot101@debian.org>
2114
2115         * glib/Makefile.am, glib/examples/Makefile.am,
2116         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2117         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2118
2119         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2120
2121         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2122         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2123         the command line.
2124
2125 2005-10-27  Ross Burton  <ross@openedhand.com>
2126
2127         * dbus/dbus-marshal-header.c:
2128         Remove dead code.
2129
2130         * glib/dbus-gobject.c:
2131         Stop compiler warning.
2132
2133 2005-10-25  Ross Burton  <ross@openedhand.com>
2134
2135         * dbus/dbus-auth.c:
2136         * dbus/dbus-server-unix.c:
2137         * dbus/dbus-transport-unix.c:
2138         * glib/dbus-gmain.c:
2139         * glib/dbus-gobject.c:
2140         Add some const keywords.
2141
2142 2005-10-25  Ross Burton  <ross@openedhand.com>
2143
2144         * doc/dbus-specification.xml:
2145         Document the NoReply annotation.
2146
2147         * glib/dbus-binding-tool-glib.h:
2148         * glib/dbus-binding-tool-glib.c:
2149         Respect the NoReply annotation.
2150
2151 2005-10-24  Robert McQueen <robot101@debian.org>
2152
2153         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2154         derive from unicode instead of str, and encode/decode UTF-8 when
2155         marshalling/unmarshalling bus messages
2156
2157         * python/introspect_parser.py: encode introspection data as UTF-8
2158         before passing the buffer into libxml2
2159
2160         * test/python/test-client.py: add unicode test strings
2161
2162         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2163         ignore generated python test files
2164
2165 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2166
2167         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2168         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2169         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2170
2171         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2172         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2173         when constructing struct signatures
2174
2175         * python/_dbus.py (Bus): handle private connections using the
2176         private keyword in the constructor. defaults to private=False
2177         (Bus::close): new method to close a connection to the bus
2178
2179         * python/dbus_bindings.pyx (Connection::close): renamed method
2180         was previously called disconnect
2181         (bus_get): now supports getting a private connection
2182
2183         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2184         keyword is set to True.  if it is, execute the method without waiting
2185         for a reply
2186         (ProxyObject::_introspect_execute_queue): new method for executing
2187         all the pending methods that were waiting for the introspect to
2188         finish.  this is called when introspect either succeeds or fails
2189         (ProxyObject::_introspect_error_handler): call queued methods
2190
2191 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2192
2193         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2194         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2195
2196         * python/service.py (Object::_message_cb): handle exceptions correctly
2197         by sending them over the wire to the calling app.  This makes sure
2198         the client returns immediately instead of waiting the 15 seconds to
2199         timeout.
2200
2201         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2202         Add a test to benchmark how long it takes to introspect a service and 
2203         call a method which returns a large element (pretty fast)
2204
2205         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2206         method which pushes a lot of data
2207
2208 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2209
2210         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2211         reclaim memory outside of the loop and use del istead of just setting
2212         the key to None
2213
2214 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2215
2216         * python/service.py (ObjectType::_reflect_on_signal): Always close
2217         signal tag even when there are no arguments
2218
2219 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2220
2221         * configure.in: Set mono, mono-docs and Qt3 to default
2222         to no instead of auto when building.  These bindings do not
2223         have full time maintainers and will not be supported for the
2224         1.0 release.
2225
2226 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2227
2228         patches from Michael Krivoruchko <misha at sun.com>: 
2229         
2230         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2231         _dbus_connection_message_sent, 
2232         _dbus_connection_send_preallocated_unlocked_no_update, 
2233         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2234         is NULL when calling _dbus_verbose
2235
2236         * configure.in: check for functions getpeerucred and getpeereid
2237
2238         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2239         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2240         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2241         Patch was only tested on Solaris 10 x86 so it might be issues
2242         with other platforms (i.e. BSDs and MacOSX)
2243         
2244
2245 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2246
2247         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2248         instead of marshal basic so we can handle recursive types in a variant
2249
2250         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2251         in variants
2252
2253         * test/glib/test-service-glib.c, test-service-glib.xml
2254         (my_object_echo_variant [EchoVariant], 
2255         my_object_process_variant_of_array_of_ints123
2256         [ProcessVariantOfArrayOfInts123]): 
2257         Add two test methods
2258
2259         * python/introspect_parser.py: New module for parsing introspect
2260         data.
2261
2262         * python/dbus_bindings.pyx:
2263         (various places): when throwing errors fix to use errormsg instead 
2264         of message local variable because Pyrex can get confused with other 
2265         message variables (initial patch by Robert McQueen 
2266         <robert.mcqueen at collabora.co.uk>)
2267         (MessageIter::parse_signature_block): new method for getting the next
2268         block in a signiture.
2269         (MessageIter::append_strict): new method for appending values strictly
2270         using the passed in signature instead of guessing at the type
2271         (MessageItter:: append_dict, append_struct, append_array): use 
2272         signatures to marshal children if the signature is available
2273         
2274         * python/exceptions.py (IntrospectionParserException): new exception
2275
2276         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2277         introspected signatures if available, else we fall back to the
2278         old way of doing things.
2279         (ProxyObject::_introspect_reply_handler ): parse introspection data
2280         
2281         * python/service.py (ObjectType::_reflect_on_method): Properly
2282         terminate <method> if there are no args in the reflection data
2283
2284         * test/python/test-client.py: add tests for talking with the GLib
2285         test server.  This gives us better coverage for introspection since
2286         python to python will always generate arguments as variants.  It also
2287         allows us to test the robustness of the GLib bindings and interlanguage
2288         communications.
2289
2290         
2291 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2292
2293         * bus/driver.c (bus_driver_handle_introspect): Add signals
2294         to the introspect data. (patch from Daniel P. Berrange 
2295         <dan at berrange.com>)
2296
2297         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2298         
2299         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2300         _dbus_connection_run_builtin_filters): Changed these to
2301         be unlock_no_update functions and call 
2302         _dbus_connection_send_unlocked_no_update instead of
2303         dbus_connection_send to avoid locking errors.
2304         
2305         * doc/TODO: Removed the make Ping test TODO
2306         
2307 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2308
2309         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2310         We now copy the message from a DBusError and then free 
2311         the error object befor throwing the error
2312
2313         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2314         DBusBindingOutputMode enum which was causing a warning.
2315         #include <time.h> so using time_t is explicitly defined
2316
2317 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2318
2319         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2320         - dbus/dbus-bus.c
2321         (internal_bus_get): new method that take over the heavy lifting
2322         of dbus_bus_get and adds the ability to get a private connection
2323         to the bus
2324         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2325         interface as in previous versions
2326         (dbus_bus_get_private): new method that is a wrapper to 
2327         internal_bus_get to get a private connection to the bus
2328
2329         - dbus/dbus-bus.h
2330         (dbus_bus_get_private): add as a public libdbus interface
2331
2332         - dbus-1.pc.in: output system_bus_default_address and 
2333         sysconfdir variables so apps can use them when compiling
2334
2335 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2336         * dbus/qt: New Qt bindings
2337
2338 2005-09-12  Waldo Bastian  <bastian@kde.org>
2339
2340         * dbus/dbus-marshal-validate.c,
2341         doc/dbus-specification.xml, test/Makefile.am,
2342         test/test-names.c: allow hyphens in bus names.
2343
2344 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2345
2346         * test/data/auth/fallback.auth-script: we don't
2347         retry the EXTERNAL method when we know its going
2348         to fail anymore.
2349
2350 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2351
2352         * dbus/dbus-connection-internal.h: rename
2353         (add|remove|toggle)_(watch|timeout) to unlocked()
2354         
2355         * dbus/dbus-connection.c: ditto.
2356         
2357         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2358         Update some callers for the renaming.
2359
2360 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2361
2362         * dbus/dbus-auth.c: (record_mechanisms): don't
2363         retry the first auth mechanism because we know
2364         we're just going to get rejected again.
2365         
2366         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2367         Fix thinko ... and what a nasty little bugger to
2368         track down you were ...
2369
2370         * dbus/dbus-connection.c:
2371         (_dbus_connection_add_watch),
2372         (_dbus_connection_remove_watch): add note about
2373         these needing the connection to be locked.
2374         (_dbus_connection_get_dispatch_status_unlocked):
2375         set status to DATA_REMAINS when we queue the
2376         disconnected message.
2377         
2378         * bus/dispatch.c:
2379         (bus_dispatch): fix warning.
2380         (check_existent_service_no_auto_start):
2381         Expect ChildSignaled error too.
2382         (check_existent_hello_from_self): fix another
2383         couple of warnings.
2384         
2385 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2386
2387         Patches from James Willcox <snorp@snorp.net>
2388
2389         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2390
2391         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2392         support array "out" parameters.
2393
2394         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2395         for 16-bit int support.
2396
2397 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2398
2399         * Released 0.50
2400
2401         * Patch from Steve Grubb:
2402         - bus/activation.c (bus_activation_service_reload_test): clean up
2403         some indentation
2404         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2405         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2406         buffer overflows in the test suite.  This is non critical because
2407         it can not be exploited and this code is only run when doing a 
2408         make check.
2409
2410         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2411         - configure.in: Don't check and link against kdecore, only qt headers
2412         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2413         - gcj/org/freedesktop/dbus/Makefile.am:
2414         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2415         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2416         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2417         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2418         - tools/Makefile.am: Add platform extentions to binaries 
2419         (i.e. .exe on windows)
2420
2421         * configure.in: 
2422         - Make it so if no suitable version of python is found we only 
2423         disable building python instead of exiting the configure script
2424         - Require version 2.4 of glib for glib bindings
2425         - Up version to 0.50
2426
2427         * python/__init__.py: Sync version with libdbus to (0,50,0)
2428         
2429 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2430
2431         * dbus/dbus-object-tree.c (find_subtree_recurse):
2432         a couple of optimizations (bug #710):
2433         - do a binary search in the tree
2434         - insert a new child at the right place directly, no need for
2435           qsort anymore
2436         - do the "double alloc" thing when allocating children
2437
2438 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2439
2440         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2441
2442         * python/dbus_bindings.pyx: Memory management foo
2443         (global): remove hacky _user_data_references global list
2444         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2445         tuples. Unref user_data
2446         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2447         (Connection::__del__): Remove and replace with __dealloc__ method
2448         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2449         to keep tuple from being deallocated instead of the global var hack
2450         (Connection::register_object_path): Stuff user_data into a tuple.
2451         Use Py_INCREF to keep tuple from being deallocated instead of the 
2452         global var hack
2453         (Connection::register_fallback): Stuff user_data into a tuple.
2454         Use Py_INCREF to keep tuple from being deallocated instead of the 
2455         global var hack
2456         (GIL_safe_pending_call_notification): Don't unref the message
2457         because it gets unreffed when going out of scope.  Py_XDECREF
2458         the user_data
2459         (PendingCall::__del__): Remove and replace with __dealloc__ method
2460         (PendingCall::set_notify): ref the pending call because we will
2461         need it to stick around for when the notify callback gets called
2462         (Message::__del__): Remove and replace with __dealloc__ method
2463
2464         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2465         gthreads_init to match up with the dbus call
2466
2467         * python/glib.py (init_threads): Changed to threads_init to match
2468         up with gobject.threads_init().  init_threads is kept for backwards
2469         compat but will most likely be deprecated in the future
2470
2471         * test/python/test-client.py: 
2472         - revamp to use Python's unittest functionality
2473         - add async call tests
2474         - setup threads in glib and dbus so we make sure locks are working
2475         
2476 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2477
2478         * python/dbus_bindings.pyx 
2479         (_pending_call_notification, cunregister_function_handler, 
2480         cmessage_function_handler): All callback functions have been rearranged 
2481         to workaround a bug in Pyrex when working with the GIL which is Python's 
2482         global lock when dealing with threads.  They have been split into
2483         a wrapper function (which assumes the name of the old function) and
2484         a _GIL_safe_<function name> function which contains the functionality
2485         of the old function.  This ensures that Pyrex does not write code
2486         the lock is released.
2487         
2488
2489 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2490
2491         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2492         GIL global lock when calling back into Python
2493
2494 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2495
2496         * Release 0.36.2
2497
2498         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2499
2500         * bus/policy.c (bus_policy_allow_user): change default "user is
2501         allowed" to be "user has same uid as the bus itself"; any
2502         allow/deny rules will override.
2503
2504         * bus/session.conf.in: don't allow all users, since now by default
2505         the user that ran the bus can connect.
2506
2507 2005-08-26  Colin Walters  <walters@verbum.org>
2508
2509         * tools/dbus-print-message.c (print_message): Flush stdout
2510         after printing a message, so that redirecting to a file, then
2511         hitting Ctrl-C works.
2512
2513 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2514
2515         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2516         (EmptyMessage): new class that subclasses Message.  This is a workaround
2517         to a Pyrex bug that fails to call __del__ when the Message object goes out
2518         of scope.  For some reason subclassing Message fixes this bug
2519         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2520         - s/Message(_create=0)/EmptyMessage everywhere else
2521         
2522         * test/python/test-{server|client}.py: add the python/.libs directory
2523         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2524         get picked up from the system
2525
2526 2005-08-25  Colin Walters  <walters@verbum.org>
2527
2528         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2529         to Ryan Lortie for the suggestion.
2530
2531 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2532
2533         * test/python: Add python regression test
2534
2535         * configure.in: Add test/python/Makefile
2536
2537         * test/Makefile.am: Add the python directory to SUBDIRS
2538
2539 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2540
2541         * Release 0.36.1
2542
2543         * python/_dbus.py: 
2544         (Interface::connect_to_signal): propigate keywords for match on args
2545         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2546
2547         * python/proxies.py (ProxyObject::connect_to_signal):
2548         propigate keywords for match on args
2549
2550         * Makefile.am: point everything to pyexecdir since python borks
2551         on multilib
2552
2553 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2554
2555         * Release 0.36
2556
2557 2005-08-23  Colin Walters  <walters@verbum.org>
2558
2559         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2560
2561 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2562
2563         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2564         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2565         of defining DBusConnection ourselves.
2566
2567 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2568
2569         * python/dbus.pth: New path file to fix up problems when installing
2570         c libraries to lib64 and python files to lib.
2571
2572         * python/Makefile.am: install dbus.pth in the correct spot
2573
2574 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2575         * ChangeLog: clean up my last entry a bit
2576
2577         * doc/introspect.xsl: New stylesheet for converting introspection data
2578         into browser renderable xhtml. Contributed by Lennart Poettering.
2579
2580         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2581         Poettering.
2582
2583         * doc/dbus-tutorial.xml: 
2584         - Add Colin Walter to the Authors section for authoring the GLib
2585         section
2586         - Add descriptions of the new signature and type functionality
2587         in the Python complex type mapping section
2588         - Add a sidenote on the new args matching functionality in 
2589         the Python bindings
2590         - Fixed up some of the examples to use the gobject.MainLoop
2591         instead of gtk.main
2592         
2593         * python/_dbus.py:
2594         (Bus::_create_args_dict): New. Converts a hash of arg matches
2595         to a more useable format
2596         (Bus::add_signal_receiver): add a **keywords parameter for catching
2597         arg match parameters
2598         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2599         arg match parameters
2600         
2601         * python/matchrules.py:
2602         (MatchTree::exec_matches): Check for arg matches
2603         (SignalMatchRule::add_args_match): New method
2604         (SignalMatchRule::execute): Added args_list parameter as an optimization
2605         so we don't have to marshal the args more than once
2606         (SignalMatchRule::match_args_from_list): New method that checks to see
2607         if the rule's arg matches match an argument list.  Only arguments
2608         set in the rule are checked.
2609         (SignalMatchRule::match_args_from_rule): New method that checks to see
2610         if the rule's arg matches match another rule's.  All args have to match
2611         in order for this method to return true.  If either rule has more args
2612         then it is not a match.
2613         (SignalMatchRule::is_match): Add args match
2614         (SignalMatchRule::repr): Add args to the final output if they exist
2615
2616 2005-08-17  Ross Burton  <ross@burtonini.com>
2617
2618         * glib/dbus-gproxy.c:
2619         (dbus_g_proxy_call_no_reply): unref the message once sent.
2620         (dbus_g_proxy_call): protect against NULL proxy.
2621
2622 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2623
2624         * python/__init__.py: Version updated (0, 43, 0)
2625         
2626         * python/dbus_bindings.pyx: 
2627         - Fixed type objects to have self passed into __init__
2628         - Added the Variant type
2629         - Add the ability to specify types or signatures for Array, Variant 
2630         and Dictionary
2631         (Connection::send_with_reply_handlers): return a PendingCall object
2632         (_pending_call_notification): handle the case when an error is returned 
2633         without an error message in the body
2634         (MessageIter::get_boolean): return True or False instead of an integer
2635         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2636         and add checks for objects with embeded signatures or types (Array, 
2637         Variant and Dictionary)
2638         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2639         (MessageIter::append_dict): handle embeded types or signatures
2640         (MessageIter::append_array): handle embeded types or signatures
2641         (MessageIter::append_variant): new method
2642         
2643         * python/proxies.py:
2644         (DeferedMethod): New. Dummy executable object used when queuing calls 
2645         blocking on introspection data
2646         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2647         or shorter timeouts for method calls
2648         (ProxyObject): Add first pass at an introspection state machine
2649         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2650         introspection. 
2651         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2652         the usual mechanisms for sending messages.  This is to avoid a deadlock
2653         where the Intospect call would be queued waiting for the Introspect 
2654         call to finish ;-)
2655         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2656         when introspection returns with no error
2657         (ProxyObject::_introspect_error_handler): New.  This method is called 
2658         when introspection encounters an error
2659         (ProxyObject::__getattr__): Code to handle different introspection 
2660         states.  Queue async calls or block blocking calls if we are 
2661         introspecting.  Pass through as normal if we are not or are done with 
2662         introspecting.
2663         
2664         * python/service.py: Import signal and method from decorators.py
2665
2666         * python/types.py: Add Variant type
2667
2668 2005-08-16  Colin Walters  <walters@verbum.org>
2669
2670         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2671         DBusError message is NULL.
2672
2673 2005-08-09  Havoc Pennington  <hp@redhat.com>
2674
2675         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2676         malloc'd copy of the name parameter
2677
2678 2005-08-09  Havoc Pennington  <hp@redhat.com>
2679
2680         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2681         warning if the reply serial is set to 0
2682
2683 2005-08-04  Colin Walters  <walters@verbum.org>
2684
2685         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2686         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2687         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2688         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2689         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2690         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2691         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2692         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2693         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2694         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2695         
2696         Prefix name with _ to ensure they're not exported.  All callers
2697         updated.
2698
2699         * glib/dbus-gvalue.c (typecode_to_gtype)
2700         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2701         (signature_iter_to_g_type_dict)
2702         (signature_iter_to_g_type_array)
2703         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2704         (dbus_gtypes_from_arg_signature):
2705         Move to dbus-gsignature.c.
2706
2707         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2708         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2709         (dbus_binding_tool_output_glib_client): Ditto.
2710
2711         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2712         and dbus-gsignature.h
2713
2714         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2715         unused variable.
2716
2717 2005-08-03  Colin Walters  <walters@verbum.org>
2718
2719         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2720         catch any incompatible changes accidentally made.
2721
2722 2005-08-03  Havoc Pennington  <hp@redhat.com>
2723
2724         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2725         typo, from Julien Puydt
2726
2727         * bus/connection.c (bus_connection_disconnected): we were always
2728         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2729
2730 2005-08-01  Colin Walters  <walters@verbum.org>
2731
2732         Patch from Joe Markus Clarke:   
2733         
2734         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2735         use-after-free.
2736
2737 2005-08-01  Colin Walters  <walters@verbum.org>
2738         
2739         Patch from Joe Markus Clarke:   
2740         
2741         * tools/dbus-send.c (main): 
2742         
2743         Don't use C99 style initializers (bug #3933).
2744         
2745 2005-08-01  Colin Walters  <walters@verbum.org>
2746
2747         Patch from Joe Markus Clarke:   
2748
2749         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2750         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2751         * glib/dbus-gobject.c (write_interface):
2752
2753         Don't use C99 style initializers (bug #3933).
2754
2755 2005-07-31  Havoc Pennington  <hp@redhat.com>
2756
2757         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2758         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2759
2760 2005-07-30  Havoc Pennington  <hp@redhat.com>
2761
2762         * fix a bunch of Doxygen warnings and mistakes
2763
2764 2005-07-30  Havoc Pennington  <hp@redhat.com>
2765
2766         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2767         DBUS_BUILD_TESTS since it's now used in production code
2768
2769 2005-07-29  Havoc Pennington  <hp@redhat.com>
2770
2771         * test/glib/test-profile.c (write_junk): initialize the junk
2772         buffer so valgrind doesn't have a breakdown
2773
2774 2005-07-29  Havoc Pennington  <hp@redhat.com>
2775
2776         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2777         (match_rule_matches): remove unused arg
2778         (test_matching): add tests for match_rule_matches()
2779
2780         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2781         do arg0='foo' arg5='bar' in the match rules
2782         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2783
2784         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2785
2786 2005-07-29  Ross Burton  <ross@openedhand.com>
2787
2788         * dbus/dbus-connection.c:
2789         Don't create a DBusCondVar which is never used.
2790
2791 2005-07-27  Ross Burton  <ross@openedhand.com>
2792
2793         * dbus/dbus-message.c:
2794         Reduce the size of the maximum cached message to 10K.
2795
2796 2005-07-25  Ross Burton  <ross@openedhand.com>
2797
2798         * glib/dbus-gproxy.c:
2799         Remove matches when all proxies are unregistered.
2800
2801 2005-07-24  Colin Walters  <walters@verbum.org>
2802
2803         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2804         typedata; recursive arrays won't have it.
2805
2806         * test/glib/test-dbus-glib.c:
2807         * test/glib/test-service-glib.c:
2808         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2809         
2810 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2811
2812         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2813         proxies.py, service.py: Cleanup of code after running it through the
2814         pyflakes code checker mostly dealing with undefined names.  
2815         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2816
2817 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2818
2819         * NEWS: Update to 0.35.2
2820
2821 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2822
2823         * python/_dbus.py: Remove import of the dbus.services
2824         module as it no longer exists (patch from Dimitur Kirov)
2825
2826         * python/service.py (Object::__init__): Fixed typo
2827         s/name/bus_name (patch from Dimitur Kirov)
2828
2829         * python/examples/example-signal-emitter.py: import dbus.glib
2830         to get the main loop and use glib mainloop instead of gtk so
2831         X doesn't have to be running.
2832
2833         * python/examples/example-signal-recipient.py: import dbus.glib
2834         to get the main loop and use glib mainloop instead of gtk so
2835         X doesn't have to be running. Import the decorators module
2836         directly.
2837
2838         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2839         didn't pick up on but are needed to build
2840
2841         * configure.in: upped version to 0.35.2
2842
2843         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2844         added Colin Walters' SELinux API rename patch from head 
2845         s/unix sercurity context/selinux security context/
2846
2847 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2848
2849         * python/Makefile.am: dbus_binding.pxd.in should be included 
2850         in EXTRA_DIST not dbus_binding.pxd
2851         fix up $(srcdir) hopefully for the last time
2852
2853         * NEWS: Update to 0.35.1
2854
2855 2005-07-16  Colin Walters  <walters@verbum.org>
2856
2857         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2858         from bus_driver_handle_get_connection_unix_security_context.  Update for
2859         error usage.
2860         (message_handlers): Update for renames.
2861
2862         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2863         _dbus_string_init failure correctly.
2864         (bus_selinux_append_context): Convert SID to context.  Append it
2865         as a byte array.
2866         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2867         hasn't been called.
2868
2869         * bus/selinux.h: Update prototype.
2870
2871         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2872         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2873
2874 2005-07-15  Colin Walters  <walters@verbum.org>
2875
2876         * doc/TODO: Add note about convenience wrappers.
2877
2878 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2879
2880         * NEWS: Update to 0.35
2881
2882 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2883
2884         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2885         so distcheck doesn't fail
2886
2887         * glib/examples/Makefile.am: Add example-service.xml and 
2888         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2889
2890         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2891         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2892
2893         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2894         compiler looks in the right places during distcheck
2895
2896 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2897
2898         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2899         to fail
2900
2901 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2902
2903         * python/examples/example-service.py,
2904         python/examples/example-signal-emitter.py: Fixed up examples
2905         for API changes
2906
2907 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2908
2909         * python/__init__.py: Upped to version (0,42,0) because of
2910         the API change
2911
2912 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2913
2914         * ChangeLog: fix date in last entry
2915
2916         * configure.in, bus/system.conf.in: add the ability to configure 
2917         the system bus user at compiletime with the --with-dbus-user flag
2918         (patch from Kristof Vansant)
2919
2920 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2921
2922         * bus/dispatch.c, test/test-service.c: Add testcase
2923         for sending messages to oneself (TODO item).
2924
2925         * python/service.py (class Object): Swap ordering of bus_name 
2926         and object_path parameters to better support inheritance.
2927
2928         * doc/dbus-tutorial.xml: change Python docs to reflect change
2929         in parameter ordering and fix the inheritance section.
2930
2931         * doc/TODO: remove sending message to oneself TODO item
2932
2933 2005-07-15  Ross Burton  <ross@openedhand.com>
2934
2935         * glib/dbus-gproxy.c:
2936         Fix a leak when calling methods via the proxy.
2937
2938 2005-07-15  Colin Walters  <walters@verbum.org>
2939
2940         * bus/selinux.c (bus_selinux_append_context): Wrap in
2941         HAVE_SELINUX.
2942
2943 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2944
2945         * python/_dbus.py (Bus::remove_signal_receiver):
2946         don't add a callback to the match if none has been passed in
2947         
2948         * python/matchrules.py (SignalMatchTree::remove): if the rule
2949         being matched does not have a callback treat it as a wildcard
2950         fix matching logic
2951
2952         * doc/dbus-tutorial.xml: Add Python tutorial
2953
2954 2005-07-14  Colin Walters  <walters@verbum.org>
2955
2956         * bus/driver.c
2957         (bus_driver_handle_get_connection_unix_security_context): New function.
2958         (message_handlers): Add.
2959
2960         * bus/selinux.c (bus_selinux_append_context): New function; appends
2961         security context to message.
2962
2963         * bus/selinux.h: Prototype.
2964
2965         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2966
2967 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2968
2969         * bus/activation.c: clean up all tabs to be 8 spaces 
2970         (bus_activation_activate_service): make sure we clean up
2971         if activation fails
2972
2973         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2974         (check_shell_fail_service_auto_start): New function
2975         tests to make sure we get fail properly when trying to auto start a service
2976         with a faulty command line
2977         (check_shell_service_success_auto_start): New function tests to make sure
2978         auto started services get the arguments on the command line
2979
2980         * test/test-shell-service.c: Added service for testing auto-starting with 
2981         command line arguments
2982
2983         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2984         test/data/valid-service-files/debug-shell-echo-success.service.in:
2985         Added service files for testing auto-starting with command line arguments
2986
2987         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2988
2989 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2990
2991         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2992         
2993         * dbus/Makefile.am: added new files to build.
2994
2995         * bus/activation.c (bus_activation_activate_service): support
2996         activation commands with parameters.
2997
2998         * test/shell-test.c: added test program for the shell parsing
2999         code.
3000
3001 2005-07-13  David Zeuthen  <davidz@redhat.com>
3002
3003         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3004         64 bit signed and unsigned parameters
3005
3006 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3007
3008         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3009
3010         * python/service.py (class Name): renamed BusName to make it clearer
3011         what the object is for (a name on the bus)
3012
3013         * python/examples/example-service.py,
3014         python/examples/example-signal-emitter.py: change the Name object to
3015         BusName
3016
3017 2005-07-12  Colin Walters  <walters@verbum.org>
3018
3019         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3020
3021         * tools/dbus-launch.c: Include sys/select.h.
3022
3023 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3024         * python/dbus_bindings.pyx.in: removed
3025
3026         * python/dbus_bindings.pyx: Added.
3027         - Fixed some memleaks (patch from 
3028         Sean Meiners <sean.meiners@linspireinc.com>)
3029         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3030         own pxd file (Pyrex definition)
3031         - Broke out glib dependancies into its own pyx module
3032         
3033         * python/dbus_bindings.pdx: Added.
3034         - Defines C class Connection for exporting to other modules
3035
3036         * python/dbus_glib_bindings.pyx: Added.
3037         - New module to handle lowlevel dbus-glib mainloop integration
3038
3039         * python/glib.py: Added.
3040         - Registers the glib mainloop when you import this module
3041
3042         * python/services.py: Removed (renamed to service.py)
3043         
3044         * python/service.py: Added.
3045         - (class Server): renamed Name
3046
3047         * python/__init__.py: Bump ro version (0,41,0)
3048         -don't import the decorators or service module
3049         by default.  These now reside in the dbus.service namespace
3050
3051         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3052         setup function on creation 
3053
3054         * python/examples/example-service.py,
3055         python/examples/example-signal-emitter.py: update examples
3056
3057         * python/examples/gconf-proxy-service.py,
3058         python/examples/gconf-proxy-service2.py: TODO fix these up
3059
3060         * doc/TODO: Addition
3061         - Added a Python Bindings 1.0 section
3062         - added "Add match on args or match on details to match rules"
3063
3064
3065 2005-07-12  Colin Walters  <walters@verbum.org>
3066
3067         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3068         (statemachine-glue.h): 
3069         * glib/examples/Makefile.am (example-service-glue.h) 
3070         (example-signal-emitter-glue.h): 
3071         * glib/Makefile.am (dbus-glib-error-switch.h): 
3072         Add libtool --mode=execute so we use the built library instead
3073         of any installed one.
3074
3075 2005-07-11  Colin Walters  <walters@verbum.org>
3076
3077         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3078         (dbus_g_value_types_init): Remove assertion.
3079         (dbus_g_value_get_g_type, dbus_g_value_open)
3080         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3081         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3082         functions related to DBusGValue.  Now we marshal/demarshal
3083         structures as GValueArray.
3084         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3085         structures.
3086         (signature_iter_to_g_type_array): Don't call
3087         signature_iter_to_g_type_struct.
3088         (signature_iter_to_g_type_struct): Delete.
3089         (dbus_gvalue_to_signature): Delete.
3090         (dbus_gvalue_to_signature): New function with same name as other
3091         one; we can convert structures to signatures.
3092         (demarshal_valuearray): New function.
3093         (get_type_demarshaller): Use it.
3094         (demarshal_recurse): Delete.
3095         (marshal_proxy): New function.
3096         (marshal_map): Warn if we can't determine signature from type.
3097         (marshal_collection_ptrarray): Ditto.
3098         (marshal_collection_array): Ditto.
3099         (get_type_marshaller): Use marshal_valuearray.
3100         (marshal_recurse): Delete.
3101         (_dbus_gvalue_test): Add some tests.
3102
3103         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3104         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3105         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3106         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3107         (dbus_g_value_free): Remove prototypes.
3108
3109         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3110         G_TYPE_VALUE_ARRAY.
3111
3112         * glib/examples/example-service.c:
3113         * glib/examples/example-client.c: Implement GetTuple.
3114
3115         * test/glib/test-dbus-glib.c:
3116         * test/glib/test-service-glib.c:
3117         * test/glib/test-service-glib.xml: Add structure tests.
3118
3119 2005-07-10  Colin Walters  <walters@verbum.org>
3120
3121         * doc/TODO: Knock off some GLib items with this patch.
3122
3123         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3124         (_dbus_gvalue_signals_error): New functions.
3125
3126         * glib/dbus-gvalue-utils.h: Prototype them.
3127
3128         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3129         and change to not output const/retval flags for input args.  All
3130         callers updated.
3131         (invoke_object_method): Refactor to handle return values.  Add
3132         some more comments in various places.  Remove debug g_print.
3133
3134         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3135
3136         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3137         Handle G_TYPE_NONE.
3138         (compute_gsignature): New function; refactored from code from
3139         compute_marshaller and compute_marshaller_name.  Enhance to
3140         handle return values and async ops more cleanly.  Update for
3141         async ops returning NONE instead of BOOLEAN.
3142         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3143         and output appropriate string.
3144         (generate_glue): Handle return value annotation.  Also don't dump
3145         constness flag for input arguments.
3146
3147         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3148         files shared between installed library and utilities.
3149         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3150         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3151         binding tool can access gtype utility functions.
3152
3153         * test/glib/test-service-glib.c: 
3154         * test/glib/test-service-glib.xml: 
3155         * test/glib/test-dbus-glib.c: Add some tests for return values.
3156
3157 2005-07-09  Colin Walters  <walters@verbum.org>
3158
3159         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3160         argument if available, not method.
3161
3162         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3163         (invoke_object_method): First, remove some redundant
3164         GValues (object_value, error_value) in favor of working on
3165         array directly.  Second, rework constness to be less buggy.
3166         Now we iterate directly over the argument metadata instead
3167         of parallel iterating over output signature and metadata.
3168
3169         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3170
3171         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3172         annotation on input args.
3173         
3174 2005-07-09  Colin Walters  <walters@verbum.org>
3175
3176         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3177         Define.
3178
3179         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3180         annotation.
3181
3182         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3183         (method_dir_signature_from_object_info): Handle arg_iterate change.
3184         (write_interface): Ditto.
3185         (lookup_object_info): Don't barf if format_version is > 0.
3186         (invoke_object_method): Handle arg constness.
3187
3188         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3189         (arg_info_new): Create.
3190         (arg_info_unref): Destroy.
3191         (arg_info_get_annotations, arg_info_get_annotation) 
3192         (arg_info_add_annotation): New functions.
3193
3194         * glib/dbus-gidl.h: Prototype them.
3195
3196         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3197         args, disallow them in properties.
3198         (parse_annotation): Handle arg annotations.
3199
3200         * test/glib/test-service-glib.xml: 
3201         * test/glib/test-service-glib.c: Update to make some methods
3202         const.
3203
3204 2005-07-08  Colin Walters  <walters@verbum.org>
3205
3206         * test/glib/test-service-glib.xml: 
3207         * test/glib/test-service-glib.c:
3208         * test/glib/test-dbus-glib.c: Test a{sv}.
3209
3210         * glib/examples/statemachine/statemachine.c:
3211         * glib/examples/statemachine/statemachine-server.c:
3212         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3213         add progress bar, etc.
3214
3215         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3216         needed anymore due to generic array/map marshalling.
3217         (dbus_g_value_types_init): Don't register basic arrays or the
3218         string/string hash.
3219         (dbus_gtype_from_signature_iter): Don't try to recurse into
3220         variants.
3221         (dbus_gtype_to_signature): Check collection/map before type
3222         metadata.
3223         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3224         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3225         generic map creation/append functions instead of hash table
3226         specifically.
3227         (get_type_demarshaller): Handle maps.
3228         (demarshal_collection): Dispatch on collection type to either
3229         demarshal_collection_ptrarray or demarshal_collection_array.
3230         (get_type_marshaller): Handle maps.
3231         (marshal_collection): Dispatch collection type to either
3232         marshal_collection_ptrarray or marshal_collection_array.
3233         (_dbus_gvalue_test): New test.
3234
3235         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3236         (hash_free_from_gtype): Use it to free GValues.
3237         (hashtable_append): New function.
3238         (ptrarray_append): Fix prototype.
3239         (slist_append): Ditto.
3240         (_dbus_gvalue_utils_test): Extend tests.
3241
3242         * glib/dbus-gtype-specialized.c
3243         (dbus_g_type_specialized_init_append): Renamed from
3244         dbus_g_type_specialized_collection_init_append.  Remove const from
3245         value, since we steal it.
3246         (dbus_g_type_specialized_map_append): New function.
3247
3248         * glib/dbus-gtype-specialized.h: Update prototypes.
3249         Add DBusGTypeSpecializedMapAppendFunc.
3250
3251         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3252         _dbus_gvalue_test.
3253         
3254         * glib/dbus-gtest.h: Prototype it.
3255
3256 2005-07-08  Ross Burton  <ross@openedhand.com>
3257
3258         * dbus/dbus-glib.h:
3259         Add DBysGAsyncData for the async bindings.
3260
3261         * glib/dbus-binding-tool-glib.c:
3262         Re-enable the async bindings.
3263
3264         * test/glib/test-dbus-glib.c:
3265         Add a test for the generated async bindings.
3266
3267 2005-07-08  Colin Walters  <walters@verbum.org>
3268
3269         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3270         connection concept.
3271         
3272 2005-07-08  Colin Walters  <walters@verbum.org>
3273         
3274         * tools/Makefile.am: Kill of print-introspect in favor of using
3275         dbus-send --print-reply=literal.
3276
3277         * test/glib/test-service-glib.xml: 
3278         * test/glib/test-service-glib.c (my_object_get_objs): New test
3279         for "ao".
3280
3281         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3282         (main): Test GetObjs.
3283
3284         * glib/examples/statemachine/Makefile.am:
3285         * glib/examples/statemachine/sm-marshal.list:
3286         * glib/examples/statemachine/statemachine-client.c:
3287         * glib/examples/statemachine/statemachine-server.c:
3288         * glib/examples/statemachine/statemachine-server.xml:
3289         * glib/examples/statemachine/statemachine.c:
3290         * glib/examples/statemachine/statemachine.h:
3291         * glib/examples/statemachine/statemachine.xml:
3292
3293         New example.
3294
3295         * glib/examples/example-service.c (main): Move invocation
3296         of dbus_g_object_type_install_info earlier, to emphasize it
3297         should only be done once.
3298
3299         * glib/examples/example-signal-emitter.c (main): Ditto.
3300
3301         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3302
3303         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3304         (dbus_gvalue_marshal): Update prototypes.
3305
3306         * glib/dbus-gvalue.c: Update all marshalling functions to take
3307         const GValue instead of GValue.
3308         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3309         types.
3310         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3311         change.
3312         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3313         Return a newly-allocated string.
3314         (demarshal_proxy, demarshal_object_path, demarshal_object)
3315         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3316         we get the wrong types from message.
3317         (get_type_demarshaller): New function, extracted from
3318         dbus_gvalue_demarshal.
3319         (demarshal_collection): New function, demarshals generic
3320         collection.
3321         (dbus_gvalue_demarshal): Just invoke result of
3322         get_type_demarshaller.  Throw error if we don't have one.
3323         (marshal_garray_basic): Abort on OOM.
3324         (get_type_marshaller): New function, extracted from
3325         dbus_gvalue_marshal.
3326         (collection_marshal_iterator, marshal_collection): New functions;
3327         implements generic marshalling for an iteratable specialized
3328         collection.
3329         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3330
3331         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3332         G_TYPE_STRING.
3333         (ptrarray_value_from_gvalue): Ditto.
3334         (ptrarray_append, ptrarray_free): New functions.
3335         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3336         (slist_append, slist_end_append, slist_free): New functions.
3337         (dbus_g_type_specialized_builtins_init): Add append fuctions
3338         for GPtrArray and GSList.  Register GSList.
3339         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3340
3341         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3342         New.
3343         (dbus_g_type_specialized_collection_init_append)
3344         (dbus_g_type_specialized_collection_append)
3345         (dbus_g_type_specialized_collection_end_append): Prototype.
3346         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3347         end_append_func.
3348
3349         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3350         (dbus_g_type_specialized_collection_append) 
3351         (dbus_g_type_specialized_collection_end_append): New functions.
3352         (dbus_g_type_map_value_iterate): Take const GValue.
3353         (dbus_g_type_collection_value_iterate): Ditto.
3354
3355         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3356         _dbus_gvalue_utils_test.
3357         
3358         * glib/dbus-gtest.h: Prototype it.
3359
3360         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3361         using uninitialized owner_list.
3362         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3363         public API.
3364         (dbus_g_proxy_end_call_internal): Update to use error set
3365         from dbus_gvalue_demarshal instead of setting it here.
3366         (dbus_g_proxy_begin_call): Move return_if_fail here.
3367
3368         * glib/dbus-gobject.c (write_interface): Update for
3369         dbus_gtype_to_signature returning new string.
3370
3371         * configure.in: Add glib/examples/statemachine.
3372
3373 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3374
3375         * configure.in: Add a configure option, --with-console-auth-dir
3376         
3377         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3378         new setting.  Patch from Kay Sievers.
3379
3380 2005-07-06  Colin Walters  <walters@verbum.org>
3381
3382         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3383         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3384         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3385         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3386         Delete in favor of dbus_g_proxy_begin_call and
3387         dbus_g_proxy_cancel_call.
3388         (DBusGProxyCall, DBusGProxyCallNotify): New.
3389         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3390         data, and destroy function.  This replaces
3391         dbus_g_pending_call_set_notify.
3392         (dbus_g_proxy_cancel_call): Prototype.
3393         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3394
3395         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3396         pending_calls map.
3397         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3398         internal proxy for calls to the bus. Remove
3399         pending_nameowner_calls, now the internal proxy keeps track.
3400         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3401         pending_nameowner_calls.
3402         (got_name_owner_cb): Update prototype, and use
3403         dbus_g_proxy_end_call.
3404         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3405         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3406         favor of using internal proxy.
3407         (dbus_g_proxy_manager_unregister): Update to use
3408         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3409         (dbus_g_proxy_init): Initialize pending calls map.
3410         (dbus_g_proxy_constructor): New.
3411         (dbus_g_proxy_class_init): Add get/set property functions,
3412         constructor, and add NAME, PATH, and INTERFACE properties.
3413         (cancel_pending_call): New function.
3414         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3415         cancel them.
3416         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3417         (GPendingNotifyClosure): New structure.
3418         (d_pending_call_notify, d_pending_call_free): Moved here from
3419         dbus-glib.c.
3420         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3421         ordering.
3422         (manager_begin_bus_call): New internal function for talking to
3423         internal bus proxy.
3424         (dbus_g_proxy_new): Construct object using GObjet properties.
3425         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3426         Create closure of same, and insert call into map of pending calls.
3427         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3428         call.  Look up pending call in current set.  Remove it when we've
3429         completed.
3430         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3431         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3432         and destroy function directly.
3433         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3434         (dbus_g_proxy_call): Invoke with NULL callback.
3435         (dbus_g_proxy_cancel_call): New function, replaces
3436         dbus_g_pending_call_cancel.
3437
3438         * glib/dbus-gparser.c (validate_signature): Fix call to
3439         dbus_set_g_error.
3440
3441         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3442         New quark for attaching metadata to GType.
3443         (info_hash): Delete.
3444         (lookup_object_info): Look up using quark.
3445         (dbus_g_object_type_install_info): Check that a type is classed,
3446         not that it's an object.  Also just install type data using quark
3447         instead of using global hash.
3448
3449         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3450         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3451         (GPendingNotifyClosure): Delete.
3452         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3453         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3454
3455         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3456         client method generation until we can fix it...
3457         
3458         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3459         (load_from_service_thread_func): Ditto.
3460
3461         * tools/dbus-names-model.c (struct NamesModel): Hold
3462         DBusGProxyCall.
3463         (have_names_notify): Update prototype, use
3464         dbus_g_proxy_cancel_call.
3465         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3466
3467         * tools/dbus-monitor.c (filter_func): Update for print_message
3468         API change.
3469
3470         * test/glib/test-dbus-glib.c: Add more tests for async
3471         invocations.  Update many begin_call/end_call pairs to just use
3472         dbus_g_proxy_call.
3473
3474         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3475         allows us to dump print-introspect.c.
3476
3477         * tools/dbus-print-message.h (print_message): Add literal argument
3478         to print_message which is intended to allow printing arguments without
3479         metadata like "string=".
3480
3481         * tools/dbus-print-message.c (print_iter): Add literal argument.
3482         (print_message): Allow printing string messages literally.
3483
3484 2005-07-05  Colin Walters  <walters@verbum.org>
3485
3486         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3487         Remove value refcount leak, original patch from Jorn Baayen
3488         <jorn@openedhand.com>.  Also remove useless extra value in favor
3489         of prepending to value array directly.
3490
3491 2005-07-02  Colin Walters  <walters@verbum.org>
3492
3493         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3494
3495 2005-07-01  Colin Walters  <walters@verbum.org>
3496
3497         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3498         
3499         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3500         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3501         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3502         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3503
3504 2005-06-30  Colin Walters  <walters@verbum.org>
3505
3506         * test/glib/test-dbus-glib.c:
3507         * test/glib/test-service-glib.c:
3508         * test/glib/test-service-glib.xml: Update tests for new error
3509         setting bits, also add async tests (patch from Ross Burton).
3510
3511         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3512         DBUS_GLIB_THREADS_LIBS.
3513
3514         * glib/dbus-gproxy.c (get_name_owner)
3515         (dbus_g_pending_call_end_valist): Ditto.
3516
3517         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3518         domain (GQuark) to DBusGErrorInfo.  
3519         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3520         quark in error_metadata.  Take message interface as default
3521         error message interface.
3522         (gerror_to_dbus_error_message): Pass message interface.
3523         (dbus_set_g_error): Resurrected.
3524         (dbus_g_error_info_free): New function.
3525         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3526         of _peek to actually create the object class if it hasn't been
3527         created yet.
3528         (dbus_g_error_domain_register): New function.
3529
3530         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3531
3532         * glib/dbus-gparser.c (validate_signature): Ditto.
3533
3534         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3535         (dbus_g_error_domain_register): Prototype.
3536
3537         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3538         Update tests.
3539
3540 2005-06-29  Colin Walters  <walters@verbum.org>
3541
3542         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3543         DBUS_TYPE_G_OBJECT_PATH.
3544
3545         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3546         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3547         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3548         (dbus_g_object_path_get_g_type): New function.
3549         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3550         to DBUS_TYPE_G_OBJECT_PATH by default.
3551         (demarshal_proxy): Remove unused name variable.
3552         (demarshal_object_path, marshal_object_path): New functions.
3553         (demarshal_proxy_array, marshal_proxy_array): Delete.
3554         
3555         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3556         DBUS_TYPE_G_OBJECT_PATH to char *.
3557         (dbus_g_type_get_lookup_function): Map builtin
3558         DBUS_TYPE_G_OBJECT_PATH.
3559
3560         * test/glib/test-dbus-glib.c
3561         * test/glib/test-service-glib.c (my_object_objpath): 
3562         Adapt tests to new object path marshalling.
3563
3564 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3565
3566         * configure.in: force check for Python >= 2.4
3567
3568 2005-06-29  Colin Walters  <walters@verbum.org>
3569         
3570         Patch from Ross Burton <ross@openedhand.com>
3571         
3572         * glib/dbus-gobject.c (invoke_object_method): Unset object
3573         value in all cases, not only in async case.
3574
3575 2005-06-29  Colin Walters  <walters@verbum.org>
3576
3577         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3578         name_call for keeping track of any outgoing GetNameOwner call.
3579         Also add for_owner and associated.
3580         (struct _DBusGProxyManager): Add owner_names, which is hash table
3581         that maps a base name to a list of names it owns (that we're
3582         interested in).  Add pending_nameowner_calls which is a list of
3583         all outstanding GetNameOwner; avoids us having to iterate over
3584         every proxy.  Add unassociated_proxies which keeps track of name
3585         proxies with no associated name owner.
3586         (dbus_g_proxy_manager_unref): Destroy owner_names.
3587         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3588         name refcounts.
3589         (find_name_in_info, name_owner_foreach)
3590         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3591         (dbus_g_proxy_manager_monitor_name_owner)
3592         (dbus_g_proxy_manager_unmonitor_name_owner)
3593         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3594         New functions; they manipulate the owner_names mapping.
3595         (got_name_owner_cb): New function.
3596         (get_name_owner): New function, extracted from
3597         dbus_g_proxy_new_for_name_owner.
3598         (dbus_g_proxy_manager_register): For now we need to keep track of
3599         all NameOwnerChanged.  Also if the proxy is for a name, if we
3600         don't already know the name owner, queue a new GetNameOwner
3601         request and add it to our list of unassociated proxies.  Otherwise
3602         inc the refcount.
3603         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3604         cancel any pending GetNameOwner call, etc.
3605         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3606         the owner_names mapping to look up the current names for the
3607         signal source, and dispatch to any proxies for that name.
3608         (dbus_g_proxy_new): Initialize new members.
3609         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3610         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3611         (dbus_g_pending_call_end_valist): New function, extracted from
3612         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3613         but want to use the GLib infrastructure.  Also note how many
3614         arguments in reply were over.
3615         (dbus_g_pending_call_end): New function, just call
3616         dbus_g_pending_call_end_valist.
3617         (dbus_g_proxy_end_call_internal): Just call
3618         dbus_g_pending_call_end_valist.
3619
3620         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3621         of builtin marshaller for STRING_STRING_STRING.
3622
3623         * test/glib/test-dbus-glib.c: 
3624         * test/glib/test-service-glib.c:
3625         * test/glib/test-service-glib.xml:
3626         Extend tests to cover name proxies, destruction of owner proxies,
3627         etc.
3628         
3629         * glib/examples/example-signal-recipient.c
3630         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3631         
3632         * tools/dbus-send.c (main): Print D-BUS error name in addition
3633         to message.
3634
3635 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3636
3637         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3638         cmessage_function_handler): Patch from 
3639         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3640         by using the Py_GILState_Ensure/Release to synchronize with the
3641         python runtime.
3642         
3643 2005-06-28  Ray Strode  <rstrode@redhat.com>
3644
3645         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3646         babysitter helper process on last unref, bug #2813.
3647
3648 2005-06-27  Colin Walters  <walters@verbum.org>
3649
3650         * test/glib/test-dbus-glib.c: 
3651         * test/glib/test-service-glib.c:
3652         * test/glib/test-service-glib.xml:
3653         Test hash table signal emitting.
3654
3655         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3656         types to their fundamental basis types, since this is what
3657         marshallers operate on.  Also add an entry for VOID__BOXED.
3658         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3659
3660 2005-06-26  Havoc Pennington  <hp@redhat.com>
3661
3662         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3663         from Don Park
3664
3665 2005-06-26  Colin Walters  <walters@verbum.org>
3666
3667         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3668         (dbus_g_error_set): New public function from its ashes; used by
3669         both service-side method implementation and GLib bindings
3670         internals.
3671         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3672         (_dbus_glib_test): Add some tests.
3673
3674         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3675
3676         * test/glib/test-service-glib.c (my_object_throw_error): Use
3677         dbus_g_error_set.
3678
3679         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3680         errors thrown by dbus_g_error_set.
3681
3682         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3683
3684         * glib/dbus-gparser.c (validate_signature): Ditto.
3685
3686         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3687         (dbus_g_proxy_end_call_internal): Ditto.
3688
3689         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3690         converts DBUS_ERROR_x to DBUS_GERROR_x.
3691         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3692
3693         * doc/TODO: Remove error TODO.
3694
3695         * doc/dbus-tutorial.xml: Update with documentation about error
3696         handling.
3697
3698         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3699         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3700         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3701
3702 2005-06-22  Colin Walters  <walters@verbum.org>
3703         
3704         Patch from Ross Burton <ross@openedhand.com>
3705
3706         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3707
3708 2005-06-20  Colin Walters  <walters@verbum.org>
3709
3710         * configure.in: Add glib/examples.
3711
3712         * glib/Makefile.am: Add examples/
3713
3714         * glib/examples/.cvsignore
3715         * glib/examples/Makefile.am
3716         * glib/examples/example-client.c
3717         * glib/examples/example-service.c
3718         * glib/examples/example-service.xml
3719         * glib/examples/example-signal-emitter.c
3720         * glib/examples/example-signal-emitter.xml
3721         * glib/examples/example-signal-recipient.c:
3722         New files; GLib binding examples, ported from
3723         python/examples.
3724
3725 2005-06-20  Colin Walters  <walters@verbum.org>
3726
3727         * dbus/dbus-glib.h: 
3728         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3729         dbus_g_proxy_call.
3730
3731         * glib/dbus-binding-tool-glib.c: 
3732         * doc/dbus-tutorial.xml: 
3733         * test/glib/test-dbus-glib.c: Update for rename.
3734         
3735 2005-06-20  Colin Walters  <walters@verbum.org>
3736
3737         Patch suggested by Ross Burton <ross@openedhand.com>
3738
3739         * glib/dbus-gobject.c (export_signals): Free signal name.
3740         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3741         memory leak.  Add a bit of documentation.
3742         (dbus_g_method_return_error): Free context, and note we do
3743         so.
3744
3745 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3746
3747         * dbus/dbus-glib.h:
3748         * glib/dbus-gobject.c:
3749         * glib/dbus-gproxy.c:
3750         * glib/dbus-gvalue.c: Predeclare structs as 
3751         typedef struct _Something Something instead of 
3752         typedef struct Something Something, so we can 
3753         redeclare the prototypes. Other GNOME libraries 
3754         do this already.
3755
3756 2005-06-17  Colin Walters  <walters@verbum.org>
3757
3758         * tools/dbus-names-model.c (have_names_notify): Fix call
3759         to dbus_g_proxy_end_call.
3760         
3761 2005-06-17  Colin Walters  <walters@verbum.org>
3762
3763         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3764         spew warnings if we get malformed remote signals.
3765
3766         * glib/dbus-gobject.c (propsig_iterate): New function.
3767         (lookup_object_info): New function, extracted from
3768         lookup_object_and_method.
3769         (introspect_properties, introspect_signals): Delete; these
3770         are merged into write_interface.
3771         (write_interface): Write out signals and properties here;
3772         dump the org.gtk.object stuff and use the interface given
3773         in the introspection data blob.  Also fix up property XML.
3774         (lookup_values): New function.
3775         (introspect_interfaces): Gather a mapping from interface to a
3776         list of its methods, signals, and properties, then write out
3777         each interface.
3778         (lookup_object_and_method): Use lookup_object_info.
3779         (struct DBusGSignalClosure): Add interface.
3780         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3781         we can just use the constant data.
3782         (dbus_g_signal_closure_finalize): Don't free signal name.
3783         (signal_emitter_marshaller): Use interface from signal closure.
3784         (export_signals): Only export signals mentioned in introspection
3785         blob.
3786         (dbus_g_connection_register_g_object): Warn if we have no
3787         introspection data for an object.
3788         (funcsig_equal): Remove unused variable.
3789         (dbus_g_object_register_marshaller): Take varargs instead of
3790         list.
3791         (dbus_g_object_register_marshaller_array): New function,
3792         extracted from old dbus_g_object_register_marshaller.
3793
3794         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3795         signals and property data.
3796         (write_quoted_string): New function, extracted from generate_glue.
3797         (generate_glue): Write signals and properties to introspection
3798         blob.
3799
3800         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3801         exported_signals and exported_properties.
3802         (dbus_g_object_register_marshaller): Update prototype.
3803         (dbus_g_object_register_marshaller_array): Prototype.
3804         
3805         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3806
3807         * test/glib/test-service-glib.c: Add new test signals and method
3808         to emit them.
3809
3810         * test/glib/test-service-glib.xml: Add some test signals.
3811
3812         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3813         and my-object-marshal.h
3814         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3815         my-object-marshal.c.
3816         (my-object-marshal.c, my-object-marshal.h): Implement.
3817
3818         * test/glib/.cvsignore: Update.
3819
3820         * doc/TODO: Remove two GLib TODO items fixed by this
3821         patch.
3822
3823 2005-06-16  Colin Walters  <walters@verbum.org>
3824
3825         * doc/TODO: Update for GLib bindings.
3826         
3827 2005-06-16  Colin Walters  <walters@verbum.org>
3828
3829         * glib/dbus-binding-tool-glib.c:
3830         * glib/dbus-gobject.c:
3831         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3832         from Ross Burton, for his GLib bindings work.
3833
3834 2005-06-16  Colin Walters  <walters@verbum.org>
3835
3836         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3837         to iterate instead of walking to G_TYPE_INVALID.
3838
3839         Patch based on a patch from Ryan Gammon.
3840
3841 2005-06-16  Colin Walters  <walters@verbum.org>
3842
3843         * bus/bus.c (bus_context_new): Set parser to NULL
3844         after we unref it (Patch from Chris Boscolo, #2174).
3845         
3846 2005-06-16  Colin Walters  <walters@verbum.org>
3847
3848         * python/dbus_bindings.pyx.in: Import size_t,
3849         __int64_t, __uint64_t, and __signed.
3850
3851         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3852         Define cmsg struct, output it.
3853         (_dbus_read_credentials_unix_socket):
3854         Use cmsg struct.
3855         
3856         Patch from Joe Markus Clarke for FreeBSD support.
3857         
3858 2005-06-16  Colin Walters  <walters@verbum.org>
3859
3860         * tools/dbus-send.c (append_array): Use strtok.
3861         (append_dict): New function.
3862         (type_from_name): New function, extracted from main.
3863         (main): Handle sending dicts.
3864
3865         * tools/dbus-print-message.c (print_iter): Print dict
3866         entries.
3867         
3868 2005-06-16  Colin Walters  <walters@verbum.org>
3869
3870         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3871         values as the empty string (#2948).
3872         
3873 2005-06-16  Colin Walters  <walters@verbum.org>
3874
3875         * dbus/Makefile.am:
3876         * mono/doc/Makefile.am:
3877         * test/glib/Makefile.am:
3878
3879         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3880
3881 2005-06-16  Colin Walters  <walters@verbum.org>
3882
3883         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3884         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3885
3886         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3887         Increment pointer after swapping fixed array.  Add assertion
3888         for array length.
3889                 
3890 2005-06-15  Colin Walters  <walters@verbum.org>
3891
3892         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3893         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3894         
3895 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3896
3897         * NEWS: Update to 0.34
3898
3899 2005-06-15  David Zeuthen  <davidz@redhat.com>
3900
3901         * configure.in (LT_CURRENT): Revert back to 1 as the library
3902         hasn't changed and we've certainly not committed to protocol
3903         stability yet.  All this does is to break ABI. See commit note
3904         from hp@redhat.com 2005-05-05 for details.
3905         
3906 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3907
3908         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3909         (_dbus_connection_run_builtin_filters): New method
3910         (dbus_connection_dispatch): Run the builtin filters which in turn
3911         runs the peer filter which handles Ping messages.
3912
3913         * doc/TODO: 
3914          - Ping isn't handled: This patch fixes it
3915          
3916          - Add a test case for the Ping message: added TODO item
3917
3918 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3919
3920         * dbus/dbus-message.c:
3921         (dbus_message_has_path): New method
3922         (dbus_message_has_interface): New method
3923         (dbus_message_has_member): New method
3924
3925         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3926         New method
3927
3928         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3929         the keyring directory is private to the user
3930
3931         * doc/TODO:
3932          - The convenience functions in dbus-bus.h should perhaps have
3933          the signatures that they would have if they were autogenerated
3934          stubs. e.g. the acquire service function. We should also evaluate
3935          which of these functions to include, in light of the fact that
3936          GLib/Qt native stubs will probably also exist.: Punted
3937
3938          - add dbus_message_has_path(), maybe has_member/interface:
3939          fixed in this patch
3940
3941          - in dbus-keyring.c, enforce that the keyring dir is not
3942          world readable/writable: Fixed in this patch
3943
3944 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3945
3946         * dbus/dbus-marshal-validate.h: Added a new validation
3947         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3948         out of memory errors when validating signitures
3949
3950         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3951         in places where we previously used DBUS_VALID and a FALSE return 
3952         value to indicate OOM
3953         
3954         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3955         Use a stack to track the number of elements inside containers.  The 
3956         stack values are then used to validate that dict entries have only two
3957         elements within them.
3958         (validate_body_helper): check the reason for failure when validating
3959         varients
3960         
3961         * dbus/dbus-message.c (load_message): use 
3962         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3963         DBUS_VALID and a FALSE return value to indicate OOM
3964
3965         * doc/TODO: remove "- validate dict entry number of fields" as this
3966         patch fixes it
3967
3968 2005-06-14  David Zeuthen  <davidz@redhat.com>
3969
3970         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3971         watches (if applicable) and add new watches
3972
3973         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3974         (main): Setup SIGIO signal handler if using D_NOTIFY
3975
3976         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3977
3978         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3979         (merge_included): Also merge conf_dirs list
3980         (bus_config_parser_unref): Clear conf_dirs list
3981         (include_dir): Add directory to conf_dirs list
3982         (bus_config_parser_get_conf_dirs): New function
3983
3984         * bus/dir-watch.[ch]: New files
3985
3986         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3987
3988         * configure.in: Add checks for D_NOTIFY on Linux
3989
3990 2005-06-14  Colin Walters  <walters@verbum.org>
3991
3992         * glib/dbus-binding-tool-glib.c:
3993         * glib/dbus-gobject.c:
3994         * glib/dbus-gvalue.c: Fix indentation and brace style.
3995         
3996 2005-06-14  Ross Burton <ross@openedhand.com>.
3997
3998         * glib/dbus-glib.h: Make DBusGMethodInvocation
3999         a private structure.  Rearrange prototypes a bit.
4000         
4001         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4002         documentation for first_arg_type.
4003         
4004         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4005         here, add documentation.  Move dbus_g_method_return
4006         and dbus_g_method_return_error into public API
4007         section.
4008
4009 2005-06-14  Colin Walters  <walters@verbum.org>
4010
4011         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4012         Add missing return statements, noticed by Ross Burton.
4013         
4014 2005-06-13  Ross Burton <ross@openedhand.com>.
4015
4016         * glib/dbus-gobject.c: Handle errors on message
4017         demarshalling by sending error message back.
4018         * glib/dbus-gvalue.c: Initialize return variables.
4019
4020 2005-06-13  Colin Walters  <walters@verbum.org>
4021
4022         * glib/Makefile.am: Fix thinko in last patch.
4023
4024 2005-06-13  Colin Walters  <walters@verbum.org>
4025
4026         * glib/Makefile.am: Move dbus-gtype-specialized.c
4027         and dbus-gtype-specialized.h into a _HEADERS variable,
4028         install them.
4029
4030 2005-06-12  Colin Walters  <walters@verbum.org>
4031
4032         Async signals and various bugfixes and testing by
4033         Ross Burton <ross@openedhand.com>.
4034
4035         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4036         (dbus_gvalue_genmarshal_name_from_type)
4037         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4038         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4039         (dbus_g_value_types_init, dbus_gtype_from_signature)
4040         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4041         (dbus_gtypes_from_arg_signature): New function prototypes.
4042         (dbus_gvalue_demarshal): Take context and error arguments.
4043         (dbus_gvalue_demarshal_variant): New function.
4044         (dbus_gvalue_demarshal_message): New function.
4045         (dbus_gvalue_store): Delete.
4046
4047         * glib/dbus-gvalue.c:
4048
4049         File has been almost entirely rewritten; now we special-case
4050         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4051         hash tables correctly, etc.  Full support for recursive values
4052         is not yet complete.
4053
4054         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4055         argument of signal to G_TYPE_POINTER since we now pass a
4056         structure.
4057         (lookup_g_marshaller): Delete in favor of
4058         _dbus_gobject_lookup_marshaller.
4059         (marshal_dbus_message_to_g_marshaller): Use
4060         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4061         to handle remote signal callbacks.
4062         (dbus_g_proxy_new_from_proxy): New function; creates a new
4063         DBusGProxy by copying an existing one.
4064         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4065         (dbus_g_proxy_get_path): New functions.
4066         (dbus_g_proxy_marshal_args_to_message): New function;
4067         factored out of existing code.
4068         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4069         from a varargs array.
4070         (dbus_g_proxy_begin_call_internal): New function.
4071         (dbus_g_proxy_end_call_internal): New function.
4072         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4073         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4074         after collecting args into value array.
4075         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4076         invoke dbus_g_proxy_end_call_internal.
4077         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4078         end_call_internal.
4079         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4080         types.
4081         (array_free_all): New function.
4082         (dbus_g_proxy_add_signal): Take GTypes.
4083
4084         * glib/dbus-gobject.h:
4085         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4086         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4087         Prototype.
4088
4089         * glib/dbus-gobject.c: Add a global marshal_table hash which
4090         stores mappings from type signatures to marshallers.  Change lots
4091         of invocations of dbus_gtype_to_dbus_type to
4092         dbus_gtype_to_signature.
4093         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4094         (introspect_signals): Fix test for query.return_type.
4095         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4096         (invoke_object_method): Many changes.  Handle asynchronous
4097         invocations.  Convert arguments with
4098         dbus_gvalue_demarshal_message.  Handle errors.  Use
4099         DBusSignatureIter instead of strlen on args. Handle all arguments
4100         generically.  Special-case variants.
4101         (dbus_g_method_return, dbus_g_method_return_error): New function.
4102         (DBusGSignalClosure): New structure, closes over signal
4103         information.
4104         (dbus_g_signal_closure_new): New function.
4105         (dbus_g_signal_closure_finalize): New function.
4106         (signal_emitter_marshaller): New function; is special marshaller
4107         which emits signals on bus.
4108         (export_signals): New function; introspects object signals and
4109         connects to them.
4110         (dbus_g_object_type_install_info): Take GType instead of
4111         GObjectClass.
4112         (dbus_g_connection_register_g_object): Invoke export_signals.
4113         (dbus_g_connection_lookup_g_object): New function.
4114         (DBusGFuncSignature) New structure; used for mapping type
4115         signatures to marshallers.
4116         (funcsig_hash): New function; hashes DBusGFuncSignature.
4117         (funcsig_equal): New function; compares DBusGFuncSignature.
4118         (_dbus_gobject_lookup_marshaller): New function.
4119         (dbus_g_object_register_marshaller): New function; used to
4120         register a marshaller at runtime for a particular signature.
4121
4122         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4123
4124         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4125         which notes a server method implementation should be
4126         asynchronous.
4127
4128         * glib/dbus-binding-tool-glib.c
4129         (dbus_binding_tool_output_glib_server): Call
4130         dbus_g_value_types_init.
4131         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4132         variants specially.
4133         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4134         of a lookup function.
4135         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4136         (write_untyped_out_args): New method; write output arguments.
4137         (write_formal_declarations_for_direction): Function for
4138         writing prototypes.
4139         (write_formal_parameters_for_direction): Function for
4140         writing implementations.
4141         (write_typed_args_for_direction): Function for writing
4142         arguments prefixed with GTypes.
4143         (write_async_method_client): Write out async version
4144         of method.
4145
4146         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4147         (dbus_g_type_get_marshal_name): Move mapping from GType
4148         to marshal name into here.
4149         (dbus_g_type_get_c_name): Move into here.
4150         (compute_marshaller): Convert signature to type with
4151         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4152         (compute_marshaller_name): Ditto.
4153         (compute_marshaller): Handle async signal annotations.
4154         (gather_marshallers): Return if we don't have a known
4155         prefix.
4156         (generate_glue): Collect introspection blob here, and
4157         write all of the blob at the end.  This allows an object
4158         with multiple interfaces to work.
4159         Mark async methods in introspection blob.
4160
4161         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4162         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4163         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4164
4165         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4166         avoids people accidentally using DBUS_TYPE_* which should
4167         not be necessary anymore.
4168         Do include dbus-gtype-specialized.h, which are utilities
4169         for GLib container types.
4170         Add various #defines for types such as
4171         DBUS_TYPE_G_BOOLEAN_ARRAY.
4172         (DBusGValueIterator, DBusGValue): Define, not fully used
4173         yet.
4174         (dbus_g_value_get_g_type): Type for recursive value.
4175         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4176         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4177         (dbus_g_value_free): Prototypes.
4178         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4179         (dbus_g_proxy_set_interface): Prototype.
4180         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4181         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4182         types.
4183         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4184         Accessors.
4185         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4186         doing async invocations.
4187         (dbus_g_method_return, dbus_g_method_return_error):
4188         Prototypes.
4189         * doc/dbus-tutorial.xml: Update GLib section.
4190         
4191         * tools/dbus-viewer.c (load_child_nodes): Update
4192         for new invocation type of dbus_g_proxy_end_call.
4193         (load_from_service_thread_func): Ditto.
4194
4195         * tools/print-introspect.c (main): Ditto.
4196
4197         * tools/dbus-names-model.c (have_names_notify)
4198         (names_model_reload, names_model_set_connection)
4199         Use GTypes.
4200
4201         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4202         needed since Python bindings use GLib bindings.
4203
4204         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4205         Add --prefix argument.
4206
4207         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4208         unneeded --ignore-unsupported arg.
4209         
4210         * test/glib/test-service-glib.c: 
4211         * test/glib/test-service-glib.xml:
4212         * test/glib/test-dbus-glib.c: Add many more tests.
4213
4214 2005-06-06  David Zeuthen  <davidz@redhat.com>
4215
4216         * doc/TODO: Add item about need to remove deprecated functions.
4217
4218         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4219
4220         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4221         to repair the ABI which was broken with the last commit.
4222
4223 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4224
4225         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4226         (dbus_connection_disconnect): renamed to dbus_connection_close 
4227         for API symmetry with dbus_connection_open
4228         (_dbus_connection_open_internal): 
4229         s/dbus_connection_disconnect/dbus_connection_close
4230
4231         * dbus/dbus-bus.c (dbus_bus_get):
4232         s/dbus_connection_disconnect/dbus_connection_close
4233
4234         * bus/connection.c (bus_connections_unref, 
4235         bus_connections_setup_connection, bus_connections_expire_incomplete):
4236         s/dbus_connection_disconnect/dbus_connection_close
4237
4238         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4239         kill_client_connection_unchecked, check_hello_connection):
4240         s/dbus_connection_disconnect/dbus_connection_close
4241
4242         * bus/bus.c (new_connection_callback):
4243         s/dbus_connection_disconnect/dbus_connection_close
4244
4245         * tools/dbus-send.c (main):
4246         s/dbus_connection_disconnect/dbus_connection_close
4247
4248         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4249         s/dbus_connection_disconnect/dbus_connection_close
4250         
4251         * test/test-service.c (path_message_func, filter_func):
4252         s/dbus_connection_disconnect/dbus_connection_close
4253         
4254         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4255         
4256 2005-05-25  Colin Walters  <walters@verbum.org>
4257
4258         * dbus/dbus-protocol.h: Move various bus service #defines such
4259           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4260           dbus/dbus-shared.h.
4261         * dbus/dbus-shared.h: Various defines moved here.
4262         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4263
4264 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4265
4266         * python/__init__.py: Python bindings deserve a minor version
4267         update.  Upped to (0, 40, 2)
4268
4269 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4270
4271         * python/decorators.py: add explicitly_pass_message decorator
4272         for passing in the dbus message as keyword for edge case signal
4273         handling
4274
4275         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4276         to conform with what dbus expects for match rules
4277         (SignalMatchRule.execute): add the dbus message as a keyword
4278         if the signal handler has requested it
4279
4280         * python/examples/example/signal-recipient.py: added some more
4281         examples on how to hook up to signals
4282
4283 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4284
4285         * python/decorators.py: import dbus_bindings
4286
4287         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4288         SignalMatchNode): new classes that implement wildcard signal
4289         callback matching using a tree lookup. Heavily modified from a
4290         patch sent by Celso Pinto (fd.o bug #3241)
4291
4292         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4293         use new match classes to handle signals.
4294
4295 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4296         
4297         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4298
4299 2005-05-18  Havoc Pennington  <hp@redhat.com>
4300
4301         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4302         gettext. Not really worth requiring yet perhaps, but any
4303         production quality 1.0 would require it so we should go ahead and
4304         get things set up. We do have a couple token calls to
4305         bindtextdomain in the code already.
4306
4307 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4308
4309         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4310         when using recursive g_main_loops
4311
4312         * python/_dbus.py (class Bus): add the ProxyObjectClass
4313         alias for ProxyObject to make it easier for the Twisted 
4314         networking framework to integrate dbus.
4315
4316         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4317         alias for ProxyMethod to make it easier for the Twisted 
4318         networking framework to integrate dbus. 
4319
4320 2005-05-11  Ross Burton  <ross@openedhand.com>
4321
4322         * glib/dbus-glib-tool.c: Add --prefix argument.
4323         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4324         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4325         Add prefix argument.
4326         (generate_glue): Pass prefix argument down.
4327         (dbus_binding_tool_output_glib_server): Pass prefix to
4328         glib-genmarshal.
4329         
4330 2005-05-11  Colin Walters  <walters@verbum.org>
4331
4332         * tools/dbus-send.c (append_array): New function.
4333         (append_arg): Broken out from main.
4334         (main): Add cheesy hack to send arrays and variants.
4335         (usage): Update.
4336         * tools/dbus-print-message.c (print_iter): Broken out
4337         from main.
4338
4339 2005-05-11  Colin Walters  <walters@verbum.org>
4340
4341         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4342         New function, returns signature string for signature iter.
4343         * dbus/dbus-signature.h: Prototype it.
4344         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4345         New function, returns signature string for message iter.
4346         (dbus_message_iter_get_array_len): New function, returns
4347         length of array.
4348         (dbus_message_iter_get_fixed_array): Fix assertion; this
4349         function should be used when the iter is pointing to the
4350         contents of an array
4351         * dbus/dbus-message.h: Prototypes.
4352         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4353         New function; returns length of an array.
4354         * dbus/dbus-marshal-recursive.h: Prototype it.
4355         
4356 2005-05-11  Colin Walters  <walters@verbum.org>
4357
4358         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4359         compilation error.
4360         
4361 2005-05-08  Havoc Pennington  <hp@redhat.com>
4362
4363         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4364         daemon's pid, not the parent's pid, to the file descriptor.
4365         Reported by Taj Morton.
4366
4367 2005-05-05  Havoc Pennington  <hp@redhat.com>
4368
4369         * configure.in (LT_*): add notes on how the libtool versioning
4370         works to save thinking. Increment soname to indicate protocol
4371         breakage (though really the library interface hasn't changed I
4372         guess)
4373
4374         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4375         verify the GUID received from server matches what we were
4376         expecting, if we had an expectation
4377
4378         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4379         (_dbus_auth_get_guid_from_server): new function
4380         (send_begin): parse the OK args
4381
4382         * doc/dbus-specification.xml: add GUID to the auth protocol
4383
4384 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4385
4386         * Fix my name in previous changelog ;)
4387
4388         * python/proxies.py (ProxyObject.__getattr__): add further patch
4389         from Anthony Baxter to throw an AttributeError when python 
4390         __special__ functions are called instead of marshling them over 
4391         the bus (Bug#1685 comment 3).
4392
4393 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4394
4395         * python/Makefile.am: changed to use pyexecdir for the binding
4396         shared libraries (Bug#2494)
4397
4398         * python/exceptions.py: bring exceptions over from the bindings
4399         so they can be used in applications (Bug#2036)
4400         Make all exceptions derive from DBusException
4401
4402         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4403         of classes so that print obj doesn't throw an exception (Bug #1685)
4404
4405 2005-05-03  Ross Burton  <ross@openedhand.com>
4406
4407         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4408         Return if we get an error during registration.  Set up a
4409         weak reference on object to unregister if object is destroyed.
4410         (unregister_gobject): New function.
4411         
4412 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4413
4414         * python/dbus_bindings.pyx.in: 
4415         - added new type classes for hinting to the marashaler what type 
4416         to send over the wire
4417         - added int16 and uint16 marshalers
4418         - Fixed a bug in the type constants that caused int32 to go out
4419         as uint16 over the wire
4420         * python/dbus.py: split up into different files and renamed _dbus.py
4421         * python/__init__.py, python/_util.py, python/decorators.py, 
4422         python/exceptions.py, python/proxies.py, python/services.py,
4423         python/types.py: new files split off from dbus.py
4424         * python/Makefile.am: Add new files, remove dbus.py and 
4425         install all python files to <python module dir>/dbus
4426         * python/examples/*: Added #!/usr/bin/env python to the top of
4427         every example.  Patch provided by Tatavarty Kalyan
4428
4429 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4430
4431         * NEWS: Update to 0.33
4432
4433 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4434
4435         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4436         method for doing async calls
4437         (_pending_call_notification): New C function for handling pendning call
4438         callbacks
4439         (set_notify): New method for setting pending call notification
4440         
4441         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4442         Async capabilities added to remote method calls
4443         (Sender): class removed
4444         (RemoteService): class removed
4445         (ObjectTree): class removed for now
4446         (RemoteObject): Renamed to ProxyObject
4447         (RemoteMethod): Renamed to ProxyMethod
4448         (method): Decorator added for decorating python methods as dbus methods
4449         (signal): Decorator added for decorating python methods as signal emitters
4450         (ObjectType): Metaclass added for generating introspection data and the
4451         method callback vtable
4452         (Interface): Wrapper class added to wrap objects in a dbus interface
4453         (Object): Uses ObjectType as its metaclass and exports Introspect
4454         of the org.freedesktop.DBus.Introspectable interface
4455         (ValidationException, UnknownMethodException): new exceptions
4456
4457         * python/examples/*: Modified to fit with the new bindings
4458
4459 2005-04-23  Havoc Pennington  <hp@redhat.com>
4460
4461         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4462         reported by Tony Houghton
4463
4464         * test/test-service.c (main): test
4465         dbus_connection_get_object_path_data()
4466
4467         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4468         the exact_match
4469         (_dbus_object_tree_get_user_data_unlocked): new function used by
4470         dbus_connection_get_object_path_data()
4471         (do_register): add assertion test for get_user_data_unlocked
4472         (object_tree_test_iteration): more tests
4473
4474         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4475         new function from Dan Reed to let you get the user data from 
4476         dbus_connection_register_object_path()
4477
4478 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4479
4480         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4481         in numerous places that did not account for the NULL terminator
4482         (signature_from_seed): changed the manual string copy loop to 
4483         just use strcpy instead
4484         make check should now pass
4485
4486 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4487
4488         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4489         so that it allows messages that are not signals to pass in 
4490         NULL as the interface.
4491
4492 2005-04-18  David Zeuthen  <davidz@redhat.com>
4493
4494         * glib/dbus-gmain.c (io_handler_destroy_source): 
4495         (timeout_handler_destroy_source, connection_setup_free): 
4496         Also unref the source to avoid memory leaks.
4497
4498 2005-04-13  David Zeuthen  <davidz@redhat.com>
4499
4500         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4501         more reasonable, yet still totally arbitrary, value :-). 
4502
4503 2005-04-13  David Zeuthen  <davidz@redhat.com>
4504
4505         * doc/TODO: Added an "important for 1.0" item about selinux
4506         allow/deny messages
4507
4508 2005-04-13  David Zeuthen  <davidz@redhat.com>
4509
4510         * bus/selinux.c: Add c-file-style to top of file
4511         (log_audit_callback): Don't free the data here anymore
4512         (bus_selinux_check): Don't take spid and tpid since appending
4513         that to auxdata may OOM.
4514         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4515         to the caller if we are OOM by taking an error object.
4516         (bus_selinux_allows_send): -do-
4517
4518         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4519         and bus_selinux_allows_send
4520
4521         * bus/bus.c (bus_context_check_security_policy): Pass error and
4522         pass on OOM thrown by bus_selinux_allows_send()
4523
4524         * bus/services.c (bus_registry_acquire_service): Pass error and
4525         pass on OOM thrown by bus_selinux_allows_acquire_service()
4526
4527 2005-04-13  Havoc Pennington  <hp@redhat.com>
4528
4529         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4530         message at a time to avoid monopolizing the main loop, bug 
4531         #2953 from Benjamin Otte
4532
4533 2005-04-09  Havoc Pennington  <hp@redhat.com>
4534
4535         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4536         possible overlap, fix from Daniel Reed
4537         (fixup_alignment): fix signedness warnings
4538         (_dbus_string_append_unichar): ditto
4539
4540 2005-04-09  Havoc Pennington  <hp@redhat.com>
4541
4542         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4543
4544         * glib/dbus-glib-tool.c (main): fix warning
4545
4546         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4547
4548         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4549         add a new function that can be used in simple applications that
4550         don't have a main loop and are willing to block
4551
4552 2005-04-05  David Zeuthen  <davidz@redhat.com>
4553
4554         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4555
4556         * glib/dbus-gmain.c:
4557         (io_handler_destroy_source): Remove from list of IO handlers
4558         of the ConnectionSetup object
4559         (timeout_handler_destroy_source): -do- for timeout handlers
4560         (io_handler_source_finalized): Don't remove from list since
4561         we now do that in io_handler_destroy_source(). Renamed from
4562         io_handler_source_destroyed
4563         (timeout_handler_source_destroyed): -do- for timeout handlers
4564         (connection_setup_free): It is now safe to iterate over all
4565         IO and timeout handlers as the _destroy_source removes them
4566         from the list synchronously
4567
4568 2005-03-30  Havoc Pennington  <hp@redhat.com>
4569
4570         * configure.in: change check to gtk 2.4
4571
4572         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4573         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4574         to 2.4
4575
4576 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4577
4578         * News: Update 0.32
4579
4580         * HACKING: Fixed realease instructions.  configure.in should be updated to
4581           the next release by the person who made the last release.
4582
4583 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4584
4585         * python/lvalue_cast_post_process.py - removed.  Patch has been
4586           submitted to Pyrex maintainers that fixes gcc4.0 errors
4587
4588         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4589
4590 2005-03-24  Daniel Reed  <n@ml.org>
4591
4592         * tools/Makefile.am: Make print-introspect and
4593         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4594
4595 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4596
4597         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4598
4599         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4600           had in Red Hat packages for a while but for some reason never 
4601           got merged upstream
4602           (_dbus_is_a_number): New checks if a string
4603           can be converted to a number and does the conversion if it can
4604           (_dbus_user_database_lookup): Add check to see if the given username
4605           is a udi.  This allows udi's to be used instead of usernames in the
4606           config file.
4607           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4608           is a gdi.  This allows gdi's to be used instead of groupnames in the
4609           config file.
4610
4611 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4612
4613         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4614           code so that it compiles with gcc4.0
4615
4616         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4617           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4618           results back to dbus_binding.c
4619
4620 2005-03-20  Colin Walters  <walters@verbum.org>
4621
4622         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4623
4624         * configure.in: Require GTK+ 2.6.
4625         
4626 2005-03-20  Colin Walters  <walters@verbum.org>
4627
4628         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4629
4630 2005-03-17  Tom Parker  <palfrey@tevp.net>
4631
4632         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4633         print DBUS_UID_UNSET; instead print passed username.  Also
4634         be sure to actually use gid looked up in cache.
4635         
4636         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4637         for DBUS_GID_UNSET and groupname.
4638
4639 2005-03-17  Colin Walters  <walters@verbum.org>
4640
4641         * bus/print-introspect.c: Move to tools/.
4642         * bus/run-with-tmp-session-bus.sh: Ditto.
4643         
4644         * glib/Makefile.am (dbus-glib-bindings.h): Move
4645         generation to tools/Makefile.am.
4646
4647         * test/glib/run-test.sh: Update to handle move
4648         of run-with-tmp-session-bus.sh.
4649
4650         * test/glib/test-service-glib.c: Update to handle
4651         move of dbus-glib-bindings.h.
4652
4653         * tools/print-introspect.c: Moved here
4654         from bus/, and ported to GLib bindings.
4655
4656         * tools/run-with-tmp-session-bus.sh: Moved here
4657         from bus/.
4658
4659         * tools/Makefile.am: Generate dbus-glib-bindings.h
4660         and dbus-bus-introspect.xml here.
4661
4662         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4663         Update.
4664
4665 2005-03-17  Colin Walters  <walters@verbum.org>
4666
4667         * bus/driver.c (write_args_for_direction): Use
4668         _dbus_string_get_const_data to retrieve string;
4669         _dbus_string_get_const_data_len doesn't actually return
4670         a NULL-terminated substring.
4671
4672         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4673         (main): Change to use org_freedesktop_DBus_request_name
4674         instead of using g_proxy_begin_call/end_call.
4675
4676 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4677
4678         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4679         generating the finalizer.  Fixes from Ben Maurer.
4680
4681 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4682
4683         * mono/BusDriver.cs: Update method names: ListServices
4684         becomes ListNames; GetOwner becomes GetNameOwner.
4685
4686         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4687         onto the eval stack when removing the delegate.
4688
4689 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4690
4691         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4692         LT_CURRENT.  Set it to the autoconf variable.
4693                                                                                 
4694         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4695         classes that disconnects the signal handler delegate from the
4696         service object.  Fixes a big leak of proxy objects on the
4697         client side of things.  Patch from Ben Maurer
4698         <bmaurer@ximian.com>
4699
4700 2005-03-12  Colin Walters  <walters@verbum.org>
4701
4702         * bus/driver.c (write_args_for_direction): New function,
4703         parses a type signature into arguments and outputs to
4704         XML.
4705         (bus_driver_handle_introspect): Use it instead of
4706         hardcoding XML for certain signatures.
4707         
4708         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4709         dependency on dbus-daemon.
4710
4711         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4712         argument, pass it to dbus_binding_tool_output_glib_client.
4713
4714         * glib/dbus-binding-tool-glib.c
4715         (generate_client_glue): Protect against multiple inclusion.
4716         (dbus_binding_tool_output_glib_client): Add
4717         G_BEGIN_DECLS/G_END_DECLS.
4718
4719         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4720         Change to just take iface prefix directly.
4721         (write_formal_parameters): Clarify error message.
4722         (check_supported_parameters): New function; checks to see type
4723         signatures of method parameters are supported.
4724         (generate_client_glue): Handle ignore_unsupported flag.
4725         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4726         parameter.
4727
4728         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4729         --ignore-unsupported by default until glib bindings
4730         support arrays.
4731
4732 2005-03-11  Colin Walters  <walters@verbum.org>
4733
4734         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4735         install it.
4736
4737         * bus/print-introspect.c: New file; prints introspection
4738         data for a given name and object path.
4739
4740         * bus/run-with-tmp-session-bus.sh: New file, refactored
4741         from test/glib/run-test.sh.  Creates a temporary session
4742         bus and runs another program.
4743
4744         * test/glib/run-test.sh: Refactor to invoke
4745         run-with-tmp-session-bus.sh.
4746
4747         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4748         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4749         macros instead of hardcoding.
4750
4751         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4752
4753 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4754
4755         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4756         this unref; it doesn't match up evenly in some codepaths.
4757         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4758         this evenly matches with the ref near the top of this function.
4759
4760 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4761
4762         * dbus/dbus-object-tree.c
4763         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4764         and we try to unregister a path that's not registered, still go
4765         through the process of unlocking and don't just return.
4766
4767 2005-03-09  Colin Walters  <walters@verbum.org>
4768
4769         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4770         to this are generated for client-side wrappers.  Invokes a
4771         D-BUS method and returns reply values.  
4772
4773         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4774         function; writes signature string for argument direction.
4775         (write_args_for_direction): Change to pass input values directly
4776         instead of via address, and fix indentation.
4777         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4778         make generated wrappers inlineable.
4779
4780         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4781         note about using dbus_type_is_fixed.
4782
4783         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4784         dbus/dbus-signature.c as dbus_type_is_fixed.
4785
4786         All callers updated.
4787
4788         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4789         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4790
4791         * dbus/dbus-signature.h: Prototype.
4792
4793         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4794         error printf code.
4795
4796         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4797         appropriate instead of just freeing it.
4798         (main): Free returned strings using g_free.
4799
4800         * test/glib/Makefile.am (test-service-glib-glue.h)
4801         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4802
4803         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4804         simply maps a simple D-BUS type to GType.
4805         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4806         GType.
4807         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4808         initialize the value with it.
4809         (dbus_gvalue_binding_type_from_type): Unused, delete.
4810         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4811         various types instead of unmarshalling to value data directly.
4812         Remove can_convert boolean.
4813         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4814         returning directly instead of using can_convert boolean.
4815         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4816         Stores a GValue in a pointer to a value of its corresponding C
4817         type.
4818
4819         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4820         add dbus_gvalue_store.
4821
4822 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4823
4824         Fix a bunch of lifecycle and memory management problems
4825         in the mono bindings.
4826
4827         * mono/Arguments.cs (Arguments): Implement IDisposable
4828
4829         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4830         strictly a static class.
4831
4832         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4833         delegates into this file.
4834         (Connection): Implement IDisposable.
4835         (Dispose): Disconnect the connection and set the raw connection
4836         pointer to IntPtr.Zero.
4837         (~Connection): Call Dispose().
4838         (RegisterObjectPath): Added.  Manages the registration of object
4839         paths so we can cleanly disconnect them at dispose/finalize time.
4840         (UnregisterObjectPath): Ditto.
4841         (set_RawConnection): Unregister all of the object paths when
4842         changing the underlying DBusConnection.  Add them back onto the
4843         new connection, if any.
4844
4845         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4846         more unmanaged resources anymore, so it's not necessary.  Move all
4847         the DBusObjectPathVTable stuff out of here.
4848         (Handler): Save references to our delegates so that they don't get
4849         finalized.  Call Connection.RegisterObjectPath() instead of
4850         dbus_connection_register_object_path() directly.
4851         (Message_Called): Dispose the message after we're finished with
4852         it.
4853
4854         * mono/Message.cs (Message): Implement IDisposable.
4855         (Dispose): Dispose the Arguments, and set the RawMessage to
4856         IntPtr.Zero.
4857         (SendWithReplyAndBlock): We own the ref to the reply that comes
4858         back from dbus_connection_send_with_reply_and_block() so add a
4859         comment about that and unref it after we've constructed a managed
4860         MethodReturn class around it.  Fixes a big, big leak.
4861
4862         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4863         method.
4864         (BuildSignalHandler): After we've sent the Signal message, dispose
4865         of it.
4866         (BuildMethod): Dispose of the method call and reply messages after
4867         we've sent the message and extracted the data we want from the
4868         reply.
4869
4870         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4871         anymore.
4872         (Service_FilterCalled): Dispose of the message after we're
4873         finished with it.
4874
4875 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4876
4877         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4878         After we attach our pending call to the connection, unref
4879         it.  Fixes a leak.
4880  
4881         * mono/Connection.cs (set_RawConnection): Disconnect our
4882         filter and match callbacks from the old connection and
4883         reconnect them to the new connection, if any.
4884
4885         * mono/DBusType/Array.cs: "Code" is a static member, so
4886         don't use "this" to refer to it.  Fix for stricter checking
4887         in Mono 1.1.4.
4888  
4889         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4890         object path that we pass into unmanaged code.
4891  
4892         * mono/DBusType/String.cs (Append): Don't leak the string
4893         that we pass into unmanged code.
4894
4895 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4896         * NEWS: Update for 0.31
4897
4898         * configure.in: Release 0.31
4899         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4900
4901         * qt/Makefile.am: fixed build
4902
4903         * dbus/Makefile.am: soname bump for libdbus
4904
4905         * glib/Makefile.am: soname bump for libdbus-glib
4906
4907 2005-03-05  Havoc Pennington  <hp@redhat.com>
4908
4909         * dbus/dbus-sysdeps.c:
4910         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4911         value
4912         (_dbus_generate_random_bytes_buffer): fix return value
4913
4914         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4915         checks actually work, from Tom Parker <fdo@tevp.net>
4916
4917 2005-03-01  Colin Walters  <walters@verbum.org>
4918
4919         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4920         functions copied from dbus-glib-tool.c.
4921         (main): Convert lots of error code to use them.
4922         Also add some testing for introspection bits.
4923
4924 2005-03-01  Colin Walters  <walters@verbum.org>
4925         
4926         * doc/TODO: Remove introspection signature TODO.
4927
4928 2005-02-27  Colin Walters  <walters@verbum.org>
4929
4930         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4931         Change return value to const char * instead of int so we can do
4932         full signatures.
4933         (struct PropertyInfo, struct ArgInfo): Store char *.
4934         (property_info_new, arg_info_new): Update parameters, strdup.
4935         (property_info_unref, arg_info_unref): Free.
4936
4937         * glib/dbus-gidl.h: Update prototypes.
4938
4939         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4940         (validate_signature): New function, just validates signature and
4941         sets GError.
4942         (parse_property, parse_arg): Invoke validate_signature.  Store
4943         signature instead of just type code.
4944
4945         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4946         function to return a primary type for a signature, dropping
4947         information about types in container types.
4948         (dbus_gvalue_genmarshal_name_from_type)
4949         (dbus_gvalue_binding_type_from_type)
4950         (dbus_gvalue_ctype_from_type): Update to take full signature
4951          instead of type code.
4952         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4953
4954         * glib/dbus-gvalue.h: Update prototypes for above.
4955
4956         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4957         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4958         (introspect_properties, introspect_signals, write_interface):
4959         Update to handle signatures, and remove usage of
4960         _dbus_gutils_type_to_string.
4961         (handle_introspect): Print out type codes instead of e.g. "string"
4962         in hardcoded introspection XML; also use x_AS_STRING constants
4963         instead of hardcoding in string.
4964
4965         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4966         to string.  Remove usage of _dbus_gutils_type_to_string.
4967
4968         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4969
4970         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4971         deletion.
4972         
4973         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4974         (compute_marshaller_name, generate_glue): Handle signature change
4975         to string.
4976         (write_formal_parameters, write_args_for_direction): Ditto, and
4977         remove FIXME.
4978
4979         * tools/dbus-tree-view.c (type_to_string): Delete.
4980         (info_set_func_text): Update to print full signatures.
4981
4982         * test/glib/test-service-glib.xml: Change types to new
4983         introspection format.
4984
4985 2005-02-26  Havoc Pennington  <hp@redhat.com>
4986
4987         * doc/TODO: remove the "guid" item
4988
4989         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4990         (with_bus_thread_func): use open_private
4991
4992         * dbus/dbus-connection.c (dbus_connection_open_private): new
4993         function that works like the old dbus_connection_open()
4994         (dbus_connection_open): now returns an existing connection if
4995         possible
4996
4997         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4998         through the GUID to the transport
4999
5000         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5001         GUID in hex-encoded form.
5002
5003         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5004         pass GUID argument in to the transport
5005
5006         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5007         guid argument
5008
5009         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5010
5011         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5012
5013 2005-02-25  Havoc Pennington  <hp@redhat.com>
5014
5015         * doc/dbus-specification.xml: document the GUID thing
5016
5017         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5018         globally unique ID for the server, and put a "guid=hexencoded"
5019         field in the address
5020
5021         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5022
5023         * dbus/dbus-message.c: ditto
5024
5025         * dbus/dbus-dataslot.c: ditto
5026
5027         * dbus/dbus-list.c: ditto
5028
5029         * dbus/dbus-internals.h: wait, just include
5030         dbus-threads-internal.h here
5031         
5032         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5033         use in main library
5034
5035         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5036
5037 2005-02-24  Colin Walters  <walters@verbum.org>
5038
5039         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5040
5041 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5042
5043         * glib/Makefile.am: added dbus-gobject.h to sources list
5044         so distcheck doesn't fail
5045         
5046 2005-02-24  Havoc Pennington  <hp@redhat.com>
5047
5048         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5049         you must disconnect before unref, since locking and other things
5050         are screwed up otherwise. Fix assorted other locking stuff.
5051
5052         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5053         fix compilation
5054
5055         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5056         into a private header and don't export from the library
5057
5058         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5059
5060 2005-02-24  Colin Walters  <walters@verbum.org>
5061         
5062         * dbus/dbus-signature.c: New file; implements various functions
5063         related to type signatures.  Includes an interator for parsing,
5064         validation functions.
5065         (dbus_type_is_basic): Moved here from
5066         dbus-marshal-basic.c:_dbus_type_is_basic.
5067         (dbus_type_is_container): Moved here from
5068         dbus-marshal-basic.c:_dbus_type_is_container.
5069
5070         All callers of _dbus_type_is_container and _dbus_type_is_basic
5071         updated, and include dbus-signature.h.
5072
5073         * dbus/dbus-signature.h: New file; prototypes for the above.
5074
5075         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5076         dbus-signature.h.
5077
5078         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5079         function factored out of _dbus_first_type_in_signature.
5080         (_dbus_first_type_in_signature_c_str): New function; returns first
5081         type code for a type signature character.
5082
5083         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5084         handle function moves.
5085
5086         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5087
5088         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5089         function; skips to next complete type in type signature.
5090         Implemented using previous skip_one_complete_type.  Now
5091         skip_one_complete_type just delegates to
5092         _dbus_type_signature_next.
5093
5094         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5095         to dbus-signature.c
5096         (_dbus_type_is_container): Ditto.
5097
5098         * doc/dbus-specification.xml: Update introspection sample to
5099         use real type signatures.
5100
5101         * dbus/dbus-test.h: Prototype signature test.
5102
5103         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5104         signature tests.
5105
5106         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5107
5108 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5109
5110         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5111         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5112
5113 2005-02-21  Colin Walters  <walters@verbum.org>
5114
5115         * dbus/dbus-test-main.c (main): Take optional specific test
5116         argument.
5117
5118         * dbus/dbus-test.c (run_test): New function, runs a test function
5119         with no data directory.
5120         (run_data_test): Like above, but takes data directory.
5121         (dbus_internal_do_not_use_run_tests): Take
5122         specific test argument.  Replace lots of cut n' paste code
5123         with run_test and run_data_test.
5124
5125         * dbus/dbus-test.h: Update prototype for
5126         dbus_internal_do_not_use_run_tests.
5127
5128 2005-02-20  Havoc Pennington  <hp@redhat.com>
5129
5130         Fix bugs reported by Daniel P. Berrange
5131         
5132         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5133         (protected_change_watch): new function
5134         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5135         (_dbus_server_add_watch): change to work like the
5136         dbus-connection.c equivalents; like those, probably kind of
5137         busted, but should at least mostly work for now
5138         (dbus_server_disconnect): drop the lock if we were already
5139         disconnected, patch from Daniel P. Berrange
5140
5141         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5142         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5143         same stuff
5144
5145         * doc/TODO: todo about unscrewing this mess
5146
5147 2005-02-19  Colin Walters  <walters@verbum.org>
5148
5149         * glib/dbus-binding-tool-glib.c
5150         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5151
5152         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5153         as errno.h and sys/stat.h.
5154         (lose): New function, prints error with
5155         newline and exits.
5156         (lose_gerror): Similar, but takes GError for message.
5157         (main): Add --output argument to specify output file to write to,
5158         instead of always printing to stdout.  In this mode, determine
5159         timestamps on source files to see whether any are newer than the
5160         target file.  If not, exit.  Also convert a number of error
5161         messages to use lose (since it's shorter), and switch to using
5162         g_io_channel_shutdown.
5163
5164 2005-02-19  Havoc Pennington  <hp@redhat.com>
5165
5166         * glib/dbus-gobject.c
5167         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5168
5169         * glib/dbus-glib.c: fix doxygen warnings
5170
5171         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5172         is found on an <arg>
5173
5174 2005-02-17  Colin Walters  <walters@verbum.org>
5175
5176         * glib/dbus-gobject.h: Don't export
5177         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5178         
5179         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5180         (invoke_object_method): Handle it.
5181
5182         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5183         Handle rename.
5184         
5185 2005-02-17  Colin Walters  <walters@verbum.org>
5186
5187         * bus/.cvsignore, doc/.cvsignore
5188         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5189         Update.
5190
5191 2005-02-17  Colin Walters  <walters@verbum.org>
5192         
5193         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5194         Rename to DBUS_SERVICE_DBUS.
5195         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5196         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5197         Change the value from "org.freedesktop.Local"
5198         to "org.freedesktop.DBus.Local".
5199         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5200         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5201         DBUS_INTERFACE_INTROSPECTABLE.
5202         Change the value from "org.freedesktop.Introspectable"
5203         to "org.freedesktop.DBus.Introspectable".
5204         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5205         DBUS_INTERFACE_PROPERTIES.
5206         Change the value from "org.freedesktop.Properties"
5207         to "org.freedesktop.DBus.Properties".
5208         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5209         DBUS_INTERFACE_PEER.
5210         Change the value from "org.freedesktop.Peer"
5211         to "org.freedesktop.DBus.Peer".
5212         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5213         DBUS_INTERFACE_LOCAL.
5214         Change the value from "org.freedesktop.Local"
5215         to "org.freedesktop.DBus.Local".
5216
5217         All other users of those constants have been changed.
5218
5219         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5220
5221         * glib/dbus-gobject.c (handle_introspect): Use constants.
5222
5223         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5224
5225 2005-02-17  Colin Walters  <walters@verbum.org>
5226
5227         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5228         (parse_node, parse_interface, parse_method, parse_signal)
5229         (parse_property, parse_annotation): Lose if we're currently in an
5230         annotation.
5231         (parse_annotation): New function.
5232         (parser_start_element, parser_end_element): Handle annotation.
5233         (parse_method, parse_interface): Remove support for c_name attribute,
5234         switch to annotations.
5235
5236         * glib/dbus-gidl.h (interface_info_get_binding_names)
5237         (method_info_get_binding_names)
5238         (interface_info_get_binding_name, method_info_get_binding_name)
5239         (interface_info_set_binding_name, method_info_set_binding_name):
5240         Remove.
5241         (interface_info_get_annotations, method_info_get_annotations)
5242         (interface_info_get_annotation, method_info_get_annotation)
5243         (interface_info_add_annotation, method_info_add_annotation):
5244         Prototype.
5245
5246         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5247         for "bindings".
5248         (struct MethodInfo): Ditto.
5249         Straightfoward conversion of binding methods into annotation methods
5250         as prototyped.
5251
5252         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5253
5254         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5255
5256         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5257         Use new annotation API.
5258
5259         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5260         annotation element.
5261         
5262         * doc/dbus-specification.xml: Discuss introspection annotations,
5263         include list of well-known annotations.
5264
5265         * test/glib/test-service-glib.xml: Make validate against new DTD.
5266
5267 2005-02-17  Colin Walters  <walters@verbum.org>
5268
5269         This patch is based on initial work from
5270         Paul Kuliniewicz <kuliniew@purdue.edu>.
5271
5272         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5273         initialization of GValue from dbus type to here.
5274         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5275         for the "glib-genmarshal" program from a DBus type.
5276         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5277         into the C name for it we use in the glib bindings.
5278         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5279         glib C type (not GValue).
5280         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5281
5282         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5283         from dbus-gobject.c.
5284
5285         * glib/dbus-gutils.h: Prototype it.
5286
5287         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5288         (marshal_dbus_message_to_g_marshaller): Use new shared function
5289         dbus_glib_marshal_dbus_message_to_gvalue_array.
5290
5291         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5292         Will be changed once we have annotations.
5293
5294         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5295         GStaticRWLock.  Callers updated.
5296         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5297         (string_table_next): New function for iterating over zero-terminated
5298         string value array.
5299         (string_table_lookup): New function; retrieves specific entry in
5300         array.
5301         (get_method_data): New function; look up method data in object data chunk.
5302         (object_error_domain_prefix_from_object_info)
5303         (object_error_code_from_object_info): New functions, but not implemented yet.
5304         (method_interface_from_object_info): New function; retrieve interface name.
5305         (method_name_from_object_info): New function; retrieve method name.
5306         (method_arg_info_from_object_info): New function; retrieve argument data.
5307         (arg_iterate): New function; iterates over serialized argument data.
5308         (method_dir_signature_from_object_info): New function; returns a
5309         GString holding type signature for arguments for just one
5310         direction (input or output).
5311         (method_input_signature_from_object_info)
5312         (method_output_signature_from_object_info): New functions.
5313         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5314         converts dbus message arguments into a GValue array.  Used for both
5315         signal handling and method invocation.
5316         (struct DBusGlibWriteIterfaceData): New utility structure.
5317         (write_interface): New function; generate introspection XML for
5318         an interface.
5319         (introspect_interfaces): New function; gathers all interface->methods,
5320         generates introspection XML for them.
5321         (handle_introspect): Invoke introspect_interfaces.
5322         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5323         (lookup_object_and_method): New function; examines an incoming message
5324         and attempts to match it up (via interface, method name, and argument
5325         signature) with a known object and method.
5326         (gerror_domaincode_to_dbus_error_name): New function; converts a
5327         GError domain and code into a DBus error name.  Needs GError data
5328         added to object introspection to work well.
5329         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5330         GError.
5331         (invoke_object_method): New function to invoke an object method
5332         looked up via lookup_object_and_method.  Parses the incoming
5333         message, turns it into a GValue array, then invokes the marshaller
5334         specified in the DBusGMethodInfo.  Creates a new message with
5335         either return values or error message as appropriate.
5336         (gobject_message_function): Invoke lookup_object_and_method and
5337         invoke_object_method.
5338
5339         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5340         (enum DBusBindingOutputMode): New enum for binding output modes.
5341         (pretty_print): Print binding names.
5342         (dbus_binding_tool_error_quark): GError bits.
5343         (version): Fix typo.
5344         (main): Create GIOChannel for output.  Parse new --mode argument,
5345         possible values are "pretty-print", "glib-server", "glib-client".
5346         Use mode to invoke appropriate function.
5347         
5348         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5349
5350         * glib/dbus-glib-tool.h: New header, just includes GError bits
5351         for now.
5352
5353         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5354         maps binding style to name.
5355         (struct MethodInfo): Ditto.
5356         (get_hash_keys, get_hash_key): Utility function, returns keys for
5357         a GHashTable.
5358         (interface_info_new, method_info_new): Initialize bindings.
5359         (interface_info_unref, method_info_unref): Destroy bindings.
5360         (method_info_get_binding_names, method_info_get_binding_name)
5361         (interface_info_get_binding_names, interface_info_get_binding_name):
5362         Functions for retrieving binding names.
5363         (method_info_set_binding_name, interface_info_set_binding_name):
5364         Functions for setting binding names.
5365
5366         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5367         for glib binding generation.
5368
5369         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5370         and client-side glib glue generation.
5371
5372         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5373         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5374         dbus-glib-tool.h.
5375
5376         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5377         of using GClosureMarshal directly.
5378         (struct DBusGObjectInfo): Add n_infos member.
5379
5380         * test/glib/test-service-glib.xml: New file; contains introspection data
5381         for MyTestObject used in test-service-glib.c.
5382
5383         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5384         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5385         (my_object_uppercase, my_object_many_args): New test methods.
5386         (main): Use dbus_g_object_class_install_info to include generated object
5387         info.
5388
5389         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5390         as well as client-side bindings.
5391
5392         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5393         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5394         using both the dbus_gproxy stuff directly as well as the generated bindings.
5395
5396 2005-02-15  Havoc Pennington  <hp@redhat.com>
5397
5398         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5399         complete a pending call, don't run filters first.
5400
5401         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5402         dbus_pending_call_steal_reply
5403
5404         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5405         _dbus_connection_block_pending_call
5406         (dbus_pending_call_get_reply): change to steal_reply and return a
5407         ref
5408
5409         * dbus/dbus-connection.c
5410         (dbus_connection_send_with_reply_and_block): port to work in terms
5411         of DBusPendingCall
5412         (_dbus_connection_block_pending_call): replace block_for_reply
5413         with this
5414
5415 2005-02-14  Havoc Pennington  <hp@redhat.com>
5416
5417         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5418         properly handle looking up group information by name; fix 
5419         from j@bootlab.org
5420
5421 2005-02-13  Havoc Pennington  <hp@redhat.com>
5422
5423         * dbus/dbus-connection.c (dbus_connection_return_message) 
5424         (dbus_connection_borrow_message): hold dispatch lock while message
5425         is outstanding
5426         (_dbus_connection_block_for_reply): hold dispatch lock while we
5427         block for the reply, so nobody steals our reply
5428         (dbus_connection_pop_message): hold the dispatch lock while we
5429         pluck the message
5430
5431 2005-02-13  Havoc Pennington  <hp@redhat.com>
5432
5433         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5434         (_dbus_connection_release_dispatch)
5435         (_dbus_connection_acquire_io_path)
5436         (_dbus_connection_release_io_path): make the mutex and condvar
5437         control access to the "acquired" flag. Drop the connection lock
5438         while waiting on the condvar. Hopefully these are baby steps in
5439         roughly the right direction.
5440
5441 2005-02-13  Havoc Pennington  <hp@redhat.com>
5442
5443         * dbus/dbus-connection.c: use separate mutexes for the condition
5444         variables; this is some kind of baseline for sanity, but the
5445         condition variables still aren't used correctly afaict
5446
5447 2005-02-13  Havoc Pennington  <hp@redhat.com>
5448
5449         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5450         fix a double-unlock
5451
5452         * dbus/dbus-connection.c
5453         (_dbus_connection_detach_pending_call_unlocked): add this
5454
5455         Initial semi-correct pass through to fix thread locking; there are
5456         still some issues with the condition variable paths I'm pretty
5457         sure
5458         
5459         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5460         lock/unlock calls
5461
5462         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5463         rename to add _unlocked
5464         (struct DBusConnection): move "dispatch_acquired" and
5465         "io_path_acquired" to use only one bit each.
5466         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5467         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5468         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5469         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5470         (_dbus_connection_remove_timeout) 
5471         (_dbus_connection_toggle_timeout): drop lock when calling out to
5472         user functions; done in a hacky/bad way.
5473         (_dbus_connection_send_and_unlock): add a missing unlock
5474         (_dbus_connection_block_for_reply): add a missing unlock
5475
5476         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5477         drop lock in a hacky probably unsafe way to call out to user
5478         function
5479
5480 2005-02-12  Havoc Pennington  <hp@redhat.com>
5481
5482         * tools/dbus-tree-view.c (info_set_func_text): display more
5483         details on args
5484
5485         * bus/driver.c (bus_driver_handle_list_services): list the bus
5486         driver
5487
5488         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5489
5490         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5491         (method_info_get_n_args): new function
5492
5493 2005-02-12  Havoc Pennington  <hp@redhat.com>
5494
5495         * bus/driver.c (bus_driver_handle_introspect): add introspection
5496         for bus driver
5497
5498 2005-02-12  Havoc Pennington  <hp@redhat.com>
5499
5500         * bus/driver.c: put the signature of each bus driver method in the
5501         table of handlers and check it on incoming calls; this isn't
5502         really useful, but going to add introspect support in a minute.
5503
5504 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5505
5506         * mono/Connection.cs: The unpredictability of finalizers in mono
5507         prevents us from deterministically disconnecting the filters from
5508         the Service class's finalizer, so move tracking of filters and
5509         matches here.  Add API for that.
5510
5511         * mono/Service.cs: Remove the code, add code which calls the
5512         methods now on the Connection class.
5513
5514 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5515
5516         * python/dbus.py (class Sender): added to support dbus signals better
5517         (Bus::add_signal_receiver): added expand_args parameter which defaults
5518         to True.  When expand args is True the signal handler will pass the 
5519         message arguments as parameters to the signal handler.  If False
5520         revert to previous behavior where the signal handler must get the
5521         argument list from the message.  This is to help port applications
5522         like HAL that have a tendancy to send variable length argument lists.
5523         self._match_rule_to_receivers is now a dict of dicts.
5524         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5525         removing it from a list
5526         (Bus::_signal_func): change signal handlers so that interface,
5527         signal_name, service, path and message are packed into a Sender
5528         object and that is passed to the handler.  If expand_args is True
5529         extract the args list from the message and append it to the parameter
5530         list
5531         
5532         * python/dbus_bindings.pyx.in (class Signature): added to support 
5533         signiature types
5534         (MessageIter::__init__): changed iteration limit to match D-BUS
5535         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5536         STRUCT and VARIENT type support
5537         (MessageIter::python_value_to_dbus_sig): made recursive to support
5538         recursive types
5539         (MessageIter::append*): added Signature, dict, tuple 
5540         support
5541
5542         * python/examples/example-client.py: added examples of getting tuples
5543         and dicts
5544
5545         * python/examples/example-service.py: added examples of sending tuples
5546         and dicts
5547
5548         * python/examples/example-signal-recipient.py: Fixed to handle new
5549         signal callback format
5550
5551 2005-02-10  Havoc Pennington  <hp@redhat.com>
5552
5553         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5554         (call dbus_g_proxy_add_signal)
5555
5556         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5557         escape the hostname
5558         (_dbus_server_new_for_domain_socket): escape the path
5559
5560         * dbus/dbus-address.c (dbus_address_escape_value): new
5561         (dbus_address_unescape_value): new
5562         (dbus_parse_address): unescape values
5563
5564         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5565
5566         * doc/dbus-specification.xml: explain how to escape values in
5567         addresses
5568
5569 2005-02-10  Havoc Pennington  <hp@redhat.com>
5570
5571         * dbus/dbus-message-factory.c (generate_special): modify test to
5572         avoid using a non-basic dict key
5573
5574         * dbus/dbus-marshal-validate-util.c: add test for the below
5575
5576         * doc/dbus-specification.xml: require that dict keys are a basic
5577         type
5578
5579         * dbus/dbus-marshal-validate.c
5580         (_dbus_validate_signature_with_reason): require that dict key is a
5581         basic type
5582
5583 2005-02-10  Havoc Pennington  <hp@redhat.com>
5584
5585         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5586         change to be _and_unlock instead of _unlocked
5587
5588         * dbus/dbus-connection.c
5589         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5590         have no_update so we can find this bug quickly in future
5591
5592 2005-02-10  Havoc Pennington  <hp@redhat.com>
5593
5594         * dbus/dbus-message-util.c (verify_test_message): tests for string
5595         array
5596
5597         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5598         support for arrays of string/signature/path
5599
5600 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5601
5602         * dbus/dbus-connection.c
5603         (_dbus_connection_queue_received_message_link,
5604         _dbus_connection_message_sent): Add the path to
5605         the verbose output.
5606         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5607         _dbus_connection_send_preallocated_unlocked(), updated the
5608         dispatch status, and unlocks.  Fixes a bug where certain
5609         situations (like a broken pipe) could cause a Disconnect message
5610         to not be sent, tricking the bus into thinking a service was still
5611         there when the process had quit.
5612         (_dbus_connection_send_preallocated): Call
5613         _dbus_connection_send_preallocated_and_unlock().
5614         (_dbus_connection_send_and_unlock): Added.  Calls
5615         _dbus_connection_send_preallocated_and_unlock().
5616         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5617         (dbus_connection_send_with_reply): Update the dispatch status and
5618         unlock.
5619
5620         * mono/Service.cs (~Service): Added.  Removes the filter so that
5621         we don't get unmanaged code calling back into a GCed delegate.
5622         (RemoveFilter); Added.
5623
5624 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5625
5626         * dbus/dbus-message.c (dbus_message_iter_open_container):
5627         - Removed check for iterator type being an array because
5628         get_arg_type does not work with writer iterators
5629         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5630
5631 2005-02-07  Havoc Pennington  <hp@redhat.com>
5632
5633         * doc/dbus-specification.xml: some more language cleanups; add
5634         stuff about how to deal with invalid protocol and extension
5635         points; add _ to allowed chars in auth commands; add EXTENSION_
5636         auth command prefix
5637
5638 2005-02-06  Havoc Pennington  <hp@redhat.com>
5639
5640         * s/expected/required/ in a couple places for clarity
5641
5642 2005-02-07  Colin Walters  <walters@verbum.org>
5643
5644         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5645         sender or proposed_recipient.
5646
5647 2005-02-06  Havoc Pennington  <hp@redhat.com>
5648
5649         * dbus/dbus-message-factory.c (generate_special): more tests
5650
5651         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5652         array length that exceeds the maximum
5653
5654 2005-02-05  Havoc Pennington  <hp@redhat.com>
5655
5656         * dbus/dbus-message-factory.c (generate_special): more test cases,
5657         increasing coverage
5658
5659         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5660         reason why a signature was invalid
5661
5662         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5663         skip the length of the string before we look at it in validation
5664
5665         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5666         equal_substring
5667
5668         * dbus/dbus-message.c (_dbus_message_loader_new): default
5669         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5670
5671 2005-02-05  Havoc Pennington  <hp@redhat.com>
5672
5673         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5674         if the signature of a variant was empty
5675         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5676         struct with no element type)
5677
5678         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5679         mangled messages to break things
5680
5681 2005-02-04  Havoc Pennington  <hp@redhat.com>
5682
5683         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5684         g_quark_try_string() so it actually can return 0
5685         (dbus_g_proxy_connect_signal): ditto
5686
5687 2005-02-04  Havoc Pennington  <hp@redhat.com>
5688
5689         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5690         bogus warning
5691         (tristring_from_message): assert cleanly on null path/interface
5692         (should not be possible though I decided later)
5693         (dbus_g_proxy_dispose): move proxy manager unregistration here
5694         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5695         g_return_if_fail() checks
5696
5697 2005-02-04  Havoc Pennington  <hp@redhat.com>
5698
5699         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5700
5701         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5702         (with some minor changes)
5703
5704         * doc/dbus-specification.xml: add deprecated attribute to
5705         introspection format
5706
5707 2005-01-31  Havoc Pennington  <hp@redhat.com>
5708
5709         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5710         think it's sort of right
5711
5712 2005-01-30  Havoc Pennington  <hp@redhat.com>
5713
5714         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5715
5716 2005-01-30  Havoc Pennington  <hp@redhat.com>
5717
5718         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5719
5720         * autogen.sh: change to autotools 1.9
5721
5722         * glib/dbus-gproxy.c: completely change how signals work
5723         (dbus_g_proxy_add_signal): new function to specify signature of a
5724         signal
5725         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5726         and g_warning if the incoming message has the wrong signature.
5727
5728 2005-01-30  Havoc Pennington  <hp@redhat.com>
5729
5730         * tools/dbus-names-model.c (have_names_notify): fix this
5731
5732         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5733         up the string array handling a bit 
5734
5735 2005-01-30  Havoc Pennington  <hp@redhat.com>
5736
5737         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5738         (dbus_g_pending_call_cancel): new function
5739
5740         * dbus/dbus-glib.h: move GType decls for connection/message here;
5741         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5742         here, just kind of rationalizing how we handle all that
5743
5744         * tools/dbus-names-model.c: new file for a tree model listing the
5745         services on a bus
5746
5747         * tools/dbus-tree-view.c (model_new): use proper typing on the
5748         model rows
5749
5750 2005-01-30  Havoc Pennington  <hp@redhat.com>
5751
5752         * glib/dbus-gmain.c: add a custom GSource back that just checks
5753         whether the message queue has anything in it; otherwise, there are 
5754         cases where we won't see messages in the queue since there was no 
5755         IO visible to the glib main loop
5756
5757         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5758         increase default message timeout to 25 seconds
5759
5760 2005-01-30  Havoc Pennington  <hp@redhat.com>
5761
5762         * test/glib/test-profile.c (no_bus_stop_server): remove the
5763         warning about the g_warning that I just fixed
5764
5765         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5766         custom source, seems to be a lot easier to understand and work
5767         better.
5768
5769 2005-01-30  Havoc Pennington  <hp@redhat.com>
5770
5771         I think this main loop thing is conceptually broken, but here are 
5772         some band aids. I'll maybe rewrite it in a minute.
5773         
5774         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5775         custom GSource, so don't pass it in; confusing
5776         (gsource_server_finalize, gsource_connection_finalize): add
5777         finalize handlers that remove all the watches.  
5778
5779 2005-01-30  Havoc Pennington  <hp@redhat.com>
5780
5781         * glib/dbus-gobject.c (introspect_properties): fix the XML
5782         generated
5783
5784         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5785         which effectively detects the use of freed messages
5786
5787         * glib/dbus-gobject.c (handle_introspect): modify and return the
5788         reply message instead of the incoming message
5789
5790         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5791         gee, maybe it should SEND THE XML instead of just making a string
5792         and freeing it again ;-)
5793
5794         * tools/dbus-print-message.c (print_message): improve printing of
5795         messages
5796
5797         * configure.in: add debug-glib.service to the output
5798
5799 2005-01-30  Havoc Pennington  <hp@redhat.com>
5800
5801         dbus-viewer introspected and displayed the bus driver
5802         
5803         * dbus/dbus-object-tree.c 
5804         (object_tree_test_iteration): add tests for a handler registered on "/"
5805
5806         * dbus/dbus-object-tree.c
5807         (_dbus_decompose_path): fix to handle path "/" properly
5808         (run_decompose_tests): add tests for path decomposition
5809         
5810         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5811         properly
5812
5813         * glib/dbus-gobject.c (handle_introspect): fix quotes
5814
5815         * test/glib/run-test.sh: support launching the bus, then running
5816         dbus-viewer
5817
5818         * test/glib/test-service-glib.c (main): put in a trivial gobject
5819         subclass and register it on the connection
5820
5821         * bus/driver.c (bus_driver_handle_introspect): implement
5822         introspection of the bus driver service
5823
5824         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5825         identifiers, doctype decl
5826
5827         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5828         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5829         returning the service unchanged.
5830         (bus_driver_handle_message): remove old check for reply_serial in
5831         method calls, now the message type deals with that
5832         (bus_driver_handle_message): handle NULL interface
5833
5834         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5835
5836         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5837         -1 for len
5838
5839         * tools/dbus-viewer.c: add support for introspecting a service on
5840         a bus
5841
5842         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5843         (dbus_g_pending_call_unref): add
5844
5845 2005-01-29  Havoc Pennington  <hp@redhat.com>
5846
5847         * tools/dbus-tree-view.c: add support for displaying properties.
5848         (run dbus-viewer with an introspect xml file as arg, then resize
5849         the window so the tree elements show up, not sure what that is)
5850
5851         * glib/dbus-gobject.c (handle_introspect): return
5852         org.freedesktop.Properties and org.freedesktop.Introspectable
5853         interfaces when we are introspected.
5854
5855         * doc/dbus-specification.xml: allow empty interface name when 
5856         Get/Set a property
5857
5858 2005-01-29  Havoc Pennington  <hp@redhat.com>
5859
5860         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5861         though it uses glib, it could be extended for any binding in
5862         principle
5863
5864         * glib/dbus-gobject.c (gobject_message_function): change to the
5865         new way properties work
5866
5867         * dbus/dbus-protocol.h: add the new interfaces
5868
5869         * doc/dbus-specification.xml: document the introspection format,
5870         Introspectable interface, and add an org.freedesktop.Properties
5871         interface.
5872
5873         * glib/dbus-gparser.c: add support for a <property> element
5874
5875         * glib/dbus-gidl.c: add PropertyInfo
5876
5877         * glib/dbus-gobject.c (handle_introspect): put the outermost
5878         <node> outside the signal and property descriptions.
5879         (introspect_properties): export properties as <property> rather
5880         than as method calls
5881
5882 2005-01-28  Havoc Pennington  <hp@redhat.com>
5883
5884         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5885         related to authentication protocol
5886
5887 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5888
5889         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5890                 - BUS_ACTIVATION -> BUS_STARTER
5891                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5892                 - class MessageIter (__init__): Added recursion checking 
5893                 so we throw a nice error instead of just disconnecting from the
5894                 bus.
5895                 (get): Added arg_type parameter for recursion.
5896                 Removed the nil type
5897                 Added signiture type placeholder (not implemented)
5898                 Added struct type placeholder (not implemented)
5899                 Added varient type placeholder (not implemented)
5900                 Commented out dict type for now     
5901                 (get_element_type): renamed from get_array_type
5902                 (get_*): changed to use the dbus_message_iter_get_basic API
5903                 (get_*_array): removed in favor of recursive get_array method
5904                 (get_array): new recursive method which calls get to marshal
5905                 the elements of the array
5906                 (value_to_dbus_sig): New method returns the corrasponding
5907                 dbus signiture to a python value
5908                 (append): Comment out dict handling for now
5909                 Handle lists with the new recursive API
5910                 Comment out None handling for now
5911                 (append_nil): removed
5912                 (append_*): changed to use dbus_message_iter_append_basic API
5913                 (append_*_array): removed in favor of recursive append_array 
5914                 method
5915                 (__str__): Make it easier to print out recursive iterators
5916                 for debugging
5917                 - class Message (__str__): moved type inspection to the
5918                 MessageIter class' __str__ method
5919                 (get_iter): Added an append parameter wich defaults to False
5920                 If True use the new API's to create an append iterator
5921
5922         * python/dbus.py: Update to use new bindings API
5923                 - TYPE_ACTIVATION -> TYPE_STARTER
5924                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5925                 - class ActivationBus -> class StarterBus
5926                 - class RemoteObject (__call__): get an append iterator
5927                 - (_dispatch_dbus_method_call): get an append iterator
5928                 - class Object (emit_signal): get an append iterator
5929
5930         * python/examples/: Fixed up the examples to work with the new API
5931                 
5932 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5933
5934         * configure.in: Bump version up to 0.30.
5935
5936         * HACKING: Add a release item to bump the version number up after 
5937         a release.
5938
5939 2005-01-28  Havoc Pennington  <hp@redhat.com>
5940
5941         * doc/dbus-specification.xml: update to describe 16-bit types and
5942         dict entries
5943
5944         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5945         assertion
5946
5947         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5948         type
5949
5950         * dbus/dbus-marshal-recursive.c: implement
5951
5952 2005-01-27  Havoc Pennington  <hp@redhat.com>
5953
5954         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5955
5956         * configure.in: find the right type for 16 and 32 bit ints as well
5957         as 64
5958
5959         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5960         the 16-bit types so people don't have to stuff them in 32-bit or
5961         byte arrays.
5962
5963 2005-01-27  Havoc Pennington  <hp@redhat.com>
5964
5965         * dbus/dbus-message.c: byteswap the message if you init an
5966         iterator to read/write from it
5967         
5968         * dbus/dbus-marshal-byteswap.c: new file implementing 
5969         _dbus_marshal_byteswap()
5970
5971         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5972
5973 2005-01-26  Havoc Pennington  <hp@redhat.com>
5974         
5975         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5976         build, apparently - nobody noticed?)
5977         
5978 2005-01-26  Havoc Pennington  <hp@redhat.com>
5979
5980         * dbus/dbus-marshal-recursive.h: remove todo comment
5981
5982 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5983
5984         * Land the mono binding changes to conform to the new APIs.
5985
5986         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5987         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5988
5989         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5990         type code as a string.
5991         (InitAppending): Rename dbus_message_append_iter_init() to
5992         dbus_message_iter_init_append().
5993
5994         * mono/BusDriver.cs: Rename ServiceEventHandler to
5995         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5996         Rename ServiceOwnerChanged to NameOwnerChanged.
5997
5998         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5999         underlying C call.
6000
6001         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6002
6003         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6004         dbus_bus_acquire_service() to dbus_bus_request_name().
6005
6006         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6007         of Type.UnderlyingSystemType to get the correct element type for
6008         the array.
6009         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6010         dbus_message_get_{element|arg}_type() instead of
6011         dbus_message_iter_init_array_iterator().
6012         (Append): Replace dbus_message_iter_append_array() with
6013         dbus_message_iter_open_container() and
6014         dbus_message_iter_close_container().
6015
6016         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6017         types have been removed.
6018         
6019         * mono/DBusType/*.cs: Replace calls of
6020         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6021         but specify the type in the DllImport extern declaration.  Ditto
6022         for dbus_message_iter_append_[type]() ->
6023         dbus_message_iter_append_basic().
6024
6025         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6026         NameOwnerChangedHandler.
6027
6028 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6029
6030         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6031                 - get_base_service -> get_unique_name
6032                 - bus_get_base_service -> bus_get_unique_name
6033                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6034                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6035                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6036                 - bus_activate_service -> bus_start_service_by_name
6037                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6038                 - bus_acquire_service -> bus_request_name
6039                 - dbus_bus_acquire_service -> dbus_bus_request_name
6040                 - bus_service_exists -> bus_name_has_owner
6041                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6042
6043         * python/dbus.py: Rename of methods
6044                 - activate_service -> start_service_by_name
6045                 - bus_acquire_service -> bus_request_name
6046                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6047                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6048
6049         
6050 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6051
6052         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6053         signature for the method that can't be found.
6054
6055         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6056         the message has any arguments, we need to call
6057         _dbus_type_reader_get_current_type(), not
6058         _dbus_type_reader_has_next().
6059
6060 2005-01-24  Havoc Pennington  <hp@redhat.com>
6061
6062         * dbus/dbus-message-factory.c: more testing of message validation
6063
6064         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6065         header
6066
6067 2005-01-23  Havoc Pennington  <hp@redhat.com>
6068
6069         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6070         get this all working, not many tests in the framework yet though
6071
6072 2005-01-22  Havoc Pennington  <hp@redhat.com>
6073
6074         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6075         tutorial, based on work from David Wheeler.
6076
6077 2005-01-21  Havoc Pennington  <hp@redhat.com>
6078
6079         * dbus/dbus-bus.c: add more return_if_fail checks
6080
6081         * dbus/dbus-message.c (load_message): have the "no validation"
6082         mode (have to edit the code to toggle the mode for now though)
6083
6084         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6085         skips all validation; I want to use this at least for benchmark
6086         baseline, I'm not sure if it should be a publicly-available switch.
6087
6088 2005-01-21  Havoc Pennington  <hp@redhat.com>
6089
6090         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6091         toplevel doxygen group as the low-level API stuff
6092
6093         * dbus/dbus.h: note that libdbus is the low-level API
6094
6095 2005-01-20  Havoc Pennington  <hp@redhat.com>
6096
6097         * update-dbus-docs.sh: script to update docs on the web site, only
6098         works for me though. neener.
6099
6100 2005-01-20  Havoc Pennington  <hp@redhat.com>
6101
6102         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6103         code can reveal bugs in it
6104
6105 2005-01-20  Havoc Pennington  <hp@redhat.com>
6106
6107         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6108         select() version, patches from Tor Lillqvist
6109
6110 2005-01-20  Havoc Pennington  <hp@redhat.com>
6111
6112         * doc/dbus-tutorial.xml: replace > with &gt;
6113
6114         * bus/services.c (bus_registry_acquire_service): validate the name
6115         and return a better error if it's no good.
6116
6117         * doc/dbus-specification.xml: note NO_AUTO_START change
6118
6119         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6120         from AUTO_START, we're toggling the default
6121
6122         * bus/dispatch.c: adapt the tests to change of auto-start default
6123
6124 2005-01-18  Havoc Pennington  <hp@redhat.com>
6125
6126         * rename dbus-daemon-1 to dbus-daemon throughout
6127
6128 2005-01-18  Havoc Pennington  <hp@redhat.com>
6129
6130         * Throughout, grand renaming to strip out the use of "service",
6131         just say "name" instead (or "bus name" when ambiguous).  Did not
6132         change the internal code of the message bus itself, only the
6133         programmer-facing API and messages.
6134         
6135         * doc/dbus-specification.xml: further update the message bus section
6136         
6137         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6138         in error case
6139
6140 2005-01-17  Havoc Pennington  <hp@redhat.com>
6141
6142         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6143         ever
6144
6145         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6146         "invalid name character" not only non-ASCII
6147
6148         * doc/dbus-specification.xml: further update spec, message bus 
6149         parts are still out-of-date but the marshaling etc. stuff is now
6150         accurate-ish
6151
6152 2005-01-17  Havoc Pennington  <hp@redhat.com>
6153
6154         * doc/dbus-specification.xml: partially update spec
6155
6156 2005-01-17  Havoc Pennington  <hp@redhat.com>
6157
6158         * Throughout, align variant bodies according to the contained
6159         type, rather than always to 8. Should save a fair bit of space in
6160         message headers.
6161         
6162         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6163         fix handling of case where p == end
6164
6165         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6166
6167 2005-01-17  Havoc Pennington  <hp@redhat.com>
6168
6169         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6170
6171         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6172         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6173         are marshaling/unmarshaling a boolean.
6174
6175 2005-01-16  Havoc Pennington  <hp@redhat.com>
6176
6177         This is about it on what can be disabled/deleted from libdbus
6178         easily, back below 150K anyhow. Deeper cuts are more work than 
6179         just turning the code off as I've done here.
6180         
6181         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6182         signed int convenience funcs
6183
6184         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6185         verbose mode
6186
6187         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6188         things out of libdbus
6189
6190         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6191         
6192         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6193         tests-enabled-only, though it should probably be deleted)
6194
6195         * dbus/dbus-message-util.c: same stuff
6196
6197         * dbus/dbus-auth-util.c: same stuff
6198
6199 2005-01-16  Havoc Pennington  <hp@redhat.com>
6200
6201         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6202
6203         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6204         way for stripping down dbus-userdb.c stuff included in libdbus.
6205         Rename _dbus_parse_uid for consistency.
6206
6207 2005-01-16  Havoc Pennington  <hp@redhat.com>
6208
6209         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6210         name the assertion failed in
6211
6212         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6213         (_dbus_return_val_if_fail): assert that the name of the function
6214         containing the check doesn't start with '_', since we only want to 
6215         use checks on public functions
6216         
6217         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6218         checks to assertions
6219
6220         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6221         change checks to asserts for private function
6222
6223         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6224         to asserts for private function
6225
6226         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6227         broken assertion that was breaking make check
6228         (_dbus_type_reader_array_is_empty): remove this rather than fix
6229         it, was only used in assertions
6230
6231 2005-01-16  Havoc Pennington  <hp@redhat.com>
6232
6233         * test/unused-code-gc.py: hacky script to find code that's used
6234         only by the bus (not libdbus) or used only by tests or not used at
6235         all. It has some false alarms, but looks like we can clean up a
6236         lot of size from libdbus.
6237
6238         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6239         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6240         
6241 2005-01-16  Havoc Pennington  <hp@redhat.com>
6242
6243         * Add and fix docs according to Doxygen warnings throughout
6244         source.
6245         
6246         * dbus/dbus-marshal-recursive.c
6247         (_dbus_type_reader_array_is_empty): change this to just call
6248         array_reader_get_array_len() and make it static
6249
6250         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6251         from get_array_type
6252         (dbus_message_iter_init_append): rename from append_iter_init
6253
6254         * dbus/dbus-marshal-recursive.c
6255         (_dbus_type_reader_get_element_type): rename from
6256         _dbus_type_reader_get_array_type
6257
6258 2005-01-15  Havoc Pennington  <hp@redhat.com>
6259
6260         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6261
6262         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6263         when DBUS_DISABLE_ASSERT
6264         (_dbus_marshal_set_basic): be sure we align for the string length
6265
6266         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6267         this look faster
6268
6269         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6270         inline macro version
6271         (_dbus_string_set_byte): provide inline macro version
6272
6273 2005-01-15  Havoc Pennington  <hp@redhat.com>
6274
6275         * Land the new message args API and type system.
6276
6277         This patch is huge, but the public API change is not 
6278         really large. The set of D-BUS types has changed somewhat, 
6279         and the arg "getters" are more geared toward language bindings;
6280         they don't make a copy, etc.
6281
6282         There are also some known issues. See these emails for details
6283         on this huge patch:
6284         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6285         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6286         
6287         * dbus/dbus-marshal-*: all the new stuff
6288
6289         * dbus/dbus-message.c: basically rewritten
6290
6291         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6292         freed blocks to be all non-nul bytes so using freed memory is less
6293         likely to work right
6294
6295         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6296         DBUS_FAIL_MALLOC=N environment variable, so you can do
6297         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6298         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6299         thorough.
6300
6301         * qt/message.cpp: port to the new message args API
6302         (operator<<): use str.utf8() rather than str.unicode()
6303         (pretty sure this is right from the Qt docs?)
6304
6305         * glib/dbus-gvalue.c: port to the new message args API
6306
6307         * bus/dispatch.c, bus/driver.c: port to the new message args API
6308
6309         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6310         "locked" flag to TRUE and align_offset to 0; I guess we never
6311         looked at these anyhow, but seems cleaner.
6312
6313         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6314         move allocation padding macro to this header; use it to implement
6315         (_DBUS_STRING_STATIC): ability to declare a static string.
6316
6317         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6318         change to return TRUE if the interface is not set.
6319
6320         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6321         to dbus-marshal-validate.[hc]
6322
6323         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6324         dbus-internals.c
6325
6326         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6327         to dbus-marshal-*.[hc]
6328
6329         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6330         function here from dbus-marshal.c
6331
6332 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6333
6334         * NEWS: Update for 0.23.
6335
6336         * configure.in: Release 0.23.
6337
6338 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6339
6340         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6341         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6342         behind.
6343
6344         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6345         uninstall"
6346
6347         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6348         is an enum, get the enum's underlying type.  Another mono
6349         1.1.3 fix.
6350
6351 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6352
6353         Patch from Sjoerd Simons <sjoerd@luon.net>
6354
6355         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6356         DESTDIR.  It breaks stuff.
6357
6358 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6359
6360         Patch from Tambet Ingo <tambet@ximian.com>
6361
6362         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6363         calling type.GetElementType().  The code previously depended on
6364         broken Mono behavior, which was fixed in Mono 1.1.3.
6365
6366         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6367         Activator.CreateInstance() so that the class's constructor is
6368         called with the right parameters.
6369
6370 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6371
6372         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6373
6374         * dbus/dbus-connection.c
6375         (_dbus_connection_queue_received_message_link): Call
6376         _dbus_connection_remove_timeout() instead of the _locked()
6377         variant, since it's always called from
6378         _dbus_connection_handle_watch(), which handles the locking.
6379         Removed the _locked() variant since it's no longer used.
6380
6381 2005-01-03  Havoc Pennington  <hp@redhat.com>
6382
6383         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6384         return
6385         
6386 2004-12-26  Havoc Pennington  <hp@redhat.com>
6387
6388         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6389
6390 2005-01-03  Havoc Pennington  <hp@redhat.com>
6391
6392         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6393         floating point
6394
6395         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6396
6397 2005-01-02  Havoc Pennington  <hp@redhat.com>
6398
6399         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6400
6401 2005-01-01  Havoc Pennington  <hp@redhat.com>
6402
6403         * configure.in: add -Wfloat-equal
6404
6405 2005-01-01  Havoc Pennington  <hp@redhat.com>
6406
6407         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6408         for a variety of reasons '==' doesn't do this.
6409
6410 2004-12-31  Havoc Pennington  <hp@redhat.com>
6411
6412         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6413         I keep wishing I had
6414
6415 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6416
6417         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6418
6419 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6420
6421         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6422         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6423         dbus-protocol.h.  Because they are defines and not enums they are not
6424         autogenerated.
6425
6426 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6427
6428         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6429         dbus_bus_activate_service
6430
6431         * python/dbus.py (Bus.activate_service): activate a service on the
6432         bus.
6433
6434 2004-12-24  Havoc Pennington  <hp@redhat.com>
6435
6436         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6437         file format has also changed and I haven't adapted to that yet
6438         
6439         * Makefile.am: load .gcno files from latest gcc
6440
6441 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6442         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6443
6444         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6445         lowlevel binding
6446
6447         * python/dbus.py (get_unix_user): Added binding to 
6448         call dbus_bindings.bus_get_unix_user
6449
6450         * python/extract.py: Modified the proto_pat regex to
6451         handle unsigned long
6452
6453 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6454
6455         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6456         better POSIX compliance.
6457
6458 2004-12-19  Havoc Pennington  <hp@redhat.com>
6459
6460         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6461         (_dbus_string_insert_8_aligned): new functions
6462
6463         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6464
6465 2004-12-18  Havoc Pennington  <hp@redhat.com>
6466
6467         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6468         macro
6469
6470         * dbus/dbus-message.c: fix a comment, and add a still-unused
6471         not-implemented function
6472
6473         * dbus/dbus-marshal.h: fix comment
6474
6475         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6476
6477 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6478
6479         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6480         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6481         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6482         Type.UnderlyingSystemType to get the actual system type
6483         underneath.  This code previously depended on the broken Mono
6484         behavior, which was fixed in 1.1.3.
6485
6486 2004-11-27  Havoc Pennington  <hp@redhat.com>
6487
6488         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6489         are disabled
6490         (_dbus_string_get_const_data): inline when asserts are disabled
6491
6492         * dbus/dbus-message.c: record the _dbus_current_generation of
6493         creation so we can complain if dbus_shutdown() is used improperly.
6494         Do this only if checks are enabled.
6495
6496         * dbus/dbus-connection.c: ditto
6497         
6498 2004-11-26  Havoc Pennington  <hp@redhat.com>
6499
6500         * test/glib/test-profile.c: add with_bus mode to profile echoes
6501         that go through the bus.
6502
6503         * test/glib/run-test.sh: add ability to run test-profile
6504
6505         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6506         config file reload.
6507
6508 2004-11-26  Havoc Pennington  <hp@redhat.com>
6509
6510         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6511         thing was implemented
6512
6513 2004-11-26  Havoc Pennington  <hp@redhat.com>
6514
6515         * test/glib/test-profile.c: tweak a bit, add support for some
6516         made-up minimal malloc overhead with plain sockets, since in 
6517         real life some sort of buffers are unavoidable thus we could 
6518         count them in the theoretical best case
6519
6520 2004-11-26  Havoc Pennington  <hp@redhat.com>
6521
6522         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6523         where I was trying to cache one too many messages
6524
6525 2004-11-26  Havoc Pennington  <hp@redhat.com>
6526
6527         * dbus/dbus-message.c: reimplement message cache as an array which 
6528         makes the cache about twice as fast and saves maybe 1.5% overall
6529
6530 2004-11-26  Havoc Pennington  <hp@redhat.com>
6531
6532         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6533         message cache lock here
6534
6535 2004-11-26  Havoc Pennington  <hp@redhat.com>
6536
6537         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6538         the "char byte_order" next to each other to save 4 bytes
6539         (dbus_message_new_empty_header): reduce preallocation, since the
6540         message cache should achieve a similar effect
6541         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6542         message cache that keeps a few DBusMessage around in a pool,
6543         another 8% speedup or so.
6544
6545         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6546
6547 2004-11-25  Havoc Pennington  <hp@redhat.com>
6548
6549         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6550         to write, without reading or blocking, try it before the poll()
6551         and skip the poll() if nothing remains to write. This is about a
6552         3% speedup in the echo client/server
6553
6554 2004-11-25  Havoc Pennington  <hp@redhat.com>
6555
6556         The primary change here is to always write() once before adding
6557         the write watch, which gives us about a 10% performance increase.
6558         
6559         * dbus/dbus-transport-unix.c: a number of modifications to cope
6560         with removing messages_pending
6561         (check_write_watch): properly handle
6562         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6563         messages_pending stuff
6564         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6565         AUTHENTICATED cases
6566         (unix_handle_watch): after writing, see if the write watch can be
6567         removed
6568         (unix_do_iteration): assert that write_watch/read_watch are
6569         non-NULL rather than testing that they aren't, since they 
6570         aren't allowed to be NULL. check_write_watch() at the end so 
6571         we add the watch if we did not finish writing (e.g. got EAGAIN)
6572
6573         * dbus/dbus-transport-protected.h: remove messages_pending call,
6574         since it resulted in too much inefficient watch adding/removing; 
6575         instead we now require that the transport user does an iteration 
6576         after queueing outgoing messages, and after trying the first
6577         write() we add a write watch if we got EAGAIN or exceeded our 
6578         max bytes to write per iteration setting
6579
6580         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6581         function
6582
6583         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6584         freed and then accessed, valgrind flagged this bug, fix it
6585
6586         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6587         as the last valid field plus 1, where really it is equal to the
6588         last valid field. Corrects some message corruption issues.
6589
6590         * dbus/dbus-mainloop.c: verbosity changes
6591
6592         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6593         instead of aborting in one of the test codepaths
6594
6595         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6596         caused not printing the pid ever again if a verbose was missing
6597         the newline at the end
6598         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6599
6600         * dbus/dbus-connection.c: verbosity changes; 
6601         (dbus_connection_has_messages_to_send): new function
6602         (_dbus_connection_message_sent): no longer call transport->messages_pending
6603         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6604         try to write() immediately, so we can avoid the write watch. This
6605         is the core purpose of this patchset
6606         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6607         dump the outgoing message queue, so nobody will get confused
6608         trying to send them or thinking stuff is pending to be sent
6609
6610         * bus/test.c: verbosity changes
6611
6612         * bus/driver.c: verbosity/assertion changes
6613
6614         * bus/dispatch.c: a bunch of little tweaks to get it working again
6615         because this patchset changes when/where you need to block.
6616
6617 2004-11-23  Havoc Pennington  <hp@redhat.com>
6618
6619         * test/glib/test-profile.c: modify to accept a plain_sockets
6620         argument in which case it will bench plain sockets instead of
6621         libdbus, for comparison purposes.
6622
6623 2004-11-22  Havoc Pennington  <hp@redhat.com>
6624
6625         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6626         threads for more time, so sysprof can get a grip on it.
6627
6628         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6629         pointless variable
6630
6631 2004-11-13  Havoc Pennington  <hp@redhat.com>
6632
6633         * test/glib/test-profile.c: fix this thing up a bit
6634
6635         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6636         preallocation sizes by a fair bit; not sure if this will be an
6637         overall performance win or not, but it does reduce reallocs.
6638
6639         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6640         the test hack that forced constant realloc if asserts are
6641         disabled, so we can profile sanely. Sprinkle in some
6642         _DBUS_UNLIKELY() which are probably pointless, but before I
6643         noticed the real performance problem I put them in.
6644         (_dbus_string_validate_utf8): micro-optimize this thing a little
6645         bit, though callgrind says it didn't help; then special-case
6646         ascii, which did help a lot; then be sure we detect nul bytes as
6647         invalid, which is a bugfix.
6648         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6649         superstition; use memset to nul the padding instead of a manual
6650         loop.
6651         (_dbus_string_get_length): inline this as a
6652         macro; it showed up in the profile because it's used for loop
6653         tests and so forth
6654
6655 2004-11-10  Colin Walters  <walters@verbum.org>
6656
6657         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6658         for extra paranoia.
6659
6660 2004-11-09  Colin Walters  <walters@verbum.org>
6661
6662         * dbus/dbus-string.c (_dbus_string_get_length): New
6663         function, writes DBusString to C buffer.
6664
6665         * dbus/dbus-string.h: Prototype it.
6666
6667         * dbus/dbus-message.c (dbus_message_type_to_string): New
6668         function, converts message type into C string.
6669
6670         * dbus/dbus-message.h: Prototype it.
6671
6672         * bus/selinux.c (bus_selinux_check): Take source pid,
6673         target pid, and audit data.  Pass audit data to
6674         avc_has_perm.
6675         (log_audit_callback): New function, appends extra
6676         audit information.
6677         (bus_selinux_allows_acquire_service): Also take
6678         service name, add it to audit data.
6679         (bus_selinux_allows_send): Also take message
6680         type, interface, method member, error name,
6681         and destination, and add them to audit data.
6682         (log_cb): Initialize func_audit.
6683         
6684         * bus/selinux.h (bus_selinux_allows_acquire_service)
6685         (bus_selinux_allows_send): Update prototypes 
6686
6687         * bus/services.c (bus_registry_acquire_service): Pass
6688         service name to bus_selinux_allows_acquire_service.
6689
6690         * bus/bus.c (bus_context_check_security_policy): Pass
6691         additional audit data.  Move assignment of dest
6692         to its own line.
6693
6694 2004-11-07  Colin Walters  <walters@verbum.org>
6695
6696         * dbus/dbus-transport-unix.c (do_authentication): Always
6697         initialize auth_completed.
6698         
6699 2004-11-07  Colin Walters  <walters@verbum.org>
6700
6701         * bus/bus.c (load_config): Break into three
6702         separate functions: process_config_first_time_only,
6703         process_config_every_time, and process_config_postinit.
6704         (process_config_every_time): Move call of
6705         bus_registry_set_service_context_table into
6706         process_config_postinit.
6707         (process_config_postinit): New function, does
6708         any processing that needs to happen late
6709         in initialization (and also on reload).
6710         (bus_context_new): Instead of calling load_config,
6711         open config parser here and call process_config_first_time_only
6712         and process_config_every_time directly.  Later, after
6713         we have forked but before changing UID,
6714         invoke bus_selinux_full_init, and then call
6715         process_config_postinit.
6716         (bus_context_reload_config): As in bus_context_new,
6717         load parse file inside here, and call process_config_every_time
6718         and process_config_postinit.
6719
6720         * bus/services.h, bus/services.c
6721         (bus_registry_set_service_context_table): Rename
6722         from bus_registry_set_sid_table.  Take string hash from config
6723         parser, and convert them here into SIDs.
6724
6725         * bus/config-parser.c (struct BusConfigParser): Have
6726         config parser only store a mapping of service->context
6727         string.
6728         (merge_service_context_hash): New function.
6729         (merge_included): Merge context string hashes instead
6730         of using bus_selinux_id_table_union.
6731         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6732         simply create a new string hash.
6733         (bus_config_parser_unref): Unref it.
6734         (start_selinux_child): Simply insert strings into hash,
6735         don't call bus_selinux_id_table_copy_over.
6736
6737         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6738         (bus_selinux_id_table_copy_over): Delete.
6739
6740 2004-11-03  Colin Walters  <walters@verbum.org>
6741
6742         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6743         variables.
6744         
6745 2004-11-03  Colin Walters  <walters@verbum.org>
6746
6747         * bus/test-main.c (test_pre_hook): Fix test logic,
6748         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6749
6750 2004-11-02  Colin Walters  <walters@redhat.com>
6751
6752         * bus/selinux.c (bus_selinux_init): Split into two functions,
6753         bus_selinux_pre_init and bus_selinux_post_init.
6754         (bus_selinux_pre_init): Just determine whether SELinux is
6755         enabled.
6756         (bus_selinux_post_init): Do everything else.
6757
6758         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6759         config file, and bus_selinux_post_init after.  This ensures that
6760         we don't lose the policyreload notification thread that
6761         bus_selinux_init created before forking previously.
6762         
6763         * bus/test-main.c (test_pre_hook): Update for split.
6764
6765 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6766
6767         Patch from Johan Fischer <linux@fischaz.com>
6768         
6769         * mono/doc/Makefile.am (install-data-local): Added directory
6770         install for DESTDIR
6771
6772 2004-10-29  Colin Walters  <walters@redhat.com>
6773
6774         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6775         parameter for fd to write pid to.       
6776
6777         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6778         
6779         * bus/bus.c (bus_context_new): Pass print_pid_fd
6780         to _dbus_become_daemon (bug #1720)
6781
6782 2004-10-29  Colin Walters  <walters@redhat.com>
6783
6784         Patch from Ed Catmur <ed@catmur.co.uk>
6785
6786         * mono/doc/Makefile.am (install-data-local): Handle
6787         DESTDIR.
6788
6789 2004-10-29  Colin Walters  <walters@redhat.com>
6790
6791         * bus/.cvsignore, qt/.cvsignore: Update.
6792
6793 2004-10-29  Colin Walters  <walters@redhat.com>
6794
6795         Patch from Kristof Vansant <de_lupus@pandora.be>
6796
6797         * configure.in: Detect Slackware.
6798         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6799         * bus/rc.messagebus.in: New file.
6800
6801 2004-10-29  Colin Walters  <walters@redhat.com>
6802
6803         * tools/dbus-monitor.c (filter_func): Return
6804         DBUS_HANDLER_RESULT_HANDLED in filter function
6805         for now.  See:
6806         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6807
6808 2004-10-29  Colin Walters  <walters@redhat.com>
6809
6810         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6811
6812         * bus/services.c (bus_registry_acquire_service): 
6813         Correctly retrieve service name from DBusString
6814         for printing.
6815
6816 2004-10-29  Colin Walters  <walters@redhat.com>
6817
6818         * dbus/dbus-glib.h: Update documentation to not
6819         refer to internal APIs.
6820
6821 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6822
6823         * mono/Arguments.cs (GetDBusTypeConstructor):
6824         type.UnderlyingSystemType will return "System.Byte" if you do it
6825         on "byte[]", which is not what we want.  So check the type.IsArray
6826         property and use System.Array instead.
6827
6828 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6829
6830         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6831         the DBusUserInfo structure since this is passed into the function.
6832         This would cause a double free when the function that allocated
6833         the structure would try to free it when an error occured.
6834
6835         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6836         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6837         for service activation to avoid 32bit/64bit parallel install issues
6838
6839 2004-10-21  Colin Walters  <walters@verbum.org>
6840
6841         * AUTHORS: Fix my email address, the @gnu.org one
6842         has been bouncing for some time.  Also add J5.
6843         
6844 2004-10-21  Colin Walters  <walters@verbum.org>
6845
6846         * dbus/dbus-transport-unix.c (do_authentication): Return
6847         authentication status to callers.
6848         (unix_handle_watch): If we completed authentication this round,
6849         don't do another read.  Instead wait until the next iteration,
6850         after we've read any pending data in the auth buffer.
6851         (unix_do_iteration): Ditto.
6852         (unix_handle_watch): Updated for new do_authentication prototype.
6853
6854 2004-10-18  Colin Walters  <walters@verbum.org>
6855
6856         * bus/selinux.c (bus_selinux_enabled): Handle
6857         --disable-selinux case.
6858         
6859 2004-10-18  Colin Walters  <walters@verbum.org>
6860
6861         * bus/selinux.h: Add bus_selinux_enabled.
6862         
6863         * bus/selinux.c (bus_selinux_enabled): Implement it.
6864         
6865         * bus/config-parser.c (struct include): Add
6866         if_selinux_enabled member.
6867         (start_busconfig_child): Parse if_selinux_enabled
6868         attribute for include.
6869         (bus_config_parser_content): Handle it.
6870
6871         * bus/session.conf.in, bus/system.conf.in: Add
6872         inclusion of context mapping to default config files;
6873         conditional on SELinux being enabled.
6874         
6875         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6876         
6877         * test/data/invalid-config-files/badselinux-1.conf, 
6878         test/data/invalid-config-files/badselinux-2.conf:
6879         Test files for bad syntax.
6880         
6881 2004-10-17  Colin Walters  <walters@verbum.org>
6882
6883         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6884         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6885         format specifier mismatches.
6886
6887 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6888
6889         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6890         format string.
6891
6892         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6893         pointer (bug #1540, Leonardo Boiko).
6894
6895 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6896
6897         * mono/BusDriver.cs: Changed BusDriver struct to remove
6898         the ServiceCreated and ServiceDeleted events and replace them
6899         with the new ServiceOwnerChanged event.
6900
6901         * mono/example/BusListener.cs: Added a new example program,
6902         which listens for and reports any ServiceOwnerChanged events
6903         on the bus driver.
6904
6905         * mono/example/Makefile.am (DESTDIR): Build changes for the
6906         new BusListener.cs example.
6907
6908 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6909
6910         * bus/signals.c (bus_match_rule_parse): validate the components of
6911         match rules (bug #1439).
6912
6913         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6914
6915 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6916
6917         * doc/dbus-specification.xml: document ServiceOwnerChanged
6918         signal.
6919         
6920         * bus/driver.c, bus/driver.h, bus/services.c: Use
6921         ServiceOwnerChanged signal instead of ServiceCreated and
6922         ServiceDeleted.
6923         
6924         * bus/dispatch.c: update testcase for the new signal.
6925
6926 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6927
6928         Patch from Nat Friedman <nat@novell.com>
6929
6930         * mono/Makefile.am: A number of small build fixes to allow "make
6931         distcheck" to succeed.
6932
6933         * mono/example/Makefile.am: "make distcheck" fixes.
6934
6935         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6936         key in @srcdir@.
6937
6938         * test/Makefile.am: "make distcheck" fixes.
6939
6940 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6941
6942         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6943
6944         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6945
6946         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6947         messages after the first one (bug #1389).
6948         
6949         * bus/dispatch.c (check_double_hello_message): add a test case for
6950         the double hello message bug.
6951         (check_existent_service_activation): fix check of spawning error.
6952         
6953 2004-09-16  David Zeuthen  <david@fubar.dk>
6954
6955         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6956
6957 2004-09-12  David Zeuthen  <david@fubar.dk>
6958
6959         Patch from Kay Sievers <kay.sievers@vrfy.org>
6960
6961         * bus/bus.c (bus_context_new):
6962         * bus/bus.h:
6963         * bus/main.c (usage)
6964         (main):
6965         Add commandline option --nofork to override configuration file
6966         setting.
6967
6968 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6969
6970         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6971         compilers don't like it (bug #974).
6972
6973 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6974
6975         * qt/connection.*: Applied patch by Jérôme Lodewyck
6976         <lodewyck@clipper.ens.fr> to integrate an existing
6977         connection into the Qt eventloop
6978
6979 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6980
6981         * mono/BusDriver.cs: Added.  This is a class for interacting with
6982         the org.freedesktop.DBus service.
6983
6984         * mono/Message.cs: Added a mechanism to expose the message that is
6985         currently being dispatched via the static Message.Current
6986         property.  Added Message.Sender and Message.Destination
6987         properties.
6988
6989         * mono/Handler.cs: Expose the dispatched message via
6990         Message.Current when handling method calls.
6991
6992         * mono/Service.cs: Expose the dispatched message via
6993         Message.Current when handling signal emissions.
6994         
6995         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6996         Connection.BaseService property.
6997
6998 2004-08-28  Havoc Pennington  <hp@redhat.com>
6999
7000         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7001
7002         More fixes from Steve Grubb
7003         
7004         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7005         (_dbus_listen_tcp_socket): fix fd leak
7006
7007         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7008         EINTR to a bit lower in the code
7009
7010 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7011
7012         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7013         TRUE if we are inquiring about the existence of the built-in
7014         org.freedesktop.DBus service.
7015
7016 2004-08-25  John Palmieri  <johnp@redhat.com>
7017         * bus/config-parser.c:
7018         (struct PolicyType): Add POLICY_CONSOLE
7019         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7020         (start_busconfig_child): Sets up console element when
7021         <policy at_console=""> is encountered in a policy file
7022         (append_rule_from_element): Convert console elements to console
7023         rules.
7024
7025         * bus/policy.c: 
7026         (bus_policy_create_client_policy): Add console rules to the client
7027         policy based on if the client is at the console
7028         (bus_policy_append_console_rule): New function for adding a
7029         console rule to a policy
7030         (bus_policy_merge): Handle console rule merging
7031
7032         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7033         where we check for console user files
7034         
7035         * dbus/dbus-sysdeps.c:
7036         (_dbus_file_exists): New function which checks if the given
7037         file exists
7038         (_dbus_user_at_console): New function which does the system
7039         specific process of checking if the user is at the console
7040
7041         * dbus/dbus-userdb.c:
7042         (_dbus_is_console_user): New function converts a UID to user name
7043         and then calls the system specific _dbus_user_at_console to 
7044         see if the user is at the console and therefor a console user
7045
7046 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7047
7048         * bus/config-parser.c (set_limit):
7049         * bus/dbus-daemon-1.1.in:
7050         * test/data/valid-config-files/many-rules.conf: set the
7051         max_match_rules_per_connection limt from the config file. 
7052
7053         * doc/busconfig.dtd: update the DTD.
7054
7055         * bus/driver.c: remove some unused variables.
7056
7057 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7058
7059         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7060         it's been replaced by dbus_g_bus_get
7061
7062 2004-08-23  Colin Walters  <walters@redhat.com>
7063
7064         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7065
7066         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7067
7068         * bus/selinux.c: Create a thread for policy reload notification.
7069         (bus_selinux_get_policy_root): Implement.
7070
7071         * bus/config-parser.c (start_busconfig_child)
7072         (bus_config_parser_content): Support SELinux-root relative
7073         inclusion.
7074
7075         * configure.in <HAVE_SELINUX>: Add -lpthread.
7076         
7077         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7078         (test_post_hook): Move memory checking into here.
7079         (test_pre_hook, test_post_hook): Move SELinux checks in
7080         here, but conditional on a DBUS_TEST_SELINUX environment
7081         variable.  Unfortunately we can't run the SELinux checks
7082         as a normal user, since they won't have any permissions
7083         for /selinux.  So this will have to be tested manually
7084         for now, until we have virtualization for most of
7085         libselinux.
7086         
7087 2004-08-23  Havoc Pennington  <hp@redhat.com>
7088
7089         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7090         drop supplementary groups, suggested by Steve Grubb
7091
7092 2004-08-20  Colin Walters  <walters@redhat.com>
7093
7094         * bus/config-parser.c (start_busconfig_child): Remove some unused
7095         variables.
7096         
7097         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7098         warning.
7099
7100 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7101
7102         * configure.in: If --enable-mono is passed in, if we can't find
7103         mono error out.
7104
7105         * mono/Makefile.am: Use /gacutil to install assemblies into the
7106         GAC and not /root.
7107
7108 2004-08-12  Havoc Pennington  <hp@redhat.com>
7109
7110         * NEWS: update for 0.22
7111
7112         * configure.in: release 0.22
7113
7114 2004-08-11  Colin Walters  <walters@redhat.com>
7115
7116         * tools/dbus-send.c (main, usage): Add --reply-timeout
7117         argument.
7118
7119 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7120
7121         * bus/bus.c (process_config_first_time_only): get rid of an unused
7122         DBusError that was causing a memoy leak (bug #989).
7123
7124         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7125         fix compilation on Solaris/Forte C (bug #974)
7126
7127         * bus/main.c (main): plug two minuscule memleaks.
7128
7129 2004-08-10  Havoc Pennington  <hp@redhat.com>
7130
7131         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7132
7133 2004-08-09  Havoc Pennington  <hp@redhat.com>
7134
7135         * COPYING: switch to Academic Free License version 2.1 instead of
7136         2.0, to resolve complaints about patent termination clause.
7137
7138 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7139
7140         * README: added documentation for the --enable-python 
7141         configure switch.
7142
7143 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7144
7145         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7146         _unref in the SELinux support.
7147
7148         * doc/busconfig.dtd: update DTD for SELinux support.
7149
7150         * bus/config-loader-libxml.c: fix error handler and parser
7151         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7152
7153         * configure.in: remove the warning about libxml2.
7154
7155         * dbus/dbus-bus.c: silence doxygen warning.
7156
7157 2004-07-31  Colin Walters  <walters@redhat.com>
7158
7159         * configure.in: Move #error in SELinux check to its own line.
7160
7161 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7162
7163         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7164         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7165         dbus_error_set.
7166
7167         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7168         broken by the change in the _SET_OOM macros.
7169
7170 2004-07-31  Colin Walters  <walters@redhat.com>
7171
7172         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7173         BUS_SET_OOM.
7174
7175 2004-07-31  Colin Walters  <walters@redhat.com>
7176
7177         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7178         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7179         AC_MSG_CHECKING.
7180
7181 2004-07-24  Havoc Pennington  <hp@redhat.com>
7182
7183         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7184
7185         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7186         functionality
7187
7188         * configure.in: add --enable-selinux
7189         
7190         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7191
7192         * bus/main.c (main): initialize and shut down selinux
7193
7194         * bus/connection.c: store SELinux ID on each connection, to avoid 
7195         repeated getting of the string context and converting it into 
7196         an ID
7197
7198         * bus/bus.c (bus_context_get_policy): new accessor, though it
7199         isn't used
7200         (bus_context_check_security_policy): check whether the security
7201         context of sender connection can send to the security context of
7202         recipient connection
7203
7204         * bus/config-parser.c: add parsing for <selinux> and <associate>
7205         
7206         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7207         implement dbus_connection_get_unix_fd()
7208
7209         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7210         function, used by the selinux stuff
7211         
7212 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7213
7214         * bus/config-loader-libxml.c: complete the implementation of
7215         libxml backend for config file loader. Doesn't work with full OOM
7216         test yet. 
7217         
7218         * configure.in: change error when selecting libxml into a warning.
7219         
7220         * test/data/invalid-config-files: add two non-well-formed XML
7221         files. 
7222         
7223         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7224         
7225         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7226         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7227         be necessary to read all the buffer. (bug #894)
7228
7229         * bus/activation.c (bus_activation_activate_service): fix a
7230         potential assertion failure (bug #896). Small optimization in the
7231         case of auto-activation messages.
7232
7233         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7234         add test case for byte-through-vararg bug (#901). patch by Kimmo
7235         Hämäläinen. 
7236
7237 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7238
7239         * python/dbus.py:
7240         * python/dbus_bindings.pyx.in:
7241         Add dbus.init_gthreads (), allow emit_signal to pass
7242         arguments to the signal.
7243         
7244 2004-07-24  Havoc Pennington  <hp@redhat.com>
7245
7246         * AUTHORS: add some people, not really comprehensively, let me
7247         know if I missed you
7248
7249 2004-07-24  Havoc Pennington  <hp@redhat.com>
7250
7251         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7252         Owen
7253
7254         * test/Makefile.am (DIST_SUBDIRS): here also
7255
7256 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7257
7258         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7259         breaking build on Solaris, reported by Farhad Saberi on the ML.
7260
7261         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7262         va_arg invocation to account for integer promotion in the case of
7263         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7264
7265         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7266         _dbus_list_get_first_link, not _dbus_list_get_first.
7267
7268         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7269
7270         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7271         handler functions so that the asserts in _dbus_object_subtree_unref
7272         do not fail.
7273
7274         * dbus/dbus-transport-unix.c (do_reading):
7275         _dbus_transport_queue_messages return value is of type
7276         dbus_bool_t, not DBusDispatchStatus.
7277         
7278 2004-07-19  David Zeuthen  <david@fubar.dk>
7279
7280         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7281
7282         * bus/dispatch.c:
7283         (check_get_connection_unix_user): Debug says GetProperty; but the
7284         method is called GetConnectionUnixUser
7285         (check_get_connection_unix_process_id): New function
7286         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7287         also call check_get_connection_unix_process_id()
7288         
7289         * bus/driver.c:
7290         (bus_driver_handle_get_connection_unix_process_id): New function,
7291         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7292         interface
7293         
7294         * dbus/dbus-auth.c:
7295         (handle_server_data_external_mech): Set pid from the credentials
7296         obtained from the socket
7297         
7298         * dbus/dbus-connection.c:
7299         (dbus_connection_get_unix_process_id): New function
7300         
7301         * dbus/dbus-connection.h: 
7302         Add prototype for dbus_connection_get_unix_process_id
7303         
7304         * dbus/dbus-transport.c:
7305         (_dbus_transport_get_unix_process_id): New function
7306         
7307         * dbus/dbus-transport.h:
7308         Add prototype for _dbus_transport_get_unix_process_id
7309         
7310 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7311
7312         * dbus/dbus-message.c: Message counter fix, patch by Christian
7313         Hammond <chipx86@gnupdate.org>
7314
7315 2004-07-18  Seth Nickell  <seth@gnome.org>
7316
7317         * python/dbus.py:
7318         * python/dbus_bindings.pyx.in:
7319         * python/tests/test-client.py:
7320
7321         Add dbus.ByteArray and dbus_bindings.ByteArray
7322         types so that byte streams can be passed back.
7323
7324         Give jdahlin the heaps of credit that are so
7325         rightfully his.
7326         
7327 2004-07-12  Seth Nickell  <seth@gnome.org>
7328
7329         * python/dbus.py:
7330
7331         Add message argument to the default object_method_handler
7332         function.
7333         
7334         * python/dbus_bindings.pyx.in:
7335
7336         Automatically return NIL when passed an empty list
7337         (we can't pass back a list since lists are typed
7338         and we don't have any idea what type the the client
7339         intended the list to be... :-( )
7340         
7341 2004-07-10  Seth Nickell  <seth@gnome.org>
7342
7343         * python/examples/Makefile.am:
7344
7345         Fix distcheck breakage caused by new examples.
7346
7347 2004-07-10  Seth Nickell  <seth@gnome.org>
7348
7349         * python/dbus.py:
7350
7351         Add "message" argument to service-side dbus.Object
7352         methods. This will break existing services written
7353         using the python bindings, but will allow extraction
7354         of all the message information (e.g. who its from).
7355
7356         Add improved "object oriented" signal handling/emission.
7357         
7358         * python/examples/example-service.py:
7359
7360         Nix this example.
7361         
7362         * python/examples/example-signal-emitter.py:
7363         * python/examples/example-signal-recipient.py:
7364
7365         Two new examples that show how to emit and receive
7366         signals using the new APIs.
7367         
7368         * python/examples/example-signals.py:
7369         * python/examples/gconf-proxy-service.py:
7370         * python/examples/gconf-proxy-service2.py:
7371
7372         Add "message" argument to service methods.
7373
7374 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7375
7376         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7377         * dbus/bus.c (dbus_bus_get_unix_user)
7378         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7379         method of org.freedesktop.DBus interface.
7380
7381         * bus/dispatch.c: test case
7382
7383 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7384
7385         * python/Makefile.am: switched include directory from glib/ to dbus/
7386         since dbus-glib.h moved
7387  
7388 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7389
7390         * configure.in: prevent building the gcj stuff and libxml loader
7391         since they are broken.
7392
7393 2004-06-20  Havoc Pennington  <hp@redhat.com>
7394
7395         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7396         codes from the dbus error names
7397         
7398         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7399         as dbus/dbus-glib.h and that breakage is now visible due to 
7400         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7401         
7402         * glib/dbus-glib.h: s/gproxy/g_proxy/
7403
7404         * dbus/dbus-shared.h: new header to hold stuff shared with
7405         binding APIs
7406         
7407         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7408         than dbus-errors.h
7409
7410         * glib/dbus-glib.h (dbus_set_g_error): move to
7411         dbus-glib-lowlevel.h
7412
7413         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7414         of stuff to enable this
7415
7416         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7417
7418         * a bunch of other changes with the same basic "separate glib 
7419         bindings from dbus.h" theme
7420         
7421 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7422
7423         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7424
7425         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7426
7427 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7428
7429         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7430         the reply value of the ServiceExists message.
7431
7432 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7433
7434         * python/dbus_bindings.pyx.in: No longer need to parse path
7435         elements and pass them as arrays of strings.  The C API now
7436         accepts plain path strings.
7437         (_build_parsed_path): removed 
7438
7439 2004-06-07  Havoc Pennington  <hp@redhat.com>
7440
7441         * doc/TODO: remove auto-activation item since it's done; sort
7442         items by importance/milestone
7443
7444 2004-06-07  Havoc Pennington  <hp@redhat.com>
7445
7446         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7447         random signature when using REQUIRED_FIELDS (this hack won't work
7448         in the long term)
7449
7450         * dbus/dbus-message.c: change the signature to be a header field,
7451         instead of message->signature special-case string. Incremental
7452         step forward. Then we can fix up code to send the signature in the
7453         message, then fix up code to validate said signature, then fix up
7454         code to not put the typecodes inline, etc.
7455         (load_one_message): don't make up the signature after the fact
7456         (decode_header_data): require signature field for the known
7457         message types
7458
7459         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7460
7461         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7462
7463 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7464
7465         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7466
7467         * mono/Handler.cs: Updated to follow new path argument for
7468         (un-)registering objects.
7469
7470         * mono/example/Makefile.am:
7471         * mono/Makefile.am:
7472         * configure.in: Bumped required version for mono and use new -pkg
7473         syntax for deps
7474
7475 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7476
7477         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7478         registration functions take the path argument as char* instead of
7479         char**.
7480
7481         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7482         split off the path decompostion part of
7483         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7484         warnings. 
7485
7486         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7487         
7488 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7489  
7490         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7491         machine approach.  A state is implemented as a function that
7492         handles incoming events as specified for that state.
7493         
7494         * doc/dbus-specification.xml: Update auth protocol state machine
7495         specification to match implementation.  Remove some leftover
7496         base64 examples.
7497
7498 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7499
7500         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7501         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7502         quiet doxygen.
7503
7504         * Doxyfile.in: remove deprecated options.
7505
7506         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7507         glib/test-thread.h, glib/test-thread-client.c,
7508         glib/test-thread-server.c, glib/test-profile.c,
7509         glib/test-dbus-glib.c: remove these unused files.
7510
7511 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7512
7513         * dbus/dbus-object-tree.c
7514         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7515         non-fallback handlers (bug #684).
7516         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7517         (find_subtree_recurse): report wether the returned subtree is an
7518         exact match or a "fallback" match higher up in the tree.
7519         (object_tree_test_iteration): update test case.
7520
7521 2004-06-01  Seth Nickell  <seth@gnome.org>
7522
7523         * python/dbus_bindings.pyx.in:
7524         * python/tests/test-client.py:
7525
7526         Round off basic type support. Add dicts (yay!), and 
7527         remaining array types.
7528
7529         Make MessageIter more general so it works for dicts too.
7530
7531         Mark all loop variables as C integers.
7532         
7533 2004-05-31  Havoc Pennington  <hp@redhat.com>
7534
7535         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7536         "in" before "out"
7537
7538         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7539
7540         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7541         option that runs the tests, and start filling in some code
7542         including for starters just dumping the interfaces to stdout
7543
7544         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7545
7546         * test/data/valid-introspection-files/lots-of-types.xml: test of
7547         an example introspection file
7548
7549         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7550         "node" (I think...)
7551
7552 2004-05-31  Seth Nickell  <seth@gnome.org>
7553
7554         * python/dbus_bindings.pyx.in:
7555         * python/tests/test-client.py:
7556
7557         Test Suite: 1
7558         Python Bindings: 0
7559
7560         Fix string array memory trashing bug... oops...
7561
7562 2004-05-30  Seth Nickell  <seth@gnome.org>
7563
7564         * python/dbus.py:
7565
7566         Add a nicer-but-less-flexible alternate API for handling 
7567         calls to virtual objects in dbus.ObjectTree.
7568
7569         Screw up the argument order to the dbus.Object constructor
7570         for consistency with dbus.ObjectTree (and to make dbus_methods
7571         optional for future extension)
7572         
7573         * python/examples/Makefile.am:
7574         * python/examples/gconf-proxy-service.py:
7575         * python/examples/gconf-proxy-service2.py:
7576
7577         Alternate implementation of gconf-proxy-service using the
7578         nicer dbus.ObjectTree API.
7579         
7580         * python/examples/example-service.py:
7581         * python/tests/test-server.py
7582
7583         Reverse the argument order to deal with dbus.Object constructor
7584         changes.
7585         
7586 2004-05-30  Seth Nickell  <seth@gnome.org>
7587
7588         * python/examples/example-client.py:
7589         * python/examples/example-service.py:
7590
7591         Take it back. Lists seem to work but they're broken
7592         in the test suite. Make the base examples use
7593         lists (works fine).
7594
7595 2004-05-30  Seth Nickell  <seth@gnome.org>
7596
7597         * python/dbus_bindings.pyx.in:
7598         * python/tests/test-client.py:
7599
7600         Add some more tests and fix errors that crop up.
7601         Unfortunately, currently it seems like marshalling
7602         and unmarshalling of lists is completely broken :-(
7603
7604 2004-05-30  Seth Nickell  <seth@gnome.org>
7605
7606         * python/dbus_bindings.pyx.in:
7607
7608         Add support for ObjectPath type.
7609
7610         * python/dbus.py:
7611
7612         Refactor message handling code to a common function.
7613         
7614         * python/tests/test-client.py:
7615         * python/tests/test-server.py:
7616
7617         Add tests that check to make sure values of all types
7618         can be echoed from a service w/o mangling.
7619         
7620 2004-05-29  Seth Nickell  <seth@gnome.org>
7621
7622         * python/dbus.py:
7623
7624         Add ObjectTree class which allows implementation
7625         of trees of "virtual" objects. Basically the python
7626         wrapper for "register_fallback".
7627         
7628         * python/examples/Makefile.am
7629         * python/examples/gconf-proxy-client.py:
7630         * python/examples/gconf-proxy-service.py:
7631
7632         Implement a simple GConf proxy service that supports
7633         get/set on string and int GConf keys using the ObjectTree.
7634         
7635 2004-05-29  Seth Nickell  <seth@gnome.org>
7636
7637         * python/dbus.py:
7638         * python/examples/example-client.py:
7639         * python/examples/example-service.py:
7640         * python/examples/list-system-services.py:
7641
7642         Add SessionBus, SystemBus and ActivationBus classes
7643         so you don't need to know the special little BUS_TYPE
7644         flag.
7645         
7646 2004-05-29  Havoc Pennington  <hp@redhat.com>
7647
7648         * bus/config-parser.c (process_test_valid_subdir): temporarily
7649         stop testing config parser OOM handling, since expat has issues
7650         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7651
7652         * bus/dbus-daemon-1.1.in: change requested_reply to
7653         send_requested_reply/receive_requested_reply so we can send the
7654         replies, not just receive them.
7655
7656         * bus/config-parser.c: parse the new
7657         send_requested_reply/receive_requested_reply
7658
7659         * bus/policy.c (bus_client_policy_check_can_send): add
7660         requested_reply argument and use it
7661
7662         * bus/bus.c (bus_context_check_security_policy): pass through
7663         requested_reply status to message send check
7664
7665         * bus/system.conf.in: adapt to requested_reply change
7666         
7667 2004-05-28  Havoc Pennington  <hp@redhat.com>
7668
7669         * test/glib/test-service-glib.c (main): remove unused variable
7670
7671         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7672
7673         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7674         from the enum, no longer in use.
7675
7676         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7677         works right.
7678
7679         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7680         whether error_name passed in is a valid error name.
7681
7682 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7683
7684         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7685         OBJECT_PATH and OBJECT_PATH_ARRAY
7686
7687 2004-05-28  Seth Nickell  <seth@gnome.org>
7688
7689         * python/examples/Makefile.am:
7690
7691         Forget to add Makefile.am. Do not pass go.
7692
7693 2004-05-28  Michael Meeks  <michael@ximian.com>
7694
7695         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7696         fix no int64 case.
7697
7698         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7699
7700         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7701         (_dbus_message_iter_get_basic_type_array): impl.
7702         drastically simplify ~all relevant _get methods to use these.
7703         (_dbus_message_iter_append_basic_array),
7704         (dbus_message_iter_append_basic): impl
7705         drastically simplify ~all relevant _append methods to use these.
7706
7707         * dbus/dbus-message-builder.c (parse_basic_type) 
7708         (parse_basic_array, lookup_basic_type): impl.
7709         (_dbus_message_data_load): prune scads of duplicate /
7710         cut & paste coding.
7711
7712         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7713         (_dbus_demarshal_basic_type): implement,
7714         (demarshal_and_validate_len/arg): beef up debug.
7715         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7716
7717 2004-05-27  Seth Nickell  <seth@gnome.org>
7718
7719         * configure.in:
7720         * python/Makefile.am:
7721
7722         Include the example python apps in the tarball.
7723         
7724         * python/examples/list-system-services.py
7725
7726         Add a python new example that fetches the list of services
7727         from the system bus.
7728         
7729 2004-05-27  Seth Nickell  <seth@gnome.org>
7730
7731         * python/dbus.py:
7732         * python/dbus_bindings.pyx.in:
7733
7734         Fix failure to notify that a signal was not handled,
7735         resulted in hung functions.
7736         
7737 2004-05-25  Colin Walters  <walters@redhat.com>
7738
7739         * tools/dbus-monitor.c (main): Monitor all types of messages.
7740
7741 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7742
7743         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7744         which unregisters the object path and disposes the handler.
7745
7746 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7747  
7748         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7749          
7750         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7751         operands to && so we call dbus_message_iter_next () for the last
7752         argument also.
7753
7754 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7755
7756         * dbus/dbus-object-tree.c
7757         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7758         children even if the requested path isn't registered.
7759         (object_tree_test_iteration): test object_tree_list_registered.
7760
7761         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7762         it to 0.
7763         
7764 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7765
7766         * doc/TODO: Remove resolved items.
7767
7768         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7769         field.
7770         
7771         * bus/connection.c (bus_connections_expect_reply): Enforce the
7772         per-connection limit on pending replies.
7773         
7774         Patch from Jon Trowbridge <trow@ximian.com>:
7775  
7776         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7777         up a watch that triggers a config reload when one end of the pipe
7778         becomes readable.
7779         (signal_handler): Instead of doing the config reload in our SIGHUP
7780         handler, just write to the reload pipe and let the associated
7781         watch handle the reload when control returns to the main loop.
7782  
7783         * bus/driver.c (bus_driver_handle_reload_config): Added.
7784         Implements a ReloadConfig method for requesting a configuration
7785         file reload via the bus driver.
7786  
7787 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7788
7789         * HACKING: Updated release instructions concerning the wiki page.
7790
7791 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7792
7793         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7794         filter against auth->allowed_mechs; we only add allowed mechs in
7795         record_mechanisms().
7796  
7797         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7798         ALLOWED_MECHS to auth-script format so we can set the list of
7799         allowed mechanisms.
7800  
7801         * data/auth/client-out-of-mechanisms.auth-script: New test to
7802         check client disconnects when it is out of mechanisms to try.
7803  
7804         * dbus/dbus-auth.c (process_command): Remove check for lines
7805         longer that 1 MB; we only buffer up maximum 16 kB.
7806  
7807         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7808         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7809         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7810         assume there might be unused bytes.
7811  
7812         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7813         client-out-of-mechs, it is handled in process_reject(). Move check
7814         for max failures to send_rejected(), as it's a server-only thing.
7815
7816         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7817         send_auth(), send_data(), send_rejected(), send_error(),
7818         send_ok(), send_begin() and send_cancel().
7819
7820 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7821
7822         Remove base64 encoding, replace with hex encoding. Original patch
7823         from trow@ximian.com, added error handling.
7824
7825         * dbus/dbus-string.c (_dbus_string_base64_encode)
7826         (_dbus_string_base64_decode): Remove.
7827         (_dbus_string_hex_decode): Add end_return argument so we can
7828         distinguish between OOM and invalid hex encoding.
7829         (_dbus_string_test): Remove base64 tests and add test case for
7830         invalid hex.
7831
7832         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7833         Replace base64 with hex.
7834
7835         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7836         for invalid hex encoded data in auth protocol.
7837
7838 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7839
7840         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7841         leak.
7842
7843 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7844
7845         * mono/dbus-sharp.dll.config.in: Added for GAC
7846         * mono/dbus-sharp.snk: Added for GAC
7847         * mono/Assembly.cs.in: Added for GAC
7848         * mono/Makefile.am: Changes for GAC installation        
7849         * configure.in: Added refs for dbus-sharp.dll.config.in and
7850         Assembly.cs.in. More fixes for mono testing
7851         * mono/example/Makefile.am: Changed var to CSC
7852         * Makefile.am: Changed flag name to DBUS_USE_CSC
7853
7854 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7855
7856         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7857         * mono/doc/*: Added documentation framework
7858         * configure.in: Added monodoc check
7859         * README: Added description of mono configure flags
7860
7861 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7862
7863         * doc/dbus-specification.xml: Added a "Required" column to the 
7864         header fields table and changed the "zero or more" verbage in
7865         the above paragraph to read "The header must contain the required 
7866         named header fields and zero or more of the optional named header 
7867         fields".
7868         * test/data/invalid-messages/*.message: Added the required PATH 
7869         named header field to the tests so that they don't fail on 
7870         'Missing path field'
7871
7872 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7873
7874         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7875         the stack by implicitly defining variable and parameter types and
7876         removing the hack of defining C pointers as python objects and later
7877         casting them.
7878
7879 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7880
7881         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7882
7883 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7884
7885         * mono/DBusType/Dict.cs: Handle empty dicts
7886         * mono/DBusType/Array.cs: Handle empty arrays
7887         * mono/Arguments.cs: Handle empty arguments
7888
7889 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7890
7891         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7892         field
7893
7894 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7895
7896         * test/data/valid-messages/standard-*.message: Update message
7897         test scripts to new header field names.
7898
7899 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7900
7901         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7902         overflow to times_we_did_each_thing array which would chop off the
7903         first character of the failure_dir string. Increased the size of
7904         the array to 7 to reflect the number of random mutation functions
7905         we have.
7906
7907 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7908
7909         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7910         unix_server->watch here, it is unreffed in disconnect.
7911         (_dbus_server_new_for_tcp_socket): convert NULL host to
7912         "localhost" here so we don't append NULL to address.
7913         
7914         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7915         various addresses, including tcp with no explicit host.
7916
7917 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7918
7919         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7920         fix incorrect setting of .name_offset in the HeaderField (it was
7921         off by two bytes, positioned right after the name and typecode)
7922
7923         * bus/bus.c (bus_context_new, bus_context_unref): test before
7924         calling dbus_server_free_data_slot and _dbus_user_database_unref
7925         in case of an error.
7926
7927         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7928         by libdbus-gtool.
7929
7930 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7931
7932         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7933         _dbus_poll() instead of select().
7934
7935 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7936
7937         * bus/main.c (signal_handler): Reload the configuration files
7938         on SIGHUP.
7939         (main): Set up our SIGHUP handler.
7940
7941         * bus/bus.c (struct BusContext): Store the config file, user and
7942         fork flag in the BusContext.
7943         (process_config_first_time_only): Added.  Contains the code
7944         (previously in bus_context_new) for setting up the BusContext from
7945         the BusConfigParser that should only be run the first time the
7946         config files are read.
7947         (process_config_every_time): Added.  Contains the code (previously
7948         in bus_context_new) for setting up the BusContext from the
7949         BusConfigParser that should be run every time the config files are
7950         read.
7951         (load_config): Added.  Builds a BusConfigParser from the config
7952         files and passes the resulting structure off to
7953         process_config_first_time_only (assuming this is the first time)
7954         and process_config_every_time.
7955         (bus_context_new): All of the config-related code has been moved
7956         to process_config_first_time_only and process_config_every_time.
7957         Now this function just does the non-config-related initializations
7958         and calls load_config.
7959         (bus_context_reload_config): Added.
7960
7961 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7962
7963         * bus/driver.c (bus_driver_handle_get_service_owner):
7964         implement a GetServiceOwner method.
7965         * doc/dbus-specification.xml: document it.
7966         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7967         
7968         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7969         implement, using the bus GetServiceOwner method.
7970
7971         * test/glib/test-dbus-glib.c:
7972         use dbus_gproxy_new_for_service_owner so that we can receive the
7973         signal. 
7974
7975 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7976
7977         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7978         dbus/dbus-message.c, dbus/dbus-protocol.h
7979         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7980
7981         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7982         dbus/dbus-message.c, dbus/dbus-protocol.h
7983         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7984
7985         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7986         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7987         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7988
7989         * doc/dbus-specification.xml (Header Fields Table):
7990         s/SERVICE/DESTINATION
7991         s/SENDER_SERVICE/SENDER
7992
7993
7994 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7995
7996         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7997         a few seconds.
7998
7999 2004-04-13  Michael Meeks  <michael@ximian.com>
8000
8001         * glib/dbus-gobject.c (handle_introspect): split out
8002         (introspect_properties): this.
8003         (handle_introspect): implement this.
8004
8005         * test/glib/Makefile.am: use the absolute path so the bus
8006         daemon's chdir ("/") doesn't kill us dead.
8007
8008         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8009
8010 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8011
8012         * bus/config-parser.c (struct BusConfigParser): Added
8013         included_files field.
8014         (seen_include): Added.  Checks whether or not a file has already
8015         been included by any parent BusConfigParser.
8016         (bus_config_parser_new): Copy the parent's included_files.
8017         (include_file): Track which files have been included, and fail on
8018         circular inclusions.
8019         (process_test_valid_subdir): Changed printf to report if we are
8020         testing valid or invalid conf files.
8021         (all_are_equiv): Changed printf to be a bit clearer about
8022         what we are actually doing.
8023         (bus_config_parser_test): Test invalid configuration files.
8024
8025 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8026
8027         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8028         argument.  If non-null, the newly-constructed BusConfigParser will
8029         be initialized with the parent's BusLimits instead of the default
8030         values.
8031         (include_file): When including a config file, pass in
8032         the current parser as the parent and then copy the BusLimits
8033         from the included BusConfigParser pack to the current parser.
8034         (process_test_valid_subdir): Renamed from process_test_subdir.
8035         (process_test_equiv_subdir): Added.  Walks through a directory,
8036         descending into each subdirectory and loading the config files
8037         it finds there.  If any subdirectory contains two config files
8038         that don't produce identical BusConfigParser structs, fail.
8039         For now, the BusConfigParser's BusPolicies are not compared.
8040         (bus_config_parser_test): Call both process_test_valid_subdir and
8041         process_test_equiv_subdir.
8042
8043         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8044         argument and pass it along to the call to bus_config_parser_new.
8045         Also made a few small changes to allow this code to compile.
8046
8047         * bus/config-loader-expat.c (bus_config_load): Take a parent
8048         argument and pass it along to the call to bus_config_parser_new.
8049
8050         * bus/bus.c (bus_context_new): Load the config file
8051         with a NULL parent argument.
8052
8053 2004-03-29  Michael Meeks  <michael@ximian.com>
8054
8055         * glib/dbus-gobject.c (introspect_properties): split
8056         out, fix mangled 'while' flow control.
8057         (introspect_signals): implement.
8058         (handle_introspect): update.
8059
8060 2004-03-29  Michael Meeks  <michael@ximian.com>
8061
8062         * glib/dbus-gobject.c (set_object_property): split out / 
8063         re-work, use the property type, and not the message type(!)
8064         (get_object_property): ditto.
8065
8066         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8067         (dbus_gvalue_marshal): make this code re-usable, needed
8068         for signals too, also on both proxy and server side.
8069         Re-write for more efficiency / readability.
8070
8071 2004-03-29  Michael Meeks  <michael@ximian.com>
8072
8073         * dbus/dbus-message.c
8074         (dbus_message_new_error_printf): impl.
8075
8076         * dbus/dbus-connection.c
8077         (dbus_connection_unregister_object_path): fix warning.
8078
8079         * configure.in: fix no-mono-installed situation.
8080
8081 2004-03-27  Havoc Pennington  <hp@redhat.com>
8082
8083         Patch from Timo Teräs:
8084         
8085         * tools/dbus-send.c (main): if --print-reply, assume type is
8086         method call; support boolean type args
8087         
8088         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8089         bunch of memleak and logic bugs
8090         
8091 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8092
8093         * mono/Arguments.cs:
8094         * mono/Introspector.cs:
8095         * mono/Handler.cs:
8096         * mono/InterfaceProxy.cs:
8097         * mono/Message.cs
8098         * mono/ProxyBuilder.cs:
8099         * mono/Service.cs:
8100         Added InterfaceProxy class to avoid building proxies for every
8101         object.
8102
8103         * dbus-message.h:
8104         * dbus-message.c (dbus_message_append_args_valist)
8105         (dbus_message_iter_get_object_path)
8106         (dbus_message_iter_get_object_path_array)
8107         (dbus_message_iter_append_object_path)
8108         (dbus_message_iter_append_object_path_array):
8109         Added object_path iter functions to handle OBJECT_PATH arguments
8110         
8111 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8112
8113         First checkin of mono bindings.
8114         * configure.in:
8115         * Makefile.am:
8116         Build stuff for the bindings
8117         * dbus-sharp.pc.in: Added for pkgconfig
8118         
8119 2004-03-21  Havoc Pennington  <hp@redhat.com>
8120
8121         * test/test-service.c (main): remove debug spew
8122
8123 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8124
8125         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8126         arrays
8127
8128         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8129         (dbus_message_iter_init_array_iterator)
8130         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8131         indicate whether the iterator is empty
8132
8133         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8134         warnings
8135
8136 2004-03-19  Havoc Pennington  <hp@redhat.com>
8137
8138         * NEWS: 0.21 updates
8139
8140         * configure.in: 0.21
8141
8142         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8143         
8144         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8145         you don't need pyrex to make dist
8146
8147         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8148         sources; run moc
8149         
8150 2004-03-18  Richard Hult  <richard@imendio.com>
8151
8152         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8153         (dbus_message_set_auto_activation): Add doxygen docs.
8154
8155 2004-03-16  Richard Hult  <richard@imendio.com>
8156
8157         * bus/activation.c: (bus_activation_service_created),
8158         (bus_activation_send_pending_auto_activation_messages),
8159         (bus_activation_activate_service):
8160         * bus/activation.h:
8161         * bus/dispatch.c: (bus_dispatch),
8162         (check_nonexistent_service_auto_activation),
8163         (check_service_auto_activated),
8164         (check_segfault_service_auto_activation),
8165         (check_existent_service_auto_activation), (bus_dispatch_test):
8166         * bus/driver.c: (bus_driver_handle_activate_service):
8167         * bus/services.c: (bus_registry_acquire_service):
8168         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8169         (dbus_message_get_auto_activation):
8170         * dbus/dbus-message.h:
8171         * dbus/dbus-protocol.h: Implement auto-activation.
8172         
8173         * doc/dbus-specification.xml: Add auto-activation to the spec.
8174
8175 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8176
8177         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8178         fix a bug with CUSTOM types.
8179
8180         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8181         a unit test for this bug (used to fail).
8182
8183 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8184
8185         * bus/activation.c:
8186         (babysitter_watch_callback): notify all pending activations waiting for
8187           the same exec that the activation failed.
8188         (bus_activation_activate_service): shortcut the activation if we 
8189           already waiting for the same executable to start up.
8190
8191 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8192
8193         * bus/activation.c: 
8194         - Added service file reloading. 
8195           Each service files directory is kept in an hash table in 
8196           BusActivation and each BusActivationEntry knows what .service-file it
8197           was read from. So when you try to activate a service the bus will 
8198           check if it's been updated, removed or if new .service-files has 
8199           been installed.
8200         - Test code at the bottom for the service file reloading.
8201         * bus/test-main.c: (main):
8202         * bus/test.h:
8203         - added service reloading test.
8204         * dbus/dbus-sysdeps.c: 
8205         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8206
8207 2004-03-08  Michael Meeks  <michael@ximian.com>
8208
8209         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8210         bail immediately if disconnected, to avoid busy loop.
8211
8212         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8213         cleanup cut/paste/inefficiency.
8214
8215 2004-03-01  David Zeuthen  <david@fubar.dk>
8216
8217         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8218         bug where args were used twice. This bug resulted in a segfault
8219         on a Debian/PPC system when starting the messagebus daemon. Include
8220         dbus-sysdeps.h for DBUS_VA_COPY
8221
8222         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8223
8224         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8225         appropriate va_copy implementation. From GLib
8226         
8227 2004-02-24  Joe Shaw  <joe@ximian.com>
8228
8229         * bus/services.c (bus_registry_acquire_service): We need to pass
8230         in the service name to dbus_set_error() to prevent a crash.
8231
8232 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8233
8234         * AUTHORS: Reveal my True identity.
8235
8236 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8237
8238         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8239         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8240
8241 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8242
8243         * doc/TODO: Added not about better error check of configuration files.
8244
8245 2003-12-02  Richard Hult  <richard@imendio.com>
8246
8247         * Update AFL version to 2.0 throughout the source files to reflect
8248         the update that was done a while ago.
8249
8250 2003-12-02  Richard Hult  <richard@imendio.com>
8251
8252         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8253         wrote_dict_key to FALSE on the iter that the dict is appended to,
8254         just like when appending other types. Fixes a bug where a dict
8255         couldn't be put inside a dict.
8256         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8257         (message_iter_test, _dbus_message_test): Add test case for dict
8258         inside dict.
8259
8260 2003-12-01  David Zeuthen  <david@fubar.dk>
8261
8262         * python/dbus.py: Add the actual message when calling the reciever
8263         of a signal such that parameters can be inspected. Add the method
8264         remove_signal_receiver
8265         
8266 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8267
8268         * bus/*.[ch]:
8269         * dbus/*.[ch]:
8270         * glib/*.[ch]: Made ref functions return the pointer
8271
8272 2003-11-25  Zack Rusin  <zack@kde.org>
8273
8274         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8275
8276         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8277         wrappers,
8278
8279         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8280         the Integrator and to better fit with the server,
8281
8282 2003-11-24  Zack Rusin  <zack@kde.org>
8283
8284         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8285         the integrator handles it now
8286
8287         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8288         since QTimer wasn't really meant to be used the way DBusTimeout is
8289
8290 2003-11-24  Zack Rusin  <zack@kde.org>
8291
8292         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8293         Integrator class which integrates D-BUS with the Qt event loop,
8294
8295         * qt/connection.h, qt/connection.cpp: Move all the code which
8296         was dealing with D-BUS integration to the Integrator class,
8297         and start using Integrator,
8298
8299 2003-11-23  Zack Rusin  <zack@kde.org>
8300
8301         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8302         wrapper
8303
8304         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8305         switching namespaces to DBusQt, reworking the class,
8306
8307         * Makefile.cvs: switching dependencies so that it matches KDE 
8308         schematics,
8309         
8310         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8311         the library
8312
8313 2003-11-19  Havoc Pennington  <hp@redhat.com>
8314
8315         * NEWS: update
8316
8317         * configure.in: bump version to 0.20
8318
8319         * configure.in (have_qt): add yet another place to look for qt
8320         (someone hand trolltech a .pc file...)
8321
8322 2003-11-01  Havoc Pennington  <hp@redhat.com>
8323
8324         * doc/dbus-specification.xml: add state machine docs on the auth
8325         protocol; just a first draft, I'm sure it's wrong.      
8326
8327 2003-10-28  David Zeuthen  <david@fubar.dk>
8328
8329         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8330         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8331         
8332 2003-10-28  Havoc Pennington  <hp@redhat.com>
8333
8334         * dbus/dbus-message.c (get_next_field): delete unused function
8335
8336 2003-10-28  Havoc Pennington  <hp@redhat.com>
8337
8338         * bus/expirelist.c (do_expiration_with_current_time): detect
8339         failure of the expire_func due to OOM
8340
8341         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8342
8343         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8344         NoReply error that's now created by the bus when the service exits
8345
8346 2003-10-28  Havoc Pennington  <hp@redhat.com>
8347
8348         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8349         tests for set_path, set_interface, set_member, etc.
8350
8351         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8352
8353         * dbus/dbus-message.c (set_string_field): always just delete and
8354         re-append the field; accept NULL for deletion
8355         (re_align_fields_recurse): reimplement
8356         
8357 2003-10-26  Havoc Pennington  <hp@redhat.com>
8358
8359         * dbus/dbus-connection.c: fix docs to properly describe the
8360         disconnected message
8361         (_dbus_connection_notify_disconnected): remove this function; 
8362         we can't synchronously add the disconnected message, we have to 
8363         do it after we've queued any remaining real messages
8364         (_dbus_connection_get_dispatch_status_unlocked): queue the
8365         disconnect message only if the transport has finished queueing all
8366         its real messages and is disconnected.
8367         (dbus_connection_disconnect): update the dispatch status here
8368
8369 2003-10-22  Havoc Pennington  <hp@redhat.com>
8370
8371         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8372
8373         * bus/connection.c (bus_transaction_send_from_driver): set the
8374         destination to the connection's base service
8375
8376 2003-10-20  Havoc Pennington  <hp@redhat.com>
8377
8378         hmm, make check is currently not passing.
8379         
8380         * doc/dbus-specification.xml: add requirement that custom type
8381         names follow the same rules as interface names.
8382
8383         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8384         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8385         'map'
8386
8387         * doc/dbus-specification.xml: update type codes to match
8388         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8389         CUSTOM. Add type OBJECT_PATH to the spec.
8390
8391 2003-10-17  Havoc Pennington  <hp@redhat.com>
8392
8393         * bus/driver.c (create_unique_client_name): use "." as separator
8394         in base service names instead of '-'
8395
8396         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8397         byte at the end of the string
8398
8399         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8400         optimization macros since string validation seems to be a slow
8401         point.
8402         
8403         * doc/dbus-specification.xml: restrict valid
8404         service/interface/member/error names. Add test suite code for the
8405         name validation.
8406
8407         * dbus/dbus-string.c: limit service/interface/member/error names 
8408         to [0-9][A-Z][a-z]_
8409
8410         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8411         format arg to verbose spew
8412
8413         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8414         memory, return instead of g_error
8415
8416         * test/test-service.c (path_message_func): support emitting a
8417         signal on request
8418
8419         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8420         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8421         assuming the activation bus was the session bus so that services
8422         started manually will still register.
8423         (init_connections_unlocked): fix so that in OOM situation we get
8424         the same semantics when retrying the function
8425         
8426         * test/test-service.c (main): change to use path registration, to
8427         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8428         than DBUS_BUS_SESSION
8429
8430 2003-10-16  Havoc Pennington  <hp@redhat.com>
8431
8432         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8433
8434         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8435         coverage of the tests
8436         (coverage-report.txt): don't move the .da and .bbg files around
8437
8438 2003-10-16  Havoc Pennington  <hp@redhat.com>
8439
8440         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8441         to put there
8442
8443 2003-10-16  Havoc Pennington  <hp@redhat.com>
8444
8445         * bus/connection.c (bus_pending_reply_expired): either cancel or
8446         execute, not both
8447         (bus_connections_check_reply): use unlink, not remove_link, as we
8448         don't want to free the link; fixes double free mess
8449
8450         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8451         where no reply was received
8452
8453         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8454         fix a refcount leak
8455
8456         * bus/signals.c (match_rule_matches): add special cases for the
8457         bus driver, so you can match on sender/destination for it.
8458
8459         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8460         DBUS_PRINT_BACKTRACE is set
8461
8462         * dbus/dbus-internals.c: add pid to assertion failure messages
8463
8464         * dbus/dbus-connection.c: add message type code to the debug spew
8465
8466         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8467         sender=foo not service=foo
8468
8469         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8470         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8471         DBUS_ACTIVATION_ADDRESS instead
8472
8473         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8474         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8475
8476         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8477         context struct
8478
8479         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8480         (dbus_message_iter_get_object_path_array): new function (half
8481         finished, disabled for the moment)
8482         
8483         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8484         DBUS_MESSAGE_TYPE_ERROR
8485
8486         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8487         avoid redirecting stderr to /dev/null
8488         (babysit): close stdin if not doing the "exit_with_session" thing
8489
8490         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8491         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8492         stdout/stdin, so things don't get confused
8493         
8494         * bus/system.conf.in: fix to allow replies, I modified .conf
8495         instead of .conf.in again.
8496
8497 2003-10-14  David Zeuthen  <david@fubar.dk>
8498
8499         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8500         argtype to arg_type when raising unknown arg type exception.
8501         Changed type list to reflect the changes in dbus-protocol.h so 
8502         the bindings actually work.
8503
8504 2003-10-14  Havoc Pennington  <hp@redhat.com>
8505
8506         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8507         to have a bug keeping it from outputting the .da files sometimes
8508         (string_get_string): don't append garbage nul bytes to the string.
8509
8510 2003-10-15  Seth Nickell  <seth@gnome.org>
8511
8512         * python/Makefile.am:
8513
8514         Include dbus_h_wrapper.h in the dist tarball.
8515
8516 2003-10-14  Havoc Pennington  <hp@redhat.com>
8517
8518         * bus/bus.c (bus_context_check_security_policy): revamp this to
8519         work more sanely with new policy-based requested reply setup
8520
8521         * bus/connection.c (bus_transaction_send_from_driver): set bus
8522         driver messages as no reply
8523
8524         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8525         requested_reply attribute on allow/deny rules
8526
8527         * bus/system.conf: add <allow requested_reply="true"/>
8528
8529         * bus/driver.c (bus_driver_handle_message): fix check for replies
8530         sent to the bus driver, which was backward. How did this ever work
8531         at all though? I think I'm missing something.
8532
8533         * dbus/dbus-message.c (decode_header_data): require error and
8534         method return messages to have a reply serial field to be valid
8535         (_dbus_message_loader_queue_messages): break up this function;
8536         validate that reply serial and plain serial are nonzero; 
8537         clean up the OOM/error handling.
8538         (get_uint_field): don't return -1 from this
8539         (dbus_message_create_header): fix signed/unsigned bug
8540
8541         * bus/connection.c (bus_connections_expect_reply): save serial of
8542         the incoming message, not reply serial
8543
8544 2003-10-14  Havoc Pennington  <hp@redhat.com>
8545
8546         * bus/connection.c: implement pending reply tracking using
8547         BusExpireList
8548
8549         * bus/bus.c (bus_context_check_security_policy): verify that a
8550         reply is pending in order to allow a reply to be sent. Deny 
8551         messages of unknown type.
8552
8553         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8554
8555         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8556         (bus_context_get_reply_timeout): new
8557
8558 2003-10-13  Seth Nickell  <seth@gnome.org>
8559
8560         * python/Makefile.am:
8561
8562         Pass "make distcheck": remove a couple files from DIST_FILES
8563         that weren't included in the final version.
8564
8565 2003-10-12  Havoc Pennington  <hp@pobox.com>
8566
8567         Added test code that 1) starts an actual bus daemon and 2) uses
8568         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8569         more testing possible, but this is the basic framework.
8570         
8571         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8572         empty proxy lists from the proxy list hash
8573
8574         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8575         couple of return_if_fail checks
8576
8577         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8578         to allocate, so everything is cleared to NULL as it should be.
8579
8580         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8581         source as data to dbus_connection_set_timeout_functions() as the 
8582         timeout functions expected
8583
8584         * test/glib/run-test.sh: add a little script to start up a message
8585         bus and run tests using it
8586
8587         * tools/dbus-launch.1: updates
8588
8589         * tools/dbus-launch.c (main): add --config-file option
8590
8591         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8592         that could never be reached.
8593
8594         * dbus/dbus-message.c (dbus_message_new_method_return) 
8595         (dbus_message_new_error, dbus_message_new_signal): set the
8596         no-reply-expected flag on all these. Redundant, but may
8597         as well be consistent.
8598
8599 2003-10-11  Havoc Pennington  <hp@pobox.com>
8600
8601         * test/decode-gcov.c (function_solve_graph): make broken block
8602         graph a nonfatal error since it seems to be broken. Need to debug
8603         this.
8604
8605         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8606         can't just check type > INVALID < LAST anymore
8607
8608         * dbus/dbus-message.c (dbus_message_get_signature): new function
8609         (dbus_message_has_signature): new function
8610         (struct DBusMessage): add signature field (right now it isn't sent
8611         over the wire, just generated on the fly)
8612         (dbus_message_copy): copy the signature, and init strings to
8613         proper length to avoid some reallocs
8614         (dbus_message_iter_init_array_iterator): return void, since it
8615         can't fail
8616         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8617         (_dbus_message_loader_queue_messages): add silly temporary hack to
8618         fill in message->signature on load
8619
8620         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8621         characters, so they are relatively human-readable.
8622
8623 2003-10-11  Havoc Pennington  <hp@pobox.com>
8624
8625         * dbus/dbus-message.c (_dbus_message_test): add more test
8626         coverage, but #if 0 for now since they uncover a bug 
8627         not fixed yet; I think in re_align_field_recurse()
8628         (re_align_field_recurse): add FIXME about broken assertion
8629
8630         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8631
8632         * bus/connection.c: share a couple code bits with expirelist.c
8633
8634         * bus/expirelist.h, bus/expirelist.c: implement a generic
8635         expire-items-after-N-seconds facility, was going to share between
8636         expiring connections and replies, decided not to use for expiring
8637         connections for now.
8638
8639         * COPYING: include AFL 2.0 (still need to change all the file headers)
8640
8641 2003-10-09  Havoc Pennington  <hp@redhat.com>
8642
8643         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8644         gcc 3.3. Not that we do anything about it yet.
8645
8646         * bus/signals.c (bus_match_rule_parse): impose max length on the
8647         match rule text
8648
8649         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8650
8651 2003-10-09  Havoc Pennington  <hp@redhat.com>
8652
8653         Make matching rules theoretically work (add parser).
8654         
8655         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8656         the case where destination is explicitly specified as bus driver
8657         and someone else is eavesdropping.
8658         
8659         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8660         definition of eavesdropping and assertion
8661
8662         * tools/dbus-send.c (main): use dbus_message_type_from_string
8663
8664         * bus/signals.c (bus_match_rule_parse): implement
8665
8666         * dbus/dbus-message.c (dbus_message_type_from_string): new
8667
8668         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8669
8670 2003-10-02  Havoc Pennington  <hp@pobox.com>
8671
8672         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8673         dbus_gproxy_oneway_call
8674
8675         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8676         (dbus_server_setup_with_g_main): fix to allow calling them more
8677         than once on the same args
8678         (dbus_bus_get_with_g_main): new function
8679
8680 2003-10-02  Havoc Pennington  <hp@redhat.com>
8681
8682         * doc/dbus-tutorial.xml: write some stuff
8683
8684 2003-09-29  Havoc Pennington  <hp@pobox.com>
8685
8686         * configure.in: split checks for Doxygen from XML docs, check for
8687         xmlto
8688
8689         * doc/Makefile.am: XML-ify all the docs, and add a blank
8690         dbus-tutorial.xml
8691
8692 2003-09-29  Havoc Pennington  <hp@pobox.com>
8693
8694         * Merge dbus-object-names branch. To see the entire patch 
8695         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8696         it's huuuuge though.
8697         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8698         
8699 2003-09-28  Havoc Pennington  <hp@pobox.com>
8700
8701         * HACKING: update to reflect new server
8702
8703 2003-09-26  Seth Nickell  <seth@gnome.org>
8704
8705         * python/dbus.py:
8706         * python/examples/example-signals.py:
8707
8708         Start implementing some notions of signals. The API
8709         is really terrible, but they sort of work (with the
8710         exception of being able to filter by service, and to
8711         transmit signals *as* a particular service). Need to
8712         figure out how to make messages come from the service
8713         we registered :-(
8714         
8715         * python/dbus_bindings.pyx.in:
8716
8717         Removed duplicate message_handler callbacks.
8718         
8719 2003-09-25  Havoc Pennington  <hp@redhat.com>
8720
8721         * bus/session.conf.in: fix my mess
8722
8723 2003-09-25  Havoc Pennington  <hp@pobox.com>
8724
8725         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8726
8727 2003-09-25  Seth Nickell  <seth@gnome.org>
8728
8729         * python/examples/example-service.py:
8730
8731         Johan notices complete wrong code in example-service, but
8732         completely wrong in a way that works exactly the same (!).
8733         Johan is confused, how could this possibly work? Example
8734         code fails to serve purpose of making things clear.
8735         Seth fixes.
8736
8737 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8738
8739         * doc/dbus-specification.sgml: don't require header fields
8740         to be 4-byte aligned and specify that fields should be
8741         distinguished from padding by the fact that zero is not
8742         a valid field name.
8743         
8744         * doc/TODO: remove re-alignment item and add item to doc
8745         the OBJECT_PATH type.
8746         
8747         * dbus/dbus-message.c:
8748         (HeaderField): rename the original member to value_offset
8749         and introduce a name_offset member to keep track of where
8750         the field actually begins.
8751         (adjust_field_offsets): remove.
8752         (append_int_field), (append_uint_field),
8753         (append_string_field): don't align the start of the header
8754         field to a 4-byte boundary.
8755         (get_next_field): impl finding the next marhsalled field
8756         after a given field.
8757         (re_align_field_recurse): impl re-aligning a number of
8758         already marshalled fields.
8759         (delete_field): impl deleting a field of any type and
8760         re-aligning any following fields.
8761         (delete_int_or_uint_field), (delete_string_field): remove.
8762         (set_int_field), (set_uint_field): no need to re-check
8763         that we have the correct type for the field.
8764         (set_string_field): ditto and impl re-aligning any
8765         following fields.
8766         (decode_header_data): update to take into account that
8767         the fields aren't 4-byte aligned any more and the new
8768         way to distinguish padding from header fields. Also,
8769         don't exit when there is too much header padding.
8770         (process_test_subdir): print the directory.
8771         (_dbus_message_test): add test to make sure a following
8772         field is re-aligned correctly after field deletion.
8773         
8774         * dbus/dbus-string.[ch]:
8775         (_dbus_string_insert_bytes): rename from insert_byte and
8776         allow the insert of multiple bytes.
8777         (_dbus_string_test): test inserting multiple bytes.
8778
8779         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8780         warning note to docs about having to re-align any
8781         marshalled values following the string.
8782         
8783         * dbus/dbus-message-builder.c:
8784         (append_string_field), (_dbus_message_data_load):
8785         don't align the header field.
8786         
8787         * dbus/dbus-auth.c: (process_test_subdir): print the
8788         directory.
8789         
8790         * test/break-loader.c: (randomly_add_one_byte): upd. for
8791         insert_byte change.
8792         
8793         * test/data/invalid-messages/bad-header-field-alignment.message:
8794         new test case.
8795         
8796         * test/data/valid-messages/unknown-header-field.message: shove
8797         a dict in the unknown field.
8798
8799 2003-09-25  Seth Nickell  <seth@gnome.org>
8800
8801         * python/dbus.py:
8802         * python/dbus_bindings.pyx.in:
8803
8804         Handle return values.
8805         
8806         * python/examples/example-client.py:
8807         * python/examples/example-service.py:
8808
8809         Pass back return values from the service to the client.
8810         
8811 2003-09-24  Seth Nickell  <seth@gnome.org>
8812
8813         * python/dbus.py:
8814
8815         Connect Object methods (when you are sharing an object) up... pass
8816         in a list of methods to be shared. Sharing all the methods just
8817         worked out too weird. You can now create nice Services over the
8818         DBus in Python. :-)
8819         
8820         * python/dbus_bindings.pyx.in:
8821
8822         Keep references to user_data tuples passed into C functions so 
8823         Python doesn't garbage collect on us.
8824
8825         Implement MethodReturn and Error subclasses of Message for creating
8826         DBusMessage's of those types.
8827         
8828         * python/examples/example-client.py:
8829         * python/examples/example-service.py:
8830
8831         Simple example code showing both how create DBus services and objects,
8832         and how to use them.
8833
8834 2003-09-23  Havoc Pennington  <hp@pobox.com>
8835
8836         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8837
8838 2003-09-23  Havoc Pennington  <hp@redhat.com>
8839
8840         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8841         (dbus_gproxy_disconnect_signal): implement
8842         (dbus_gproxy_manager_remove_signal_match): implement
8843         (dbus_gproxy_manager_add_signal_match): implement
8844         (dbus_gproxy_oneway_call): implement
8845
8846 2003-09-23  Havoc Pennington  <hp@pobox.com>
8847
8848         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8849         subclass. This means dropping the transparent thread safety of the
8850         proxy; you now need a separate proxy per-thread, or your own
8851         locking on the proxy. Probably right anyway.
8852         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8853
8854 2003-09-22  Havoc Pennington  <hp@redhat.com>
8855
8856         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8857
8858 2003-09-21  Seth Nickell  <seth@gnome.org>
8859
8860         First checkin of the Python bindings.
8861         
8862         * python/.cvsignore:
8863         * python/Makefile.am:
8864         * python/dbus_bindings.pyx.in:
8865         * python/dbus_h_wrapper.h:
8866
8867         Pieces for Pyrex to operate on, building a dbus_bindings.so
8868         python module for low-level access to the DBus APIs.
8869         
8870         * python/dbus.py:
8871
8872         High-level Python module for accessing DBus objects.
8873
8874         * configure.in:
8875         * Makefile.am:
8876
8877         Build stuff for the python bindings.
8878
8879         * acinclude.m4:
8880
8881         Extra macro needed for finding the Python C header files.
8882
8883 2003-09-21  Havoc Pennington  <hp@pobox.com>
8884
8885         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8886         implementing the proxy manager, didn't get very far.
8887
8888         * dbus/dbus-bus.c (dbus_bus_add_match): new
8889         (dbus_bus_remove_match): new
8890
8891         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8892         path_name argument; adjust the other not-yet-implemented 
8893         gproxy constructors to be what I think they should be.
8894
8895 2003-09-21  Havoc Pennington  <hp@pobox.com>
8896
8897         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8898         by default for message bus connections.
8899
8900         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8901         exit_on_disconnect flag is set and we process the disconnected
8902         signal.
8903         (dbus_connection_set_exit_on_disconnect): new function
8904
8905 2003-09-21  Havoc Pennington  <hp@pobox.com>
8906
8907         Get matching rules mostly working in the bus; only actually
8908         parsing the rule text remains. However, the client side of
8909         "signal connections" hasn't been started, this patch is only the
8910         bus side.
8911         
8912         * dbus/dispatch.c: fix for the matching rules changes
8913         
8914         * bus/driver.c (bus_driver_handle_remove_match)
8915         (bus_driver_handle_add_match): send an ack reply from these
8916         method calls
8917
8918         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8919         arguments, reported by Seth Nickell
8920
8921         * bus/config-parser.c (append_rule_from_element): support
8922         eavesdrop=true|false attribute on policies so match rules 
8923         can be prevented from snooping on the system bus.
8924
8925         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8926         and "destination" in attribute names; fix some docs bugs; 
8927         add eavesdrop=true|false attribute
8928
8929         * bus/driver.c (bus_driver_handle_add_match)
8930         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8931         messages
8932
8933         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8934         rid of broadcast service concept, signals are just always broadcast
8935
8936         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8937         mostly implement matching rules stuff (currently only exposed as signal
8938         connections)
8939
8940 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8941
8942         * doc/dbus-specification.sgml: Change the header field name
8943         to be an enum and update the rest of the spec to reference
8944         the fields using the conventinal name.
8945
8946         * dbus/dbus-protocol.h: update to reflect the spec.
8947
8948         * doc/TODO: add item to remove the 4 byte alignment requirement.
8949         
8950         * dbus/dbus-message.c: Remove the code to generalise the
8951         header/body length and serial number header fields as named
8952         header fields so we can reference field names using the 
8953         protocol values.
8954         (append_int_field), (append_uint_field), (append_string_field):
8955         Append the field name as a byte rather than four chars.
8956         (delete_int_or_uint_field), (delete_string_field): reflect the
8957         fact that the field name and typecode now occupy 4 bytes instead
8958         of 8.
8959         (decode_string_field), (decode_header_data): update to reflect
8960         protocol changes and move the field specific encoding from
8961         decode_string_field() back into decode_header_data().
8962         
8963         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8964         Add utility to aid debugging.
8965         
8966         * dbus/dbus-message-builder.c:
8967         (append_string_field), (_dbus_message_data_load): Update to
8968         reflect protocol changes; Change the FIELD_NAME directive
8969         to HEADER_FIELD and allow it to take the field's conventional
8970         name rather than the actual value.
8971         
8972         * test/data/*/*.message: Update to use HEADER_FIELD instead
8973         of FIELD_NAME; Always align the header on an 8 byte boundary
8974         *before* updating the header length.
8975
8976 2003-09-15  Havoc Pennington  <hp@pobox.com>
8977
8978         * dbus/dbus-pending-call.c: add the get/set object data
8979         boilerplate as for DBusConnection, etc. Use generic object data
8980         for the notify callback.
8981
8982         * glib/dbus-gparser.c (parse_node): parse child nodes
8983
8984         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8985         
8986         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8987         contain functions shared between the convenience lib and the
8988         installed lib
8989
8990         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8991         -export-symbols-regex to the GLib library
8992
8993         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8994         fix the locking in here, and add a default handler for
8995         Introspect() that just returns sub-nodes.
8996
8997 2003-09-14  Havoc Pennington  <hp@pobox.com>
8998
8999         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9000         rather than gfoo consistent
9001
9002         * glib/dbus-gproxy.h: delete for now, move contents to
9003         dbus-glib.h, because the include files don't work right since we
9004         aren't in the dbus/ subdir.
9005         
9006         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9007         (dbus_gproxy_end_call): finish
9008         (dbus_gproxy_begin_call): finish
9009
9010         * glib/dbus-gmain.c (dbus_set_g_error): new
9011
9012         * glib/dbus-gobject.c (handle_introspect): include information
9013         about child nodes in the introspection
9014
9015         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9016         function to help in implementation of introspection
9017
9018         * dbus/dbus-object-tree.c
9019         (_dbus_object_tree_list_registered_and_unlock): new function
9020
9021 2003-09-12  Havoc Pennington  <hp@pobox.com>
9022
9023         * glib/dbus-gidl.h: add common base class for all the foo_info
9024         types
9025
9026         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9027         similar to kdcop
9028
9029         * test/Makefile.am: try test srcdir -ef . in addition to test
9030         srcdir = ., one of them should work (yeah lame)
9031         
9032         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9033         library
9034         
9035         * glib/dbus-gparser.h: make description_load routines return
9036         NodeInfo* not Parser*
9037
9038         * Makefile.am (SUBDIRS): build test dir after all library dirs
9039
9040         * configure.in: add GTK+ detection
9041
9042 2003-09-07  Havoc Pennington  <hp@pobox.com>
9043
9044         * Make Doxygen contented.
9045
9046 2003-09-07  Havoc Pennington  <hp@pobox.com>
9047
9048         * doc/dbus-specification.sgml: more updates
9049
9050 2003-09-06  Havoc Pennington  <hp@pobox.com>
9051
9052         * doc/dbus-specification.sgml: partial updates
9053
9054         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9055         zillionth time; hopefully I edited the right file this time.
9056
9057         * bus/config-parser.c (append_rule_from_element): support
9058         send_type, send_path, receive_type, receive_path
9059
9060         * bus/policy.c: add message type and path to the list of things
9061         that can be "firewalled"
9062
9063 2003-09-06  Havoc Pennington  <hp@pobox.com>
9064
9065         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9066         (dbus_connection_register_object_path): make this not handle
9067         messages to paths below the given path
9068
9069 2003-09-03  Havoc Pennington  <hp@pobox.com>
9070
9071         * test/glib/Makefile.am: add this with random glib-linked test
9072         programs
9073
9074         * glib/Makefile.am: remove the random test programs from here,
9075         leave only the unit tests
9076
9077         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9078         uscore/javacaps conversion, and fix     
9079         (get_object_property, set_object_property): change to .NET
9080         convention for mapping props to methods, set_FooBar/get_FooBar, 
9081         since one language has such a convention we may as well copy it. 
9082         Plus real methods in either getFooBar or get_foo_bar style won't 
9083         collide with this convention.
9084
9085 2003-09-01  Havoc Pennington  <hp@pobox.com>
9086
9087         * glib/dbus-gparser.c: implement
9088
9089         * glib/dbus-gobject.c: start implementing skeletons support
9090
9091         * configure.in: when disabling checks/assert, also define
9092         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9093
9094 2003-09-01  Havoc Pennington  <hp@pobox.com>
9095
9096         * glib/Makefile.am: rearrange a bunch of files and get "make
9097         check" framework set up
9098
9099 2003-08-31  Havoc Pennington  <hp@pobox.com>
9100
9101         * fix build with --disable-tests
9102
9103 2003-08-30  Havoc Pennington  <hp@pobox.com>
9104
9105         * dbus/dbus-connection.c: purge DBusMessageHandler
9106
9107         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9108         use callbacks everywhere
9109
9110 2003-08-30  Havoc Pennington  <hp@pobox.com>
9111
9112         * test/data/valid-config-files/system.d/test.conf: change to 
9113         root for the user so warnings don't get printed
9114
9115         * dbus/dbus-message.c: add dbus_message_get_path,
9116         dbus_message_set_path
9117         
9118         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9119         dispatching to a path
9120
9121         * dbus/dbus-string.c (_dbus_string_validate_path): add
9122
9123         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9124         (_dbus_marshal_object_path): implement
9125
9126         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9127         to contain the path to the target object
9128         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9129         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9130
9131 2003-08-30  Havoc Pennington  <hp@pobox.com>
9132
9133         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9134
9135 2003-08-29  Havoc Pennington  <hp@pobox.com>
9136
9137         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9138         registered
9139         (struct DBusObjectSubtree): shrink this
9140         a lot, since we may have a lot of them
9141         (_dbus_object_tree_free_all_unlocked): implement
9142         (_dbus_object_tree_dispatch_and_unlock): implement
9143
9144 2003-08-29  Havoc Pennington  <hp@pobox.com>
9145
9146         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9147
9148 2003-08-28  Havoc Pennington  <hp@pobox.com>
9149
9150         purge DBusObjectID
9151         
9152         * dbus/dbus-connection.c: port to no ObjectID, create a
9153         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9154
9155         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9156         everything except UnregisterFunction and MessageFunction
9157         
9158         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9159         add DBUS_TYPE_OBJECT_PATH
9160         
9161         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9162         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9163         path-based object IDs
9164
9165 2003-08-25  Havoc Pennington  <hp@pobox.com>
9166
9167         Just noticed that dbus_message_test is hosed, I wonder when I
9168         broke that. I thought make check was passing earlier...
9169         
9170         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9171         container tree, will replace most of dbus-object-registry
9172
9173         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9174         screwup
9175
9176 2003-08-19  Havoc Pennington  <hp@pobox.com>
9177
9178         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9179         (dbus_message_is_error): fix this function
9180
9181         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9182         match
9183
9184         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9185         reflect clarified man page
9186         (bus_client_policy_check_can_send): ditto
9187         
9188         * bus/session.conf.in: fixup
9189
9190         * bus/system.conf.in: fixup
9191
9192 2003-08-18  Havoc Pennington  <hp@redhat.com>
9193
9194         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9195
9196         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9197         dumb bug created earlier (wrong order of args to
9198         decode_header_data())
9199         
9200         * tools/dbus-send.c: port
9201
9202         * tools/dbus-print-message.c (print_message): port
9203
9204         * test/data/*messages: port all messages over
9205         
9206         * dbus/dbus-message-builder.c: support including 
9207         message type
9208         
9209         * bus/driver.c: port over
9210         
9211         * bus/dispatch.c: port over to new stuff
9212
9213         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9214         rename disconnect signal to "Disconnected"
9215
9216 2003-08-17  Havoc Pennington  <hp@pobox.com>
9217
9218         This doesn't compile yet, but syncing up so I can hack on it from
9219         work. What are branches for if not broken code? ;-)
9220         
9221         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9222         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9223         DBUS_HEADER_FIELD_ERROR_NAME
9224         
9225         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9226         for the interface+member pairs
9227         (string_hash): change to use g_str_hash algorithm
9228         (find_direct_function, find_string_function): refactor these to
9229         share most code.
9230         
9231         * dbus/dbus-message.c: port all of this over to support 
9232         interface/member fields instead of name field
9233
9234         * dbus/dbus-object-registry.c: port over
9235         
9236         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9237         from _dbus_string_validate_name
9238
9239         * bus/dbus-daemon-1.1: change file format for the 
9240         <deny>/<allow> stuff to match new message naming scheme
9241
9242         * bus/policy.c: port over
9243
9244         * bus/config-parser.c: parse new format
9245         
9246 2003-08-16  Havoc Pennington  <hp@pobox.com>
9247
9248         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9249         broken assertion
9250
9251         * glib/dbus-gproxy.c: some hacking
9252
9253 2003-08-15  Havoc Pennington  <hp@redhat.com>
9254
9255         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9256
9257         * dbus/dbus-connection.c
9258         (dbus_connection_send_with_reply_and_block): factor out internals;
9259         change to convert any error replies to DBusError instead of 
9260         returning them as a message
9261
9262 2003-08-15  Havoc Pennington  <hp@pobox.com>
9263
9264         * dbus/dbus-connection.c, 
9265         dbus/dbus-pending-call.c: Finish the pending call stuff
9266
9267 2003-08-14  Havoc Pennington  <hp@redhat.com>
9268
9269         * dbus/dbus-pending-call.c: start on new object that will replace
9270         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9271         replies
9272
9273         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9274         with remote interfaces
9275
9276         * dbus/dbus-gidl.c: do the boring boilerplate in here
9277         
9278 2003-08-12  Havoc Pennington  <hp@pobox.com>
9279
9280         * bus/dispatch.c (bus_dispatch): make this return proper 
9281         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9282
9283         * dbus/dbus-errors.c (dbus_set_error): use
9284         _dbus_string_append_printf_valist
9285
9286         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9287         (_dbus_string_append_printf): new
9288
9289         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9290         UNKNOWN_METHOD
9291
9292         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9293         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9294         message is unhandled.
9295
9296 2003-08-11  Havoc Pennington  <hp@pobox.com>
9297
9298         * bus/test.c (client_disconnect_handler): change to return
9299         HANDLED (would have been REMOVE_MESSAGE)
9300
9301         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9302         HANDLED/NOT_YET_HANDLED instead of
9303         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9304         should be used.
9305
9306 2003-08-10  Havoc Pennington  <hp@pobox.com>
9307
9308         * tools/dbus-send.c (main): add --type argument, for now
9309         supporting only method_call and signal types.
9310
9311         * tools/dbus-print-message.c: print message type
9312
9313         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9314         init connection->objects
9315
9316         * doc/dbus-specification.sgml: fix sgml
9317
9318         * bus/*.c: port over to object-instance API changes
9319
9320         * test/test-service.c: ditto
9321         
9322         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9323         name, we will have to fix up the rest of the code to also handle
9324         this
9325         (dbus_message_new): generic message-creation call
9326         (set_string_field): allow appending name field
9327
9328 2003-08-06  Havoc Pennington  <hp@pobox.com>
9329
9330         * dbus/dbus-object-registry.c: implement signal connection 
9331         and dispatch
9332
9333         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9334
9335         * dbus/dbus-internals.c (_dbus_memdup): new function
9336
9337 2003-08-02  Havoc Pennington  <hp@pobox.com>
9338
9339         * dbus/dbus-message.c (dbus_message_get_no_reply)
9340         (dbus_message_set_no_reply): add these and remove
9341         set_is_error/get_is_error
9342
9343         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9344         remove the ERROR flag, since there's now an ERROR type
9345
9346 2003-08-01  Havoc Pennington  <hp@pobox.com>
9347
9348         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9349         implement
9350
9351         * dbus/dbus-message.c (dbus_message_get_type): new function
9352
9353         * doc/dbus-specification.sgml: add "type" byte to messages
9354
9355 2003-08-01  Havoc Pennington  <hp@pobox.com>
9356
9357         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9358         a message type enum to distinguish kinds of message
9359         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9360         that need not be replied to
9361
9362 2003-08-01  Havoc Pennington  <hp@pobox.com>
9363
9364         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9365         (unpack_8_octets): fix no-64-bit-int bug
9366
9367         * dbus/dbus-object-registry.c (validate_id): validate the 
9368         connection ID bits, not just the instance ID.
9369
9370         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9371         the connection-global 33 bits of the object ID
9372
9373         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9374         object ID in the new way
9375
9376         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9377         define server/client/instance bits.
9378
9379 2003-07-30  Havoc Pennington  <hp@pobox.com>
9380
9381         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9382         build
9383
9384 2003-07-13  Havoc Pennington  <hp@pobox.com>
9385
9386         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9387         fields to DBusObjectVTable and DBusObjectInfo
9388
9389 2003-07-12  Havoc Pennington  <hp@pobox.com>
9390
9391         * dbus/dbus-object-registry.c: implement unit test,
9392         fix bugs discovered in process
9393
9394         * dbus/dbus-connection.c: remove handler_table and
9395         register_handler(), add DBusObjectRegistry usage
9396
9397         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9398         (dbus_object_id_set_null): new functions
9399
9400 2003-07-08  Havoc Pennington  <hp@pobox.com>
9401
9402         * dbus/dbus-object.c: implement some of this
9403
9404         * dbus/dbus-object-registry.c
9405         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9406         param
9407         (_dbus_object_registry_new): handle OOM
9408
9409 2003-07-08  Havoc Pennington  <hp@pobox.com>
9410
9411         * dbus/dbus-object.h: sketch out an API for registering objects
9412         with a connection, that allows us to use as little as 24 bytes
9413         per object and lets application code represent an object in 
9414         any conceivable way.
9415
9416         * dbus/dbus-object-registry.c: implement the hard bits of the
9417         DBusConnection aspect of object API. Not yet wired up.
9418         
9419 2003-07-06  Havoc Pennington  <hp@pobox.com>
9420
9421         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9422         (_dbus_marshal_object_id): new
9423         (_dbus_demarshal_object_id): new
9424         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9425         consolidate identical switch cases. Don't conditionalize handling
9426         of DBUS_TYPE_UINT64, need to handle the type always.
9427         (_dbus_marshal_validate_arg): consolidate identical cases, and
9428         handle DBUS_TYPE_OBJECT_ID
9429
9430         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9431
9432         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9433
9434 2003-09-28  Havoc Pennington  <hp@pobox.com>
9435
9436         * real 0.13 release
9437
9438 2003-09-28  Havoc Pennington  <hp@pobox.com>
9439
9440         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9441         to work with Debian db2html
9442
9443 2003-09-28  Havoc Pennington  <hp@pobox.com>
9444
9445         * configure.in: 0.13
9446
9447         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9448         stylesheet-images for benefit of Debian
9449         
9450         Change back to using filesystem-linked sockets for the system
9451         bus, so only root can create the default system bus address.
9452         
9453         * bus/system.conf.in: change to use
9454         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9455
9456         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9457         from here.
9458
9459         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9460         here, and AC_DEFINE DBUS_SYSTEM_PATH
9461
9462 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9463
9464         * doc/TODO:
9465         * doc/busconfig.dtd:
9466         Add busconfig DTD.
9467         
9468 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9469
9470         * doc/dbus-specification.sgml:
9471         Add activation reply values.
9472         
9473 2003-08-05  Havoc Pennington  <hp@redhat.com>
9474
9475         * configure.in: 0.12
9476
9477 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9478
9479         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9480         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9481         (add_watch), (remove_watch), (create_source):
9482         Refcount fds, fixes some reentrancy issues.
9483         
9484 2003-07-30  Havoc Pennington  <hp@redhat.com>
9485
9486         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9487         bus address to be abstract if we have abstract sockets
9488
9489         * NEWS: update
9490
9491 2003-07-28  Havoc Pennington  <hp@redhat.com>
9492
9493         * bus/messagebus.in: fix to avoid processname/servicename 
9494         confusion, from Michael Kearey
9495         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9496         
9497 2003-07-23  Havoc Pennington  <hp@pobox.com>
9498
9499         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9500         fix from Andy Hanton to remove broken "+1"
9501
9502 2003-07-16  Havoc Pennington  <hp@pobox.com>
9503
9504         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9505         babysitter process, as suggested by Thomas Leonard, so 
9506         an "eval `dbus-launch --exit-with-session`" will actually 
9507         return
9508
9509 2003-07-16  Havoc Pennington  <hp@pobox.com>
9510
9511         * configure.in: print out EXPANDED_* variables in the summary at
9512         the end; clean up the code that computes EXPANDED_ variables and
9513         get the ones using exec_prefix right. Should make things work
9514         when you build without --prefix
9515
9516 2003-06-29  Havoc Pennington  <hp@pobox.com>
9517
9518         * mono/Test.cs (class Test): fire up a main loop and run it
9519
9520         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9521         done once, the app has to do it
9522
9523 2003-06-26  Havoc Pennington  <hp@pobox.com>
9524
9525         * mono/Connection.cs: set up connection with the glib main loop
9526
9527 2003-07-01  Havoc Pennington  <hp@redhat.com>
9528
9529         * doc/dbus-specification.sgml: clarify the format of a type code,
9530         change suggested by Jim Blandy
9531
9532 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9533
9534         * doc/Makefile.am:
9535         * tools/Makefile.am: Don't assume srcdir == builddir.
9536
9537         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9538         the allocated block.
9539         (_dbus_memory_test): New function.
9540         * dbus/dbus-test.h: Add _dbus_memory_test ().
9541         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9542
9543         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9544         of %c%c%c%c.
9545         (dbus_message_new): Remove obsolete @todo.
9546
9547         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9548         (_dbus_marshal_set_uint64): Fix comment.
9549
9550         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9551         hardcode FIELD_REPLY_SERIAL.
9552
9553         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9554         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9555
9556         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9557         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9558
9559 2003-06-24  Havoc Pennington  <hp@pobox.com>
9560
9561         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9562
9563 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9564
9565         * configure.in:
9566         * gcj/.cvsignore:
9567         * gcj/Hello.java:
9568         * gcj/Makefile.am:
9569         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9570         * gcj/org/.cvsignore:
9571         * gcj/org/Makefile.am:
9572         * gcj/org/freedesktop/.cvsignore:
9573         * gcj/org/freedesktop/Makefile.am:
9574         * gcj/org/freedesktop/dbus/.cvsignore:
9575         * gcj/org/freedesktop/dbus/Makefile.am:
9576         * gcj/org/freedesktop/dbus/Message.java: (Message),
9577         (Message.Message):
9578         * gcj/org/freedesktop/dbus/natMessage.cc:
9579         Fix the build system.
9580
9581 2003-06-22  Havoc Pennington  <hp@pobox.com>
9582
9583         * mono/Connection.cs: add more bindings
9584
9585         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9586         more than once.
9587
9588 2003-06-22  Havoc Pennington  <hp@pobox.com>
9589
9590         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9591         Start wrapping more stuff.
9592
9593 2003-06-22  Havoc Pennington  <hp@pobox.com>
9594
9595         * mono/Message.cs: implement Message.Wrap() that ensures we only
9596         have a single C# wrapper per DBusMessage, assuming it works which
9597         it probably doesn't.
9598
9599         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9600         (dbus_message_free_data_slot): new
9601         (dbus_message_set_data): new
9602         (dbus_message_get_data): new
9603
9604 2003-06-22  Havoc Pennington  <hp@pobox.com>
9605
9606         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9607         (_dbus_data_slot_allocator_alloc): rework these to keep a
9608         reference count on each slot and automatically manage a global
9609         slot ID variable passed in by address
9610
9611         * bus/bus.c: convert to new dataslot API
9612
9613         * dbus/dbus-bus.c: convert to new dataslot API
9614
9615         * dbus/dbus-connection.c: convert to new dataslot API
9616
9617         * dbus/dbus-server.c: convert to new dataslot API
9618
9619         * glib/dbus-gmain.c: ditto
9620
9621         * bus/test.c: ditto
9622
9623         * bus/connection.c: ditto
9624
9625 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9626
9627         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9628         after the gcj checks so that the correct configuration tags
9629         will be added to libtool.
9630
9631         * dbus-glib-1.pc.in: No need to specify any includes since
9632         dbus-1.pc.in has those.
9633
9634 2003-06-22  Havoc Pennington  <hp@pobox.com>
9635
9636         * mono/*, gcj/*, configure.in, Makefile.am:
9637         Check in makefiles and subdirs for mono and gcj bindings.
9638         Neither binding actually exists, just trying to get through
9639         all the build and other boring bits.
9640
9641 2003-06-21  Philip Blundell  <philb@gnu.org>
9642
9643         * tools/dbus-monitor.1: Updated.
9644
9645         * tools/dbus-send.1: Likewise.
9646
9647 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9648
9649         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9650         for hangup and error after checking read so we won't discard
9651         pending data if both hangup and read are set.
9652
9653 2003-06-19  Philip Blundell  <philb@gnu.org>
9654
9655         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9656
9657         * tools/dbus-send.c: Accept both --system and --session.
9658
9659         * tools/dbus-monitor.c: Same here.
9660
9661 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9662
9663         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9664         from C++ (Patch by Miloslav Trmac).
9665
9666 2003-06-15  Joe Shaw  <joe@assbarn.com>
9667
9668         * configure.in: Check for socklen_t.
9669
9670         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9671
9672         * test/test-segfault.c: Add #include <sys/time.h>
9673
9674         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9675         dbus-launch needs it.
9676
9677 2003-06-09  Havoc Pennington  <hp@redhat.com>
9678
9679         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9680         SUN_LEN, it breaks abstract socket usage
9681
9682         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9683         starts of lines.
9684
9685 2003-06-04  Havoc Pennington  <hp@pobox.com>
9686
9687         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9688         using unix:abstract=/foo, and when listening in a tmpdir
9689         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9690
9691         * dbus/dbus-transport.c (_dbus_transport_open): support
9692         unix:abstract=/foo
9693
9694         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9695         support abstract sockets
9696
9697         * dbus/dbus-transport-unix.c
9698         (_dbus_transport_new_for_domain_socket): support abstract sockets
9699
9700         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9701         toggle as an argument, implement abstract namespace support
9702         (_dbus_listen_unix_socket): ditto
9703
9704         * configure.in: add --enable-abstract-sockets and implement
9705         a configure check for autodetection of the right value.
9706
9707 2003-06-01  Havoc Pennington  <hp@pobox.com>
9708
9709         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9710         in /tmp (though on Linux this will end up being useless,
9711         when we add abstract namespace support)
9712
9713         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9714         subst'ing it
9715
9716 2003-05-28  Colin Walters  <walters@verbum.org>
9717
9718         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9719
9720 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9721
9722         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9723
9724 2003-05-17  Colin Walters  <walters@gnu.org>
9725
9726         * tools/dbus-send.c: Don't exit with an error code if --help was
9727         passed.  Default to using the session bus instead of the system
9728         one.
9729
9730         * tools/dbus-launch.c: Ditto.
9731
9732         * tools/dbus-monitor.c: Ditto.
9733
9734         * tools/dbus-send.1: Update with new arguments.
9735
9736         * tools/dbus-launch.c: Emit code to export variables.  New
9737         arguments -s and -c to specify shell syntax, and a bit of code to
9738         autodetect syntax.  Also, allow specifying a program to run.
9739
9740         * tools/dbus-launch.1: Update with new arguments.
9741
9742         * tools/dbus-send.1: Ditto.
9743
9744         * tools/dbus-monitor.1: Ditto.
9745
9746 2003-05-17  Havoc Pennington  <hp@pobox.com>
9747
9748         * bus/config-parser.c (merge_included): merge in policies from
9749         child configuration file.
9750
9751         * bus/policy.c (bus_policy_merge): function to merge two policies
9752         together
9753
9754 2003-05-16  Havoc Pennington  <hp@redhat.com>
9755
9756         * dbus/dbus-connection.c: disable verbose lock spew
9757
9758         * tools/dbus-send.c: add --print-reply command line option
9759
9760         * tools/dbus-print-message.h (print_message): new util function
9761         shared by dbus-send and dbus-monitor
9762
9763         * tools/dbus-monitor.c (handler_func): exit on disconnect
9764
9765         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9766         disconnected, don't try to use the read_watch
9767
9768         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9769         so we can find this bug more easily
9770
9771 2003-05-16  Havoc Pennington  <hp@redhat.com>
9772
9773         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9774         NULL as DBusHashTable is annoyingly likely to do.
9775
9776 2003-05-16  Colin Walters  <walters@verbum.org>
9777
9778         * tools/dbus-monitor.c: Add --session argument and usage()
9779         function.
9780
9781         * tools/dbus-monitor.1: Update with new --session arg.
9782
9783         * bus/Makefile.am (install-data-hook): Create
9784         $(libdir)/dbus-1.0/services so that the session bus is happy.
9785
9786 2003-05-15  Havoc Pennington  <hp@redhat.com>
9787
9788         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9789         on non-x86. ifdef's are evil.
9790
9791 2003-05-15  Havoc Pennington  <hp@redhat.com>
9792
9793         * configure.in: 0.11
9794
9795         * NEWS: update
9796
9797         * bus/Makefile.am (initddir): apparently we are supposed to put
9798         init scripts in /etc/rc.d/init.d not /etc/init.d
9799
9800         * bus/Makefile.am: remove the "you must --enable-tests to make
9801         check" as it broke distcheck
9802
9803         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9804
9805 2003-05-13  James Willcox  <jwillcox@gnome.org>
9806
9807         * configure.in:
9808         * bus/activation.c: (bus_activation_service_created),
9809         (bus_activation_activate_service):
9810         * bus/driver.c: (bus_driver_send_service_deleted),
9811         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9812         (bus_driver_send_service_acquired),
9813         (bus_driver_send_welcome_message),
9814         (bus_driver_handle_list_services):
9815         * bus/session.conf.in:
9816         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9817         (dbus_bus_service_exists), (dbus_bus_activate_service):
9818         * dbus/dbus-bus.h:
9819
9820         Add some convenience API which lets you activate a service, and did a
9821         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9822         and dbus_message_get_args()
9823
9824 2003-05-11  Havoc Pennington  <hp@pobox.com>
9825
9826         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9827         calling _dbus_marshal_validate_arg() for every byte in a byte
9828         array, etc.
9829
9830         * dbus/dbus-message-handler.c: use atomic reference counting to
9831         reduce number of locks slightly; the global lock in here sucks
9832
9833         * dbus/dbus-connection.c
9834         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9835         update_dispatch_status that can be called with lock held; then use
9836         in a couple places to reduce locking/unlocking
9837         (dbus_connection_send): hold the lock over the whole function
9838         instead of acquiring it twice.
9839
9840         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9841
9842         * bus/connection.c (bus_connections_setup_connection): fix access
9843         to already-freed memory.
9844
9845         * dbus/dbus-connection.c: keep a little cache of linked list
9846         nodes, to avoid using the global linked list alloc lock in the
9847         normal send-message case. Instead we just use the connection lock
9848         that we already have to take.
9849
9850         * dbus/dbus-list.c (_dbus_list_find_last): new function
9851
9852         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9853         change to use a struct for the atomic type; fix docs,
9854         they return value before increment, not after increment.
9855
9856         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9857         (_dbus_string_append_8_aligned): new functions to try to
9858         microoptimize this operation.
9859         (reallocate_for_length): break this out of set_length(), to
9860         improve profile info, and also so we can consider inlining the
9861         set_length() part.
9862
9863         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9864         strings with some preallocation, cuts down on our calls to realloc
9865         a fair bit. Though if we can get the "move entire string to empty
9866         string" optimization below to kick in here, it would be better.
9867
9868         * dbus/dbus-string.c (_dbus_string_move): just call
9869         _dbus_string_move_len
9870         (_dbus_string_move_len): add a special case for moving
9871         an entire string into an empty string; we can just
9872         swap the string data instead of doing any reallocs.
9873         (_dbus_string_init_preallocated): new function
9874
9875 2003-05-11  Havoc Pennington  <hp@pobox.com>
9876
9877         Write a "test-profile" that does echo client-server with threads;
9878         profile reveals lock contention, memcpy/realloc of buffers, and
9879         UTF-8 validation as hot spots. 20% of lock contention eliminated
9880         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9881         contention is global mempool locks for GList and DBusList.
9882
9883         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9884         x86 implementation
9885
9886         * dbus/dbus-connection.c (struct DBusConnection): use
9887         dbus_atomic_t for the reference count
9888
9889         * dbus/dbus-message.c (struct DBusMessage): declare
9890         dbus_atomic_t values as volatile
9891
9892         * configure.in: code to detect ability to use atomic integer
9893         operations in assembly, from GLib patch
9894
9895         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9896         time, tired of it being wrong in threads and forked processes
9897
9898         * glib/test-profile.c: a little program to bounce messages back
9899         and forth between threads and eat CPU
9900
9901         * dbus/dbus-connection.c: add debug spew macros for debugging
9902         thread locks; include config.h at top; fix deadlock in
9903         dbus_connection_flush()
9904
9905 2003-05-08  Havoc Pennington  <hp@pobox.com>
9906
9907         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9908         data from getting written, and there wasn't a good reason to
9909         use _exit really.
9910
9911         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9912         dbus_verbose lines in test coverage
9913         (main): add list of functions sorted by # of untested blocks
9914         to the coverage report
9915
9916         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9917
9918         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9919
9920         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9921         extend test coverage
9922
9923         * test/data/auth/cancel.auth-script: test canceling an
9924         authentication
9925
9926         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9927         aren't used. in CVS history if we end up needing them.
9928
9929 2003-05-04  Havoc Pennington  <hp@pobox.com>
9930
9931         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9932         unit test
9933
9934         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9935         function, which assumed length was in # of strings, not bytes
9936
9937         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9938         missing coverage
9939
9940         * dbus/dbus-connection.c
9941         (_dbus_connection_queue_received_message): disable function for
9942         now, we are only using it in test mode
9943
9944         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9945         remove a mistaken FIXME
9946
9947 2003-05-04  Havoc Pennington  <hp@pobox.com>
9948
9949         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9950         unlock mutex on successful return, patch from Anders Gustafsson
9951
9952 2003-05-04  Havoc Pennington  <hp@pobox.com>
9953
9954         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9955         Anders Gustafsson
9956
9957 2003-05-04  Havoc Pennington  <hp@pobox.com>
9958
9959         * tools/dbus-launch.c: implement
9960
9961         * bus/main.c (main), bus/bus.c (bus_context_new):
9962         implement --print-pid and --fork
9963
9964 2003-05-03  Havoc Pennington  <hp@redhat.com>
9965
9966         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9967         the address had no value, and add to test suite. Fix and
9968         regression test from Miloslav Trmac
9969
9970 2003-05-03  Havoc Pennington  <hp@pobox.com>
9971
9972         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9973         watch is invalid when handled
9974
9975         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9976         dbus-launch utility to launch the bus from a shell script.  Didn't
9977         actually implement dbus-launch yet, it's just a placeholder still.
9978
9979 2003-05-03  Havoc Pennington  <hp@pobox.com>
9980
9981         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9982         daemon; also documents daemon config file, so replaces
9983         doc/config-file.txt. Corrected some stuff from config-file.txt in
9984         the process of moving it.
9985
9986 2003-05-03  Havoc Pennington  <hp@pobox.com>
9987
9988         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9989         add some man pages
9990
9991 2003-05-03  Colin Walters  <walters@verbum.org>
9992
9993         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9994         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9995
9996         * Makefile.am: Update to use new .pc versioning scheme.
9997
9998 2003-05-02  Havoc Pennington  <hp@redhat.com>
9999
10000         * bus/system.conf.in: allow send/receive to/from message bus
10001         service
10002
10003 2003-04-30  Havoc Pennington  <hp@redhat.com>
10004
10005         * configure.in: print a note when building with unit tests and
10006         without assertions
10007
10008 2003-04-30  Havoc Pennington  <hp@redhat.com>
10009
10010         * Makefile.am: add a check-local that complains if you didn't
10011         configure with --enable-tests
10012
10013 2003-04-29  Havoc Pennington  <hp@redhat.com>
10014
10015         * glib/dbus-gmain.c: docs cleanups
10016
10017         * dbus/dbus-types.h: add docs on int64 types
10018
10019         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10020         public API docs section
10021
10022 2003-04-29  Havoc Pennington  <hp@redhat.com>
10023
10024         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10025         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10026         parallel install API version, not with the D-BUS package version.
10027
10028         * HACKING: move some of README over here
10029
10030         * README: updates, and document API/ABI policy
10031
10032         * configure.in: reindentation
10033
10034 2003-04-29  Havoc Pennington  <hp@redhat.com>
10035
10036         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10037         to use this library" to be sure people have the right
10038         expectations.
10039
10040 2003-04-28  Havoc Pennington  <hp@redhat.com>
10041
10042         * configure.in: add --enable-docs which by default is auto yes if
10043         doxygen and db2html found, no otherwise; but can be forced on/off
10044
10045         * doc/Makefile.am: conditionalize whether to build docs on
10046         --enable-docs
10047
10048 2003-04-28  Havoc Pennington  <hp@redhat.com>
10049
10050         * configure.in: 0.10
10051
10052         * NEWS: update
10053
10054         * bus/system.conf.in: add <includedir>system.d</includedir>
10055
10056         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10057         username was provided but not uid
10058
10059         * bus/config-parser.c (struct BusConfigParser): keep track of
10060         whether the parser is toplevel or was included; change some
10061         of the error handling if it's included.
10062
10063 2003-04-27  Havoc Pennington  <hp@pobox.com>
10064
10065         Unbreak my code...
10066
10067         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10068         report correct status if we finish processing authentication
10069         inside this function.
10070
10071         * bus/activation.c (try_send_activation_failure): use
10072         bus_transaction_send_error_reply
10073
10074         * bus/connection.c (bus_connection_get_groups): return an error
10075         explaining the problem
10076
10077         * bus/bus.c (bus_context_check_security_policy): implement
10078         restriction here that inactive connections can only send the
10079         hello message. Also, allow bus driver to send anything to
10080         any recipient.
10081
10082         * bus/connection.c (bus_connection_complete): create the
10083         BusClientPolicy here instead of on-demand.
10084         (bus_connection_get_policy): don't return an error
10085
10086         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10087         sender field in message being replied to
10088
10089         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10090         causing it to return FALSE always
10091
10092         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10093         we checked sender rather than destination
10094
10095 2003-04-25  Havoc Pennington  <hp@redhat.com>
10096
10097         test suite is slightly hosed at the moment, will fix soon
10098
10099         * bus/connection.c (bus_connections_expire_incomplete): fix to
10100         properly disable the timeout when required
10101         (bus_connection_set_name): check whether we can remove incomplete
10102         connections timeout after we complete each connection.
10103
10104         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10105         probably still broken.
10106
10107         * bus/services.c (bus_registry_acquire_service): implement max
10108         number of services owned, and honor allow/deny rules on which
10109         services a connection can own.
10110
10111         * bus/connection.c (bus_connection_get_policy): report errors here
10112
10113         * bus/activation.c: implement limit on number of pending
10114         activations
10115
10116 2003-04-25  Havoc Pennington  <hp@redhat.com>
10117
10118         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10119         where we used >= 0 instead of != DBUS_UID_UNSET.
10120
10121 2003-04-25  Havoc Pennington  <hp@redhat.com>
10122
10123         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10124         were toggled without add/remove, fix from Anders Gustafsson
10125
10126 2003-04-24  Havoc Pennington  <hp@redhat.com>
10127
10128         * test/data/valid-config-files/basic.conf: add <limit> tags to
10129         this test
10130
10131         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10132         <limit> tag in configuration file.
10133
10134 2003-04-24  Havoc Pennington  <hp@redhat.com>
10135
10136         * bus/dispatch.c: somehow missed some name_is
10137
10138         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10139         (_dbus_timeout_set_interval): new
10140
10141         * bus/connection.c (bus_connections_setup_connection): record time
10142         when each connection is first set up, and expire them after the
10143         auth timeout passes.
10144
10145 2003-04-24  Havoc Pennington  <hp@redhat.com>
10146
10147         * dbus/dbus-message.c (dbus_message_name_is): rename
10148         (dbus_message_service_is): rename
10149         (dbus_message_sender_is): rename
10150         (dbus_message_get_service): rename
10151
10152 2003-04-24  Havoc Pennington  <hp@redhat.com>
10153
10154         * configure.in: add --enable-checks
10155
10156         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10157
10158         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10159         to use thread locks.
10160         (_dbus_connection_handler_destroyed_locked): move some private
10161         functions into proper docs group
10162
10163         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10164         _dbus_return_val_if_fail
10165
10166         Throughout: use dbus_return_if_fail
10167
10168 2003-04-23  James Willcox  <jwillcox@gnome.org>
10169
10170         * glib/dbus-glib.h:
10171         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10172         (dbus_connection_setup_with_g_main),
10173         (dbus_server_setup_with_g_main):
10174         * glib/test-dbus-glib.c: (main):
10175         * glib/test-thread-client.c: (main):
10176         * glib/test-thread-server.c: (new_connection_callback), (main):
10177         * tools/dbus-monitor.c: (main):
10178
10179         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10180         and dbus_server_setup_with_g_main().
10181
10182 2003-04-20  Havoc Pennington  <hp@pobox.com>
10183
10184         * doc/dbus-specification.sgml: document the restrictions on
10185         message and service names
10186
10187 2003-04-22  Havoc Pennington  <hp@redhat.com>
10188
10189         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10190         support, and do some code cleanups to share more code and
10191         speed up array marshal/demarshal.
10192
10193         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10194
10195         * configure.in: generate dbus-arch-deps.h
10196
10197         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10198         64-bit typecodes
10199
10200 2003-04-22  Havoc Pennington  <hp@redhat.com>
10201
10202         * test/data/valid-messages/opposite-endian.message: fix test
10203         to use proper type for rply field
10204
10205         * test/data/invalid-messages: add tests for below validation
10206
10207         * dbus/dbus-message.c (decode_header_data): validate field types,
10208         and validate that named fields are valid names
10209         (decode_name_field): consider messages in the
10210         org.freedesktop.Local. namespace to be invalid.
10211
10212         * dbus/dbus-string.c (_dbus_string_validate_name): new
10213
10214 2003-04-19  Havoc Pennington  <hp@pobox.com>
10215
10216         * bus/driver.c (bus_driver_handle_hello): check limits and
10217         return an error if they are exceeded.
10218
10219         * bus/connection.c: maintain separate lists of active and inactive
10220         connections, and a count of each. Maintain count of completed
10221         connections per user. Implement code to check connection limits.
10222
10223         * dbus/dbus-list.c (_dbus_list_unlink): export
10224
10225         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10226         number of bytes in the message queue for a connection
10227
10228 2003-04-18  Havoc Pennington  <hp@pobox.com>
10229
10230         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10231
10232         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10233         memleaks
10234
10235         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10236         on realloc be sure to update the pointer in the keyring
10237
10238         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10239         offset to avoid writing to unallocated memory
10240
10241         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10242         try the next mechanism, so we properly handle OOM
10243
10244         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10245         on OOM.
10246         (_dbus_keyring_new): fix OOM bug
10247         (_dbus_keyring_new_homedir): always set error; impose a maximum
10248         number of keys we'll load from the file, mostly to speed up the
10249         test suite and make its OOM checks more useful, but also for
10250         general sanity.
10251
10252         * dbus/dbus-auth.c (process_error_server): reject authentication
10253         if we get an error from the client
10254         (process_cancel): on cancel, send REJECTED, per the spec
10255         (process_error_client): send CANCEL if we get an error from the
10256         server.
10257
10258 2003-04-18  Havoc Pennington  <hp@pobox.com>
10259
10260         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10261         debug spew
10262
10263         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10264         handling problem
10265
10266         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10267         about DBUS_TEST_HOMEDIR once
10268
10269         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10270         the environment
10271
10272         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10273         config file so we test the right thing
10274
10275         Throughout: assorted docs improvements
10276
10277 2003-04-18  Havoc Pennington  <hp@pobox.com>
10278
10279         * glib/dbus-gmain.c: adapt to watch changes
10280
10281         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10282
10283         * dbus/dbus-server.h: remove dbus_server_handle_watch
10284
10285         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10286
10287         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10288         like DBusTimeout, so we don't need dbus_connection_handle_watch
10289         etc.
10290
10291 2003-04-17  Havoc Pennington  <hp@redhat.com>
10292
10293         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10294         database usage so it all goes via the DBusUserDatabase cache.
10295
10296 2003-04-17  Havoc Pennington  <hp@redhat.com>
10297
10298         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10299         there was an OOM watch we skipped, we always return TRUE so we
10300         iterate again to have a look at it again. Fixes test suite hang.
10301         Code rearrangement also lets us lose some memset and only iterate
10302         over callbacks once.
10303
10304         * bus/driver.c (bus_driver_handle_message): sense of test for
10305         reply was backward
10306
10307 2003-04-16  Havoc Pennington  <hp@pobox.com>
10308
10309         * doc/dbus-specification.sgml: make spec say serials are unsigned
10310
10311         * dbus/dbus-message.h: change message serials to unsigned
10312
10313         * dbus/dbus-connection.c: adapt to message serials being unsigned
10314
10315 2003-04-15  Havoc Pennington  <hp@pobox.com>
10316
10317         * bus/bus.c: create and keep around a shared DBusUserDatabase
10318         object.
10319
10320         * bus/connection.c (bus_connection_get_groups): don't cache
10321         groups for user in the connection object, since user database
10322         object now does that.
10323
10324 2003-04-16  Havoc Pennington  <hp@redhat.com>
10325
10326         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10327         list of size counters
10328         (_dbus_message_loader_putback_message_link): put back a popped link
10329
10330         * dbus/dbus-connection.c
10331         (dbus_connection_set_max_live_messages_size): rename
10332         max_received_size
10333         (dbus_connection_get_outgoing_size): get size of outgoing
10334         queue
10335         (_dbus_connection_set_connection_counter): remove this cruft
10336
10337 2003-04-14  Havoc Pennington  <hp@redhat.com>
10338
10339         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10340         caching, but at some point we might want to be able to use a
10341         different database.
10342
10343         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10344         SHA1 conf file to test the sha1 auth mechanism, since the regular
10345         test always uses EXTERNAL when available.
10346
10347         * configure.in,
10348         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10349         add conf file that requires use of sha1 auth
10350
10351 2003-04-13  Havoc Pennington  <hp@pobox.com>
10352
10353         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10354         from Philip Blundell to send messages and monitor them.
10355
10356 2003-04-13  Havoc Pennington  <hp@pobox.com>
10357
10358         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10359         callbacks
10360
10361         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10362         users
10363
10364         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10365         fix to only recover unused bytes if we're already authenticated
10366         (_dbus_transport_get_is_authenticated): fix to still mark us
10367         authenticated if there are unused bytes.
10368
10369         * bus/dispatch.c: implement security policy checking
10370
10371         * bus/connection.c (bus_transaction_send_from_driver): new
10372
10373         * bus/bus.c (bus_context_check_security_policy): new
10374
10375         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10376         now we just set the DBusError and it gets converted to an error
10377         reply.
10378
10379         * bus/connection.c (allow_user_function): enable code using actual
10380         data from the config file
10381
10382         * bus/policy.c (list_allows_user): handle wildcard rules for
10383         user/group connection perms
10384
10385 2003-04-13  Havoc Pennington  <hp@pobox.com>
10386
10387         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10388
10389         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10390
10391         * bus/policy.c (bus_policy_append_mandatory_rule)
10392         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10393         (bus_policy_append_group_rule): new functions
10394
10395 2003-04-12  Havoc Pennington  <hp@pobox.com>
10396
10397         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10398
10399         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10400         the pid/gid/uid, just for paranoia.
10401
10402         * test/break-loader.c (randomly_do_n_things): find a byte
10403         containing a type code, and randomly change it to a different
10404         type code.
10405
10406 2003-04-12  Havoc Pennington  <hp@pobox.com>
10407
10408         * bus/policy.h: change BusPolicy to be the thing from the config
10409         file, and rename old BusPolicy to BusClientPolicy
10410
10411         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10412         match change in how policy works
10413
10414         * dbus/dbus-internals.h: mark assert_not_reached as
10415         __attribute((noreturn))__
10416
10417 2003-04-11  Havoc Pennington  <hp@redhat.com>
10418
10419         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10420         the broadcast service. Use boolean return for ServiceExists.
10421
10422 2003-04-11  Havoc Pennington  <hp@redhat.com>
10423
10424         * configure.in: add another directory to look for qt in.
10425
10426 2003-04-11  Havoc Pennington  <hp@redhat.com>
10427
10428         * AUTHORS: add Colin Walters
10429
10430 2003-04-11  Havoc Pennington  <hp@redhat.com>
10431
10432         * NEWS: update
10433
10434         * configure.in: 0.9
10435
10436 2003-04-11  Havoc Pennington  <hp@redhat.com>
10437
10438         * bus/messagebus.in: remove pid file when stopping the
10439         message bus, since the bus won't have privileges to remove it
10440         itself.
10441
10442 2003-04-11  Havoc Pennington  <hp@redhat.com>
10443
10444         * bus/bus.c (bus_context_new): move credentials change after
10445         creating pidfile
10446
10447 2003-04-11  Havoc Pennington  <hp@pobox.com>
10448
10449         * test/decode-gcov.c: add "below average functions" to the
10450         coverage report, and change how some of the code works.
10451
10452         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10453         not in the coverage stats.
10454
10455         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10456         couple places so running the test suite doesn't result in megaspam.
10457
10458 2003-04-11  Havoc Pennington  <hp@pobox.com>
10459
10460         * bus/dispatch.c (check_existent_service_activation): accept a no
10461         memory error in a place we didn't before
10462
10463         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10464         in case the first one failed," since the test suite is less
10465         broken now.
10466
10467 2003-04-10  Havoc Pennington  <hp@pobox.com>
10468
10469         * bus/dispatch.c (check_segfault_service_activation): add test
10470         for launching an executable that just crashes.
10471
10472         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10473         don't leave a million cores. We'll see how portable this is.
10474
10475 2003-04-10  Havoc Pennington  <hp@pobox.com>
10476
10477         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10478         the possible parent failures before we fork, so that we don't
10479         fail to create a babysitter after creating the child.
10480
10481         * bus/activation.c (bus_activation_activate_service): kill child
10482         if we don't successfully complete the activation.
10483
10484 2003-04-10  Havoc Pennington  <hp@redhat.com>
10485
10486         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10487         the connection if it's disconnected
10488
10489         * bus/activation.c (bus_activation_service_created): use new
10490         transaction features to roll back removal of pending activation if
10491         we don't successfully create the service after all. Don't remove
10492         pending activation if the function fails.
10493
10494         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10495         (_dbus_list_insert_after_link): new code to facilitate
10496         services.c fixes
10497
10498         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10499         new functionality, so we can preallocate the ability to insert
10500         into a hash table.
10501
10502         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10503         allowing us to put custom hooks in a transaction to be used for
10504         cancelling said transaction
10505
10506         * doc/dbus-specification.sgml: add some discussion of secondary
10507         service owners, and disallow zero-length service names
10508
10509         * bus/services.c (bus_registry_acquire_service): new function,
10510         splits out part of bus_driver_handle_acquire_service() and fixes
10511         a bug where we didn't remove the service doing the acquiring
10512         from the secondary queue if we failed to remove the current owner
10513         from the front of the queue.
10514
10515 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10516
10517         * doc/dbus-specification.sgml:
10518         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10519
10520 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10521
10522         * bus/.cvsignore:
10523         * glib/.cvsignore:
10524         * test/.cvsignore:
10525         Added files to cvsignore
10526
10527         * dbus/dbus-message.h:
10528         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10529         Make get_named() take two out argument and return a boolean.
10530         (dbus_message_iter_get_args_valist):
10531         Update usage of get_named().
10532         (dbus_message_iter_append_byte):
10533         Fix typo
10534         (dbus_message_iter_append_named)
10535         Fix typo
10536         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10537         More tests.
10538
10539 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10540
10541         * dbus/dbus-marshal.[ch]:
10542         Add array_type_pos argument to _dbus_marshal_validate_arg.
10543         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10544
10545         * dbus/dbus-message.[ch]:
10546         Multi-dimensional arrays have full type specification in the
10547         outermost array. Iter code re-arranged to handle this.
10548         Added some more iter tests.
10549
10550         * doc/dbus-specification.sgml:
10551         Add me to authors.
10552         Remove old FIXME.
10553         Update new array encoding description.
10554         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10555
10556         * test/data/invalid-messages/array-with-mixed-types.message:
10557         * test/data/valid-messages/array-of-array-of-uint32.message:
10558         Change to the new array format.
10559
10560         * test/data/invalid-messages/too-short-dict.message:
10561         Fix bug in test.
10562
10563         * test/data/valid-messages/recursive-types.message:
10564         Fix up and extend test.
10565
10566 2003-04-10  Havoc Pennington  <hp@pobox.com>
10567
10568         * bus/dispatch.c: lots of fixes
10569
10570         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10571         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10572         that was crack, broke the test service.
10573
10574         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10575         handling to avoid piling up errors if we get a failure on the
10576         first address.
10577
10578         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10579         pid in assertion failures.
10580
10581         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10582         to some fixed size of file descriptor array. Don't return TRUE
10583         anytime a timeout exists, that led to lots of busy loop silliness
10584         in the tests.
10585
10586 2003-04-09  Havoc Pennington  <hp@redhat.com>
10587
10588         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10589         I'd checked this in earlier but hadn't.
10590
10591 2003-04-09  Havoc Pennington  <hp@redhat.com>
10592
10593         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10594         the activation test (man this is getting old!)
10595
10596 2003-04-09  Havoc Pennington  <hp@redhat.com>
10597
10598         * test/test-utils.c: use dispatch status function to fix this up
10599
10600         * bus/connection.c (connection_watch_callback): don't dispatch
10601         from here
10602         (connection_timeout_callback): don't dispatch from here
10603         (bus_connections_setup_connection): set the dispatch status function
10604         (bus_connection_disconnected): unset it
10605
10606         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10607         used to add a connection to be dispatched
10608         (_dbus_loop_iterate): do the dispatching at the end of each
10609         iteration
10610
10611         * dbus/dbus-connection.c
10612         (dbus_connection_set_dispatch_status_function): new function
10613         allowing us to fix up main loop usage
10614         (_dbus_connection_last_unref): free all the various function
10615         user data
10616         (dbus_connection_dispatch): call the DispatchStatusFunction
10617         whenever this function returns
10618         (dbus_connection_handle_watch): call DispatchStatusFunction
10619         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10620         (reply_handler_timeout): call DispatchStatusFunction
10621         (dbus_connection_flush): call DispatchStatusFunction
10622
10623 2003-04-09  Havoc Pennington  <hp@redhat.com>
10624
10625         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10626         a memory leak
10627
10628         * bus/dispatch.c (check_service_activated): fix bug in test
10629
10630         * dbus/dbus-mainloop.c (check_timeout): fix this up
10631
10632         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10633         verbose output so we can sort out output from different processes,
10634         e.g. in the activation case.
10635
10636 2003-04-08  Colin Walters  <walters@gnu.org>
10637
10638         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10639         the pid file.
10640         (bus_context_new): Set it.
10641         (bus_context_unref): Use it to delete the pid file.
10642
10643 2003-04-08  Havoc Pennington  <hp@redhat.com>
10644
10645         * test/data/invalid-messages/array-with-mixed-types.message:
10646         regression test that fails for the moment
10647
10648         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10649         tests for convenience
10650
10651         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10652         array of nil, it broke things.
10653
10654         * test/data/invalid-messages/array-of-nil.message: regression test
10655
10656         * test/data/valid-messages/array-of-array-of-uint32.message:
10657         happened to write this so added it to suite
10658
10659 2003-04-08  Havoc Pennington  <hp@redhat.com>
10660
10661         * bus/driver.c (bus_driver_handle_acquire_service): init
10662         retval/reply before checking name
10663
10664         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10665         recursion depth argument
10666
10667         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10668         in the public struct for future extension
10669
10670         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10671         typo
10672
10673         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10674         message
10675
10676         * doc/dbus-specification.sgml: fix typo
10677
10678 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10679
10680         Implemented recursive types, named types and new-style iters
10681
10682         * bus/driver.c:
10683         * glib/test-thread-client.c: (thread_func):
10684         * glib/test-thread-server.c: (handle_test_message):
10685         * test/test-service.c: (handle_echo):
10686         Update to new api
10687
10688         * dbus/Makefile.am:
10689         * dbus/dbus-dict.c:
10690         * dbus/dbus-dict.h:
10691         * dbus/dbus.h
10692         Remove DBusDict
10693
10694         * dbus/dbus-internals.c: (_dbus_type_to_string):
10695         Update for new types.
10696
10697         * dbus/dbus-marshal.[ch]:
10698         Implement recursive types and the new marshalling format.
10699         Remove hardcoded dict marshalling.
10700         Marshal named types.
10701
10702         * dbus/dbus-message-builder.c:
10703         Add BYTE_ARRAY.
10704         Remove references to old types
10705
10706         * dbus/dbus-message.[ch]:
10707         New non-refcounted iter API that supports recursive iters.
10708         Use iters for appending, including support for recursive
10709         iters.
10710         Add byte and named type support.
10711         Update everything to new marshalling formats.
10712         Add tests for new API.
10713
10714         * dbus/dbus-protocol.h:
10715         Remove old array types.
10716         Add types: BYTE, ARRAY, DICT, NAMED
10717
10718         * dbus/dbus-string.c:
10719         * dbus/dbus-sysdeps.c:
10720         Make parse_double locale safe.
10721
10722         * dbus/dbus-test-main.c:
10723         Call setlocale.
10724
10725         * dbus/dbus-test.c:
10726         Kill dict test
10727
10728         * doc/dbus-specification.sgml:
10729         Update spec
10730
10731         * test/data/incomplete-messages/missing-body.message:
10732         * test/data/invalid-messages/bad-boolean.message:
10733         * test/data/invalid-messages/bad-boolean-array.message:
10734         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10735         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10736         * test/data/invalid-messages/too-short-dict.message:
10737         * test/data/valid-messages/dict-simple.message:
10738         * test/data/valid-messages/dict.message:
10739         * test/data/valid-messages/emptiness.message:
10740         * test/data/valid-messages/lots-of-arguments.message:
10741         * test/data/valid-messages/no-padding.message:
10742         * test/data/valid-messages/recursive-types.message:
10743         Add missing NAME fields
10744         Fix up dicts & arrays
10745
10746         * test/data/invalid-messages/dict-with-nil-value.message:
10747         Removed, this is not invalid anymore.
10748
10749         * test/data/valid-messages/recursive-types.message:
10750         Add new test for deeply recursive types.
10751
10752 2003-04-07  Havoc Pennington  <hp@pobox.com>
10753
10754         * bus/driver.c (bus_driver_handle_acquire_service): return an
10755         error if you try to acquire a service that starts with ':'
10756
10757 2003-04-07  Havoc Pennington  <hp@redhat.com>
10758
10759         * doc/dbus-specification.sgml: require that base service names
10760         start with ':' and that the base service is created/deleted
10761         as first and last things a connection does on the bus
10762
10763         * bus/dispatch.c (check_existent_service_activation): lots more
10764         work on the activation test; it doesn't fully pass yet...
10765
10766         * test/test-service.c (main): fix so we don't memleak the
10767         connection to the message bus
10768         (filter_func): accept a message asking us to exit
10769
10770 2003-04-06  Havoc Pennington  <hp@pobox.com>
10771
10772         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10773         from Colin Walters
10774
10775         * configure.in: fixes to Qt detection from Colin Walters
10776
10777         * doc/Makefile.am: Only remove generated docbook dirs if they
10778         exist, from Colin Walters
10779
10780         * dbus/dbus-bus.c: change how we set well-known connections to
10781         NULL, so that it works if a single connection is stored in
10782         two well-known array slots.
10783
10784         * test/Makefile.am: remove a lot of stuff that isn't immediately
10785         useful, it's in CVS history if we want it.
10786
10787         * test/test-service.c: use dbus-mainloop instead of that
10788         watch.[hc] crack
10789
10790 2003-04-06  Havoc Pennington  <hp@pobox.com>
10791
10792         * dbus/Makefile.am: split lists of sources into stuff that goes in
10793         the library, util functions that go in the lib and are also used
10794         elsewhere, and util functions that are used in tests/daemon but
10795         don't go in the lib.
10796
10797         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10798         here so it can be used in test binaries also
10799
10800 2003-04-06  Havoc Pennington  <hp@pobox.com>
10801
10802         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10803         here in the parent process, so we can return an error if it
10804         fails. Also, move some of the code into the child so the parent
10805         is less hosed if we fail midway through.
10806
10807         * bus/bus.c (bus_context_new): move pidfile detection further up
10808         in the function, before we start overwriting sockets and such.
10809
10810         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10811
10812         * configure.in: add --with-system-pid-file and --with-system-socket
10813
10814 2003-04-06  Colin Walters  <walters@verbum.org>
10815
10816         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10817
10818         * bus/system.conf.in: Declare a pidfile.
10819
10820         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10821         create one (if appropriate).
10822
10823         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10824         (struct BusConfigParser) [pidfile]: New.
10825         (element_type_to_name, merge_included, start_busconfig_child)
10826         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10827         (bus_config_parser_unref): Free it.
10828         (bus_config_parser_get_pidfile): New function.
10829
10830         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10831
10832         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10833
10834         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10835
10836         * dbus/dbus-sysdeps.h: Prototype it.
10837
10838 2003-04-06  Havoc Pennington  <hp@pobox.com>
10839
10840         * bus/bus.c (bus_context_new): print the address in here, rather
10841         than in main(), because we need to do it before forking the daemon
10842
10843         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10844         on the service nonexistent error
10845
10846         * bus/driver.c (bus_driver_handle_acquire_service): set the
10847         sender on the AcquireService reply
10848
10849         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10850         server also listen on a UNIX socket so services can connect to it.
10851
10852 2003-04-06  Havoc Pennington  <hp@pobox.com>
10853
10854         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10855         so it detects deadlocks and also we actually init threads when
10856         debugging.
10857
10858 2003-04-06  Havoc Pennington  <hp@pobox.com>
10859
10860         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10861         save the domain socket name, and unlink it when we disconnect the
10862         server. Means that at least when we exit normally, we won't leave
10863         a bunch of junk in /tmp
10864
10865         * dbus/dbus-transport-unix.c
10866         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10867         memory management). (I was making a real change here but then
10868         didn't)
10869
10870 2003-04-06  Havoc Pennington  <hp@pobox.com>
10871
10872         * bus/bus.c (bus_context_new): fix wrong handling of
10873         server_data_slot_unref() in the error case.
10874
10875         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10876         "(condition) != 0" to _dbus_real_assert so that
10877         "_dbus_assert (pointer)" doesn't cause a warning
10878
10879         * bus/main.c (main): accept --print-address option to print out
10880         the message bus address
10881
10882         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10883
10884         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10885         "tmpdir" option to unix: address on client side
10886
10887         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10888         to unix: address
10889
10890         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10891         we can use to create sockets in the test suite.
10892
10893         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10894         cleanly. To be used for testing.
10895
10896         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10897
10898         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10899
10900         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10901         handle trying to call this when there's no servers active
10902
10903 2003-04-05  Havoc Pennington  <hp@pobox.com>
10904
10905         * NEWS: update
10906
10907         * configure.in: 0.8
10908
10909 2003-04-05  Havoc Pennington  <hp@pobox.com>
10910
10911         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10912         crash on startup. Need to get "try starting the daemon"
10913         in the test suite I guess. ;-)
10914
10915         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10916         tracked the number of open connections; it's better done in
10917         application-specific code as you want it to span all servers etc.
10918
10919 2003-04-05  Havoc Pennington  <hp@pobox.com>
10920
10921         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10922         patch from Colin Walters
10923
10924 2003-04-05  Havoc Pennington  <hp@pobox.com>
10925
10926         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10927         reality; in fact multiple mechanisms are allowed.
10928
10929         * dbus/dbus-internals.c (_dbus_real_assert)
10930         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10931         _dbus_assert_not_reached() into functions, so that they don't show
10932         up in basic block counts for test coverage, and don't use up as
10933         much disk space. Does mean slower execution speed though, so
10934         assumes --disable-asserts is the normal production case.
10935
10936 2003-04-05  Havoc Pennington  <hp@pobox.com>
10937
10938         * test/Makefile.am (dist-hook): also dist *.in files
10939
10940         * NEWS: update
10941
10942         * configure.in: 0.7
10943
10944 2003-04-05  Havoc Pennington  <hp@pobox.com>
10945
10946         * dbus/dbus-string.c: docs warning
10947
10948         * dbus/dbus-spawn.c: missing docs
10949
10950         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10951
10952 2003-04-05  Havoc Pennington  <hp@pobox.com>
10953
10954         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10955         magic from GLib
10956
10957         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10958         to -1 once we've reaped the babysitter
10959         (_dbus_babysitter_handle_watch): do as much work as we can, not
10960         just one go of it
10961
10962         * bus/activation.c: add code using DBusBabysitter so that we
10963         handle it when a service fails to start up properly.
10964         (bus_activation_service_created): don't remove the activation
10965         entries as we go, just let them get removed when we free the pending
10966         activation. Unref reply messages after sending them.
10967
10968 2003-04-05  Havoc Pennington  <hp@pobox.com>
10969
10970         * test/decode-gcov.c (main): print per-directory stats in the report
10971
10972         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10973
10974 2003-04-05  Havoc Pennington  <hp@pobox.com>
10975
10976         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10977
10978         * test/decode-gcov.c: hack up a little program to suck data
10979         out of gcov files. Yes this is sort of silly.
10980
10981         * configure.in: define something in config.h and do an
10982         AM_CONDITIONAL when gcov is enabled
10983
10984 2003-04-04  Havoc Pennington  <hp@redhat.com>
10985
10986         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10987         return a "babysitter" object that is used to monitor the status of
10988         the spawned process and reap it when required.
10989
10990         * test/test-segfault.c, test/test-exit.c,
10991         test/test-sleep-forever.c: binaries that do various lame things,
10992         used in the test suite.
10993
10994         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10995
10996 2003-04-03  Havoc Pennington  <hp@pobox.com>
10997
10998         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10999         in preparation for modifying it, dbus-sysdeps is getting
11000         a bit unmanageable.
11001
11002 2003-04-03  Havoc Pennington  <hp@redhat.com>
11003
11004         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11005         have multiple ones
11006
11007         * bus/*.[hc]: adapt to mainloop change
11008
11009 2003-04-03  Havoc Pennington  <hp@redhat.com>
11010
11011         * bus/activation.c (load_directory): fix up memleaks
11012         (bus_activation_entry_free): free the entry
11013
11014         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11015         we get one from the message bus; fix memleaks.
11016
11017         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11018
11019 2003-04-03  Havoc Pennington  <hp@pobox.com>
11020
11021         * bus/config-parser.c (bus_config_parser_unref): free
11022         list of mechanisms, bug discovered by test suite enhancements
11023         (putting system.conf and session.conf into suite)
11024
11025         * test/Makefile.am, test/test-service.c: add placeholder for a
11026         test service that we'll activate as part of test suite. Doesn't
11027         do anything yet.
11028
11029         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11030         setting NULL value, and use system malloc not dbus_malloc()
11031         when we have unavoidable memleakage.
11032
11033         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11034         didn't work, and support DBUS_BUS_ACTIVATION.
11035
11036         * bus/activation.c (child_setup): pass our well-known bus type to
11037         the child
11038
11039         * bus/config-parser.c: support <type> to specify well-known type
11040
11041         * doc/dbus-specification.sgml: document the env variables to
11042         locate well-known buses and find service activator
11043
11044 2003-04-02  Havoc Pennington  <hp@redhat.com>
11045
11046         * test/Makefile.am (all-local): add a rule to copy tests to
11047         builddir, so we can have generated tests. Use this to remove the
11048         silly hack for testing system.conf and session.conf. Will use this
11049         shortly to generate .service files pointing to test binaries.
11050
11051 2003-04-02  Havoc Pennington  <hp@redhat.com>
11052
11053         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11054         current alloc and needed new length, not max of the doubled
11055         allocation and needed new length. Also, when building tests,
11056         don't do the double-allocation stuff, just realloc every time.
11057
11058 2003-04-02  Havoc Pennington  <hp@redhat.com>
11059
11060         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11061         in error messages
11062         (_dbus_string_get_dirname): new
11063         (_dbus_sysdeps_test): new
11064         (_dbus_directory_open): include dirnames in error messages
11065
11066         * bus/config-parser.c: interpret <include> and <includedir> and
11067         <servicedir> relative to config file location if the given
11068         filename is not absolute.
11069
11070         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11071
11072 2003-04-02  Havoc Pennington  <hp@redhat.com>
11073
11074         * bus/connection.c (bus_transaction_send_error_reply): set sender
11075         service for the error, and unref the reply on success
11076
11077         * bus/activation.c: convert to use BusTransaction so OOM can be
11078         handled correctly
11079         (bus_activation_service_created): set sender of the message
11080
11081 2003-04-01  Havoc Pennington  <hp@redhat.com>
11082
11083         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11084         <includedir> (at least mostly)
11085
11086         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11087         first, then the user ID
11088
11089 2003-04-01  Havoc Pennington  <hp@pobox.com>
11090
11091         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11092         function
11093
11094         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11095
11096         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11097
11098         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11099         socket 0777, and unlink any existing socket.
11100
11101         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11102         the configuration file so specifies; set up auth mechanism
11103         restrictions
11104
11105         * bus/config-parser.c (bus_config_parser_content): add support
11106         for <fork> option and fill in code for <auth>
11107
11108         * bus/system.conf.in: add <fork/> to default configuration,
11109         and limit auth mechanisms to EXTERNAL
11110
11111         * doc/config-file.txt (Elements): add <fork>
11112
11113         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11114         (_dbus_change_identity): new function
11115
11116 2003-03-31  Havoc Pennington  <hp@redhat.com>
11117
11118         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11119         (_dbus_listen_unix_socket): fix off-by-one error in null
11120         termination spotted by Nalin
11121
11122 2003-03-31  Havoc Pennington  <hp@redhat.com>
11123
11124         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11125         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11126         having a real home directory available.
11127
11128 2003-03-31  Havoc Pennington  <hp@redhat.com>
11129
11130         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11131
11132         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11133
11134         * configure.in: add support for specifying a style of init script
11135         to install
11136
11137 2003-03-31  Havoc Pennington  <hp@redhat.com>
11138
11139         Fix some annoying DBusString API and fix all affected code.
11140
11141         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11142         max_length argument
11143         (_dbus_string_get_data): change to return string instead of using
11144         an out param
11145         (_dbus_string_get_const_data): ditto
11146         (_dbus_string_get_data_len): ditto
11147         (_dbus_string_get_const_data_len): ditto
11148
11149 2003-03-31  Havoc Pennington  <hp@redhat.com>
11150
11151         * bus/main.c (main): fix up the command line arguments to be nicer
11152
11153 2003-03-31  Havoc Pennington  <hp@redhat.com>
11154
11155         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11156         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11157         final location that lands in the config file
11158
11159         * bus/config-loader-expat.c (bus_config_load): fix type of
11160         XML_Parser variable
11161
11162         * doc/TODO: remove TODO item for dbus_bus_get()
11163
11164         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11165
11166 2003-03-31  Havoc Pennington  <hp@pobox.com>
11167
11168         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11169         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11170         argument since they are always client side
11171
11172         * dbus/dbus-server.c (dbus_server_get_address): new function
11173
11174         * bus/main.c (main): take the configuration file as an argument.
11175
11176         * test/data/valid-config-files/debug-allow-all.conf: new file to
11177         use with dispatch.c tests for example
11178
11179         * bus/test-main.c (main): require test data dir
11180
11181         * bus/bus.c (bus_context_new): change this to take a
11182         configuration file name as argument
11183
11184         * doc/config-file.txt (Elements): add <servicedir>
11185
11186         * bus/system.conf, bus/session.conf: new files
11187
11188         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11189         well-known socket if none set
11190
11191         * configure.in: create system.conf and session.conf
11192
11193 2003-03-30  Havoc Pennington  <hp@pobox.com>
11194
11195         * bus/config-parser.c: hacking
11196
11197         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11198         to shut down, since it could cause weirdness with the DBusList
11199         lock
11200
11201         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11202         link-oriented stack routines
11203         (alloc_link): free the mempool if the first alloc from it fails
11204
11205         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11206
11207         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11208         from GLib
11209         (_dbus_string_skip_white): new
11210
11211         * doc/config-file.txt (Elements): add <includedir>
11212
11213 2003-03-28  Havoc Pennington  <hp@pobox.com>
11214
11215         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11216         (_dbus_string_copy_data): new functions
11217
11218 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11219
11220         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11221         * dbus/dbus-bus.h:
11222         Add dbus_bus_get.
11223
11224         * dbus/dbus-memory.c:
11225         Fix a doc comment.
11226
11227 2003-03-28  Havoc Pennington  <hp@pobox.com>
11228
11229         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11230         I think it may have just been superstition. Not sure.
11231
11232         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11233         failures that were not being handled.
11234
11235         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11236
11237         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11238         row that will fail on out-of-memory.
11239
11240         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11241         function for testing out-of-memory handling.
11242
11243         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11244         allocation functions, they do map exactly to the expat ones.
11245
11246 2003-03-27  Havoc Pennington  <hp@redhat.com>
11247
11248         * bus/config-loader-libxml.c (bus_config_load): add another error
11249         check
11250
11251 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11252
11253         * doc/TODO:
11254         Add note about automatic service activation.
11255
11256         * doc/dbus-specification.sgml:
11257         Rename the specification and clarify a few things.
11258
11259 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11260
11261         * Doxyfile.in:
11262         * dbus/dbus-address.c:
11263         * dbus/dbus-dict.c:
11264         * dbus/dbus-marshal.c:
11265         * dbus/dbus-server-debug-pipe.c:
11266         * dbus/dbus-transport-unix.c:
11267         Fix documentation warnings.
11268
11269 2003-03-26  Havoc Pennington  <hp@pobox.com>
11270
11271         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11272         after every test so it's quick and easy to see which leaked, and
11273         so we test multiple dbus_shutdown() calls
11274
11275         * configure.in: change configure.in XML stuff to also support
11276         expat
11277
11278         * config-loader-libxml.c: some hacking
11279
11280         * config-loader-expat.c: some hacking
11281
11282         * config-parser.c: some hacking, plus tests
11283
11284 2003-03-25  Havoc Pennington  <hp@redhat.com>
11285
11286         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11287
11288         * configure.in: add --with-xml option to specify XML library,
11289         right now only libxml is supported.
11290
11291         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11292         nonworking code between home and work, still just stubs
11293
11294 2003-03-24  Havoc Pennington  <hp@redhat.com>
11295
11296         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11297         file
11298
11299         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11300         NULL argument for "message" if the error is a well-known one,
11301         fill in a generic message in this case.
11302
11303         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11304         favor of DBusError
11305
11306         * bus/test.c (bus_test_flush_bus): add
11307
11308         * bus/policy.c (bus_policy_test): test code stub
11309
11310 2003-03-24  Havoc Pennington  <hp@pobox.com>
11311
11312         * bus/connection.c (bus_connections_setup_connection): set up
11313         the "can this user connect" function, but it always returns
11314         TRUE until we have a config file parser so we can have a config
11315         file that allows connections.
11316
11317 2003-03-23  Havoc Pennington  <hp@pobox.com>
11318
11319         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11320         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11321         the mutex, so we can check for proper memory management
11322         and OOM handling.
11323
11324         * dbus/dbus-dataslot.c: remove the mutex from
11325         DBusDataSlotAllocator and lock it manually when using it,
11326         to simplify fitting it into the global slots framework.
11327
11328         * dbus/dbus-threads.c (init_static_locks): rework how we're
11329         handling global locks so they are easily shut down.
11330
11331         * bus/policy.c (bus_policy_append_rule): fix
11332
11333         * bus/test-main.c (main): check for memleaks
11334
11335         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11336         test suite check for memleaks
11337
11338         * dbus/dbus-memory.c: add support in test mode for tracking
11339         number of outstanding blocks
11340
11341 2003-03-23  Havoc Pennington  <hp@pobox.com>
11342
11343         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11344         policies code
11345
11346         * dbus/dbus-hash.h: add ULONG hash keys
11347
11348         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11349         (_dbus_get_group_id): new function
11350
11351 2003-03-20  Havoc Pennington  <hp@redhat.com>
11352
11353         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11354         new function
11355         (dbus_connection_get_unix_user): new function
11356
11357 2003-03-20  Havoc Pennington  <hp@pobox.com>
11358
11359         * bus/connection.c (bus_connection_send_oom_error): assert that
11360         message has a sender
11361         (connection_execute_transaction): ditto
11362         (bus_connection_preallocate_oom_error): fix to set the sender, and
11363         set recipient to the destination service, not the bus driver
11364
11365         * bus/policy.c: hacking
11366
11367         * dbus/dbus-message.c (dbus_message_service_is): new function
11368         (dbus_message_sender_is): new
11369
11370 2003-03-19  Havoc Pennington  <hp@redhat.com>
11371
11372         * bus/policy.c: start sketching code for policy restrictions on
11373         what connections can do.
11374
11375 2003-03-18  Havoc Pennington  <hp@redhat.com>
11376
11377         * doc/TODO: some notes on high-level todo items. Little nitpick
11378         stuff is all in @todo, so no need to add it here.
11379
11380         * doc/config-file.txt: some notes on how config file might look
11381
11382 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11383
11384         * configure.in: 0.6
11385
11386         * NEWS: Update.
11387
11388 2003-03-17  Havoc Pennington  <hp@redhat.com>
11389
11390         * dbus/dbus-internals.h: add gcc attributes so that
11391         our printf-style functions warn on bad arguments to
11392         format
11393
11394         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11395         format bug
11396
11397         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11398         printf format bug
11399
11400 2003-03-17  Havoc Pennington  <hp@redhat.com>
11401
11402         * bus/test-main.c (main): make it print something as it runs
11403         so make check doesn't look stuck
11404
11405         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11406         from CVS, now obsolete
11407
11408 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11409
11410         * bus/dispatch.c: (bus_dispatch):
11411         Refetch the service name since it may have been reallocated
11412         when dbus_message_set_sender was called.
11413
11414         * dbus/dbus-sysdeps.c: (_dbus_accept):
11415         Add address and address length variables and use them to stop
11416         valgrind from complaining.
11417
11418 2003-03-17  Havoc Pennington  <hp@pobox.com>
11419
11420         All tests pass, no memleaks, no valgrind complaints.
11421
11422         * bus/test.c: refcount handler_slot
11423
11424         * bus/connection.c (bus_connections_new): refcount
11425         connection_data_slot
11426
11427         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11428         bytes so that auth scripts pass.
11429
11430         * bus/dispatch.c: init message_handler_slot so it gets allocated
11431         properly
11432
11433         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11434
11435         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11436         dealloc server_pipe_hash when no longer used for benefit of
11437         leak checking
11438
11439         * dbus/dbus-auth.c (process_command): memleak fix
11440
11441         * bus/dispatch.c (check_hello_message): memleak fix
11442
11443 2003-03-16  Havoc Pennington  <hp@pobox.com>
11444
11445         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11446
11447 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11448
11449         * bus/activation.c (bus_activation_activate_service): Append
11450         the pending activation entry to the list of pending activations.
11451
11452 2003-03-16  Havoc Pennington  <hp@pobox.com>
11453
11454         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11455         connections
11456
11457         * dbus/dbus-address.c (create_entry): fix OOM handling when
11458         failing to alloc entry->method
11459
11460 2003-03-16  Havoc Pennington  <hp@pobox.com>
11461
11462         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11463         the watch
11464
11465         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11466         add some missing dbus_set_result
11467
11468         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11469         alloc the DBusMessageHandler
11470
11471         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11472         the transport here, since we call this from the finalizer; it
11473         resulted in a double-finalize.
11474
11475         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11476         where we tried to use transport->connection that was NULL,
11477         happened when transport was disconnected early on due to OOM
11478
11479         * bus/*.c: adapt to handle OOM for watches/timeouts
11480
11481         * dbus/dbus-transport-unix.c: port to handle OOM during
11482         watch handling
11483
11484         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11485         reference to unused bytes instead of a copy
11486
11487         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11488         out of memory
11489
11490         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11491         FALSE on OOM
11492
11493         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11494         of memory
11495
11496 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11497
11498         * doc/dbus-specification.sgml:
11499         Document reply message for ActivateService.
11500
11501 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11502
11503         * bus/activation.c: (bus_pending_activation_entry_free),
11504         (bus_pending_activation_free), (bus_activation_new),
11505         (bus_activation_unref), (bus_activation_service_created),
11506         (bus_activation_activate_service):
11507         * bus/activation.h:
11508         * bus/bus.c: (bus_context_new):
11509         * bus/desktop-file.c: (new_section):
11510         * bus/driver.c: (bus_driver_send_service_deleted),
11511         (bus_driver_handle_activate_service):
11512         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11513         * bus/services.h:
11514         * dbus/dbus-connection.c:
11515         (dbus_connection_send_with_reply_and_block):
11516         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11517         * dbus/dbus-protocol.h:
11518         Make activation work better. Now pending activations will be queued
11519         and the daemon won't try to activate services that are already registered.
11520
11521 2003-03-16  Havoc Pennington  <hp@pobox.com>
11522
11523         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11524         connection data
11525
11526         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11527         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11528
11529 2003-03-16  Havoc Pennington  <hp@pobox.com>
11530
11531         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11532         this. always run the test suite before commit...
11533
11534         * bus/*: adapt to DBusConnection API changes
11535
11536         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11537         requires renaming stuff to avoid dbus_connection_dispatch name
11538         conflict.
11539
11540         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11541         function
11542
11543         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11544         separate from _dbus_message_loader_return_buffer()
11545
11546         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11547         this, because it's now always broken to use; the number of
11548         messages in queue vs. the number still buffered by the message
11549         loader is undefined/meaningless. Should use
11550         dbus_connection_get_dispatch_state().
11551         (dbus_connection_dispatch): rename from
11552         dbus_connection_dispatch_message
11553
11554 2003-03-16  Havoc Pennington  <hp@pobox.com>
11555
11556         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11557         implementation
11558
11559 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11560
11561         * dbus/dbus-connection.c:
11562         (dbus_connection_send_with_reply_and_block):
11563         Decrease connection->n_incoming when removing an entry
11564         from the list.
11565         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11566         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11567         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11568         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11569         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11570         (dbus_dict_get_byte_array):
11571         Handle NULL arrays and strings. Also add support for byte arrays.
11572
11573         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11574         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11575         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11576         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11577         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11578         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11579         * dbus/dbus-marshal.h:
11580         Add support for marshalling and demarshalling empty arrays and strings.
11581
11582         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11583         (dbus_message_append_string_array),
11584         (dbus_message_iter_get_boolean),
11585         (dbus_message_iter_get_boolean_array),
11586         (dbus_message_iter_get_int32_array),
11587         (dbus_message_iter_get_uint32_array),
11588         (dbus_message_iter_get_double_array),
11589         (dbus_message_iter_get_byte_array),
11590         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11591         (check_message_handling):
11592         Add support for getting empty arrays and dicts.
11593
11594         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11595         Don't do any validation at all for now, that's better than just checking
11596         for ASCII.
11597
11598         * test/data/valid-messages/emptiness.message:
11599         New test message with lots of empty arrays.
11600
11601 2003-03-16  Havoc Pennington  <hp@pobox.com>
11602
11603         * dbus/dbus-connection.c
11604         (_dbus_connection_queue_received_message_link): new function that
11605         can't fail due to OOM
11606
11607         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11608         new function pops a message together with a list link
11609         containing it.
11610
11611         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11612         message queuing functions to avoid needing to alloc memory
11613
11614 2003-03-16  Havoc Pennington  <hp@pobox.com>
11615
11616         Oops - test code was only testing failure of around 30 of the
11617         mallocs in the test path, but it turns out there are 500+
11618         mallocs. I believe this was due to misguided linking setup such
11619         that there was one copy of dbus_malloc etc. in the daemon and one
11620         in the shared lib, and only daemon mallocs were tested. In any
11621         case, the test case now tests all 500+ mallocs, and doesn't pass
11622         yet, though there are lots of fixes in this patch.
11623
11624         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11625         this so that it doesn't need to allocate memory, since it
11626         has no way of indicating failure due to OOM (and would be
11627         annoying if it did).
11628
11629         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11630
11631         * bus/Makefile.am: rearrange to create two self-contained
11632         libraries, to avoid having libraries with overlapping symbols.
11633         that was resulting in weirdness, e.g. I'm pretty sure there
11634         were two copies of global static variables.
11635
11636         * dbus/dbus-internals.c: move the malloc debug stuff to
11637         dbus-memory.c
11638
11639         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11640         empty.
11641
11642         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11643
11644         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11645         on failure.
11646
11647         * bus/dispatch.c (bus_dispatch_add_connection): free
11648         message_handler_slot when no longer using it, so
11649         memory leak checkers are happy for the test suite.
11650
11651         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11652
11653         * bus/bus.c (new_connection_callback): disconnect in here if
11654         bus_connections_setup_connection fails.
11655
11656         * bus/connection.c (bus_connections_unref): fix to free the
11657         connections
11658         (bus_connections_setup_connection): if this fails, don't
11659         disconnect the connection, just be sure there are no side
11660         effects.
11661
11662         * dbus/dbus-string.c (undo_alignment): unbreak this
11663
11664         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11665         leaking
11666         (_dbus_auth_new): fix the order in which we free strings
11667         on OOM failure
11668
11669         * bus/connection.c (bus_connection_disconnected): fix to
11670         not send ServiceDeleted multiple times in case of memory
11671         allocation failure
11672
11673         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11674         get the base service name
11675         (dbus_bus_register_client): don't return base service name,
11676         instead store it on the DBusConnection and have an accessor
11677         function for it.
11678         (dbus_bus_register_client): rename dbus_bus_register()
11679
11680         * bus/dispatch.c (check_hello_message): verify that other
11681         connections on the bus also got the correct results, not
11682         just the one sending hello
11683
11684 2003-03-15  Havoc Pennington  <hp@pobox.com>
11685
11686         Make it pass the Hello handling test including all OOM codepaths.
11687         Now to do other messages...
11688
11689         * bus/services.c (bus_service_remove_owner): fix crash when
11690         removing owner from an empty list of owners
11691         (bus_registry_ensure): don't leave service in the list of
11692         a connection's owned services if we fail to put the service
11693         in the hash table.
11694
11695         * bus/connection.c (bus_connection_preallocate_oom_error): set
11696         error flag on the OOM error.
11697
11698         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11699         handle _dbus_transport_set_connection failure
11700
11701         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11702         to create watches up front and simply enable/disable them as
11703         needed.
11704         (unix_connection_set): this can now fail on OOM
11705
11706         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11707         of enabling/disabling a watch or timeout.
11708
11709         * bus/loop.c (bus_loop_iterate): don't touch disabled
11710         watches/timeouts
11711
11712         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11713
11714 2003-03-15  Havoc Pennington  <hp@pobox.com>
11715
11716         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11717         write useful test code, after all that futzing around ;-)
11718
11719         Test does not yet pass because we can't handle OOM in
11720         _dbus_transport_messages_pending (basically,
11721         dbus_connection_preallocate_send() does not prealloc the write
11722         watch). To fix this, I think we need to add new stuff to
11723         set_watch_functions, namely a SetEnabled function so we can alloc
11724         the watch earlier, then enable it later.
11725
11726         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11727         dbus-memory.c to the convenience lib
11728
11729         * bus/test.c: rename some static functions to keep them clearly
11730         distinct from stuff in connection.c. Handle client disconnection.
11731
11732 2003-03-14  Havoc Pennington  <hp@pobox.com>
11733
11734         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11735         transport, tests more of the real codepath. Set up clients
11736         with bus_setup_debug_client.
11737
11738         * bus/test.c (bus_setup_debug_client): function to set up debug
11739         "clients" on the main loop
11740
11741         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11742         support
11743
11744         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11745         server type
11746
11747         * dbus/dbus-server-debug.c: support a debug server based on pipes
11748
11749         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11750         (_dbus_close): new function
11751
11752         * configure.in: check for socketpair
11753
11754 2003-03-14  Havoc Pennington  <hp@redhat.com>
11755
11756         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11757         cheesy hack
11758
11759         * dbus/dbus-transport-debug.c: rework this a good bit to be
11760         less complicated. hopefully still works.
11761
11762         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11763         manually
11764
11765         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11766         after running it
11767
11768         * dbus/dbus-message.c (dbus_message_copy): rename from
11769         dbus_message_new_from_message, fix it up to copy
11770         all the message fields, add test case
11771
11772         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11773         not quite passing yet
11774
11775 2003-03-14  Havoc Pennington  <hp@pobox.com>
11776
11777         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11778         until no work remains" in test code. (the large diff here
11779         is just code movement, no actual changes)
11780
11781         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11782         1, no point waiting around for test code.
11783         (_dbus_server_debug_accept_transport): unref the timeout
11784         after adding it (right?)
11785
11786         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11787
11788 2003-03-13  Havoc Pennington  <hp@redhat.com>
11789
11790         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11791         out of memory
11792
11793         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11794         of memory
11795
11796         * dbus/dbus-connection.h: Make AddWatchFunction and
11797         AddTimeoutFunction return a bool so they can fail on out-of-memory
11798
11799         * bus/bus.c (bus_context_new): set up timeout handlers
11800
11801         * bus/connection.c (bus_connections_setup_connection): set up
11802         timeout handlers
11803
11804         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11805         can fail
11806
11807         * bus/bus.c (bus_context_new): adapt to changes
11808
11809         * bus/connection.c: adapt to changes
11810
11811         * test/watch.c: adapt to DBusWatch changes
11812
11813         * bus/dispatch.c (bus_dispatch_test): started adding this but
11814         didn't finish
11815
11816 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11817
11818         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11819
11820 2003-03-13  Havoc Pennington  <hp@pobox.com>
11821
11822         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11823         set up a test framework as for the library
11824
11825 2003-03-12  Havoc Pennington  <hp@pobox.com>
11826
11827         Throughout: purge global variables, introduce BusActivation,
11828         BusConnections, BusRegistry, etc. objects instead.
11829
11830         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11831         message bus object
11832
11833         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11834         going to redo this a bit differently I think
11835
11836 2003-03-12  Havoc Pennington  <hp@redhat.com>
11837
11838         Mega-patch that gets the message bus daemon initially handling
11839         out-of-memory. Work still needed. Also lots of random
11840         moving stuff to DBusError instead of ResultCode.
11841
11842         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11843
11844         * dbus/dbus-connection.c
11845         (dbus_connection_send_with_reply_and_block): use DBusError
11846
11847         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11848         DBusResultCode
11849
11850         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11851         code here, as the only failure possible is OOM.
11852
11853         * bus/connection.c (bus_connection_disconnect):
11854         rename bus_connection_disconnected as it's a notification only
11855
11856         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11857         "name" on get_args failure, should be done by get_args;
11858         don't disconnect client for bad args, just return an error.
11859         (bus_driver_handle_service_exists): ditto
11860
11861         * bus/services.c (bus_services_list): NULL-terminate returned array
11862
11863         * bus/driver.c (bus_driver_send_service_lost)
11864         (bus_driver_send_service_acquired): send messages from driver to a
11865         specific client to the client's unique name, not to the broadcast
11866         service.
11867
11868         * dbus/dbus-message.c (decode_header_data): reject messages that
11869         contain no name field
11870         (_dbus_message_get_client_serial): rename to
11871         dbus_message_get_serial and make public
11872         (_dbus_message_set_serial): rename from set_client_serial
11873         (_dbus_message_set_reply_serial): make public
11874         (_dbus_message_get_reply_serial): make public
11875
11876         * bus/connection.c (bus_connection_foreach): allow stopping
11877         iteration by returning FALSE from foreach function.
11878
11879         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11880         (dbus_connection_free_preallocated_send)
11881         (dbus_connection_preallocate_send): new API for sending a message
11882         without possibility of malloc failure.
11883         (dbus_connection_send_message): rename to just
11884         dbus_connection_send (and same for whole function family)
11885
11886         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11887
11888         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11889
11890         * bus/activation.c: handle/return errors
11891
11892         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11893
11894         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11895         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11896         (_dbus_result_from_errno): move to this file
11897
11898 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11899
11900         * dbus/dbus-marshal.c:
11901         (_dbus_marshal_set_string):
11902         Take a length argument so we can marshal the correct string
11903         length.
11904
11905         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11906         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11907         (_dbus_marshal_test):
11908         * dbus/dbus-marshal.h:
11909         Add support for marshalling and demarshalling dicts.
11910
11911         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11912         Add support for TYPE DICT.
11913
11914         * dbus/dbus-message.c: (set_string_field):
11915         Adjust header padding.
11916
11917         (dbus_message_append_args_valist), (dbus_message_append_dict),
11918         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11919         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11920         (check_message_handling), (check_have_valid_message):
11921         * dbus/dbus-message.h:
11922         Add functions for setting and getting dicts.
11923
11924         * dbus/dbus-protocol.h:
11925         Add DBUS_TYPE_DICT.
11926
11927         * dbus/dbus.h:
11928         Add dbus-dict.h
11929
11930         * doc/dbus-specification.sgml:
11931         Add information about how dicts are marshalled.
11932
11933         * test/data/invalid-messages/dict-with-nil-value.message:
11934         * test/data/invalid-messages/too-short-dict.message:
11935         * test/data/valid-messages/dict-simple.message:
11936         * test/data/valid-messages/dict.message:
11937         Add sample messages containing dicts.
11938
11939 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11940
11941         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11942
11943 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11944
11945         * dbus/Makefile.am:
11946         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11947         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11948         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11949         (dbus_dict_set_double), (dbus_dict_set_string),
11950         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11951         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11952         (dbus_dict_set_string_array), (_dbus_dict_test):
11953         * dbus/dbus-dict.h:
11954         Fix according to comments from Havoc.
11955
11956 2003-03-06  Michael Meeks  <michael@server.home>
11957
11958         * configure.in: if we don't have kde-config, disable have_qt.
11959
11960 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11961
11962         * dbus/Makefile.am:
11963         Add dbus-dict.[ch]
11964
11965         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11966         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11967         (dbus_dict_remove), (dbus_dict_get_value_type),
11968         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11969         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11970         (dbus_dict_put_double), (dbus_dict_put_string),
11971         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11972         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11973         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11974         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11975         (dbus_dict_get_double), (dbus_dict_get_string),
11976         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11977         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11978         (dbus_dict_get_string_array), (_dbus_dict_test):
11979         * dbus/dbus-dict.h:
11980         Add DBusDict implementation
11981
11982         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11983         * dbus/dbus-test.h:
11984         Add _dbus_dict_test
11985
11986 2003-03-04  Havoc Pennington  <hp@pobox.com>
11987
11988         * test/data/auth/*: adapt to changes
11989
11990         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11991         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11992         userid
11993
11994         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11995         more stuff from being in a context name, to make the protocol
11996         simpler to deal with
11997
11998         * dbus/dbus-errors.c (dbus_error_has_name): new function
11999         (dbus_error_is_set): new function
12000
12001         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12002         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12003
12004         * dbus/dbus-connection.c (dbus_connection_flush): also read
12005         messages during a flush operation
12006
12007         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12008
12009 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12010
12011         * configure.in: Check for gethostbyname on Solaris.
12012
12013         * dbus/dbus-transport.c: (_dbus_transport_open):
12014         Remove duplicate "tcp" entry.
12015
12016         * doc/dbus-specification.sgml:
12017         Clarify some things.
12018
12019 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12020
12021         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12022         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12023         (_dbus_keyring_test):
12024         * dbus/dbus-md5.c: (_dbus_md5_compute):
12025         * dbus/dbus-sha.c: (_dbus_sha_compute):
12026         Plug memory leaks.
12027
12028 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12029
12030         * README: Add some things.
12031
12032 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12033
12034         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12035         after case DBUS_TYPE_BOOELAN.
12036
12037 2003-03-02  Havoc Pennington  <hp@pobox.com>
12038
12039         * test/break-loader.c (randomly_set_extreme_ints): add test that
12040         sets really huge and small integers
12041
12042         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12043         that length of boolean array fits in the string, and that
12044         string has room for boolean value in single-bool case.
12045
12046         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12047         optional value to "ALIGN" command which is what to fill the
12048         alignment with.
12049
12050         * test/data/valid-messages/no-padding.message: add regression
12051         test for the message padding problem
12052
12053 2003-03-02  Havoc Pennington  <hp@pobox.com>
12054
12055         * dbus/dbus-message.c (decode_header_data): fix to always init
12056         message_padding, from Benjamin Dauvergne
12057
12058 2003-03-02  Havoc Pennington  <hp@pobox.com>
12059
12060         * configure.in: 0.5
12061
12062         * NEWS: Update.
12063
12064 2003-03-01  Joe Shaw  <joe@assbarn.com>
12065
12066         * configure.in: Check for "struct cmsgcred" and try to access its
12067         members for BSD-like unices.
12068
12069         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12070         _dbus_read_credentials_unix_socket().
12071         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12072         read() for reading the credential byte off the unix socket.  Use
12073         struct cmsgcred on systems that support it.
12074
12075 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12076
12077         * glib/Makefile.am:
12078         * configure.in:
12079         Make gthreads-2.0 dependency optional. Don't build thread test if
12080         its not found.
12081
12082 2003-02-27  Havoc Pennington  <hp@pobox.com>
12083
12084         * dbus/dbus-connection.c
12085         (dbus_connection_send_message_with_reply_and_block): fix doh!
12086         doh! doh! bug that resulted in never removing a reply from the
12087         queue, no wonder we called get_reply_serial so much ;-)
12088
12089         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12090         and client serial instead of demarshaling them every time
12091
12092 2003-02-27  Havoc Pennington  <hp@pobox.com>
12093
12094         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12095         more inlined, using dbus-string-private.h, speeds things up
12096         substantially
12097
12098         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12099         when freeing the string
12100         (_dbus_string_steal_data): fix for align offset
12101         (undo_alignment): new function
12102
12103 2003-02-26  Havoc Pennington  <hp@redhat.com>
12104
12105         All kinds of audit fixes from Owen, plus initial attempt to
12106         handle unaligned memory returned from malloc.
12107
12108         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12109         leave room for align_offset and nul byte
12110         (fixup_alignment): function to track an align_offset and
12111         ensure real->str is aligned
12112         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12113         to allow a nul byte plus align offset
12114         (_dbus_string_lock): fix overflow issue
12115         (_dbus_string_init_const_len): add assertions on sanity of len,
12116         assign allocated to be ALLOCATION_PADDING larger than len
12117         (set_length): fixup the overflow handling
12118         (_dbus_string_get_data_len): fix overflow in assertion
12119         (open_gap): detect overflow in size of gap to be opened
12120         (_dbus_string_lengthen): add overflow check
12121         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12122         (_dbus_string_append): add overflow check
12123         (_dbus_string_append_unichar): overflow
12124         (_dbus_string_delete): fix overflow in assertion
12125         (_dbus_string_copy_len): overflow in assertion
12126         (_dbus_string_replace_len): overflows in assertions
12127         (_dbus_string_find): change to implement in terms of
12128         _dbus_string_find_to
12129         (_dbus_string_find_to): assorted fixage
12130         (_dbus_string_equal_c_str): assert c_str != NULL,
12131         fix logic so the function works
12132         (_dbus_string_ends_with_c_str): fix overflow thingy
12133         (_dbus_string_base64_encode): overflow fix
12134         (_dbus_string_validate_ascii): overflow
12135         (_dbus_string_validate_nul): overflow
12136
12137 2003-02-26  Havoc Pennington  <hp@redhat.com>
12138
12139         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12140
12141 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12142
12143         * configure.in:
12144         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12145
12146         * dbus/dbus-connection.c:
12147         * dbus/dbus-connection.h:
12148         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12149         Add dbus_connection_set_wakeup_main_function and use it when queueing
12150         incoming and outgoing messages.
12151
12152
12153         * dbus/dbus-dataslot.c:
12154         Threadsafe usage of DBusDataSlotAllocator
12155
12156         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12157         dbus_new can fail.
12158
12159         * dbus/dbus-server-unix.c:
12160         Add todo comment
12161
12162         * glib/dbus-gmain.c:
12163         Implement the new wakeup functions for glib.
12164
12165         * glib/Makefile.am:
12166         * glib/test-thread-client.c:
12167         * glib/test-thread-server.c:
12168         * glib/test-thread.h:
12169         Initial cut at some thread test code. Not really done yet.
12170
12171 2003-02-26  Havoc Pennington  <hp@pobox.com>
12172
12173         * dbus/dbus-connection.c
12174         (dbus_connection_send_message_with_reply_and_block): fix crash
12175         where we ref'd the outgoing message instead of the returned reply
12176
12177         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12178         at the end of this function, so if we didn't need to read for
12179         authentication, we reinstall it for receiving messages
12180
12181         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12182         a NULL sender for peer-to-peer case
12183
12184         * dbus/dbus-transport-unix.c (check_read_watch): handle
12185         !authenticated case correctly
12186
12187         * glib/dbus-gmain.c: add support for DBusServer
12188
12189         * dbus/dbus-server.c: add data slot support
12190
12191         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12192         return values and handle errors
12193
12194         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12195         DBusConnection
12196
12197         * Doxyfile.in (INPUT): add glib subdir
12198
12199         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12200         setup_with_g_main instead of hookup_with_g_main; write docs
12201
12202 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12203
12204         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12205         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12206         * dbus/dbus-message.c: (dbus_message_append_boolean),
12207         (dbus_message_append_boolean_array),
12208         (dbus_message_get_args_valist), (_dbus_message_test):
12209         * dbus/dbus-message.h:
12210         * doc/dbus-specification.sgml:
12211         Various fixes as pointed out by Havoc.
12212
12213         * test/data/invalid-messages/bad-boolean-array.message:
12214         * test/data/invalid-messages/bad-boolean.message:
12215         Add invalid boolean value test cases.
12216
12217 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12218
12219         * dbus/dbus-internals.c: (_dbus_type_to_string):
12220         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12221         (_dbus_marshal_validate_arg):
12222         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12223         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12224         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12225         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12226         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12227         (dbus_message_iter_get_double),
12228         (dbus_message_iter_get_boolean_array), (message_iter_test):
12229         * dbus/dbus-message.h:
12230         * dbus/dbus-protocol.h:
12231         * doc/dbus-specification.sgml:
12232         * test/data/valid-messages/lots-of-arguments.message:
12233         Add support for boolean and boolean array types.
12234
12235 2003-02-23  Havoc Pennington  <hp@pobox.com>
12236
12237         * dbus/dbus-keyring.c: finish most of this implementation and
12238         simple unit test
12239
12240         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12241         these barf if the error isn't cleared to NULL
12242
12243         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12244         (_dbus_create_directory): new function
12245
12246         * dbus/dbus-errors.c (dbus_set_error): fix warning
12247
12248         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12249         (_dbus_string_hex_decode): new function
12250         (test_hex_roundtrip): test code
12251
12252         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12253
12254         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12255
12256         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12257         the save-to-temp/rename trick to atomically write the new file
12258         (_dbus_string_parse_uint): new function
12259
12260 2003-02-22  Havoc Pennington  <hp@pobox.com>
12261
12262         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12263
12264 2003-02-22  Havoc Pennington  <hp@pobox.com>
12265
12266         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12267         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12268
12269         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12270
12271         * dbus/test/data/sha-1: add US government test suite for SHA-1
12272
12273 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12274
12275         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12276         Make string arrays NULL-terminated.
12277
12278         * dbus/dbus-memory.c: (dbus_free_string_array):
12279         * dbus/dbus-memory.h:
12280         New function for freeing NULL-terminated string arrays.
12281
12282         * dbus/dbus-message-builder.c: (append_quoted_string),
12283         (_dbus_message_data_load):
12284         Add support for array types.
12285
12286         * dbus/dbus-message.c: (check_message_handling):
12287         Add more types as test cases.
12288
12289         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12290         (_dbus_string_parse_double):
12291         Add the start offset to the end offset.
12292
12293         * test/data/valid-messages/lots-of-arguments.message:
12294         New test message with lots of arguments.
12295
12296 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12297
12298         * dbus/dbus-message.c: (dbus_message_append_nil),
12299         (dbus_message_append_int32), (dbus_message_append_uint32),
12300         (dbus_message_append_double), (dbus_message_append_string),
12301         (dbus_message_append_int32_array),
12302         (dbus_message_append_uint32_array),
12303         (dbus_message_append_double_array),
12304         (dbus_message_append_byte_array),
12305         (dbus_message_append_string_array):
12306         Fix all out-of-memory handling in these functions.
12307
12308 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12309
12310         * dbus/dbus-message.c: (dbus_message_append_nil):
12311         Fix a silly.
12312
12313 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12314
12315         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12316         (dbus_message_append_nil), (dbus_message_append_int32_array),
12317         (dbus_message_append_uint32_array),
12318         (dbus_message_append_double_array),
12319         (dbus_message_append_byte_array),
12320         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12321         (dbus_message_iter_get_int32_array),
12322         (dbus_message_iter_get_uint32_array),
12323         (dbus_message_iter_get_double_array),
12324         (dbus_message_iter_get_byte_array),
12325         (dbus_message_iter_get_string_array):
12326
12327         * dbus/dbus-message.h:
12328         Add functions for appending and getting arrays.
12329
12330 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12331
12332         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12333         element size at least 8 bytes, fixes mempool tests on
12334         64-bit machines.
12335
12336 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12337
12338         * dbus/dbus-transport-unix.c (unix_do_iteration):
12339         Unlock the connection mutex during a blocking select call.
12340         Add todo about how we need a way to wake up the select.
12341
12342         * dbus/dbus-connection-internal.h:
12343         * dbus/dbus-connection.c:
12344         Add _dbus_connection_lock and _dbus_connection_unlock.
12345
12346 2003-02-19  Havoc Pennington  <hp@pobox.com>
12347
12348         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12349         Doxyfile.in, not Doxyfile
12350
12351         * dbus/dbus-keyring.c: do some hacking on this
12352
12353         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12354
12355         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12356         dbus_error_init
12357         (dbus_set_error): remove dbus_error_init, check for message ==
12358         NULL *before* we sprintf into it, and add @todo about including
12359         system headers in this file
12360
12361         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12362
12363         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12364
12365         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12366         get various bits of user information based on either username
12367         or user ID
12368         (_dbus_homedir_from_username): new function
12369
12370 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12371
12372         * configure.in:
12373         Add check for nonposix getpwnam_r
12374
12375         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12376         Align the pool element size to a sizeof (void *) boundary.
12377
12378         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12379         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12380         General Solaris fixes.
12381
12382         * test/data/valid-messages/simplest-manual.message:
12383         Explicitly state that we want little-endian packing.
12384
12385 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12386
12387         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12388
12389         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12390         Added to create a transport connecting using a tcp/ip socket.
12391
12392         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12393         to a tcp socket at given host and port.
12394         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12395         hostname and port.
12396
12397         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12398
12399         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12400         Added to create a server listening on a TCP/IP socket.
12401
12402 2003-02-19  Havoc Pennington  <hp@pobox.com>
12403
12404         Throughout: mop up all the Doxygen warnings and undocumented
12405         stuff.
12406
12407         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12408         to search any paths.
12409
12410         * dbus/dbus-threads.c: move global mutex initializers to
12411         dbus-internals.h, multiple prototypes was confusing doxygen
12412         besides being kind of ugly
12413
12414         * Doxyfile (PREDEFINED): have Doxygen define
12415         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12416         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12417         (do not abuse the feature! it's for stuff like the autogenerated
12418         macros in dbus-md5.c, not just for things you don't feel like
12419         documenting...)
12420
12421 2003-02-18  Havoc Pennington  <hp@pobox.com>
12422
12423         * dbus/dbus-string.c (_dbus_string_zero): new function
12424
12425         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12426         wrap it in some dbus-friendly API
12427
12428         * dbus/dbus-types.h: add 16-bit types
12429
12430 2003-02-18  Joe Shaw  <joe@assbarn.com>
12431
12432         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12433         credentials from our currently running process.
12434         (get_word): Fix a buglet where we were copying the entire length
12435         instead of relative to our position.
12436
12437         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12438         keys on the stack... it's 640k of data.
12439
12440         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12441         read the credentials byte off the socket, even if we don't have
12442         SO_PEERCRED.
12443         (_dbus_poll): Implement poll() using select() for systems which
12444         don't have it.
12445
12446         * glib/test-dbus-glib.c (main): Print out an error if no
12447         parameters are given.
12448
12449         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12450         can fallback to a secondary auth mechanism if the first fails.
12451
12452 2003-02-18  Havoc Pennington  <hp@pobox.com>
12453
12454         * AUTHORS: add Alex
12455
12456 2003-02-17  Havoc Pennington  <hp@pobox.com>
12457
12458         * doc/dbus-specification.sgml: lots of cosmetic
12459         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12460         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12461         s/server/bus/ (except in authentication section). Add a section
12462         "Message Bus Message Routing"
12463
12464 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12465
12466         Release 0.4
12467
12468         * NEWS: Update
12469
12470 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12471
12472         * doc/dbus-specification.sgml:
12473         Specification updates.
12474
12475 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12476
12477         * bus/activation.c: (bus_activation_init), (child_setup),
12478         (bus_activation_activate_service):
12479         * bus/activation.h:
12480         * bus/main.c: (main):
12481         Set DBUS_ADDRESS environment variable.
12482
12483         * dbus/dbus-errors.c: (dbus_set_error):
12484         Don't use va_copy since that's a C99 feature.
12485
12486         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12487         (_dbus_spawn_async):
12488         * dbus/dbus-sysdeps.h:
12489         Add child_setup_func to _dbus_spawn_async.
12490
12491         * doc/dbus-specification.sgml:
12492         Update specification.
12493
12494         * test/spawn-test.c: (setup_func), (main):
12495         Fix test.
12496
12497 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12498
12499         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12500         Added todo.
12501
12502 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12503
12504         * doc/.cvsignore:
12505         * doc/Makefile.am:
12506         * doc/dbus-test-plan.sgml:
12507         Add test plan document.
12508
12509         * test/Makefile.am:
12510         Fix distcheck.
12511
12512 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12513
12514         * dbus/dbus-message.c: (decode_header_data),
12515         (_dbus_message_loader_return_buffer):
12516         Set the header padding amount when loading a message.
12517
12518 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12519
12520         * bus/dispatch.c: (send_one_message):
12521         Only send broadcast messages to registered connections.
12522
12523         * dbus/dbus-message.c: (dbus_message_name_is):
12524         * dbus/dbus-message.h:
12525         New convenience function.
12526
12527         * dbus/dbus-transport-debug.c: (do_reading):
12528         Only dispatch one message per run.
12529
12530         * test/Makefile.am:
12531         * test/bus-test.c: (new_connection_callback), (die),
12532         (test_hello_client1_handler), (test_hello_client2_handler),
12533         (test_hello_replies), (main):
12534
12535         * test/bus-test-loop.[ch]:
12536         Add these.
12537
12538 2003-02-16  Havoc Pennington  <hp@pobox.com>
12539
12540         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12541         backward conditional
12542
12543 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12544
12545         * dbus/dbus-connection.c:
12546         Implement sent_message_with_reply. (with_reply_and block is still
12547         busted).
12548         Made dispatch_message not lose message if OOM.
12549
12550         * dbus/dbus-errors.h:
12551         Add NoReply error (for reply timeouts).
12552
12553 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12554
12555         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12556         Actually free keys and values when destroying hashtable.
12557
12558 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12559
12560         * dbus/dbus-auth.c: (client_try_next_mechanism):
12561         Plug a leak.
12562
12563         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12564         Return TRUE if there's no thread implementation around.
12565
12566         * glib/dbus-gmain.c: (free_source),
12567         (dbus_connection_hookup_with_g_main):
12568         Make sure to remove the GSource when the connection is finalized.
12569
12570 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12571
12572         * bus/dispatch.c: (bus_dispatch_message_handler):
12573         * dbus/dbus-errors.h:
12574         Return an error if someone tries to send a message to a service
12575         that doesn't exist.
12576
12577 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12578
12579         * bus/activation.c: (load_directory), (bus_activation_init),
12580         (bus_activation_activate_service):
12581         * bus/activation.h:
12582         * bus/driver.c:
12583         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12584         More work on the activation handling.
12585
12586         * dbus/dbus-errors.h:
12587         Add some error messages
12588
12589         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12590         * dbus/dbus-message.h:
12591         New function that creates an error message.
12592
12593         * dbus/dbus-protocol.h:
12594         Add ACTIVATE_SERVER message.
12595
12596         * dbus/dbus-server-unix.c: (unix_handle_watch),
12597         (_dbus_server_new_for_domain_socket):
12598         Call _dbus_fd_set_close_on_exec.
12599
12600         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12601         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12602         (_dbus_fd_set_close_on_exec):
12603         * dbus/dbus-sysdeps.h:
12604         Add _dbus_fd_set_close_on exec function. Also add function that checks
12605         that all open fds are set to close-on-exec and warns otherwise.
12606
12607         * dbus/dbus-transport-unix.c:
12608         (_dbus_transport_new_for_domain_socket):
12609         Call _dbus_fd_set_close_on_exec.
12610
12611 2003-02-16  Havoc Pennington  <hp@pobox.com>
12612
12613         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12614         allow people to avoid setting SIGPIPE to SIG_IGN
12615         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12616         we've been asked not to
12617
12618 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12619
12620         * dbus/dbus-list.c: (_dbus_list_append_link),
12621         (_dbus_list_prepend_link):
12622         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12623         (dbus_realloc):
12624         Warning fixes.
12625
12626 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12627
12628         * bus/Makefile.am:
12629         * bus/activation.c: (bus_activation_entry_free),
12630         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12631         * bus/activation.h:
12632         * bus/main.c: (main):
12633         Add simple activation support, doesn't work yet though.
12634
12635 2003-02-15   Zack Rusin  <zack@kde.org>
12636
12637         * qt/dbus-qthread.cpp:  small casting fix
12638
12639 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12640
12641         * dbus/dbus-errors.c: (dbus_set_error):
12642         * dbus/dbus-errors.h:
12643         Add a few errors and make dbus_set_error void.
12644
12645         * dbus/dbus-sysdeps.c:
12646         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12647         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12648         * dbus/dbus-sysdeps.h:
12649         Add _dbus_spawn_async.
12650
12651         * test/spawn-test.c: (main):
12652         Test for _dbus_spawn_async.
12653
12654 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12655
12656         * dbus/dbus-internals.h:
12657         Fix build without tests.
12658
12659         * dbus/dbus-list.c: (alloc_link):
12660         Fix a segfault when a malloc fails.
12661
12662         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12663         (dbus_malloc0), (dbus_realloc):
12664         Add support for malloc debugging.
12665
12666 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12667
12668         * dbus/dbus-threads.c:
12669         * dbus/dbus-threads.h:
12670         Add condvars. Remove static mutext from API.
12671         Implement static mutexes by initializing them from threads_init.
12672
12673         * glib/dbus-gthread.c:
12674         * qt/dbus-qthread.cpp:
12675         Update with the thread api changes.
12676
12677
12678         * dbus/dbus-list.c:
12679         * dbus/dbus-list.h:
12680         Turn StaticMutex into normal mutex + init function.
12681         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12682         _dbus_list_append_link, _dbus_list_prepend_link
12683
12684
12685         * dbus/dbus-sysdeps.c:
12686         * dbus/dbus-sysdeps.h:
12687         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12688         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12689
12690         * dbus/dbus-protocol.h:
12691         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12692
12693         * dbus/dbus-message.c:
12694         Make ref/unref atomic.
12695         Fix some docs.
12696
12697         * dbus/dbus-connection-internal.h:
12698         * dbus/dbus-connection.c:
12699         * dbus/dbus-connection.h:
12700         Make threadsafe.
12701         Change _peek to _borrow,_return & _steal_borrowed.
12702         Change disconnect callback to event.
12703         Make dbus_connection_dispatch_messages reentrant.
12704
12705         * dbus/dbus-transport.c:
12706         Don't ref the connection on calls to the transport
12707         implementation.
12708
12709         * dbus/dbus-message-handler.c:
12710         Make threadsafe.
12711
12712         * glib/dbus-gmain.c:
12713         Don't use peek_message anymore
12714
12715         * test/Makefile.am:
12716         * test/debug-thread.c:
12717         * test/debug-thread.h:
12718         Simple thread implementation that asserts() on deadlocks in
12719         single-threaded code.
12720
12721         * test/bus-test.c:
12722         (main) Call debug_threads_init.
12723
12724         * test/watch.c:
12725         Use disconnect message instead of disconnect callback.
12726
12727         * bus/connection.c:
12728         * bus/connection.h:
12729         Don't call dbus_connection_set_disconnect_function. Instead export
12730         bus_connection_disconnect.
12731
12732         * bus/dispatch.c:
12733         Call bus_connection_disconnect when we get a disconnected message.
12734
12735 2003-02-15  Havoc Pennington  <hp@pobox.com>
12736
12737         * dbus/dbus-message.c (dbus_message_new): fool around with the
12738         docs
12739
12740 2003-02-14  Havoc Pennington  <hp@pobox.com>
12741
12742         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12743
12744         * dbus/dbus-memory.c: fail if the debug functions indicate we
12745         should
12746
12747         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12748         (_dbus_decrement_fail_alloc_counter): debug functions to
12749         simulate memory allocation failures
12750
12751 2003-02-14  Havoc Pennington  <hp@pobox.com>
12752
12753         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12754         to DBusError
12755
12756 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12757
12758         * bus/driver.c: (bus_driver_handle_hello):
12759         * bus/driver.h:
12760         * bus/services.c: (bus_service_lookup):
12761         Reorder message sending so we get a more sane order.
12762
12763         * test/bus-test.c: (message_handler):
12764         Fix tyop.
12765
12766 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12767
12768         * bus/driver.c: (bus_driver_send_service_deleted),
12769         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12770         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12771         (bus_driver_send_welcome_message),
12772         (bus_driver_handle_list_services),
12773         (bus_driver_handle_acquire_service),
12774         (bus_driver_handle_service_exists):
12775         * dbus/dbus-bus.c: (dbus_bus_register_client),
12776         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12777         * dbus/dbus-errors.c: (dbus_result_to_string):
12778         * dbus/dbus-errors.h:
12779         * dbus/dbus-message.c: (dbus_message_append_args),
12780         (dbus_message_append_args_valist), (dbus_message_get_args),
12781         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12782         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12783         (dbus_message_iter_get_byte_array),
12784         (dbus_message_iter_get_string_array), (message_iter_test),
12785         (check_message_handling), (_dbus_message_test):
12786         * dbus/dbus-message.h:
12787         * test/bus-test.c: (main):
12788         Change fields to arguments in messages, so that they won't be
12789         confused with header fields.
12790
12791         * glib/test-dbus-glib.c: (main):
12792         Remove append_fields from hello message.
12793
12794 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12795
12796         * dbus/dbus-errors.c:
12797         * dbus/dbus-message.c:
12798         * dbus/dbus-string.c:
12799         Documentation fixes.
12800
12801 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12802
12803         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12804         (remove_timeout):
12805         Implement support for timeouts in dbus-glib.
12806
12807 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12808
12809         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12810         * dbus/dbus-message.c: (process_test_subdir):
12811         * test/break-loader.c: (find_breaks_based_on):
12812         Plug some memory leaks.
12813
12814 2003-02-13  Richard Hult  <rhult@codefactory.se>
12815
12816         * bus/main.c: Fix build.
12817
12818         * dbus/dbus-errors.h:
12819         * dbus/dbus-errors.c: Fix copyright for Anders.
12820
12821 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12822
12823         * bus/Makefile.am:
12824         Add utils.[ch]
12825
12826         * bus/connection.c: (bus_connection_foreach):
12827         Fix a warning.
12828
12829         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12830         (unescape_string), (new_section), (parse_section_start),
12831         (parse_key_value), (report_error), (bus_desktop_file_load),
12832         (bus_desktop_file_get_string):
12833         * bus/desktop-file.h:
12834         Use DBusError for error reporting.
12835
12836         * bus/dispatch.c: (send_one_message),
12837         (bus_dispatch_message_handler):
12838         * bus/driver.c: (bus_driver_send_service_deleted),
12839         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12840         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12841         (bus_driver_send_welcome_message),
12842         (bus_driver_handle_list_services),
12843         (bus_driver_handle_acquire_service),
12844         (bus_driver_handle_service_exists):
12845         * bus/loop.c: (bus_loop_run):
12846         * bus/main.c:
12847         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12848
12849         * bus/utils.c: (bus_wait_for_memory):
12850         * bus/utils.h:
12851         New files with general utility functions.
12852
12853         * dbus/dbus-internals.h:
12854         Remove _DBUS_HANDLE_OOM.
12855
12856 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12857
12858         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12859         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12860         * dbus/dbus-errors.h:
12861         Add DBusError structure.
12862
12863 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12864
12865         * test/data/valid-messages/standard-acquire-service.message:
12866         * test/data/valid-messages/standard-hello.message:
12867         * test/data/valid-messages/standard-list-services.message:
12868         * test/data/valid-messages/standard-service-exists.message:
12869         Add some standard messages.
12870
12871 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12872
12873         * bus/driver.c: (bus_driver_send_welcome_message),
12874         (bus_driver_handle_list_services),
12875         (bus_driver_handle_acquire_service),
12876         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12877         Update for API changes in libdbus.
12878
12879         * dbus/dbus-message.c: (dbus_message_new_reply):
12880         * dbus/dbus-message.h:
12881         Remove the name argument. The spec states that replies shouldn't
12882         have a name.
12883
12884 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12885
12886         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12887         (report_error), (bus_desktop_file_load), (lookup_section),
12888         (lookup_line), (bus_desktop_file_get_raw),
12889         (bus_desktop_file_get_string):
12890         * bus/desktop-file.h:
12891         Some fixes, and new functions for getting a key value from a section.
12892
12893 2003-02-13  Havoc Pennington  <hp@pobox.com>
12894
12895         * test/data/auth/fail-after-n-attempts.auth-script: new test
12896
12897         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12898         reject the client.
12899
12900 2003-02-13  Havoc Pennington  <hp@pobox.com>
12901
12902         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12903         dbus_credentials_match were backward
12904
12905         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12906         NO_CREDENTIALS and ROOT_CREDENTIALS
12907
12908         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12909         into here. Never process more commands after we've reached an
12910         end state; store further data as unused bytes.
12911
12912         * test/data/auth/*: add more auth tests
12913
12914         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12915         command to match exact string and EXPECT_UNUSED to match unused
12916         bytes
12917
12918         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12919
12920 2003-02-12  Havoc Pennington  <hp@pobox.com>
12921
12922         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12923         \r off of popped lines
12924
12925         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12926         scripts
12927
12928         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12929         SEND, append \r\n
12930
12931 2003-02-12  Havoc Pennington  <hp@pobox.com>
12932
12933         * dbus/Makefile.am: remove break-loader from the build, since it
12934         moved.
12935
12936         * configure.in: add --enable-gcov to turn on coverage profiling
12937         flags and disable optimization
12938
12939 2003-02-10  Havoc Pennington  <hp@pobox.com>
12940
12941         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12942         initial cut at test framework for DBusAuth from laptop.
12943         Doesn't quite work yet but it compiles and I need to get
12944         it off the 266mhz laptop. ;-)
12945
12946         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12947         fix a memleak in error case
12948
12949 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12950
12951         * bus/Makefile.am:
12952         * bus/desktop-file.c:
12953         * bus/desktop-file.h:
12954         Add a desktop file parser.
12955
12956 2003-02-11  Zack Rusin  <zack@kde.org>
12957
12958         * qt/message.[h|cpp]: sample implementation
12959         of the KDE wrapper for DBusMessage
12960
12961 2003-02-09  Zack Rusin  <zack@kde.org>
12962
12963         * test/bus-test.c: make_it_compile
12964         * doc/dbus-specification.sgml: minimal semantic fix
12965
12966 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12967
12968         Release 0.3
12969
12970         * NEWS: Update
12971
12972 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12973
12974         * dbus/Makefile.am:
12975         * dbus/dbus-break-loader.c:
12976         * test/Makefile.am:
12977         * test/break-loader.c:
12978         Move dbus-break-loader to test/ and rename it to break-loader.
12979
12980 2003-02-02  Havoc Pennington  <hp@pobox.com>
12981
12982         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12983         for code to manage cookies in your home directory
12984
12985         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12986
12987         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12988         to authenticate, then disconnect the client.
12989
12990 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12991
12992         * dbus/dbus-message.c (dbus_message_append_fields):
12993         Correct docs.
12994
12995 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12996
12997         * doc/dbus-specification.sgml:
12998         Update address format section.
12999
13000 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13001
13002         * test/Makefile.am:
13003         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13004         (message_handler), (new_connection_callback), (loop_quit),
13005         (loop_run), (main):
13006         Add bus test.
13007
13008 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13009
13010         * bus/driver.c: (bus_driver_handle_service_exists):
13011         Simplify the code a bit.
13012
13013         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13014         Fix a silly.
13015
13016 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13017
13018         * bus/Makefile.am:
13019         Add libdbus-daemon.la and link to it.
13020
13021 2003-02-01  James Willcox  <jwillcox@gnome.org>
13022
13023         * bus/driver.c: (bus_driver_handle_own_service):
13024         Actually include the service reply code in the message.
13025
13026 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13027
13028         * bus/driver.c: (bus_driver_handle_service_exists):
13029         Don't unref the incoming message.
13030
13031 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13032
13033         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13034
13035 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13036
13037         * dbus/dbus-server.c: (dbus_server_listen):
13038         * dbus/dbus-transport.c: (_dbus_transport_open):
13039         ifdef out the calls to the debug transport and server.
13040
13041 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13042
13043         * dbus/dbus-watch.c (dbus_watch_get_flags):
13044         Add note in the docs that ERROR or HANGUP won't be returned
13045         and are assumed always on.
13046
13047         * glib/dbus-gmain.c (add_watch):
13048         Always add IO_ERR | IO_HUP
13049
13050         * dbus/dbus-message.h:
13051         Add semicolon after dbus_message_iter_get_string_array().
13052         Makes qt code build again
13053
13054 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13055
13056         * bus/driver.c: (create_unique_client_name),
13057         (bus_driver_handle_hello):
13058         Don't take a name, just use a numeric id to identify
13059         each client.
13060
13061         * dbus/Makefile.am:
13062         * dbus/dbus-bus.c: (dbus_bus_register_client),
13063         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13064         * dbus/dbus-bus.h:
13065         Add new convenience functions for communicating with the bus.
13066
13067         * dbus/dbus-message.h:
13068
13069         * dbus/dbus-protocol.h:
13070         Fix a typo.
13071
13072 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13073
13074         * dbus/dbus-message.c (dbus_message_append_fields):
13075         Add some more doc comments.
13076
13077 2003-02-01  Havoc Pennington  <hp@pobox.com>
13078
13079         * dbus/dbus-break-loader.c (randomly_modify_length): change
13080         a 4-byte value in the message as if it were a length
13081
13082         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13083         execute bit on saved files
13084
13085 2003-02-01  Havoc Pennington  <hp@pobox.com>
13086
13087         * dbus/dbus-break-loader.c (main): new program to find messages
13088         that break the loader.
13089
13090         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13091         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13092
13093         * dbus/dbus-string.c (_dbus_string_set_byte): new
13094
13095 2003-01-31  Havoc Pennington  <hp@pobox.com>
13096
13097         * dbus/dbus-message.c: refactor the test code to be more general,
13098         in preparation for writing a "randomly permute test cases to
13099         try to break the loader" program.
13100
13101 2003-01-31  Havoc Pennington  <hp@pobox.com>
13102
13103         * doc/dbus-specification.sgml: work on the specification
13104
13105         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13106         the protocol version of the message.
13107
13108         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13109         no longer specifies that.
13110         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13111         1/2/3/4)
13112
13113         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13114         "break" for DBUS_TYPE_NIL, remove @todo
13115
13116 2003-01-31  Havoc Pennington  <hp@pobox.com>
13117
13118         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13119         just set_is_error/get_is_error as this is a commonly-used
13120         function, and write docs.
13121
13122 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13123
13124         * dbus/dbus-address.c: (dbus_address_entry_free):
13125         Free key and value lists.
13126
13127         * dbus/dbus-internals.c: (_dbus_type_to_string):
13128         Add the types we didn't have.
13129
13130         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13131         (_dbus_marshal_validate_arg):
13132         Add NIL types.
13133
13134         * dbus/dbus-message.c: (dbus_message_set_sender):
13135         Remove todo about being able to set sender to NULL.
13136
13137         (dbus_message_set_is_error_reply),
13138         (dbus_message_get_is_error_reply):
13139         * dbus/dbus-message.h:
13140         New functions.
13141
13142         * dbus/dbus-protocol.h:
13143         Add error reply flag.
13144
13145         * test/data/valid-messages/opposite-endian.message:
13146         Add NIL type to test.
13147
13148 2003-01-31  Havoc Pennington  <hp@pobox.com>
13149
13150         * doc/dbus-specification.sgml: fully specify the header.  Add
13151         flags and major protocol version, and change header/body len to
13152         unsigned.
13153
13154         * dbus/dbus-message-builder.c (append_saved_length): append length
13155         as uint32
13156
13157         * dbus/dbus-message.c (dbus_message_create_header): change header
13158         length and body length to unsigned. Add the new fields from the
13159         spec
13160         (_dbus_message_loader_return_buffer): unsigned header/body len
13161
13162 2003-01-30  Havoc Pennington  <hp@pobox.com>
13163
13164         * dbus/dbus-auth.c: rework to use only REJECTED, no
13165         MECHANISMS
13166
13167         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13168         use REJECTED, suggested by Mark McLoughlin
13169
13170 2003-01-30  Havoc Pennington  <hp@pobox.com>
13171
13172         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13173         a better way to report errors here. e.g.  "unix address lacks
13174         path" or something. also "no such file" when the path doesn't
13175         exist, etc.
13176
13177         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13178         leaking list nodes
13179         (dbus_parse_address): add @todo about documenting address format,
13180         and allowing , and ; to be escaped
13181
13182 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13183
13184         * dbus/Makefile.am:
13185         Add dbus-address.[ch]
13186
13187         * dbus/dbus-address.c: (dbus_address_entry_free),
13188         (dbus_address_entries_free), (create_entry),
13189         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13190         (dbus_parse_address), (_dbus_address_test):
13191         * dbus/dbus-address.h:
13192         New files for dealing with address parsing.
13193
13194         * dbus/dbus-connection.c:
13195         Document timeout functions.
13196
13197         * dbus/dbus-message.c:
13198         Document dbus_message_new_from_message.
13199
13200         * dbus/dbus-server-debug.c:
13201         Document.
13202
13203         * dbus/dbus-server.c: (dbus_server_listen):
13204         Parse address and use correct server implementation.
13205
13206         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13207         * dbus/dbus-string.h:
13208         New function with test.
13209
13210         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13211         * dbus/dbus-test.h:
13212         Add address tests.
13213
13214         * dbus/dbus-transport-debug.c:
13215         Document.
13216
13217         * dbus/dbus-transport.c: (_dbus_transport_open):
13218         Parse address and use correct transport implementation.
13219
13220 2003-01-30  Havoc Pennington  <hp@pobox.com>
13221
13222         * dbus/dbus-message.c: use message->byte_order instead of
13223         DBUS_COMPILER_BYTE_ORDER throughout.
13224         (dbus_message_create_header): pad header to align the
13225         start of the body of the message to 8-byte boundary
13226
13227         * dbus/dbus-marshal.h: make all the demarshalers take const
13228         DBusString arguments.
13229
13230         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13231         validate message args here, so we don't have to do slow validation
13232         later, and so we catch bad messages as they are incoming. Also add
13233         better checks on header_len and body_len. Also fill in
13234         message->byte_order
13235
13236         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13237         implemented properly)
13238         (_dbus_string_validate_nul): new function to check all-nul
13239
13240         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13241         get_arg_end_pos and remove all validation
13242         (_dbus_marshal_validate_arg): actually do validation here.
13243
13244 2003-01-29  Havoc Pennington  <hp@pobox.com>
13245
13246         * dbus/dbus-message.c (check_message_handling): fix assertion
13247         failure on set_client_serial
13248
13249 2003-01-28  Havoc Pennington  <hp@pobox.com>
13250
13251         * dbus/dbus-server-debug.c: Add doc section comments
13252
13253         * dbus/dbus-transport-debug.c: add doc section comments
13254
13255 2003-01-28  Havoc Pennington  <hp@redhat.com>
13256
13257         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13258         the reverse order from how I had it
13259         (_dbus_string_base64_encode): reverse encoding order. I was
13260         basically byteswapping everything during encoding.
13261
13262 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13263
13264         * dbus/dbus-connection-internal.h:
13265         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13266         (_dbus_connection_remove_timeout):
13267         Add functions for adding and removing timeouts.
13268
13269         * dbus/dbus-message.c: (dbus_message_new_from_message):
13270         Add new function that takes a message and creates an exact
13271         copy of it, but with the refcount set to 1.
13272         (check_message_handling):
13273         Fix build error.
13274
13275         * dbus/dbus-server-protected.h:
13276         * dbus/dbus-server.c: (_dbus_server_init_base),
13277         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13278         (dbus_server_set_timeout_functions):
13279         (_dbus_server_remove_timeout):
13280         New functions so that a server can add and remove timeouts.
13281
13282         (dbus_server_listen):
13283         Add commented out call to dbus_server_debug_new.
13284
13285         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13286         Actually set the handler, doh.
13287
13288         * dbus/dbus-transport.c: (_dbus_transport_open):
13289         Add commented out call to dbus_transport_debug_client_new.
13290
13291         * dbus/Makefile.am:
13292         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13293
13294 2003-01-28  Havoc Pennington  <hp@pobox.com>
13295
13296         * dbus/dbus-message.c (check_message_handling): function to check
13297         on the loaded message, iterates over it etc.
13298
13299 2003-01-28  Havoc Pennington  <hp@pobox.com>
13300
13301         * test/Makefile.am (dist-hook): fix make distdir
13302
13303         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13304
13305 2003-01-27  Havoc Pennington  <hp@pobox.com>
13306
13307         * dbus/dbus-mempool.c (time_for_size): replace printf with
13308         _dbus_verbose
13309
13310         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13311         empty lines; fix the SAVE_LENGTH stuff to be
13312         START_LENGTH/END_LENGTH so it actually works; couple other
13313         bugfixes
13314
13315         * test/Makefile.am (dist-hook): add dist-hook for .message files
13316
13317         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13318         can be constant or locked.
13319         (_dbus_string_free): allow freeing a const string as
13320         documented/intended
13321
13322         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13323
13324         * dbus/dbus-test-main.c (main): take an argument which is the
13325         directory containing test data
13326
13327         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13328         argument to this and load all the messages in test/data/
13329         checking that they can be loaded or not loaded as appropriate.
13330
13331 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13332
13333         * bus/dispatch.c: (bus_dispatch_message_handler):
13334         Dispatch messages sent to services.
13335
13336         * bus/driver.c: (bus_driver_send_service_deleted),
13337         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13338         (bus_driver_send_service_acquired):
13339         Add helper functions for sending service related messages.
13340
13341         (bus_driver_send_welcome_message):
13342         Send HELLO_REPLY instead of WELCOME.
13343
13344         (bus_driver_handle_list_services):
13345         Send LIST_SERVICES_REPLY instead of SERVICES.
13346
13347         (bus_driver_handle_own_service),
13348         (bus_driver_handle_service_exists):
13349         New message handlers.
13350
13351         (bus_driver_handle_message):
13352         Invoke new message handlers.
13353
13354         (bus_driver_remove_connection):
13355         Don't remove any services here since that's done automatically
13356         by bus_service_remove_owner now.
13357
13358         * bus/driver.h:
13359         New function signatures.
13360
13361         * bus/services.c: (bus_service_add_owner):
13362         Send ServiceAcquired message if we're the only primary owner.
13363
13364         (bus_service_remove_owner):
13365         Send ServiceAcquired/ServiceLost messages.
13366
13367         (bus_service_set_prohibit_replacement),
13368         (bus_service_get_prohibit_replacement):
13369         Functions for setting prohibit replacement.
13370
13371         (bus_service_has_owner):
13372         New function that checks if a connection is in the owner queue of
13373         a certain service.
13374
13375         * bus/services.h:
13376         Add new function signatures.
13377
13378         * dbus/dbus-list.c: (_dbus_list_test):
13379         Add tests for _dbus_list_remove_last and traversing the list backwards.
13380
13381         * dbus/dbus-list.h:
13382         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13383         go any further, so return NULL then.
13384
13385         * dbus/dbus-protocol.h:
13386         Add new messages, service flags and service replies.
13387
13388 2003-01-26  Havoc Pennington  <hp@pobox.com>
13389
13390         * dbus/dbus-message-builder.c: implement, completely untested.
13391
13392         * test/data/*: add data to be used in testing.
13393         ".message" files are our simple loadable text format.
13394         ".message-raw" will be binary dumps of messages.
13395
13396         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13397
13398 2003-01-26  Havoc Pennington  <hp@pobox.com>
13399
13400         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13401
13402         * dbus/dbus-errors.c (dbus_result_to_string): add
13403         file errors
13404
13405         * dbus/dbus-message-builder.c: new file, will contain code to load
13406         up messages from files. Not implemented yet.
13407
13408 2003-01-26  Havoc Pennington  <hp@pobox.com>
13409
13410         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13411         the sender by setting to NULL
13412
13413 2003-01-26  Havoc Pennington  <hp@pobox.com>
13414
13415         The unit tests pass, but otherwise untested.  If it breaks, the
13416         tests should have been better. ;-)
13417
13418         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13419         the connection.
13420
13421         * dbus/dbus-message.c: redo everything so we maintain
13422         message->header as the only copy of the various fields.
13423         This avoids the possibility of out-of-memory in some cases,
13424         for example dbus_message_lock() can't run out of memory anymore,
13425         and avoids extra copying. Figured I may as well go ahead and do
13426         this since it was busted for dbus_message_lock to not return
13427         failure on OOM, and dbus_message_write_header was totally
13428         unchecked for OOM. Also fixed some random other bugs.
13429
13430         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13431         that strings are nul-terminated. Also, end_pos can be equal
13432         to string length just not greater than, I think.
13433         (_dbus_marshal_set_int32): new function
13434         (_dbus_marshal_set_uint32): new function
13435         (_dbus_marshal_set_string): new function
13436
13437         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13438         a warning, init timeout_list to NULL
13439         (dbus_connection_send_message): don't use uninitialized variable
13440         "serial"
13441
13442         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13443
13444 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13445
13446         * bus/driver.c: (bus_driver_handle_hello),
13447         (bus_driver_send_welcome_message):
13448         Plug leaks
13449
13450 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13451
13452         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13453         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13454         (dbus_connection_unref):
13455         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13456         * dbus/dbus-message.c: (dbus_message_unref),
13457         Plug memory leaks.
13458
13459         (dbus_message_get_fields):
13460         Remove debugging printout.
13461
13462         (_dbus_message_loader_return_buffer):
13463         Don't store the header string.
13464
13465         (_dbus_message_test):
13466         Plug leaks.
13467
13468 2003-01-26  Richard Hult  <rhult@codefactory.se>
13469
13470         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13471         the file descriptor list, since it can change under us.
13472
13473 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13474
13475         * glib/dbus-gmain.c: (dbus_connection_prepare),
13476         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13477         (remove_watch), (dbus_connection_hookup_with_g_main):
13478         Rewrite the glib handling to use its own GSource instead of a
13479         GIOChannel so we can catch messages put in the queue while waiting
13480         for a reply.
13481
13482 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13483
13484         * bus/Makefile.am:
13485         * bus/connection.c: (connection_disconnect_handler),
13486         (connection_watch_callback), (bus_connection_setup):
13487         * bus/dispatch.c: (send_one_message),
13488         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13489         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13490         * bus/dispatch.h:
13491         * bus/driver.c: (bus_driver_send_service_deleted),
13492         (bus_driver_send_service_created), (bus_driver_handle_hello),
13493         (bus_driver_send_welcome_message),
13494         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13495         (bus_driver_handle_message):
13496         * bus/driver.h:
13497         Refactor code, put the message dispatching in its own file. Use
13498         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13499         is disconnected.
13500
13501 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13502
13503         * dbus/dbus-internals.h:
13504         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13505
13506         * dbus/dbus-message.c: (dbus_message_get_sender):
13507         * dbus/dbus-message.h:
13508         Implement dbus_message_get_sender.
13509
13510         * dbus/dbus-protocol.h:
13511         Add message and service defines.
13512
13513 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13514
13515         * dbus/dbus-connection.c: (dbus_connection_send_message):
13516         * dbus/dbus-message-internal.h:
13517         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13518         (dbus_message_write_header):
13519         Remove _dbus_messag_unlock and don't set the client serial on a
13520         message if one already exists.
13521
13522 2003-01-24  Havoc Pennington  <hp@pobox.com>
13523
13524         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13525         list_pool
13526
13527         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13528         on OOM
13529
13530 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13531
13532         * dbus/dbus-list.c: (alloc_link), (free_link):
13533         Use a memory pool for the links.
13534
13535 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13536
13537         * bus/connection.c: (bus_connection_foreach):
13538         * bus/connection.h:
13539         Add new bus_connection_foreach function.
13540
13541         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13542         Add function that broadcasts a message to all clients.
13543
13544         (bus_driver_send_service_created), (bus_driver_handle_hello),
13545         (bus_driver_send_welcome_message),
13546         (bus_driver_handle_list_services), (bus_driver_message_handler):
13547         Implement functions that take care of listing services, and notifying
13548         clients when new services are created.
13549
13550         * bus/services.c: (bus_services_list):
13551         * bus/services.h:
13552         Add new function that returns an array of strings with the currently
13553         registered services.
13554
13555         * glib/dbus-glib.h:
13556         * glib/dbus-gmain.c:
13557         Update copyright year.
13558
13559 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13560
13561         * dbus/dbus-connection.c: (dbus_connection_send_message):
13562         Unlock the message in case it was sent earlier.
13563
13564         (dbus_connection_send_message_with_reply_and_block):
13565         Remove the reply message from the list.
13566
13567         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13568         Set array_len and new_pos correctly.
13569
13570         (_dbus_marshal_test):
13571         Remove debug output.
13572
13573         * dbus/dbus-message-internal.h:
13574         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13575         New function that returns the reply serial.
13576
13577         (_dbus_message_unlock):
13578         New function that unlocks a message and resets its header.
13579
13580         (dbus_message_append_string_array),
13581         (dbus_message_get_fields_valist),
13582         (dbus_message_iter_get_field_type),
13583         (dbus_message_iter_get_string_array),
13584         (dbus_message_get_fields),
13585         (dbus_message_append_fields_valist):
13586         Handle string arrays.
13587
13588         (dbus_message_set_sender):
13589         Make this function public since the bus daemon needs it.
13590
13591         (decode_header_data):
13592         Set the reply serial to -1 initially.
13593
13594         * dbus/dbus-message.h:
13595         Add dbus_message_set_sender.
13596
13597 2003-01-24  Havoc Pennington  <hp@pobox.com>
13598
13599         * doc/dbus-specification.sgml: add some stuff
13600
13601 2003-01-22  Havoc Pennington  <hp@pobox.com>
13602
13603         * doc/dbus-specification.sgml: Start to document the protocol.
13604
13605 2003-01-22  Havoc Pennington  <hp@pobox.com>
13606
13607         * dbus/dbus-connection.c
13608         (dbus_connection_send_message_with_reply_and_block): add some @todo
13609
13610         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13611
13612 2003-01-21  Havoc Pennington  <hp@pobox.com>
13613
13614         (patch untested because can't compile)
13615
13616         * bus/driver.c (create_unique_client_name): make this function
13617         never recycle client names. Also, caller should initialize
13618         the DBusString.
13619
13620         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13621
13622 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13623
13624         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13625         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13626         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13627         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13628         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13629         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13630         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13631         * dbus/dbus-marshal.h:
13632         * dbus/dbus-protocol.h:
13633         Add support for marshalling and demarshalling integer, double
13634         and string arrays.
13635
13636 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13637
13638         * bus/Makefile.am:
13639         Add driver.[ch]
13640
13641         * bus/connection.c: (connection_disconnect_handler):
13642         Remove the connection from the bus driver's list.
13643
13644         (connection_watch_callback): Dispatch messages.
13645
13646         (free_connection_data): Free connection name.
13647
13648         (bus_connection_setup): Add connection to the bus driver's list.
13649         (bus_connection_remove_owned_service):
13650         (bus_connection_set_name), (bus_connection_get_name):
13651         Add functions for setting and getting the connection's name.
13652
13653         * bus/connection.h:
13654         Add function headers.
13655
13656         * bus/driver.c: (create_unique_client_name),
13657         (bus_driver_handle_hello_message),
13658         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13659         (bus_driver_add_connection), (bus_driver_remove_connection):
13660         * bus/driver.h:
13661         * bus/main.c:
13662         * bus/services.c: (bus_service_free):
13663         * bus/services.h:
13664         New file that handles communication and registreation with the bus
13665         itself.
13666
13667 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13668
13669         * dbus/dbus-connection.c: (dbus_connection_send_message):
13670         Add a new client_serial parameter.
13671
13672         (dbus_connection_send_message_with_reply):
13673         Remove a @todo since we've implemented the blocking function.
13674
13675         (dbus_connection_send_message_with_reply_and_block):
13676         New function that sends a message and waits for a reply and
13677         then returns the reply.
13678
13679         * dbus/dbus-connection.h:
13680         Add new functions.
13681
13682         * dbus/dbus-errors.c: (dbus_result_to_string):
13683         * dbus/dbus-errors.h:
13684         Add new DBUS_RESULT.
13685
13686         * dbus/dbus-message-internal.h:
13687         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13688         (_dbus_message_set_sender), (dbus_message_write_header),
13689         (dbus_message_new_reply), (decode_header_data),
13690         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13691         * dbus/dbus-message.h:
13692         Add new functions that set the reply serial and sender.
13693         Also marshal and demarshal them correctly and add test.
13694
13695         * dbus/dbus-protocol.h:
13696         Add new DBUS_MESSAGE_TYPE_SENDER.
13697
13698         * glib/dbus-glib.h:
13699         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13700         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13701         (dbus_connection_hookup_with_g_main):
13702         * glib/test-dbus-glib.c: (main):
13703         Rewrite to use GIOChannel and remove the GSource crack.
13704
13705         * test/echo-client.c: (main):
13706         * test/watch.c: (check_messages):
13707         Update for changed APIs
13708
13709 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13710
13711         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13712
13713         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13714         Create a DBusTimeoutList.
13715         (dbus_connection_set_timeout_functions): Add new function to
13716         set timeout callbacks
13717
13718         * dbus/dbus-connection.h: Add public DBusTimeout API.
13719
13720         * dbus/dbus-message.c: (dbus_message_get_service):
13721         * dbus/dbus-message.h:  New function.
13722
13723         * dbus/dbus-server.c: Fix small doc typo.
13724
13725         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13726
13727 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13728
13729         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13730         of the string, just as long as specified.
13731
13732 2003-01-19  Havoc Pennington  <hp@pobox.com>
13733
13734         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13735         new function
13736
13737         * dbus/dbus-server.c (dbus_server_set_max_connections)
13738         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13739         keep track of current number of connections, and add API for
13740         setting a max (but haven't implemented enforcing the max yet)
13741
13742 2003-01-18  Havoc Pennington  <hp@pobox.com>
13743
13744         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13745         reading/writing if read_watch != NULL or write_watch != NULL.
13746
13747         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13748         the message loader code to actually load message->header and
13749         message->body into the newly-created message.
13750
13751         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13752         in OOM case
13753
13754         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13755         (dbus_connection_get_max_message_size)
13756         (dbus_connection_set_max_live_messages_size)
13757         (dbus_connection_get_max_live_messages_size): implement some
13758         resource limitation functions
13759
13760         * dbus/dbus-resources.c: new file implementing some of the
13761         resource limits stuff
13762
13763         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13764         missing docs, add @todo to handle OOM etc.
13765
13766         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13767         docs
13768
13769 2003-01-18  Havoc Pennington  <hp@pobox.com>
13770
13771         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13772         connection if it hasn't been already.
13773
13774         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13775         replace with DisconnectFunction.
13776
13777 2003-01-18  Havoc Pennington  <hp@pobox.com>
13778
13779         Building --disable-verbose-mode --disable-asserts --disable-tests
13780         cuts the library from 112K to 45K or so
13781
13782         * configure.in: check for varargs macro support,
13783         add --enable-verbose-mode, --enable-asserts.
13784
13785         * dbus/dbus-internals.h (_dbus_assert): support
13786         DBUS_DISABLE_ASSERT
13787         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13788
13789 2003-01-18  Havoc Pennington  <hp@pobox.com>
13790
13791         * dbus/dbus-test.c: include config.h so that tests actually run
13792
13793         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13794         so the failure mode when that assumption fails will be plenty
13795         obvious.
13796
13797 2003-01-18  Havoc Pennington  <hp@pobox.com>
13798
13799         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13800
13801         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13802         the distribution
13803
13804         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13805         since we don't want to use those in make check
13806
13807 2003-01-15  Havoc Pennington  <hp@redhat.com>
13808
13809         Release 0.2
13810
13811         * NEWS: update
13812
13813 2003-01-15  Havoc Pennington  <hp@redhat.com>
13814
13815         * test/Makefile.am: fix so that test source code ends up in the
13816         distribution on make distcheck
13817
13818 2003-01-15  Havoc Pennington  <hp@redhat.com>
13819
13820         Release 0.1.
13821
13822         * NEWS: update
13823
13824 2003-01-15  Havoc Pennington  <hp@redhat.com>
13825
13826         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13827         fix build when --disable-tests
13828
13829         * Makefile.am (EXTRA_DIST): put HACKING in here
13830
13831         * HACKING: document procedure for making a tarball release.
13832
13833 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13834
13835         * bus/connection.c: (connection_error_handler),
13836         (bus_connection_setup):
13837         * bus/main.c: (main):
13838         Make sure that the DBusConnectionData struct is NULLed
13839         out to prevent a segfault.
13840
13841         * dbus/dbus-errors.c: (dbus_result_to_string):
13842         * dbus/dbus-errors.h:
13843         * dbus/dbus-message.c: (dbus_message_get_fields),
13844         (dbus_message_get_fields_valist), (_dbus_message_test):
13845         * dbus/dbus-message.h:
13846         Make dbus_message_get_fields return a result code so we can
13847         track invalid fields as well as oom.
13848
13849 2003-01-11  Havoc Pennington  <hp@pobox.com>
13850
13851         * configure.in: change --enable-test/--enable-ansi action-if-given
13852         to enable_foo=$enableval instead of enable_foo=yes
13853
13854 2003-01-08  Havoc Pennington  <hp@pobox.com>
13855
13856         * dbus/dbus-string.c (_dbus_string_align_length): new function
13857
13858         * dbus/dbus-test-main.c: move main() for test app here
13859         * dbus/dbus-test.c
13860         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13861         symbol to run tests, because dbus-test isn't in the main
13862         library
13863
13864         Code review nitpicks.
13865
13866         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13867         for people with narrow emacs ;-). Assert client_serial was filled
13868         in. Assert message->name != NULL.
13869         (dbus_message_append_fields): have "first_field_type" arg separate
13870         from va list, needed for C++ binding that also uses varargs IIRC
13871         and helps with type safety
13872         (dbus_message_new): add @todo about using DBusString to store
13873         service/name internally
13874         (dbus_message_new): don't leak ->service and ->name on OOM later
13875         in the function
13876         (dbus_message_unref): free the service name
13877         (dbus_message_get_fields): same change to varargs
13878         i.e. first_field_type
13879         (_dbus_message_loader_return_buffer): assert that the message data
13880         is aligned (if not it's a bug in our code). Put in verbose griping
13881         about why we set corrupted = TRUE.
13882         (decode_header_data): add FIXME that char* is evil.  Was going to
13883         add FIXME about evil locale-specific string.h strncmp, but just
13884         switched to wacky string-as-uint32 optimization. Move check for
13885         "no room for field name" above get_const_data_len() to avoid
13886         assertion failure in get_const_data_len if we have trailing 2
13887         bytes or the like. Check for service and name fields being
13888         provided twice. Don't leak service/name on error. Require field
13889         names to be aligned to 4 bytes.
13890
13891         * dbus/dbus-marshal.c: move byte swap stuff to header
13892         (_dbus_pack_int32): uscore-prefix
13893         (_dbus_unpack_int32): uscore-prefix
13894         (_dbus_unpack_uint32): export
13895         (_dbus_demarshal_string): add @todo complaining about use of
13896         memcpy()
13897         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13898         handling allowing corrupt data to go unchecked
13899
13900 2003-01-08  Havoc Pennington  <hp@redhat.com>
13901
13902         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13903         to the select() as needed for authentication. (should be using
13904         _dbus_poll() not select, but for another day)
13905
13906         * dbus/dbus.h: include dbus/dbus-protocol.h
13907
13908 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13909
13910         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13911         dbus-connection.h
13912
13913 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13914
13915         * dbus/dbus-internals.c: (_dbus_type_to_string):
13916         New function that returns a string describing a type.
13917
13918         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13919         * dbus/dbus-marshal.h:
13920         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13921         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13922         (dbus_message_iter_get_byte_array):
13923         * dbus/dbus-message.h:
13924         Add new convenience functions for appending and getting message fields.
13925         Also add demarshalling routines for byte arrays.
13926
13927 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13928
13929         * dbus/dbus-connection-internal.h:
13930         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13931         (_dbus_connection_get_next_client_serial),
13932         (dbus_connection_send_message):
13933         * dbus/dbus-internals.h:
13934         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13935         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13936         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13937         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13938         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13939         (_dbus_verbose_bytes), (_dbus_marshal_test):
13940         * dbus/dbus-marshal.h:
13941         * dbus/dbus-message-internal.h:
13942         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13943         (dbus_message_write_header), (_dbus_message_lock),
13944         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13945         (dbus_message_get_name), (dbus_message_append_int32),
13946         (dbus_message_append_uint32), (dbus_message_append_double),
13947         (dbus_message_append_string), (dbus_message_append_byte_array),
13948         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13949         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13950         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13951         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13952         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13953         (decode_header_data), (_dbus_message_loader_return_buffer),
13954         (message_iter_test), (_dbus_message_test):
13955         * dbus/dbus-message.h:
13956         * dbus/dbus-protocol.h:
13957         * dbus/dbus-test.c: (main):
13958         * dbus/dbus-test.h:
13959         * glib/test-dbus-glib.c: (message_handler), (main):
13960         * test/echo-client.c: (main):
13961         * test/watch.c: (check_messages):
13962         Make messages sendable and receivable for real.
13963
13964 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13965
13966         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13967         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13968         * dbus/dbus-message.c: (dbus_message_append_int32),
13969         (dbus_message_append_uint32), (dbus_message_append_double),
13970         (dbus_message_append_string), (dbus_message_append_byte_array):
13971         Handle OOM restoration.
13972
13973 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13974
13975         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13976         (_dbus_demarshal_string), (_dbus_marshal_test):
13977         * dbus/dbus-marshal.h:
13978         * dbus/dbus-message.c: (dbus_message_get_name),
13979         Document these functions.
13980
13981         (dbus_message_append_int32), (dbus_message_append_uint32),
13982         (dbus_message_append_double), (dbus_message_append_string),
13983         (dbus_message_append_byte_array):
13984         * dbus/dbus-message.h:
13985         Add functions for adding message fields of different types.
13986
13987         * dbus/dbus-protocol.h:
13988         Add the different types.
13989
13990 2003-01-05  Havoc Pennington  <hp@pobox.com>
13991
13992         * bus/connection.c: implement routines for handling connections,
13993         first thing is keeping a list of owned services on each connection
13994         and setting up watches etc.
13995
13996         * bus/services.c: implement a mapping from service names to lists
13997         of connections
13998
13999         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14000
14001         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14002         to use static mutexes for global data
14003
14004         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14005         collection of functions to set/get application-specific data
14006         on the DBusConnection.
14007
14008 2003-01-04  Havoc Pennington  <hp@pobox.com>
14009
14010         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14011         (_dbus_poll): new function
14012
14013         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14014         copied from GLib
14015
14016         * bus/loop.c: initial code for the daemon main loop
14017
14018 2003-01-04  Havoc Pennington  <hp@pobox.com>
14019
14020         * test/watch.c (error_handler): make it safe if the error handler
14021         is called multiple times (if we s/error handler/disconnect
14022         handler/ we should just guarantee it's called only once)
14023
14024         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14025         error handler on disconnect (it's quite possible we should
14026         just change the error handler to a "disconnect handler," I'm
14027         not sure we have any other meaningful errors)
14028
14029         * configure.in: check for getpwnam_r
14030
14031         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14032         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14033         mechanism as in SASL spec, using socket credentials
14034
14035         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14036         (_dbus_send_credentials_unix_socket): new function
14037
14038         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14039         dbus_accept()
14040         (_dbus_write): only check errno if <0 returned
14041         (_dbus_write_two): ditto
14042
14043 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14044
14045         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14046         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14047         (_dbus_marshal_test):
14048         * dbus/dbus-marshal.h:
14049         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14050         to _dbus_marshal_utf8_string. Also fix some tests.
14051
14052 2002-12-28  Harri Porten  <porten@kde.org>
14053
14054         * configure.in: added check for C++ compiler and a very cheesy
14055         check for the Qt integration
14056
14057         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14058
14059         * qt/Makefile.am: added
14060
14061         * qt/.cvsignore: added
14062
14063         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14064         latter, added #ifdef QT_THREAD_SUPPORT guard.
14065
14066         * dbus/Makefile.am: added missing headers for make dist
14067
14068 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14069
14070         * dbus/Makefile.am: fixup export-symbols-regex.
14071
14072 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14073
14074         * acinclude.m4: Add this file and put the
14075         PKG_CHECK_MODULE macro in it.
14076
14077 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14078
14079         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14080         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14081         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14082         (_dbus_marshal_test):
14083         Make the demarshalling routines align the pos argument.
14084         Add string marshalling tests and fix the obvious bugs
14085         discovered.
14086
14087 2002-12-26  Havoc Pennington  <hp@pobox.com>
14088
14089         * dbus/dbus-auth.c: fixes fixes fixes
14090
14091         * dbus/dbus-transport-unix.c: wire up support for
14092         encoding/decoding data on the wire
14093
14094         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14095         (_dbus_auth_decode_data): append to target string
14096         instead of nuking it.
14097
14098 2002-12-26  Havoc Pennington  <hp@pobox.com>
14099
14100         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14101         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14102         doh
14103
14104         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14105         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14106         now). Main point is because I wanted unpack_uint32 to implement
14107         _dbus_verbose_bytes
14108         (_dbus_verbose_bytes): new function
14109
14110         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14111
14112         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14113         mechanism to handle a corrupt message stream
14114         (_dbus_message_loader_new): fix preallocation to only prealloc,
14115         not prelengthen
14116
14117         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14118         (_dbus_string_test): enhance tests for copy/move and fix the
14119         functions
14120
14121         * dbus/dbus-transport-unix.c: Hold references in more places to
14122         avoid reentrancy problems
14123
14124         * dbus/dbus-transport.c: ditto
14125
14126         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14127         leak reference count in no-message case
14128
14129         * test/watch.c (do_mainloop): handle adding/removing watches
14130         during iteration over the watches. Also, ref the connection/server
14131         stored on a watch, so we don't try to mangle a destroyed one.
14132
14133         * dbus/dbus-transport-unix.c (do_authentication): perform
14134         authentication
14135
14136         * dbus/dbus-auth.c (get_state): add a state
14137         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14138         (_dbus_auth_get_unused_bytes): append the unused bytes
14139         to the passed in string, rather than prepend
14140
14141         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14142         the auth conversation DBusAuth
14143
14144         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14145         (_dbus_transport_new_for_domain_socket): when creating a
14146         transport, pass in whether it's a client-side or server-side
14147         transport so we know which DBusAuth to create
14148
14149 2002-12-03  Havoc Pennington  <hp@pobox.com>
14150
14151         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14152         _after_ finalizing the derived members
14153         (unix_connection_set): unref watch if we fail to add it
14154
14155         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14156         transport first, so that the connection owned by the
14157         transport will be valid as the transport finalizes.
14158
14159         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14160         if necessary, and remove watches from the connection.
14161
14162         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14163
14164 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14165
14166         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14167         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14168         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14169         (_dbus_marshal_test):
14170         * dbus/dbus-marshal.h:
14171         Add string marshal functions and have the demarshal functions
14172         return the new position.
14173
14174 2002-12-25  Havoc Pennington  <hp@pobox.com>
14175
14176         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14177         it is a simple protocol that just maps directly to SASL.
14178
14179         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14180         initial implementation, not actually used yet.
14181
14182         * dbus/dbus-string.c (_dbus_string_find): new function
14183         (_dbus_string_equal): new function
14184         (_dbus_string_base64_encode): new function
14185         (_dbus_string_base64_decode): new function
14186
14187 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14188
14189         * dbus/Makefile.am:
14190         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14191         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14192         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14193         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14194         * dbus/dbus-marshal.h:
14195         * dbus/dbus-protocol.h:
14196         * dbus/dbus-test.c: (main):
14197         * dbus/dbus-test.h:
14198         Add un-optimized marshalling/demarshalling routines.
14199
14200 2002-12-25  Harri Porten  <porten@kde.org>
14201
14202         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14203
14204 2002-12-24  Zack Rusin  <zack@kde.org>
14205
14206         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14207         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14208         main loop stuff
14209
14210 2002-12-24  Havoc Pennington  <hp@pobox.com>
14211
14212         * glib/dbus-gthread.c: fix include
14213
14214         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14215         I think glib API needs to change, though, as you don't
14216         want to use DBusMessageFunction, you want to use the
14217         DBusMessageHandler object. Probably
14218         dbus_connection_open_with_g_main_loop()
14219         and dbus_connection_setup_g_main_loop() or something like that
14220         (but think of better names...) that just create a connection
14221         that has watch/timeout functions etc. already set up.
14222
14223         * dbus/dbus-connection.c
14224         (dbus_connection_send_message_with_reply): new function just to
14225         show how the message handler helps us deal with replies.
14226
14227         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14228
14229         * dbus/dbus-string.c (_dbus_string_test): free a string that
14230         wasn't
14231
14232         * dbus/dbus-hash.c: use memory pools for the hash entries
14233         (rebuild_table): be more paranoid about overflow, and
14234         shrink table when we can
14235         (_dbus_hash_test): reduce number of sprintfs and write
14236         valid C89. Add tests for case where we grow and then
14237         shrink the hash table.
14238
14239         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14240
14241         * dbus/dbus-connection.c (dbus_connection_register_handler)
14242         (dbus_connection_unregister_handler): new functions
14243
14244         * dbus/dbus-message.c (dbus_message_get_name): new
14245
14246         * dbus/dbus-list.c: fix docs typo
14247
14248         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14249         an object representing a handler for messages.
14250
14251 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14252
14253         * glib/dbus-glib.h:
14254         * glib/dbus-gthread.c: (dbus_gthread_init):
14255         Don't use the gdbus prefix for public functions.
14256
14257 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14258
14259         * Makefile.am:
14260         * configure.in:
14261         Add GLib checks and fixup .pc files
14262
14263         * glib/Makefile.am:
14264         * glib/dbus-glib.h:
14265         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14266         (gdbus_connection_check), (gdbus_connection_dispatch),
14267         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14268         (dbus_connection_gsource_new):
14269         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14270         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14271         * glib/test-dbus-glib.c: (message_handler), (main):
14272         Add GLib support.
14273
14274 2002-12-15  Harri Porten  <porten@kde.org>
14275
14276         * autogen.sh: check for libtoolize before attempting to use it
14277
14278         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14279         struct.
14280
14281         * .cvsignore: ignore more stamp files
14282
14283         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14284
14285         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14286         without make install.
14287
14288 2002-12-15  Havoc Pennington  <hp@pobox.com>
14289
14290         * dbus/dbus-threads.c: add thread stubs that a higher library
14291         layer can fill in. e.g. the GLib wrapper might fill them in with
14292         GThread stuff. We still need to use this thread API to
14293         thread-safe-ize the library.
14294
14295 2002-12-12  Havoc Pennington  <hp@pobox.com>
14296
14297         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14298         below new interfaces and include fewer system headers.
14299
14300         * dbus/dbus-sysdeps.c (_dbus_read): new function
14301         (_dbus_write): new function
14302         (_dbus_write_two): new function
14303         (_dbus_connect_unix_socket): new function
14304         (_dbus_listen_unix_socket): new function
14305
14306         * dbus/dbus-message-internal.h: change interfaces to use
14307         DBusString
14308
14309 2002-12-11  Havoc Pennington  <hp@pobox.com>
14310
14311         * dbus/dbus-types.h: add dbus_unichar
14312
14313         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14314
14315         * dbus/dbus-connection.c (dbus_connection_send_message): return
14316         TRUE on success
14317
14318         * dbus/dbus-transport.c: include dbus-watch.h
14319
14320         * dbus/dbus-connection.c: include dbus-message-internal.h
14321
14322         * HACKING: add file with coding guidelines stuff.
14323
14324         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14325         handling here, for security purposes (as in vsftpd). Not actually
14326         using this class yet.
14327
14328         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14329         system/libc usage here, as in vsftpd, for ease of auditing (and
14330         should also simplify portability). Haven't actually moved all the
14331         system/libc usage into here yet.
14332
14333 2002-11-25  Havoc Pennington  <hp@pobox.com>
14334
14335         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14336         always print the first verbose message.
14337
14338 2002-11-24  Havoc Pennington  <hp@pobox.com>
14339
14340         * test/echo-client.c, test/echo-server.c: cheesy test
14341         clients.
14342
14343         * configure.in (AC_CHECK_FUNCS): check for writev
14344
14345         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14346         function
14347
14348         * dbus/dbus-list.c (_dbus_list_foreach): new function
14349
14350         * dbus/dbus-internals.c (_dbus_verbose): new function
14351
14352         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14353         representing a server that listens for connections.
14354
14355         * dbus/.cvsignore: create
14356
14357         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14358         public API for reporting errors
14359
14360         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14361         public object representing a connection that
14362         sends/receives messages. (Same object used for
14363         both client and server.)
14364
14365         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14366         Basic abstraction for different kinds of stream
14367         that we might read/write messages from.
14368
14369 2002-11-23  Havoc Pennington  <hp@pobox.com>
14370
14371         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14372         _DBUS_INT_MAX
14373
14374         * dbus/dbus-test.c (main): add list test, and include
14375         dbus-test.h as intended
14376
14377         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14378         (_dbus_hash_table_remove_int): return value indicates
14379         whether the entry existed to remove
14380
14381         * dbus/dbus-list.c: add linked list utility class,
14382         with docs and tests
14383
14384         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14385         array sometimes.
14386
14387 2002-11-23  Havoc Pennington  <hp@pobox.com>
14388
14389         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14390         DBUS_END_DECLS to nothing, that should fix this once and for all
14391
14392         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14393
14394         * dbus/dbus-message.c, dbus/dbus-hash.c:
14395         add some missing @brief
14396
14397 2002-11-23  Havoc Pennington  <hp@pobox.com>
14398
14399         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14400         to avoid confusing Doxygen
14401
14402         * dbus/dbus-hash.c: @} not }@
14403
14404         * dbus/dbus-message.c (struct DBusMessage): split out
14405         internals docs
14406
14407 2002-11-23  Havoc Pennington  <hp@pobox.com>
14408
14409         * configure.in: pile on more warning flags if using gcc
14410
14411         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14412         to document static functions
14413
14414         * configure.in: add summary to end of configure so it
14415         looks nice and attractive
14416
14417         * dbus/dbus-hash.c: finish implementation and write unit
14418         tests and docs
14419
14420         * configure.in: add --enable-tests to enable unit tests
14421
14422         * dbus/dbus-test.c: test program to run unit tests
14423         for all files in dbus/*, initially runs a test for
14424         dbus-hash.c
14425
14426         * dbus/dbus-internals.h: file to hold some internal utility stuff
14427
14428 2002-11-22  Havoc Pennington  <hp@redhat.com>
14429
14430         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14431         "ported" away from Tcl
14432
14433         * dbus/dbus-types.h: header for types such as dbus_bool_t
14434
14435 2002-11-22  Havoc Pennington  <hp@redhat.com>
14436
14437         * dbus/dbus.h: fixups for doc warnings
14438
14439         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14440         macros
14441         (QUIET): make it quiet so we can see warnings
14442
14443         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14444
14445 2002-11-22  Havoc Pennington  <hp@redhat.com>
14446
14447         * Makefile.am: include "Doxyfile" target in all-local
14448
14449         * configure.in: generate the Doxyfile
14450
14451         * Doxyfile.in: move Doxyfile here, so we can use
14452         configure to generate a Doxyfile with the right
14453         version number etc.
14454
14455 2002-11-22  Havoc Pennington  <hp@redhat.com>
14456
14457         * dbus/dbus-message.c: move inline docs into .c file
14458
14459         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14460         so all docs are under doc/
14461         (MAN_EXTENSION): generate man pages. Use extension
14462         ".3dbus" which matches ".3qt" on my system,
14463         I guess this is OK, I don't know really.
14464         (FILE_PATTERNS): look for .c files not .h, makes sense
14465         for plain C I think
14466
14467 2002-11-22  Havoc Pennington  <hp@pobox.com>
14468
14469         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14470         because any app can be a server, and any app can be a client,
14471         the bus is a special kind of server.
14472
14473 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14474
14475         * Doxyfile : adding. Still needs Makefile rules to be generated
14476         automatically (just run "doxygen" in the toplevel dir for now to
14477         generate docs)
14478
14479         * dbus/dbus-message.h : Adding sample docs (javadoc since
14480         resembles gtk-doc a little more)
14481
14482         * dbus/dbus.h : Adding sample docs
14483
14484 2002-11-21  Havoc Pennington  <hp@redhat.com>
14485
14486         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14487         so we can allow ourselves to include files directly,
14488         instead of having to use dbus.h
14489
14490         * dbus/dbus.h: fill in
14491
14492         * dbus/dbus-message.h: sketch out a sample header file.
14493         Include griping if you include it directly instead of
14494         via dbus.h
14495
14496         * dbus/dbus-macros.h: new file with macros for extern "C",
14497         TRUE/FALSE, NULL, etc.
14498
14499         * doc/file-boilerplate.c: put include guards in here
14500
14501 2002-11-21  Havoc Pennington  <hp@redhat.com>
14502
14503         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14504
14505         * COPYING: include the GPL as well, and license code
14506         under both AFL and GPL.
14507
14508 2002-11-21  Havoc Pennington  <hp@redhat.com>
14509
14510         * acconfig.h: get rid of this
14511
14512         * autogen.sh (run_configure): add --no-configure option
14513
14514         * configure.in: remove AC_ARG_PROGRAM to make
14515         autoconf complain less. add AC_PREREQ.
14516         add AC_DEFINE third arg.
14517
14518 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14519
14520         * doc/Makefile.am:
14521         Fix references so we can distcheck.
14522
14523 2002-11-21  Havoc Pennington  <hp@redhat.com>
14524
14525         * Initial module creation
14526